diff --git a/Makefile b/Makefile index 25bbf8e80..860ce8f38 100644 --- a/Makefile +++ b/Makefile @@ -9,12 +9,23 @@ RELEASE=final ROMID := $(REGION)-$(RELEASE) E_DIR := extracted/$(ROMID) B_DIR := build/$(ROMID) -S_FILES := $(wildcard asm/setup/*.s) -S_INC_FILES := $(wildcard asm/include/*.inc) -B_BIN_FILES := $(patsubst asm/setup/%.s, $(B_DIR)/files/U%, $(S_FILES)) -E_BIN_FILES := $(patsubst asm/setup/%.s, $(E_DIR)/files/U%, $(S_FILES)) -B_BINZ_FILES := $(patsubst asm/setup/%.s, $(B_DIR)/files/U%Z, $(S_FILES)) -E_BINZ_FILES := $(patsubst asm/setup/%.s, $(E_DIR)/files/U%Z, $(S_FILES)) +SETUP_FILES := $(wildcard src/setup/*.c) +SETUP_H_FILES := $(wildcard src/include/*.h) +B_BIN_FILES := $(patsubst src/setup/%.c, $(B_DIR)/files/U%, $(SETUP_FILES)) +E_BIN_FILES := $(patsubst src/setup/%.c, $(E_DIR)/files/U%, $(SETUP_FILES)) +B_BINZ_FILES := $(patsubst src/setup/%.c, $(B_DIR)/files/U%Z, $(SETUP_FILES)) +E_BINZ_FILES := $(patsubst src/setup/%.c, $(E_DIR)/files/U%Z, $(SETUP_FILES)) + +QEMU_IRIX := tools/irix/qemu-irix +IRIX_ROOT := tools/irix/root + +ifeq ($(shell type mips-linux-gnu-ld >/dev/null 2>/dev/null; echo $$?), 0) + TOOLCHAIN := mips-linux-gnu +else + TOOLCHAIN := mips64-elf +endif + +CFLAGS := -Wo,-loopunroll,0 -Wab,-r4300_mul -non_shared -G 0 -Xcpluscomm -woff 819,820,852,821 -signed -I . -I include -mips2 default: $(B_BIN_FILES) $(B_DIR)/Uglobals @@ -42,15 +53,17 @@ testall: ################################################################################ # Stage setup files -$(B_DIR)/files/%.o: asm/setup/%.s $(S_INC_FILES) +$(B_DIR)/files/%.o: src/setup/%.c $(SETUP_H_FILES) mkdir -p $(B_DIR)/files - aarch64-linux-gnu-as -EB -o $@ $< + $(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/bin/cc -c $(CFLAGS) -o $@ -O2 $< $(B_DIR)/files/%.elf: $(B_DIR)/files/%.o - aarch64-linux-gnu-ld -EB -e 0 -Tdata=0 -o $@ $< + cp $< build/setup.tmp.o + $(TOOLCHAIN)-ld -T setup.ld -o $@ + rm -f build/setup.tmp.o $(B_DIR)/files/U%: $(B_DIR)/files/%.elf - aarch64-linux-gnu-objcopy -O binary $< $@ + $(TOOLCHAIN)-objcopy $< $@ -O binary $(B_DIR)/files/U%Z: $(B_DIR)/files/U% tools/rarezip $< > $@ @@ -58,14 +71,17 @@ $(B_DIR)/files/U%Z: $(B_DIR)/files/U% ################################################################################ # Globals file -$(B_DIR)/Uglobals.o: asm/globals.s $(S_INC_FILES) - aarch64-linux-gnu-as -EB -o $@ $< +$(B_DIR)/globals.o: src/globals.c $(SETUP_H_FILES) + mkdir -p $(B_DIR) + $(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/bin/cc -c $(CFLAGS) -o $@ -O2 $< -$(B_DIR)/Uglobals.elf: $(B_DIR)/Uglobals.o - aarch64-linux-gnu-ld -EB -e 0 -Tdata=0x80059fe0 -o $@ $< +$(B_DIR)/globals.elf: $(B_DIR)/globals.o + cp $< build/globals.tmp.o + $(TOOLCHAIN)-ld -e 0x80059fe0 -T globals.ld -o $@ + rm -f build/globals.tmp.o -$(B_DIR)/Uglobals: $(B_DIR)/Uglobals.elf - aarch64-linux-gnu-objcopy -O binary $< $@ +$(B_DIR)/Uglobals: $(B_DIR)/globals.elf + $(TOOLCHAIN)-objcopy $< $@ -O binary ################################################################################ # Miscellaneous diff --git a/README.md b/README.md index ca45ba4f3..8dee83944 100644 --- a/README.md +++ b/README.md @@ -1,42 +1,36 @@ -# Perfect Dark Setup Decompilation +# Perfect Dark Decompilation (WIP) -This repository contains a decompilation of the level setup files used in Perfect Dark for the Nintendo 64. +This repository contains a work-in-progress decompilation of Perfect Dark for the Nintendo 64. So far only the stage setup files are decompiled. -## Come again? +## I have no idea what you're talking about -It's known that Perfect Dark (and GoldenEye) use a custom made binary scripting language to set up the levels. See the GE/PD Function Explorer and the GoldenEye Setup Editor. However, the specifics of how it works has been difficult to explore. Until now. - -I've realised that Rare likely did their level setup and scripting with assembly macros. The giveaway was the U prefix on the setup filename, which is also a common prefix for compiled machine code (ucode). So I made a tool that would read the binaries and generate some assembly files which can be compiled back into those exact same binaries. Once I got it matching, I started annotating each setup file, discovering new commands and renaming symbols. - -## I still have no idea what you're talking about - -Go have a look at the level scripts in the asm/setup directory. Here's a mapping table for your convenience: +Go have a look at the level scripts in the src/setup directory. Here's a mapping table for your convenience: | Stage | File | | ---------------- | ------------------------------------ | -| Defection | [setupame.s](asm/setup/setupame.s) | -| Investigation | [setupear.s](asm/setup/setupear.s) | -| Extraction | [setupark.s](asm/setup/setupark.s) | -| Villa | [setupeld.s](asm/setup/setupeld.s) | -| Chicago | [setuppete.s](asm/setup/setuppete.s) | -| G5 Building | [setupdepo.s](asm/setup/setupdepo.s) | -| Infiltration | [setuplue.s](asm/setup/setuplue.s) | -| Rescue | [setuplip.s](asm/setup/setuplip.s) | -| Escape | [setuptra.s](asm/setup/setuptra.s) | -| Air Base | [setupcave.s](asm/setup/setupcave.s) | -| Air Force One | [setuprit.s](asm/setup/setuprit.s) | -| Crash Site | [setupazt.s](asm/setup/setupazt.s) | -| Pelagic II | [setupdam.s](asm/setup/setupdam.s) | -| Deep Sea | [setuppam.s](asm/setup/setuppam.s) | -| Defense | [setupimp.s](asm/setup/setupimp.s) | -| Attack Ship | [setuplee.s](asm/setup/setuplee.s) | -| Skedar Ruins | [setupsho.s](asm/setup/setupsho.s) | -| MBR | [setupwax.s](asm/setup/setupwax.s) | -| Maian SOS | [setupsev.s](asm/setup/setupsev.s) | -| WAR! | [setupstat.s](asm/setup/setupstat.s) | -| The Duel | [setupate.s](asm/setup/setupate.s) | -| CI Training | [setupdish.s](asm/setup/setupdish.s) | -| Global Functions | [globals.s](asm/globals.s) | +| Defection | [setupame.c](src/setup/setupame.c) | +| Investigation | [setupear.c](src/setup/setupear.c) | +| Extraction | [setupark.c](src/setup/setupark.c) | +| Villa | [setupeld.c](src/setup/setupeld.c) | +| Chicago | [setuppete.c](src/setup/setuppete.c) | +| G5 Building | [setupdepo.c](src/setup/setupdepo.c) | +| Infiltration | [setuplue.c](src/setup/setuplue.c) | +| Rescue | [setuplip.c](src/setup/setuplip.c) | +| Escape | [setuptra.c](src/setup/setuptra.c) | +| Air Base | [setupcave.c](src/setup/setupcave.c) | +| Air Force One | [setuprit.c](src/setup/setuprit.c) | +| Crash Site | [setupazt.c](src/setup/setupazt.c) | +| Pelagic II | [setupdam.c](src/setup/setupdam.c) | +| Deep Sea | [setuppam.c](src/setup/setuppam.c) | +| Defense | [setupimp.c](src/setup/setupimp.c) | +| Attack Ship | [setuplee.c](src/setup/setuplee.c) | +| Skedar Ruins | [setupsho.c](src/setup/setupsho.c) | +| MBR | [setupwax.c](src/setup/setupwax.c) | +| Maian SOS | [setupsev.c](src/setup/setupsev.c) | +| WAR! | [setupstat.c](src/setup/setupstat.c) | +| The Duel | [setupate.c](src/setup/setupate.c) | +| CI Training | [setupdish.c](src/setup/setupdish.c) | +| Global Functions | [globals.c](src/globals.c) | There is also a stagetable.txt in the repository root which includes multiplayer stages. @@ -51,24 +45,20 @@ You can use this to make mods without having to deal with the GE Setup Editor's Install the following: * make -* aarch64 build tools (aarch64-linux-gnu-as, aarch64-linux-gnu-ld, aarch64-linux-gnu-objcopy) +* mips build tools (Debian/Ubuntu: binutils-mips-linux-gnu, Arch: mips64-elf-binutils from AUR) * Python 3 Then: 1. Save your existing ROM file into the root of the repository with the name `pd.ntsc-final.z64`. It should not be byteswapped (the first four bytes should be `0x80371240`). -2. Edit a setup file. Open up `asm/setup/setupame.s` (Defection), find the function `func0422_intro` and add `explosions_around_chr CHR_JOANNA` as the first statement. +2. Edit a setup file. Open up `src/setup/setupame.c` (Defection), find the symbol `func0422_intro` and add `explosions_around_chr(CHR_JOANNA)` as the first statement. 3. Run `make rom`. This will create a ROM file at `build/ntsc-final/pd.z64`. 4. Play the ROM. 5. Start Defection, watch the intro and admire Joanna jumping from the dropship into a sea of explosions to her fiery death. -## Wait, aarch64? Isn't that ARM? - -Yeah. I originally used mips64, but the binaries it created were padded and therefore incorrect. I couldn't figure out how to change that with modern versions of the mips build tools and I didn't want to waste too much time on that aspect of it. Because there's no actual opcodes being generated, the architecture isn't really important. I just needed something that worked and was big endian (so x64_64 was out of the question too). - ## Where's the list of commands? Is there a reference? -See `asm/include/commands.inc` and `asm/include/constants.inc` for a start. +See `src/include/commands.h` and `src/include/constants.h` for a start. ## Whats with all this beginloop and endloop stuff? @@ -82,7 +72,7 @@ I also added a `reloop` macro, which is selectively used to replace a `goto_firs Well, yes but no. They won't be injected into the ROM because I'm lazy and haven't written code to do that. The stage files will though. -The global functions are at asm/globals.s. +The global functions are at src/globals.c. ## How much stuff can I add before I run out of space? diff --git a/asm/globals.s b/asm/globals.s deleted file mode 100644 index 78d51ae04..000000000 --- a/asm/globals.s +++ /dev/null @@ -1,5447 +0,0 @@ -.include "asm/include/constants.inc" -.include "asm/include/commands.inc" - -.data -.rept 0x0001be00 -.byte 0x00 -.endr - -func0000_idle: - dprint "dyeng" - beginloop 0x0d - endloop 0x0d - - endfunction - -func0005_end_cinema: - enter_firstperson - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0001_unalerted_0001: - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -// Never used -func0003_stop_unalerted: - stop_chr - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func0002_unalerted_0002: - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func0004_unalerted_0004: - set_function CHR_SELF, GFUNC_UNALERTED_0002 - endfunction - -func0006_unalerted: - .set LABEL_AIVSAIFAIL, 0x16 - .set LABEL_DISGUISE_UNCOVERED, 0x16 - .set LABEL_SCAN_START, 0x1a - .set LABEL_SEE_DETECT, 0x1e - .set LABEL_HEAR_DETECT, 0x1f - .set LABEL_NEAR_MISS, 0x20 - .set LABEL_SEEFRIENDDIE, 0x21 - .set LABEL_HEARD_ALARM, 0x23 - .set LABEL_HEARSPAWN, 0xda - - if_chr_flag_bank2 CHR_SELF, CHRFLAG2_PSYCHOSISED, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - set_return_function CHR_SELF, GFUNC_INIT_PSYCHOSIS - set_function CHR_SELF, GFUNC_INIT_PSYCHOSIS - - label 0x16 - set_target_chr CHR_P1P2 - set_onshot_function GFUNC_UNALERTED - if_chr_dying CHR_SELF, /*goto*/ 0x15 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x15 - if_chr_unloaded CHR_SELF, /*goto*/ 0x15 - if_just_injured CHR_SELF, /*goto*/ 0x16 - if_has_gun CHR_SELF, /*goto*/ 0x13 - dprint "NOGUN\n" - goto_next 0x16 - - label 0x13 - goto_next LABEL_SCAN_START - - // Dying - label 0x15 - dprint "DIE INSCAN\n" - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - // Injured or has no gun - label 0x16 - say_quip CHR_JOANNA, 0x0c, 0x78, 0x03, 0x00, BANK_0, 0x00, 0x00 // "Holy shh...","What the hell?!" - dprint "NOGUN,\n" - if_self_flag_bankx_eq CHRFLAG1_DOINGIDLEANIMATION, FALSE, BANK_1, /*goto*/ 0x06 - unset_self_flag_bankx CHRFLAG1_DOINGIDLEANIMATION, BANK_1 - if_chr_idle_action_eq IDLEACTION_SITTING_TYPING, /*goto*/ 0x05 - if_chr_idle_action_eq IDLEACTION_SITTING_DORMANT, /*goto*/ 0x05 - goto_next 0x06 - - // Stand up from sitting - label 0x05 - dprint "NOGUN2\n" - dprint "ANIM OBJECT NOW\n" - set_chr_health CHR_SELF, 40 - object_do_animation 0x025a, 0xff, 0x02ff, 0xff - animation ANIM_STAND_UP_FROM_SITTING, 0, -1, 0x0210, CHR_SELF, 2 - unset_self_flag_bankx CHRFLAG1_DOINGIDLEANIMATION, BANK_1 - set_chr_special_death_animation CHR_SELF, NULL - dprint "B4 WAT\n" - goto_next 0x0c - - label 0x06 - dprint "BEEN SHOT\n" - // if 01000000, set 04000000 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_01000000, /*goto*/ 0x14 - goto_next 0x13 - - label 0x14 - set_chr_flag_bank2 TARGET_CHR, CHRFLAG2_04000000 - - // Stop chr, either immediately or by waiting for their animation to end. - // I think the animation is their injured animation. - label 0x13 - set_chr_flag_bank2 TARGET_CHR, CHRFLAG2_02000000 - if_chr_idle /*goto*/ 0x13 - goto_next 0x03 - - label 0x13 - stop_chr - goto_next 0x16 - - beginloop 0x03 - if_chr_stopped /*goto*/ 0x16 - endloop 0x03 - - // If warned already, go straight to scan - label 0x16 - if_self_flag_bankx_eq CHRFLAG1_WARNED, TRUE, BANK_1, /*goto*/ LABEL_SCAN_START - - say_quip CHR_JOANNA, 0x0c, 0xff, 0x03, 0x00, BANK_0, 0x00, 0x00 // "Holy shh...","What the hell?!" - dprint "NO WARNING\n" - if_self_flag_bankx_eq CHRFLAG0_CANT_ALERT_GROUP, TRUE, BANK_0, /*goto*/ 0x13 - set_group_alertness 100 - label 0x13 - dprint "NO WARNING\n" - set_function CHR_SELF, GFUNC_WAKEUP - dprint "S1" - - // Armed - label LABEL_SCAN_START - dprint "SCAN START\n" - set_action ACTION_SCAN, TRUE - yield - dprint "S2" - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - label 0x13 - if_alertness 100, OPERATOR_LESS_THAN, /*goto*/ 0x16 - dprint "ALERT FAI\n" - goto_next 0x78 - - // Not alert - label 0x16 - if_self_flag_bankx_eq CHRFLAG1_WARNED, TRUE, BANK_1, /*goto*/ 0x13 - if_saw_death 0x01, /*goto*/ LABEL_SEEFRIENDDIE - if_shot_near_chr 0x01, /*goto*/ LABEL_NEAR_MISS - - // Warned - label 0x13 - dprint "A1\n" - if_player_looking_at_something_maybe 0x00, 0x00, 0x01, /*goto*/ 0x16 - if_target_chr_in_sight /*goto*/ LABEL_SEE_DETECT - label 0x16 - dprint "B4 AIVSAI\n" - if_self_flag_bankx_eq CHRFLAG0_AIVSAI, FALSE, BANK_0, /*goto*/ LABEL_AIVSAIFAIL - dprint "AIVSAISET\n" - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x13 - dprint "AIVSAIFAIL\n" - goto_next LABEL_AIVSAIFAIL - - label 0x13 - dprint "AIVSAIPASS\n" - if_chr_lost_track_of_target_maybe /*goto*/ LABEL_AIVSAIFAIL - goto_next 0x12 - - // Check see and hear - label LABEL_AIVSAIFAIL - dprint "S4" - if_near_miss /*goto*/ LABEL_SEE_DETECT - if_num_times_shot_gt 0, /*goto*/ LABEL_SEE_DETECT - dprint "B4NOHEAR\n" - if_self_flag_bankx_eq CHRFLAG0_NOHEAR, FALSE, BANK_0, /*goto*/ 0x16 - if_chr_sees_player /*goto*/ 0x16 - goto_next 0x13 - - label 0x16 - dprint "CHEKHEAR\n" - if_shot_at_close_range /*goto*/ LABEL_HEAR_DETECT - label 0x13 - dprint "NOTHEARD\n" - - // Check alarm - label 0x13 - dprint "N2\n" - if_self_flag_bankx_eq CHRFLAG0_CAN_HEAR_ALARMS, FALSE, BANK_0, /*goto*/ 0x16 - dprint "N3\n" - if_alarm_active /*goto*/ LABEL_HEARD_ALARM - label 0x16 - dprint "N1\n" - if_alarm_active /*goto*/ 0x13 - goto_next 0x16 - - // Can hear alarm - label 0x13 - dprint "AL ONARD\n" - if_stage_is_not STAGE_PELAGIC, /*goto*/ 0x16 - if_bitcheck_in_position_struct /*goto*/ LABEL_HEARD_ALARM - - // Check if can see camspy - label 0x16 - if_chr_sees_camspy_maybe /*goto*/ 0x16 - dprint "ES NOVIS\n" - goto_next 0x13 - - // Can see camspy - label 0x16 - dprint "SEEEYESPY\n" - if_path_started /*goto*/ 0x15 - set_return_function CHR_SELF, GFUNC_UNALERTED - set_function CHR_SELF, GFUNC_OBSERVE_CAMSPY - - // Patroller seeing camspy - label 0x15 - set_return_function CHR_SELF, GFUNC_DISGUISE_DETECTION - set_function CHR_SELF, GFUNC_OBSERVE_CAMSPY - - // Can't see camspy - label 0x13 - if_self_flag_bankx_eq CHRFLAG1_00080000, TRUE, BANK_1, /*goto*/ 0x16 - if_self_flag_bankx_eq CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x13 - if_self_flag_bankx_eq CHRFLAG1_DISSPEE, FALSE, BANK_1, /*goto*/ 0x15 - dprint "CHECK SOUFI\n" // checks outfit? - if_chr_propsoundcount_zero CHR_SELF, /*goto*/ 0x28 - if_timer_gt 60, /*goto*/ 0x28 - goto_next 0x15 - - // chr field 0x332 was zero - label 0x28 - unset_self_flag_bankx CHRFLAG1_DISSPEE, BANK_1 - stop_chr - - // Disspee is false, or timer not at 1 second yet - label 0x15 - if_chr_idle /*goto*/ 0x16 - call_rng - if_rand_gt 1, /*goto*/ 0x16 - call_rng - if_rand_gt 20, /*goto*/ 0x16 - if_path_started /*goto*/ 0x15 - set_return_function CHR_SELF, GFUNC_UNALERTED - set_function CHR_SELF, GFUNC_DO_BORED_ANIMATION - - label 0x15 - set_return_function CHR_SELF, GFUNC_DISGUISE_DETECTION - set_function CHR_SELF, GFUNC_DO_BORED_ANIMATION - - // Consider looking around - label 0x16 - if_self_flag_bankx_eq CHRFLAG1_CAN_LOOK_AROUND, FALSE, BANK_1, /*goto*/ 0x16 - call_rng - if_rand_gt 10, /*goto*/ 0x16 - call_rng - if_rand_gt 20, /*goto*/ 0x16 - if_path_started /*goto*/ 0x15 - set_return_function CHR_SELF, GFUNC_UNALERTED - set_function CHR_SELF, GFUNC_LOOK_AROUND - - label 0x15 - set_return_function CHR_SELF, GFUNC_DISGUISE_DETECTION - set_function CHR_SELF, GFUNC_LOOK_AROUND - - label 0x16 - goto_first LABEL_SCAN_START - - // Idle animations - label 0x13 - dprint "NAT ANIMS\n" - if_chr_idle /*goto*/ 0x16 - set_return_function CHR_SELF, GFUNC_UNALERTED - set_function CHR_SELF, GFUNC_BUSY - - label 0x16 - dprint "IN ANIMS\n" - goto_first LABEL_SCAN_START - - // Handle seeing player - label LABEL_SEE_DETECT - dprint "SEE DETECT\n" - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_DISGUISE_UNCOVERED, /*goto*/ LABEL_DISGUISE_UNCOVERED - label 0x13 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_02000000, /*goto*/ 0x14 - goto_next 0x13 - - label 0x14 - if_chr_weapon_equipped TARGET_CHR, WEAPON_NONE, /*goto*/ 0x15 - if_chr_weapon_equipped TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x15 - if_chr_weapon_equipped TARGET_CHR, WEAPON_COMBATBOOST, /*goto*/ 0x15 - if_chr_weapon_equipped TARGET_CHR, WEAPON_HORIZONSCANNER, /*goto*/ 0x15 - if_chr_weapon_equipped TARGET_CHR, WEAPON_SUITCASE, /*goto*/ 0x15 - if_chr_in_view /*goto*/ LABEL_DISGUISE_UNCOVERED - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_04000000, /*goto*/ LABEL_DISGUISE_UNCOVERED - - label 0x15 - dprint "NOT AIMING AT ME\n" - - label 0x13 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x13 - goto_next LABEL_DISGUISE_UNCOVERED - - label 0x13 - if_chr_weapon_equipped TARGET_CHR, WEAPON_NONE, /*goto*/ 0x15 - if_chr_weapon_equipped TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x15 - if_chr_weapon_equipped TARGET_CHR, WEAPON_COMBATBOOST, /*goto*/ 0x15 - if_chr_weapon_equipped TARGET_CHR, WEAPON_HORIZONSCANNER, /*goto*/ 0x15 - if_chr_weapon_equipped TARGET_CHR, WEAPON_SUITCASE, /*goto*/ 0x15 - goto_next 0x14 - - label 0x15 - if_chr_soundtimer 600, OPERATOR_GREATER_THAN, /*goto*/ 0x15 - goto_next 0xea - - label 0x14 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_02000000, /*goto*/ 0xe8 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_01000000, /*goto*/ 0xe8 - - label 0xea - if_chr_weapon_equipped TARGET_CHR, WEAPON_NONE, /*goto*/ 0xe6 - if_chr_weapon_equipped TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0xe6 - if_chr_weapon_equipped TARGET_CHR, WEAPON_COMBATBOOST, /*goto*/ 0xe6 - if_chr_weapon_equipped TARGET_CHR, WEAPON_HORIZONSCANNER, /*goto*/ 0xe6 - if_chr_weapon_equipped TARGET_CHR, WEAPON_SUITCASE, /*goto*/ 0xe6 - dprint "TALK DIST GUN\n" - if_chr_distance_gt 900, /*goto*/ 0x15 - goto_next 0xe8 - - label 0xe6 - if_chr_distance_gt 450, /*goto*/ 0x15 - label 0xe8 - if_chr_sees_player /*goto*/ 0xe9 - goto_next LABEL_DISGUISE_UNCOVERED - - label 0xe9 - label 0x13 - if_player_looking_at_something_maybe 0x0a, 0x01, 0x00, /*goto*/ 0x13 - goto_next 0x15 - - label 0x13 - if_path_started /*goto*/ 0x14 - set_return_function CHR_SELF, GFUNC_UNALERTED - set_function CHR_SELF, GFUNC_CIVILIAN_SAY_COMMENT - label 0x14 - set_return_function CHR_SELF, GFUNC_DISGUISE_DETECTION - set_function CHR_SELF, GFUNC_CIVILIAN_SAY_COMMENT - label 0x15 - goto_first LABEL_SCAN_START - - // Disguise broken - label LABEL_DISGUISE_UNCOVERED - dprint "DISBROKEN\n" - if_near_miss /*goto*/ 0x16 - if_self_flag_bankx_eq CHRFLAG0_UNSURPRISABLE, TRUE, BANK_0, /*goto*/ 0x94 - label 0x16 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x14 - if_any_chr_doing_action ACTION_WARN_OTHERS, /*goto*/ 0x16 - if_self_flag_bankx_eq CHRFLAG0_CAN_RUN_FOR_ALARM, TRUE, BANK_0, /*goto*/ 0x9f - label 0x16 - say_quip CHR_JOANNA, 0x0b, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 // "Hey, you!","Intruder alert","We've got a contact!" - label 0x9f - set_group_alertness 100 - goto_next 0x77 - - label 0xdb // jumped to from below - label 0x14 - say_quip CHR_JOANNA, 0x20, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 // "Imposter!","It's a spy!" - set_group_alertness 100 - goto_next 0x77 - - // Unreachable? - label 0x16 - yield - yield - dprint "S3" - say_quip CHR_JOANNA, 0x0c, 0xff, 0x03, 0x00, BANK_0, 0x00, 0x00 // "Holy shh...","What the hell?!" - set_group_alertness 100 - goto_next 0x77 - - label 0x94 - label 0x16 - set_chr_flag_bank2 TARGET_CHR, CHRFLAG2_PSYCHOSISED - dprint "SURPRISED!\n" - say_quip CHR_JOANNA, 0x12, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 // "What the?!","Who the?!" - restart_timer - if_self_flag_bankx_eq CHRFLAG1_DOINGIDLEANIMATION, FALSE, BANK_1, /*goto*/ 0x16 - if_chr_idle_action_eq IDLEACTION_SITTING_TYPING, /*goto*/ 0x13 - if_chr_idle_action_eq IDLEACTION_SITTING_DORMANT, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - set_chr_health CHR_SELF, 40 - goto_next 0x73 - - label 0x16 - animation ANIM_SURPRISED_0202, 0, -1, 0x0010, CHR_SELF, 2 - - beginloop 0x73 - dprint "S4" - if_timer_gt 60, /*goto*/ 0x77 - endloop 0x73 - - label 0x77 - set_alertness 255 - if_self_flag_bankx_eq CHRFLAG0_CANT_ALERT_GROUP, TRUE, BANK_0, /*goto*/ 0x13 - set_group_alertness 100 - label 0x13 - set_function CHR_SELF, GFUNC_WAKEUP - - // - // HEAR DETECT - // - label LABEL_HEAR_DETECT - yield - dprint "S7" - dprint "HEARDETECT\n" - say_quip CHR_JOANNA, 0x09, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 // "Did you hear that?","What's that noise?","I heard a noise..." - if_self_flag_bankx_eq CHRFLAG0_CAN_HEARSPAWN, TRUE, BANK_0, /*goto*/ LABEL_HEARSPAWN - restart_timer - if_self_flag_bankx_eq CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x80 - animation ANIM_YAWN, 0, 193, 0x1810, CHR_SELF, 2 - - beginloop 0x80 - dprint "S8" - if_timer_gt 60, /*goto*/ 0x81 - endloop 0x80 - - label 0x81 - if_self_flag_bankx_eq CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x13 - if_self_flag_bankx_eq CHRFLAG1_01000000, TRUE, BANK_1, /*goto*/ 0x13 - set_function CHR_SELF, GFUNC_SEARCH_FOR_PLAYER - - label 0x13 - set_group_alertness 100 - set_function CHR_SELF, GFUNC_WAKEUP - - // - // HEAR SPAWN - // - label LABEL_HEARSPAWN - dprint "HEARSPAWN\n" - if_never_been_onscreen /*goto*/ 0x0e - dprint "NEVER VISFAIL\n" - set_function CHR_SELF, GFUNC_SEARCH_FOR_PLAYER - - label 0x0e - if_never_been_onscreen /*goto*/ 0x13 - set_function CHR_SELF, GFUNC_SEARCH_FOR_PLAYER - - // Never been on screen - label 0x13 - if_self_flag_bankx_eq CHRFLAG0_00100000, FALSE, BANK_0, /*goto*/ 0x13 - set_alertness 100 - label 0x13 - dprint "CHECK DUPE\n" - if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x0e - if_chr_unloaded CHR_CLONE, /*goto*/ 0x0e - set_function CHR_SELF, GFUNC_UNALERTED_0001 - - label 0x0e - dprint "CREATE SPAWN\n" - try_spawn_clone2 CHR_SELF, GFUNC_SEARCH_FOR_PLAYER, 0x00000000, /*goto*/ 0x13 - dprint "CREATE FAIL\n" - if_self_flag_bankx_eq CHRFLAG0_00100000, TRUE, BANK_0, /*goto*/ 0x13 - set_function CHR_SELF, GFUNC_SEARCH_FOR_PLAYER - - label 0x13 - set_function CHR_SELF, GFUNC_UNALERTED_0001 - - // - // NEAR MISS - // - label LABEL_NEAR_MISS - increase_self_alertness 100 - say_quip CHR_JOANNA, 0x0c, 0xff, 0x03, 0x00, BANK_0, 0x00, 0x00 // "Holy shh...","What the hell?!" - set_target_chr CHR_JOANNA - if_within_units_of_sight 30, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - set_chr_flag_bank2 TARGET_CHR, CHRFLAG2_02000000 - goto_next 0x94 - - label 0x16 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x16 - set_target_chr CHR_VELVET - if_within_units_of_sight 30, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - set_chr_flag_bank2 TARGET_CHR, CHRFLAG2_02000000 - goto_next 0x94 - - label 0x16 - goto_next 0x94 - - // - // SEE FRIEND DIE - // - label LABEL_SEEFRIENDDIE - dprint "SEEFRIENDDIE\n" - if_self_flag_bankx_eq CHRFLAG0_UNSURPRISABLE, FALSE, BANK_0, /*goto*/ 0x17 - label 0x94 - label 0x16 - dprint "SURPRISED!\n" - say_quip CHR_JOANNA, 0x12, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 // "What the?!","Who the?!" - restart_timer - if_self_flag_bankx_eq CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x76 - animation ANIM_SURPRISED_0202, 0, -1, 0x0010, CHR_SELF, 2 - - beginloop 0x76 - dprint "S6" - if_timer_gt 60, /*goto*/ 0x17 - endloop 0x76 - - label 0x17 - if_self_flag_bankx_eq CHRFLAG0_CAN_EXAMINE_BODY, FALSE, BANK_0, /*goto*/ 0x7d - chr_try_run_to_target_chr_with_hand_up CHR_FRIEND, /*goto*/ 0x7e - dprint "WALKFAIL\n" - - beginloop 0x7e - dprint "S9" - dprint "WALKING\n" - if_shot_near_chr 0x00, /*goto*/ 0x16 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_player_looking_at_something_maybe 0x00, 0x00, 0x01, /*goto*/ 0x13 - if_target_chr_in_sight /*goto*/ 0x16 - label 0x13 - if_self_distance_to_chr_lt 150, CHR_FRIEND, /*goto*/ 0x7f - if_chr_stopped /*goto*/ 0x7f - endloop 0x7e - - label 0x16 - goto_first LABEL_SEE_DETECT - - // At friend - label 0x7f - restart_timer - kneel - - beginloop 0x7c - dprint "T1" - dprint "EXAM BODY\n" - if_shot_near_chr 0x00, /*goto*/ 0x16 - set_hear_distance 10000 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_hears_gunfire /*goto*/ 0x16 - if_player_looking_at_something_maybe 0x00, 0x00, 0x01, /*goto*/ 0x13 - if_target_chr_in_sight /*goto*/ 0x17 - label 0x13 - if_self_flag_bankx_eq CHRFLAG0_CAN_EXAMINE_BODY, FALSE, BANK_0, /*goto*/ 0x13 - if_timer_lt 120, /*goto*/ 0x13 - say_quip CHR_JOANNA, 0x13, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 // "Are you okay?","Got a man down!","He's bought it..." - unset_self_flag_bankx CHRFLAG0_CAN_EXAMINE_BODY, BANK_0 - label 0x13 - if_timer_gt 600, /*goto*/ 0x7d - endloop 0x7c - - // Heard gunfire - label 0x16 - set_alertness 100 - set_chr_flag_bank2 TARGET_CHR, CHRFLAG2_02000000 - goto_first LABEL_SCAN_START - - // Saw player - label 0x17 - set_alertness 100 - set_chr_flag_bank2 TARGET_CHR, CHRFLAG2_02000000 - goto_first LABEL_SCAN_START - - // Examination finished - label 0x7d - dprint "EXAM BODYDONE\n" - set_target_chr CHR_JOANNA - if_within_units_of_sight 30, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - set_alertness 100 - set_chr_flag_bank2 TARGET_CHR, CHRFLAG2_02000000 - goto_first 0xdb - - // Can't see Jonna - label 0x16 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x16 - set_target_chr CHR_VELVET - if_within_units_of_sight 30, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - set_alertness 100 - set_chr_flag_bank2 TARGET_CHR, CHRFLAG2_02000000 - goto_first 0xdb - - label 0x16 - set_target_chr CHR_P1P2 - if_self_flag_bankx_eq CHRFLAG1_DOINGIDLEANIMATION, FALSE, BANK_1, /*goto*/ 0x13 - set_function CHR_SELF, GFUNC_WAKEUP - - label 0x13 - set_function CHR_SELF, GFUNC_SEARCH_FOR_PLAYER - - // Unreachable - nothing jumps here - label 0x22 - increase_self_alertness 100 - dprint "SEE OBJECT\n" - goto_next 0x16 - - // - // HEARD ALARM - // - label LABEL_HEARD_ALARM - dprint "HEARD ALARM\n" - if_self_flag_bankx_eq CHRFLAG1_00010000, FALSE, BANK_1, /*goto*/ 0x13 - set_self_flag_bankx CHRFLAG0_00100000, BANK_0 - label 0x13 - if_self_flag_bankx_eq CHRFLAG0_CAN_HEARSPAWN, TRUE, BANK_0, /*goto*/ LABEL_HEARSPAWN - restart_timer - if_self_flag_bankx_eq CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x82 - animation ANIM_YAWN, 0, 193, 0x1810, CHR_SELF, 2 - - beginloop 0x82 - dprint "T2" - if_timer_gt 60, /*goto*/ 0x81 - endloop 0x82 - - label 0x81 - set_group_alertness 100 - set_alertness 255 - set_function CHR_SELF, GFUNC_WAKEUP - - // - // HEAR SPAWN 2 - // - label LABEL_HEARSPAWN - yield - dprint "HEARSPAWN\n" - if_never_been_onscreen /*goto*/ 0x0e - dprint "NEVER VISFAIL\n" - set_function CHR_SELF, GFUNC_WAKEUP - - label 0x0e - if_never_been_onscreen /*goto*/ 0x13 - set_function CHR_SELF, GFUNC_WAKEUP - - label 0x13 - dprint "CHECK DUPE\n" - if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x0e - if_chr_unloaded CHR_CLONE, /*goto*/ 0x0e - if_self_flag_bankx_eq CHRFLAG0_00100000, FALSE, BANK_0, /*goto*/ 0x13 - goto_first LABEL_HEARSPAWN - - label 0x13 - goto_first LABEL_SCAN_START - - label 0x0e - dprint "CREATE SPAWN\n" - try_spawn_clone2 CHR_SELF, GFUNC_SEARCH_FOR_PLAYER, 0x00000000, /*goto*/ 0x13 - dprint "CREATE FAIL\n" - if_self_flag_bankx_eq CHRFLAG0_00100000, FALSE, BANK_0, /*goto*/ 0x16 - goto_first LABEL_HEARSPAWN - - label 0x16 - goto_first LABEL_SCAN_START - - label 0x13 - if_self_flag_bankx_eq CHRFLAG0_00100000, FALSE, BANK_0, /*goto*/ 0x13 - goto_first LABEL_HEARSPAWN - - label 0x13 - set_function CHR_SELF, GFUNC_UNALERTED_0001 - - // Unreachable due to set_function above - increase_self_alertness 255 - goto_next 0x16 - - label 0x16 - goto_first LABEL_SCAN_START - - // - // ALERT FAIL (alertness < 100) - // - label 0x78 - if_self_flag_bankx_eq CHRFLAG0_00100000, FALSE, BANK_0, /*goto*/ 0x13 - goto_first 0x0e // create spawn - - label 0x13 - dprint "WARNEDBYFRIEND\n" - if_self_flag_bankx_eq CHRFLAG0_CAN_HEARSPAWN, FALSE, BANK_0, /*goto*/ 0x13 - set_alertness 0 - goto_first LABEL_HEARSPAWN - - label 0x13 - if_chr_is_dead_maybe CHR_SELF, /*goto*/ 0x7b - restart_timer - if_self_flag_bankx_eq CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x7a - animation ANIM_YAWN, 0, 193, 0x1810, CHR_SELF, 2 - - beginloop 0x7a - dprint "T3" - if_timer_gt 60, /*goto*/ 0x7b - endloop 0x7a - - label 0x7b - dprint "WARNEDBEND\n" - dprint "WARNEDBEND2\n" - set_function CHR_SELF, GFUNC_WAKEUP - - // Unreachable - nothing jumps here - label 0xe4 - set_return_function CHR_SELF, GFUNC_UNALERTED - set_function CHR_SELF, GFUNC_FLEE_FROM_GRENADE - - // - // AIVSAI pass - // - label 0x12 - if_self_flag_bankx_eq CHRFLAG1_00100000, TRUE, BANK_1, /*goto*/ 0x13 - set_return_function CHR_SELF, GFUNC_UNALERTED - - label 0x13 - dprint "WARNEDBEND3\n" - if_self_flag_bankx_eq CHRFLAG0_UNSURPRISABLE, FALSE, BANK_0, /*goto*/ 0x77 - say_quip CHR_JOANNA, 0x12, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 // "What the?!","Who the?!" - restart_timer - if_self_flag_bankx_eq CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x75 - animation ANIM_SURPRISED_0202, 0, -1, 0x0010, CHR_SELF, 2 - - beginloop 0x75 - dprint "S6" - if_timer_gt 60, /*goto*/ 0x77 - endloop 0x75 - - label 0x77 - if_any_chr_doing_action ACTION_WARN_OTHERS, /*goto*/ 0x16 - if_self_flag_bankx_eq CHRFLAG0_CAN_RUN_FOR_ALARM, TRUE, BANK_0, /*goto*/ 0x13 - label 0x16 - set_function CHR_SELF, GFUNC_INIT_COMBAT - - label 0x13 - set_function CHR_SELF, GFUNC_WAKEUP - - // Wait until chr finished animation, then become alert. - // Used when standing up from sitting. - label 0x0c - dprint "GOT WAT\n" - yield - if_chr_stopped /*goto*/ 0x13 - goto_first 0x0c - - label 0x13 - set_function CHR_SELF, GFUNC_WAKEUP - endfunction - -unregistered_function1: - dprint "IVEIJURED\n" - set_function CHR_SELF, GFUNC_WAKEUP - endfunction - -func0008_wakeup: - set_chr_flag_bank2 TARGET_CHR, CHRFLAG2_PSYCHOSISED - if_chr_flag_bank2 CHR_SELF, CHRFLAG2_PSYCHOSISED, /*goto*/ 0x13 - goto_next 0x16 - - // Psychosised - label 0x13 - set_return_function CHR_SELF, GFUNC_INIT_PSYCHOSIS - set_function CHR_SELF, GFUNC_INIT_PSYCHOSIS - - // Unset special death animation if no longer idle - label 0x16 - if_self_flag_bankx_eq CHRFLAG1_DOINGIDLEANIMATION, FALSE, BANK_1, /*goto*/ 0x13 - set_chr_special_death_animation CHR_SELF, NULL - - // If idle, unset it and stand up or whatever is needed - label 0x13 - set_onshot_function GFUNC_ALERTED - if_self_flag_bankx_eq CHRFLAG1_DOINGIDLEANIMATION, FALSE, BANK_1, /*goto*/ 0x06 - unset_self_flag_bankx CHRFLAG1_DOINGIDLEANIMATION, BANK_1 - if_chr_idle_action_eq IDLEACTION_SITTING_TYPING, /*goto*/ 0x05 - if_chr_idle_action_eq IDLEACTION_SITTING_DORMANT, /*goto*/ 0x05 - goto_next 0x06 - - // About to stand up - label 0x05 - dprint "ANIM OBJECT NOW\n" - yield - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x13 - if_chr_dying CHR_SELF, /*goto*/ 0x13 - if_chr_unloaded CHR_SELF, /*goto*/ 0x13 - goto_next 0x15 - - // Dead - label 0x13 - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - // Stand up - label 0x15 - set_chr_health CHR_SELF, 40 - animation ANIM_STAND_UP_FROM_SITTING, 0, -1, 0x0210, CHR_SELF, 2 - object_do_animation 0x025a, 0xff, 0x02ff, 0xff - goto_next 0x0c - - // Unreachable - nothing jumps here - label 0x16 - object_do_animation 0x027b, 0xff, 0x02ff, 0xff - - // Wait for stand up animation to finish - label 0x0c - dprint "GOT WAT\n" - yield - if_chr_stopped /*goto*/ 0x13 - goto_first 0x0c - - label 0x13 - label 0x06 - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -func0007_alerted: - .set LABEL_DRAW_PISTOL, 0xe7 - .set LABEL_GETGUN_FAILED, 0xaf - .set LABEL_CLOAKED, 0xeb - .set LABEL_RUN_FOR_ALARM, 0x9f - .set LABEL_RETREAT, 0x6b - .set LABEL_FLANK_LEFT, 0x8f - .set LABEL_FLANK_RIGHT, 0x90 - .set LABEL_TRACK, 0x34 - .set LABEL_SNIPE, 0xde - .set LABEL_FLEE_GRENADE, 0xe4 - - set_chr_flag_bank2 TARGET_CHR, CHRFLAG2_PSYCHOSISED - if_chr_flag_bank2 CHR_SELF, CHRFLAG2_PSYCHOSISED, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - set_return_function CHR_SELF, GFUNC_INIT_PSYCHOSIS - set_function CHR_SELF, GFUNC_INIT_PSYCHOSIS - - // If doing idle animation, turn off special death animation - label 0x16 - if_self_flag_bankx_eq CHRFLAG1_DOINGIDLEANIMATION, FALSE, BANK_1, /*goto*/ 0x13 - set_chr_special_death_animation CHR_SELF, NULL - - // If something, jump to combat - label 0x13 - unset_self_flag_bankx CHRFLAG1_01000000, BANK_1 - if_chr_is_dead_maybe CHR_SELF, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - - // is_chr_is_dead_maybe (named wrong) was false - label 0x16 - set_onshot_function GFUNC_ALERTED - set_aishootingatmel 35 - set_unknown_function GFUNC_SEARCH_FOR_PLAYER - - dprint "START LOOP\n" - if_chr_dying CHR_SELF, /*goto*/ 0x16 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x16 - if_chr_unloaded CHR_SELF, /*goto*/ 0x16 - dprint "NOT DEAD\n" - goto_next 0x13 - - // Dying - label 0x16 - set_chr_dodge_rating 2, 0x00 - set_onshot_function GFUNC_IDLE - - restart_timer - - beginloop 0x1c - dprint "DIE LOOP\n" - if_timer_gt 15, /*goto*/ 0x16 - endloop 0x1c - - label 0x16 - say_quip CHR_JOANNA, 0x19, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 // "You bitch!","Oh... my... god","She got me" - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x13 - dprint "START LOOP2\n" - if_just_injured CHR_SELF, /*goto*/ 0x16 - if_has_gun CHR_SELF, /*goto*/ 0x13 - goto_next 0x16 - - // Not injured and has gun - label 0x13 - if_self_flag_bankx_eq CHRFLAG1_CAN_DRAW_PISTOL, TRUE, BANK_1, /*goto*/ LABEL_DRAW_PISTOL - goto_next 0x1b - - // Injured or no gun - label 0x16 - restart_timer - unset_self_flag_bankx CHRFLAG1_00000020, BANK_1 - unset_self_flag_bankx CHRFLAG1_CAN_DRAW_PISTOL, BANK_1 - dprint "CHECKINJURY\n" - - // Say an injury quip if we haven't already, then wait up to 3 seconds for - // the chr to have finished their injury animation - beginloop 0x1d - if_self_flag_bankx_eq CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x16 - if_num_times_shot_lt 1, /*goto*/ 0x16 - if_timer_lt 20, /*goto*/ 0x16 - say_quip CHR_JOANNA, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00 // "Medic!","Help!","You shot me?!" - say_quip CHR_JOANNA, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00 // "I'm hit, I'm hit!","I'm taking fire!","Taking damage!" - set_self_flag_bankx CHRFLAG0_SAID_INJURY_QUIP, BANK_0 - label 0x16 - if_timer_gt 180, /*goto*/ 0x13 - if_chr_stopped /*goto*/ 0x13 - endloop 0x1d - - label 0x13 - stop_chr - dprint "INJ OVER\n" - if_self_flag_bankx_eq CHRFLAG1_CAN_DRAW_PISTOL, TRUE, BANK_1, /*goto*/ LABEL_DRAW_PISTOL - dprint "B4 GUN\n" - if_has_gun CHR_SELF, /*goto*/ 0x1b - dprint "LOST MY GUN\n" - label 0xac - set_chr_dodge_rating 2, 0x00 - say_quip CHR_JOANNA, 0x21, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 // "My gun!" - stop_chr - restart_timer - yield - - // Wait for gun to land. If it disappears (eg. falls out of geometry), is - // picked up by the player, or we've been waiting for 5 seconds then go to - // GETFUN_FAILED. - label 0xb0 - dprint "WAITING\n" - yield - yield - yield - if_gun_unclaimed -1, TRUE, /*goto*/ 0x13 - goto_next LABEL_GETGUN_FAILED - - label 0x13 - if_gun_landed TRUE, /*goto*/ 0xb1 - if_timer_gt 300, /*goto*/ LABEL_GETGUN_FAILED - goto_first 0xb0 - - // Note: When if_gun_landed param is FALSE, it's not actually an if - // statement, but does some task. - label 0xb1 - restart_timer - if_gun_landed FALSE, /*goto*/ 0xad - - beginloop 0xad - dprint "GO FOR GUN\n" - if_timer_gt 300, /*goto*/ LABEL_GETGUN_FAILED - if_gun_unclaimed -1, TRUE, /*goto*/ 0x13 - goto_next LABEL_GETGUN_FAILED - label 0x13 - if_distance_to_target_position_lt 100, /*goto*/ 0x16 - if_chr_stopped /*goto*/ 0x16 - endloop 0xad - - label 0x16 - dprint "AT GUN\n" - restart_timer - animation ANIM_PICK_UP_GUN, 0, -1, 0x1010, CHR_SELF, 2 - - beginloop 0xae - if_timer_gt 60, /*goto*/ 0x16 - endloop 0xae - - label 0x16 - if_gun_unclaimed -1, TRUE, /*goto*/ 0x13 - goto_next LABEL_GETGUN_FAILED - - label 0x13 - chr_recover_gun CHR_SELF, /*goto*/ 0x16 - goto_next LABEL_GETGUN_FAILED - - label 0x16 - goto_next 0x1b - - // - // GETGUN FAILED - // - label LABEL_GETGUN_FAILED - stop_chr - dprint "GETGUN FAILED\n" - call_rng - if_rand_lt 50, /*goto*/ 0xe6 - if_rand_lt 100, /*goto*/ LABEL_DRAW_PISTOL - set_self_flag_bankx CHRFLAG0_CAN_RETREAT, BANK_0 - set_self_flag_bankx CHRFLAG0_CANT_ALERT_GROUP, BANK_0 - set_self_flag_bankx CHRFLAG0_00200000, BANK_0 - unset_self_flag_bankx CHRFLAG0_00002000, BANK_0 - unset_self_flag_bankx CHRFLAG0_00004000, BANK_0 - unset_self_flag_bankx CHRFLAG0_80000000, BANK_0 - set_self_flag_bankx CHRFLAG1_00000002, BANK_1 - goto_next 0x1b - - label 0xe6 - set_self_flag_bankx CHRFLAG1_00000001, BANK_1 - goto_next 0x1b - - // - // DRAW PISTOL - // - label LABEL_DRAW_PISTOL - call_rng - if_rand_lt 82, /*goto*/ 0x13 - if_rand_lt 164, /*goto*/ 0x15 - animation ANIM_DRAW_PISTOL_0288, 0, -1, 0x1010, CHR_SELF, 2 - goto_next 0x16 - - label 0x13 - animation ANIM_DRAW_PISTOL_0289, 0, -1, 0x1010, CHR_SELF, 2 - goto_next 0x16 - - label 0x15 - animation ANIM_DRAW_PISTOL_0245, 0, -1, 0x1010, CHR_SELF, 2 - - label 0x16 - if_stage_is_not STAGE_AIRFORCEONE, /*goto*/ 0x13 - try_draw_weapon MODEL_CHRCYCLONE, WEAPON_CYCLONE, 0x00000000, /*goto*/ 0xe5 - label 0x13 - try_draw_weapon MODEL_CHRFALCON2, WEAPON_FALCON2, 0x00000000, /*goto*/ 0xe5 - - beginloop 0xe5 - if_chr_stopped /*goto*/ 0x16 - endloop 0xe5 - - label 0x16 - if_self_flag_bankx_eq CHRFLAG1_CAN_DRAW_PISTOL, TRUE, BANK_1, /*goto*/ 0x13 - unset_self_flag_bankx CHRFLAG0_80000000, BANK_0 - label 0x13 - unset_self_flag_bankx CHRFLAG1_CAN_DRAW_PISTOL, BANK_1 - label 0x16 - - // - // Lots of things go here - // - label 0x1b - yield - label 0x16 - if_chr_flag_bank2 CHR_SELF, CHRFLAG2_00002000, /*goto*/ 0x13 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_BUDDY_PLACED, /*goto*/ 0x01 - label 0x13 - if_self_flag_bankx_eq CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ LABEL_TRACK - dprint "CHECKINJURYEND\n" - - // Consider warning others in team - dprint "B4 TEAM CHECK\n" - if_alarm_active /*goto*/ 0x16 - if_any_chr_doing_action ACTION_WARN_OTHERS, /*goto*/ 0x16 - if_self_flag_bankx_eq CHRFLAG0_CAN_RUN_FOR_ALARM, TRUE, BANK_0, /*goto*/ LABEL_RUN_FOR_ALARM - - // No need to warn - label 0x16 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED - goto_next 0x16 - - // Unreachable - nothing jumps here - label 0x13 - set_return_function CHR_SELF, GFUNC_ALERTED - set_alertness 0 - set_function CHR_SELF, GFUNC_SEARCH_FOR_PLAYER - - // This flag appears to control whether the chr can declare that they're - // attempting to surround the player. These quips are never said though, so - // either the flag is never set for anyone or the field_0x201 values are - // something different. - label 0x16 - if_self_flag_bankx_eq CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x93 - if_field_0x2a1_eq ACTION_FLANK_LEFT, /*goto*/ 0x13 - if_field_0x2a1_eq ACTION_FLANK_RIGHT, /*goto*/ 0x15 - goto_next 0x93 - - label 0x13 - say_quip CHR_JOANNA, 0x07, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00 // "Wipe the target!","Let's split up!","Surround her!" - goto_next LABEL_FLANK_LEFT - - label 0x15 - say_quip CHR_JOANNA, 0x07, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00 // "Wipe the target!","Let's split up!","Surround her!" - goto_next LABEL_FLANK_RIGHT - - // Attempt trap (hide and ambush when player gets near) - label 0x93 - if_self_flag_bankx_eq CHRFLAG0_CANT_ALERT_GROUP, TRUE, BANK_0, /*goto*/ LABEL_RETREAT - if_self_flag_bankx_eq CHRFLAG0_CAN_TRAP, TRUE, BANK_0, /*goto*/ 0x13 - dprint "TRAP NOT SET\n" - if_self_flag_bankx_eq CHRFLAG0_00000004, FALSE, BANK_0, /*goto*/ 0x16 - label 0x13 - dprint "VIS\n" - if_in_disarm_range /*goto*/ 0x16 - goto_next 0x98 - - label 0x16 - dprint "TRAP FAILED\n" - if_self_flag_bankx_eq CHRFLAG0_02000000, TRUE, BANK_0, /*goto*/ 0x16 - if_self_flag_bankx_eq CHRFLAG0_01000000, FALSE, BANK_0, /*goto*/ 0x16 - label 0x13 - dprint "VIS\n" - if_in_disarm_range /*goto*/ 0x16 - goto_next 0xa1 - - label 0x16 - if_self_flag_bankx_eq CHRFLAG0_10000000, FALSE, BANK_0, /*goto*/ 0x16 - label 0x13 - dprint "IM GOING TO POP\n" - goto_next 0xa4 - - // Not popping - label 0x16 - if_self_flag_bankx_eq CHRFLAG1_CAN_SNIPE, FALSE, BANK_1, /*goto*/ 0x16 - label 0x13 - dprint "IM GOING TO SNIPE\n" - goto_next LABEL_SNIPE - - label 0x16 - dprint "AMBUSH FAILED\n" - if_self_flag_bankx_eq CHRFLAG0_CAN_RETREAT, FALSE, BANK_0, /*goto*/ 0x16 - if_num_times_shot_lt 1, /*goto*/ 0x16 - if_retreat_risk_lt 3, /*goto*/ LABEL_RETREAT - dprint "RISK FAILED\n" - label 0x16 - if_self_flag_bankx_eq CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x91 - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x92 - label 0x91 - if_retreat_risk_lt 5, /*goto*/ 0x52 - label 0x92 - goto_next 0x68 - - // - // TRAP/AMBUSH - // - label 0x98 - dprint "GOING TO TRAP PAD\n" - go_to_target_pad SPEED_JOG - - beginloop 0x99 - label 0x16 - if_chr_stopped /*goto*/ 0x16 - endloop 0x99 - - label 0x16 - dprint "AT TRAP PAD\n" - label 0x9b - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED - try_chr_kneel_and_shoot_thing 0x0220, 0x0000, /*goto*/ 0x03 - - beginloop 0x03 - if_in_disarm_range /*goto*/ 0x9a - cmd0108_if_something CHR_SELF, CHR_P1P2, FALSE, /*goto*/ 0xee - goto_next 0xef - - label 0xee - consider_coop_for_p1p2_chr CHR_SELF - cmd0108_if_something CHR_SELF, CHR_P1P2, FALSE, /*goto*/ 0xee - set_target_chr CHR_P1P2 - if_in_disarm_range /*goto*/ 0x9a - label 0xee - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - label 0xef - endloop 0x03 - - // Aiming only - label 0x9a - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x04 - - beginloop 0x04 - if_chr_stopped /*goto*/ 0x16 - endloop 0x04 - - label 0x16 - if_self_flag_bankx_eq CHRFLAG0_CAN_TRAP, TRUE, BANK_0, /*goto*/ 0x16 - if_chr_distance_lt 800, /*goto*/ 0x9c - label 0x16 - goto_first 0x9b - - label 0x9c - unset_self_flag_bankx CHRFLAG0_00000004, BANK_0 - goto_first 0x1b - - label 0xa1 - kneel - - beginloop 0xa2 - dprint "WAIT FOR AMB\n" - if_in_disarm_range /*goto*/ 0xa3 - dprint "AMB1\n" - if_distance_to_pad_gt2 200, TARGET_PAD, /*goto*/ 0x13 - dprint "AMB2\n" - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_enemy_distance_lt_and_los 1200, /*goto*/ 0xee - endloop 0xa2 - - label 0xee - if_chr_lost_track_of_target_maybe /*goto*/ 0x13 - set_return_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - - label 0x13 - dprint "AMBUSH PLAYER\n" - set_accuracy 30 - set_self_flag_bankx CHRFLAG0_02000000, BANK_0 - say_quip CHR_JOANNA, 0x01, 0x50, 0x02, 0x01, BANK_0, 0x00, 0x00 // "Open fire!","Wipe her out!","Waste her!" - goto_first 0x1b - - label 0xa3 - dprint "SEENTARG\n" // seen target - unset_self_flag_bankx CHRFLAG0_01000000, BANK_0 - goto_first 0x1b - - // - // POP - // - label 0xa4 - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0xa8 - cmd0121_if_something 0xa0b5, /*goto*/ 0xa5 - dprint "POPPER FAILED\n" - goto_next 0x52 - - label 0xa5 - dprint "GO TO POPPER\n" - set_action ACTION_GO_TO_COVER, FALSE - unset_self_flag_bankx CHRFLAG1_00040000, BANK_1 - unset_self_flag_bankx CHRFLAG1_00020000, BANK_1 - label 0x16 - cmd0124_run_for_cover_maybe 2 - - beginloop 0xa6 - if_chr_stopped /*goto*/ 0xa7 - endloop 0xa6 - - label 0xa7 - dprint "UNDER POPPER\n" - label 0xa8 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0xa9 - - beginloop 0xa9 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_near_miss /*goto*/ 0x13 - if_shot_near_chr 0x00, /*goto*/ 0x13 - if_saw_death 0x00, /*goto*/ 0x13 - if_in_disarm_range /*goto*/ 0x13 - endloop 0xa9 - - label 0x13 - call_rng - if_rand_gt 150, /*goto*/ 0x13 - if_in_disarm_range /*goto*/ 0x16 - goto_next 0x13 - - label 0x16 - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0xaa - label 0x13 - kneel - restart_timer - - beginloop 0xab - set_target_chr CHR_P1P2 - if_chr_distance_gt 300, /*goto*/ 0x13 - unset_self_flag_bankx CHRFLAG0_10000000, BANK_0 - goto_first 0x1b - - label 0x13 - call_rng - if_rand_gt 250, /*goto*/ 0x13 - if_timer_gt 240, /*goto*/ 0x16 - endloop 0xab - - label 0x13 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x13 - goto_first 0xa8 - - label 0x13 - if_in_disarm_range /*goto*/ 0x13 - goto_first 0xa8 - - label 0x13 - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x13 - goto_first 0xa8 - - label 0x13 - - beginloop 0xaa - if_chr_stopped /*goto*/ 0x16 - endloop 0xaa - - label 0x16 - goto_first 0xa8 - - // - // SNIPE - // - label LABEL_SNIPE - unset_self_flag_bankx CHRFLAG0_80000000, BANK_0 - yield - if_chr_distance_lt 1000, /*goto*/ 0x16 - if_chr_distance_gt 2500, /*goto*/ 0x14 - - // Distance between 1000 and 2500 - if_angle_to_target_chr_lt 10, /*goto*/ 0x13 - cmd004f 246, /*goto*/ 0x13 - restart_timer - stop_chr - try_face_entity 0x0200, 0x0000, /*goto*/ 0xec - - beginloop 0xec - if_angle_to_target_chr_lt 10, /*goto*/ 0x13 - cmd004f 246, /*goto*/ 0x13 - if_timer_gt 60, /*goto*/ 0x13 - endloop 0xec - - label 0x13 - if_in_disarm_range /*goto*/ 0x13 - cmd0108_if_something CHR_SELF, CHR_P1P2, FALSE, /*goto*/ 0xee - goto_next 0xef - - label 0xee - consider_coop_for_p1p2_chr CHR_SELF - cmd0108_if_something CHR_SELF, CHR_P1P2, FALSE, /*goto*/ 0xee - set_target_chr CHR_P1P2 - if_in_disarm_range /*goto*/ 0x13 - label 0xee - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - label 0xef - goto_first LABEL_SNIPE - - // Distance > 2500 - label 0x14 - try_run_to_target_chr /*goto*/ 0xe1 - - beginloop 0xe1 - if_chr_distance_lt 2500, /*goto*/ 0x15 - endloop 0xe1 - - label 0x15 - goto_first LABEL_SNIPE - - label 0x13 - restart_timer - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED - cmd01ba 0x0022, 0x0000, /*goto*/ 0xdf - - beginloop 0xdf - if_chr_distance_lt 1000, /*goto*/ 0x16 - if_timer_gt 300, /*goto*/ 0x13 - endloop 0xdf - - label 0x13 - if_in_disarm_range /*goto*/ 0x13 - set_self_flag_bankx CHRFLAG0_80000000, BANK_0 - stop_chr - goto_first 0x1b - - label 0x13 - restart_timer - set_accuracy 100 - cmd01ba 0x0200, 0x0000, /*goto*/ 0xe0 - dprint "SNIPER NO SHOOT\n" - - beginloop 0xe0 - dprint "SNIPER SHOOT\n" - if_chr_stopped /*goto*/ 0x13 - endloop 0xe0 - - label 0x13 - set_accuracy 10 - stop_chr - goto_first LABEL_SNIPE - - // Distance < 1000 - label 0x16 - stop_chr - unset_self_flag_bankx CHRFLAG1_CAN_SNIPE, BANK_1 - set_self_flag_bankx CHRFLAG0_80000000, BANK_0 - restart_timer - - beginloop 0xbd - if_timer_gt 60, /*goto*/ 0x13 - endloop 0xbd - - label 0x13 - goto_first 0x1b - - // - // POPPER/AMBUSH FAILED - // - label 0x52 - dprint "AMBUSH FAILED3\n" - if_player_looking_at_something_maybe 0x3c, 0x01, 0x00, /*goto*/ 0x16 - goto_next 0x68 - - label 0x16 - dprint "AMBUSH FAILED4\n" - if_self_flag_bankx_eq CHRFLAG0_00000010, TRUE, BANK_0, /*goto*/ 0x16 - goto_next 0x5b - - label 0x16 - if_self_flag_bankx_eq CHRFLAG0_00000080, TRUE, BANK_0, /*goto*/ 0x13 - call_rng - if_rand_gt 100, /*goto*/ 0x13 - if_player_looking_at_something_maybe 0x1e, 0x01, 0x00, /*goto*/ 0x16 - label 0x13 - if_within_units_of_sight 30, /*goto*/ 0x5f - label 0x16 - if_within_units_of_sight 30, /*goto*/ 0x16 - cmd0126_if_something /*goto*/ 0x69 - if_chr_distance_gt 2000, /*goto*/ 0x61 - goto_next 0x16 - - label 0x69 - if_chr_distance_gt 4000, /*goto*/ 0x61 - label 0x16 - dprint "OKFORCOVER\n" - if_in_disarm_range /*goto*/ 0x5b - if_within_units_of_sight 30, /*goto*/ 0x5b - if_chr_in_view /*goto*/ 0x5b - goto_next 0x56 - - label 0x5b - dprint "COVER INVALID\n" - if_self_flag_bankx_eq CHRFLAG1_00004000, TRUE, BANK_1, /*goto*/ 0x15 - if_self_flag_bankx_eq CHRFLAG0_00000040, TRUE, BANK_0, /*goto*/ 0x16 - if_self_flag_bankx_eq CHRFLAG0_08000000, FALSE, BANK_0, /*goto*/ 0x5c - cmd0121_if_something 0x10b5, /*goto*/ 0x53 - goto_next 0x14 - - label 0x5c - cmd0121_if_something 0x1035, /*goto*/ 0x53 - goto_next 0x14 - - label 0x16 - cmd0121_if_something 0x0035, /*goto*/ 0x53 - goto_next 0x14 - - label 0x15 - dprint "SOFT COVER\n" - if_self_flag_bankx_eq CHRFLAG0_00000040, TRUE, BANK_0, /*goto*/ 0x16 - if_self_flag_bankx_eq CHRFLAG0_08000000, FALSE, BANK_0, /*goto*/ 0x5c - cmd0121_if_something 0x90b5, /*goto*/ 0x53 - goto_next 0x14 - - label 0x5c - cmd0121_if_something 0x9035, /*goto*/ 0x53 - goto_next 0x14 - - label 0x16 - cmd0121_if_something 0x8035, /*goto*/ 0x53 - goto_next 0x14 - - label 0x14 - goto_next 0x54 - - label 0x53 - dprint "GO TO COVER\n" - set_action ACTION_GO_TO_COVER, FALSE - unset_self_flag_bankx CHRFLAG1_00040000, BANK_1 - unset_self_flag_bankx CHRFLAG1_00020000, BANK_1 - if_self_flag_bankx_eq CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x16 - cmd0133 ACTION_SYNC_SHOOT, /*goto*/ 0x16 - label 0x16 - say_quip CHR_JOANNA, 0x02, 0xff, 0x02, 0x01, BANK_0, 0x00, 0x00 - restart_timer - cmd0124_run_for_cover_maybe ACTION_UNDER_COVER - - beginloop 0x55 - cmd013d_if_grenade_thrown_nearby_maybe ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED - if_self_flag_bankx_eq CHRFLAG1_00001000, TRUE, BANK_1, /*goto*/ 0x13 - if_self_flag_bankx_eq CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x16 - if_chr_distance_lt 120, /*goto*/ 0x16 - call_rng - if_rand_lt 128, /*goto*/ 0x13 - if_chr_distance_gt 250, /*goto*/ 0x13 - label 0x16 - if_in_disarm_range /*goto*/ 0x16 - goto_next 0x13 - - label 0x16 - set_return_function CHR_SELF, GFUNC_ALERTED - set_function CHR_SELF, GFUNC_HAND_COMBAT - - label 0x13 - if_timer_gt 300, /*goto*/ 0x56 - if_chr_stopped /*goto*/ 0x56 - endloop 0x55 - - label 0x56 - set_self_flag_bankx CHRFLAG0_00000010, BANK_0 - dprint "UNDER COVER\n" - label 0x58 - set_follow_chr TARGET_CHR - restart_timer - set_action ACTION_UNDER_COVER, TRUE - unset_self_flag_bankx CHRFLAG1_00040000, BANK_1 - unset_self_flag_bankx CHRFLAG1_00020000, BANK_1 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED - try_chr_kneel_and_shoot_thing 0x0220, 0x0000, /*goto*/ 0x59 - - beginloop 0x59 - cmd013d_if_grenade_thrown_nearby_maybe ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_within_units_of_sight 30, /*goto*/ 0x5f - if_timer_gt 240, /*goto*/ 0x61 - if_self_flag_bankx_eq CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x93 - if_field_0x2a1_nonzero /*goto*/ 0x84 - label 0x93 - label 0x5a - endloop 0x59 - - label 0x61 - set_target_chr FOLLOW_CHR - dprint "BREAK COVER\n" - if_self_flag_bankx_eq CHRFLAG0_00008000, TRUE, BANK_0, /*goto*/ 0x66 - label 0x16 - goto_next 0x16 - - label 0x66 - cmd0126_if_something /*goto*/ 0x69 - if_chr_distance_gt 2000, /*goto*/ 0x16 - goto_next 0x6a - - label 0x69 - if_chr_distance_gt 4000, /*goto*/ 0x16 - label 0x6a - if_player_looking_at_something_maybe 0x11, 0x01, 0x00, /*goto*/ 0x63 - label 0x16 - label 0x64 - set_action ACTION_BREAKING_COVER, FALSE - unset_self_flag_bankx CHRFLAG1_00040000, BANK_1 - unset_self_flag_bankx CHRFLAG1_00020000, BANK_1 - if_self_flag_bankx_eq CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x16 - cmd0133 ACTION_BREAKING_COVER, /*goto*/ 0x16 - label 0x16 - cmd012f - restart_timer - try_run_to_target_chr /*goto*/ 0x62 - - beginloop 0x62 - cmd013d_if_grenade_thrown_nearby_maybe ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE - if_in_disarm_range /*goto*/ 0x5f - cmd0126_if_something /*goto*/ 0x69 - if_chr_distance_gt 2000, /*goto*/ 0x65 - goto_next 0x16 - - label 0x69 - if_chr_distance_gt 4000, /*goto*/ 0x65 - label 0x16 - if_timer_gt 120, /*goto*/ 0x63 - label 0x65 - endloop 0x62 - - label 0x63 - if_self_flag_bankx_eq CHRFLAG0_00008000, FALSE, BANK_0, /*goto*/ 0x13 - if_player_looking_at_something_maybe 0x11, 0x01, 0x00, /*goto*/ 0x16 - goto_first 0x64 - - label 0x13 - set_self_flag_bankx CHRFLAG1_01000000, BANK_1 - goto_next LABEL_TRACK - - label 0x16 - stop_chr - yield - cmd013d_if_grenade_thrown_nearby_maybe ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE - dprint "BACK TO COVER\n" - goto_first 0x52 - - label 0x5f - cmd012f - dprint "SEECOVER\n" - set_action ACTION_SEE_COVER, FALSE - unset_self_flag_bankx CHRFLAG1_00040000, BANK_1 - unset_self_flag_bankx CHRFLAG1_00020000, BANK_1 - if_self_flag_bankx_eq CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x16 - cmd0133 ACTION_SEE_COVER, /*goto*/ 0x16 - label 0x16 - if_self_flag_bankx_eq CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x93 - if_field_0x2a1_nonzero /*goto*/ 0x84 - label 0x93 - if_in_disarm_range /*goto*/ 0x26 - goto_next 0x87 - - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED - if_self_flag_bankx_eq CHRFLAG1_00001000, TRUE, BANK_1, /*goto*/ 0x13 - if_self_flag_bankx_eq CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x16 - if_chr_distance_lt 120, /*goto*/ 0x16 - call_rng - if_rand_lt 128, /*goto*/ 0x13 - if_chr_distance_gt 250, /*goto*/ 0x13 - label 0x16 - if_in_disarm_range /*goto*/ 0x16 - goto_next 0x13 - - label 0x16 - set_return_function CHR_SELF, GFUNC_ALERTED - set_function CHR_SELF, GFUNC_HAND_COMBAT - - label 0x13 - if_self_flag_bankx_eq CHRFLAG1_00002000, FALSE, BANK_1, /*goto*/ 0x13 - unset_self_flag_bankx CHRFLAG1_00002000, BANK_1 - goto_next 0x48 - - label 0x13 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED - call_rng - if_rand_lt 10, /*goto*/ 0x57 - if_rand_gt 64, /*goto*/ 0x16 - if_self_flag_bankx_eq CHRFLAG1_00000010, FALSE, BANK_1, /*goto*/ 0x13 - cmd0184 0x5a64 - set_self_flag_bankx CHRFLAG1_00000020, BANK_1 - goto_next 0x60 - - label 0x13 - if_self_flag_bankx_eq CHRFLAG1_00000004, FALSE, BANK_1, /*goto*/ 0x13 - cmd0184 0x141e - goto_next 0x60 - - label 0x13 - label 0x16 - call_rng - if_rand_gt 50, /*goto*/ 0x13 - call_rng - if_rand_gt 128, /*goto*/ 0x16 - label 0xbe - try_roll_and_shoot /*goto*/ 0x60 - label 0x16 - try_walk_and_shoot /*goto*/ 0x60 - label 0x13 - call_rng - if_rand_gt 128, /*goto*/ 0x8c - try_chr_kneel_and_shoot_thing 0x0220, 0x0000, /*goto*/ 0x16 - label 0x8c - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x16 - label 0x16 - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x60 - - beginloop 0x60 - cmd013d_if_grenade_thrown_nearby_maybe ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE - if_chr_stopped /*goto*/ 0x5e - endloop 0x60 - - label 0x57 - say_quip CHR_JOANNA, 0x27, 0xfe, 0x03, 0xff, BANK_0, 0x00, 0x00 - do_special_animation -2 - goto_next 0xe8 - - label 0x5e - call_rng - if_rand_lt 20, /*goto*/ 0x16 - if_self_flag_bankx_eq CHRFLAG1_00000020, FALSE, BANK_1, /*goto*/ 0x13 - label 0x16 - set_self_flag_bankx CHRFLAG1_00000020, BANK_1 - restart_timer - animation ANIM_RELOAD_0209, 0, -1, 0x1010, CHR_SELF, 2 - - beginloop 0xe8 - if_self_flag_bankx_eq CHRFLAG1_00000020, FALSE, BANK_1, /*goto*/ 0x16 - if_timer_lt 120, /*goto*/ 0x16 - assign_sound 0x80f6, CHANNEL_7 - play_sound_from_entity CHANNEL_7, CHR_SELF, 0x0bb8, 0x1770, 0x01 - unset_self_flag_bankx CHRFLAG1_00000020, BANK_1 - label 0x16 - if_chr_stopped /*goto*/ 0x13 - endloop 0xe8 - - label 0x13 - if_self_flag_bankx_eq CHRFLAG0_01000000, FALSE, BANK_0, /*goto*/ 0x13 - unset_self_flag_bankx CHRFLAG0_01000000, BANK_0 - set_accuracy 0 - label 0x13 - cmd0125_if_or_try_something /*goto*/ 0x16 - label 0x16 - goto_first 0x1b - - label 0x54 - dprint "NO COVERAVAILABLE\n" - label 0x68 - if_in_disarm_range /*goto*/ 0x24 - goto_next 0x25 - - label 0x25 - dprint "HECANT SEE ME\n" - goto_next 0x2f - - label 0x24 - label 0x4e - if_self_flag_bankx_eq CHRFLAG0_CAN_RETREAT, FALSE, BANK_0, /*goto*/ 0x16 - if_self_flag_bankx_eq CHRFLAG0_CANT_ALERT_GROUP, TRUE, BANK_0, /*goto*/ LABEL_RETREAT - if_num_times_shot_lt 1, /*goto*/ 0x16 - if_retreat_risk_lt 3, /*goto*/ LABEL_RETREAT - label 0x16 - if_self_flag_bankx_eq CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x91 - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x4d - label 0x91 - if_retreat_risk_lt 5, /*goto*/ 0x32 - goto_next 0x4d - - label 0x4d - if_self_flag_bankx_eq CHRFLAG1_00040000, TRUE, BANK_1, /*goto*/ 0x32 - call_rng - if_player_looking_at_something_maybe 0x1e, 0x01, 0x00, /*goto*/ 0x16 - goto_next 0x32 - - label 0x16 - if_rand_lt 128, /*goto*/ 0x32 - label 0x31 - dprint "FLANK\n" - label 0x16 - label 0x13 - dprint "FLANK BEST\n" - unset_self_flag_bankx CHRFLAG1_00020000, BANK_1 - cmd0139 25, 0x02, TRUE - if_self_flag_bankx_eq CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x16 - cmd0133 ACTION_FLANK_LEFT, /*goto*/ 0x16 - cmd0133 ACTION_FLANK_RIGHT, /*goto*/ 0x16 - label 0x16 - goto_next 0x33 - - label LABEL_FLANK_LEFT - dprint "FLANK LEFT\n" - set_action ACTION_FLANK_LEFT, FALSE - cmd0139 335, 0x02, FALSE - if_self_flag_bankx_eq CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x16 - cmd0133 ACTION_FLANK_LEFT, /*goto*/ 0x16 - label 0x16 - goto_next 0x33 - - label LABEL_FLANK_RIGHT - dprint "FLANK RIGHT\n" - set_action ACTION_FLANK_RIGHT, FALSE - if_self_flag_bankx_eq CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x16 - cmd0133 ACTION_FLANK_RIGHT, /*goto*/ 0x16 - label 0x16 - cmd0139 25, 0x02, FALSE - label 0x33 - set_self_flag_bankx CHRFLAG1_00040000, BANK_1 - restart_timer - - beginloop 0x30 - cmd013d_if_grenade_thrown_nearby_maybe ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED - if_self_flag_bankx_eq CHRFLAG1_00001000, TRUE, BANK_1, /*goto*/ 0x13 - if_self_flag_bankx_eq CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x16 - if_chr_distance_lt 120, /*goto*/ 0x16 - call_rng - if_rand_lt 128, /*goto*/ 0x13 - if_chr_distance_gt 250, /*goto*/ 0x13 - label 0x16 - if_in_disarm_range /*goto*/ 0x16 - goto_next 0x13 - - label 0x16 - set_return_function CHR_SELF, GFUNC_ALERTED - set_function CHR_SELF, GFUNC_HAND_COMBAT - - label 0x13 - if_chr_stopped /*goto*/ 0x32 - if_timer_gt 180, /*goto*/ 0x32 - endloop 0x30 - - // Unreachable - no label - goto_next 0x2f - if_self_flag_bankx_eq CHRFLAG1_00020000, TRUE, BANK_1, /*goto*/ 0x2f - - label 0x32 - if_player_looking_at_something_maybe 0x14, 0x01, 0x00, /*goto*/ 0x16 - goto_next 0x2f - - label 0x16 - call_rng - if_rand_gt 100, /*goto*/ 0x2f - if_chr_in_view /*goto*/ 0x18 - label 0x2f - dprint "C 1\n" - if_chr_distance_gt 1300, /*goto*/ LABEL_TRACK - if_in_disarm_range /*goto*/ 0x26 - dprint "C 2\n" - if_self_flag_bankx_eq CHRFLAG0_CAN_RETREAT, FALSE, BANK_0, /*goto*/ 0x16 - if_self_flag_bankx_eq CHRFLAG0_CANT_ALERT_GROUP, TRUE, BANK_0, /*goto*/ LABEL_RETREAT - if_num_times_shot_lt 1, /*goto*/ 0x16 - if_retreat_risk_lt 3, /*goto*/ LABEL_RETREAT - label 0x16 - if_self_flag_bankx_eq CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x91 - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x4d - label 0x91 - if_retreat_risk_lt 5, /*goto*/ 0x51 - label 0x4d - dprint "C 3\n" - if_self_flag_bankx_eq CHRFLAG0_00008000, TRUE, BANK_0, /*goto*/ 0x48 - goto_next LABEL_TRACK - - label 0x51 - if_player_looking_at_something_maybe 0x15, 0x01, 0x00, /*goto*/ 0x16 - goto_next LABEL_TRACK - - // - // GRENADE THROWING - // - label 0x16 - dprint "C 4\n" - kneel - yield - cmd013d_if_grenade_thrown_nearby_maybe ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE - label 0x48 - dprint "GRENADEP\n" - set_grenade_probability_out_of_255 255 - label 0x16 - if_self_flag_bankx_eq CHRFLAG0_CAN_THROW_GRENADES, TRUE, BANK_0, /*goto*/ 0x16 - goto_next 0x4c - - label 0x16 - if_chr_distance_lt 500, /*goto*/ 0x4c - dprint "GRENADE\n" - restart_timer - if_any_chr_doing_action ACTION_THROW_GRENADE, /*goto*/ 0x4c - dprint "ACTION GRENADE\n" - set_action ACTION_THROW_GRENADE, FALSE - unset_self_flag_bankx CHRFLAG1_00040000, BANK_1 - unset_self_flag_bankx CHRFLAG1_00020000, BANK_1 - consider_throwing_grenade 0x0200, 0x0000, /*goto*/ 0x46 - goto_next 0x4c - - dprint "GRENADEFAIL\n" - - beginloop 0x46 - if_chr_stopped /*goto*/ 0x16 - endloop 0x46 - - label 0x16 - if_self_flag_bankx_eq CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x47 - cmd0133 ACTION_THROW_GRENADE, /*goto*/ 0x47 - - beginloop 0x47 - say_quip CHR_JOANNA, 0x05, 0xff, 0x07, 0x00, BANK_0, 0x00, 0x00 - if_chr_stopped /*goto*/ 0x4a - endloop 0x47 - - label 0x4a - if_timer_lt 60, /*goto*/ 0x49 - dprint "GRENADESTOP\n" - set_action ACTION_GRENADE_STOP, FALSE - unset_self_flag_bankx CHRFLAG1_00040000, BANK_1 - unset_self_flag_bankx CHRFLAG1_00020000, BANK_1 - restart_timer - try_face_entity 0x0200, 0x0000, /*goto*/ 0x4b - - beginloop 0x4b - if_within_units_of_sight 30, /*goto*/ 0x42 - if_chr_in_view /*goto*/ 0x42 - cmd0108_if_something CHR_SELF, CHR_P1P2, FALSE, /*goto*/ 0xee - goto_next 0xef - - label 0xee - consider_coop_for_p1p2_chr CHR_SELF - cmd0108_if_something CHR_SELF, CHR_P1P2, FALSE, /*goto*/ 0xee - set_target_chr CHR_P1P2 - if_within_units_of_sight 30, /*goto*/ 0x42 - if_chr_in_view /*goto*/ 0x42 - label 0xee - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - label 0xef - if_timer_gt 240, /*goto*/ 0x49 - endloop 0x4b - - label 0x49 - label 0x4c - restart_timer - dprint "WAITING\n" - set_action ACTION_WAIT, TRUE - unset_self_flag_bankx CHRFLAG1_00040000, BANK_1 - unset_self_flag_bankx CHRFLAG1_00020000, BANK_1 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED - try_chr_kneel_and_shoot_thing 0x0220, 0x0000, /*goto*/ 0x40 - - beginloop 0x40 - cmd013d_if_grenade_thrown_nearby_maybe ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE - if_self_flag_bankx_eq CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x91 - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x16 - label 0x91 - if_retreat_risk_lt 5, /*goto*/ 0x41 - label 0x16 - if_self_flag_bankx_eq CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x93 - if_field_0x2a1_nonzero /*goto*/ 0x84 - label 0x93 - if_within_units_of_sight 30, /*goto*/ 0x42 - cmd0108_if_something CHR_SELF, CHR_P1P2, FALSE, /*goto*/ 0xee - goto_next 0xef - label 0xee - consider_coop_for_p1p2_chr CHR_SELF - cmd0108_if_something CHR_SELF, CHR_P1P2, FALSE, /*goto*/ 0xee - set_target_chr CHR_P1P2 - if_within_units_of_sight 30, /*goto*/ 0x42 - label 0xee - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - label 0xef - if_timer_gt 600, /*goto*/ 0x3d - if_timer_gt 60, /*goto*/ 0x16 - label 0x16 - if_player_looking_at_something_maybe 0x15, 0x01, 0x00, /*goto*/ 0x16 - goto_next LABEL_TRACK - label 0x16 - if_chr_distance_gt 2000, /*goto*/ 0x41 - endloop 0x40 - - label 0x42 - dprint "SEEWAIT\n" - set_action ACTION_SEEWAIT, FALSE - unset_self_flag_bankx CHRFLAG1_00040000, BANK_1 - unset_self_flag_bankx CHRFLAG1_00020000, BANK_1 - dprint "SEEWAIT2\n" - if_self_flag_bankx_eq CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x16 - cmd0133 ACTION_SEEWAIT, /*goto*/ 0x16 - label 0x16 - dprint "SEEWAIT3\n" - if_in_disarm_range /*goto*/ 0x8a - restart_timer - try_run_to_target_chr /*goto*/ 0x89 - - beginloop 0x89 - cmd013d_if_grenade_thrown_nearby_maybe ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE - if_self_flag_bankx_eq CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x91 - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x16 - label 0x91 - if_retreat_risk_lt 5, /*goto*/ 0x41 - label 0x16 - if_in_disarm_range /*goto*/ 0x8a - if_timer_gt 60, /*goto*/ 0x29 - endloop 0x89 - - label 0x8a - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED - if_self_flag_bankx_eq CHRFLAG1_00001000, TRUE, BANK_1, /*goto*/ 0x13 - if_self_flag_bankx_eq CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x16 - if_chr_distance_lt 120, /*goto*/ 0x16 - call_rng - if_rand_lt 128, /*goto*/ 0x13 - if_chr_distance_gt 250, /*goto*/ 0x13 - label 0x16 - if_in_disarm_range /*goto*/ 0x16 - goto_next 0x13 - - label 0x16 - set_return_function CHR_SELF, GFUNC_ALERTED - set_function CHR_SELF, GFUNC_HAND_COMBAT - - label 0x13 - if_self_flag_bankx_eq CHRFLAG1_00002000, FALSE, BANK_1, /*goto*/ 0x13 - unset_self_flag_bankx CHRFLAG1_00002000, BANK_1 - goto_first 0x48 - - label 0x13 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED - call_rng - if_rand_lt 10, /*goto*/ 0x57 - if_rand_gt 64, /*goto*/ 0x16 - if_self_flag_bankx_eq CHRFLAG1_00000010, FALSE, BANK_1, /*goto*/ 0x13 - cmd0184 0x5a64 - set_self_flag_bankx CHRFLAG1_00000020, BANK_1 - goto_next 0x43 - - label 0x13 - if_self_flag_bankx_eq CHRFLAG1_00000004, FALSE, BANK_1, /*goto*/ 0x13 - cmd0184 0x141e - goto_next 0x43 - - label 0x13 - label 0x16 - call_rng - if_rand_gt 50, /*goto*/ 0x13 - call_rng - if_rand_gt 128, /*goto*/ 0x16 - label 0xbe - try_roll_and_shoot /*goto*/ 0x43 - label 0x16 - try_walk_and_shoot /*goto*/ 0x43 - label 0x13 - call_rng - if_rand_gt 128, /*goto*/ 0x8c - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x16 - label 0x8c - try_chr_kneel_and_shoot_thing 0x0220, 0x0000, /*goto*/ 0x16 - label 0x16 - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x43 - - beginloop 0x43 - cmd013d_if_grenade_thrown_nearby_maybe ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE - if_chr_stopped /*goto*/ 0x29 - endloop 0x43 - - label 0x57 - say_quip CHR_JOANNA, 0x27, 0xfe, 0x03, 0xff, BANK_0, 0x00, 0x00 - do_special_animation -2 - goto_next 0xe9 - - label 0x29 - if_self_flag_bankx_eq CHRFLAG0_01000000, FALSE, BANK_0, /*goto*/ 0x13 - unset_self_flag_bankx CHRFLAG0_01000000, BANK_0 - set_accuracy 0 - label 0x13 - if_chr_injured_target CHR_SELF, /*goto*/ 0x13 - say_quip CHR_JOANNA, 0x16, 0x19, 0x03, 0x00, BANK_0, 0x00, 0x00 - say_quip CHR_JOANNA, 0x17, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00 - goto_next 0x16 - - label 0x13 - say_quip CHR_JOANNA, 0x15, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00 - say_quip CHR_JOANNA, 0x15, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00 - label 0x16 - call_rng - if_rand_lt 20, /*goto*/ 0x16 - if_self_flag_bankx_eq CHRFLAG1_00000020, FALSE, BANK_1, /*goto*/ 0x13 - label 0x16 - set_self_flag_bankx CHRFLAG1_00000020, BANK_1 - restart_timer - animation ANIM_RELOAD_0209, 0, -1, 0x1010, CHR_SELF, 2 - label 0xe9 - yield - if_self_flag_bankx_eq CHRFLAG1_00000020, FALSE, BANK_1, /*goto*/ 0x16 - if_timer_lt 120, /*goto*/ 0x16 - assign_sound 0x80f6, CHANNEL_6 - play_sound_from_entity CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01 - unset_self_flag_bankx CHRFLAG1_00000020, BANK_1 - label 0x16 - if_chr_stopped /*goto*/ 0x13 - goto_first 0xe9 - - label 0x13 - label 0x8b - dprint "BACKOFF\n" - if_player_looking_at_something_maybe 0x14, 0x01, 0x00, /*goto*/ 0x13 - goto_next 0x50 - - label 0x13 - if_self_flag_bankx_eq CHRFLAG0_CAN_BACKOFF, TRUE, BANK_0, /*goto*/ 0x16 - goto_next 0x50 - - label 0x16 - set_action ACTION_BACKOFF, FALSE - unset_self_flag_bankx CHRFLAG1_00040000, BANK_1 - unset_self_flag_bankx CHRFLAG1_00020000, BANK_1 - restart_timer - retreat 0x02, 0x01 - cmd012f - - beginloop 0x4f - cmd013d_if_grenade_thrown_nearby_maybe ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE - if_timer_gt 120, /*goto*/ 0x50 - if_chr_stopped /*goto*/ 0x50 - endloop 0x4f - - label 0x50 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED - if_self_flag_bankx_eq CHRFLAG1_00001000, TRUE, BANK_1, /*goto*/ 0x13 - if_self_flag_bankx_eq CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x16 - if_chr_distance_lt 120, /*goto*/ 0x16 - call_rng - if_rand_lt 128, /*goto*/ 0x13 - if_chr_distance_gt 250, /*goto*/ 0x13 - label 0x16 - if_in_disarm_range /*goto*/ 0x16 - goto_next 0x13 - - label 0x16 - set_return_function CHR_SELF, GFUNC_ALERTED - set_function CHR_SELF, GFUNC_HAND_COMBAT - - label 0x13 - cmd013d_if_grenade_thrown_nearby_maybe ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED - goto_next 0x16 - - label 0x13 - set_return_function CHR_SELF, GFUNC_ALERTED - set_alertness 0 - set_function CHR_SELF, GFUNC_SEARCH_FOR_PLAYER - - if_self_flag_bankx_eq CHRFLAG0_04000000, TRUE, BANK_0, /*goto*/ 0x16 - call_rng - if_rand_gt 196, /*goto*/ 0x16 - goto_next LABEL_TRACK - - label 0x16 - goto_first 0x1b - - label 0x3d - dprint "WAITTIMEOUT\n" - if_self_flag_bankx_eq CHRFLAG0_CAN_TRAP, FALSE, BANK_0, /*goto*/ 0x13 - goto_first 0x1b - - label 0x13 - set_action ACTION_16, FALSE - unset_self_flag_bankx CHRFLAG1_00040000, BANK_1 - unset_self_flag_bankx CHRFLAG1_00020000, BANK_1 - if_self_flag_bankx_eq CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x16 - cmd0133 ACTION_16, /*goto*/ 0x16 - label 0x16 - goto_next 0x3f - - // Unreachable - no label - dprint "WAITMOVE\n" - try_run_sideways /*goto*/ 0x3e - - beginloop 0x3e - cmd013d_if_grenade_thrown_nearby_maybe ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE - if_chr_stopped /*goto*/ 0x3f - endloop 0x3e - - label 0x3f - goto_first 0x1b - - label 0x41 - goto_first 0x1b - - label LABEL_TRACK - set_follow_chr TARGET_CHR - dprint "TRACK\n" - set_action ACTION_FOLLOW, FALSE - unset_self_flag_bankx CHRFLAG1_00040000, BANK_1 - unset_self_flag_bankx CHRFLAG1_00020000, BANK_1 - restart_timer - label 0xf7 - try_run_to_target_chr /*goto*/ 0x35 - - beginloop 0x35 - if_chr_flag_bank2 CHR_SELF, CHRFLAG2_00002000, /*goto*/ 0x13 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_BUDDY_PLACED, /*goto*/ 0x01 - label 0x13 - cmd013d_if_grenade_thrown_nearby_maybe ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED - if_self_flag_bankx_eq CHRFLAG1_00001000, TRUE, BANK_1, /*goto*/ 0x13 - if_self_flag_bankx_eq CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x16 - if_chr_distance_lt 120, /*goto*/ 0x16 - call_rng - if_rand_lt 128, /*goto*/ 0x13 - if_chr_distance_gt 250, /*goto*/ 0x13 - label 0x16 - if_in_disarm_range /*goto*/ 0x16 - goto_next 0x13 - - label 0x16 - set_return_function CHR_SELF, GFUNC_ALERTED - set_function CHR_SELF, GFUNC_HAND_COMBAT - - label 0x13 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_distance_gt 1300, /*goto*/ 0x13 - if_self_flag_bankx_eq CHRFLAG1_01000000, TRUE, BANK_1, /*goto*/ 0x16 - if_self_flag_bankx_eq CHRFLAG1_02000000, FALSE, BANK_1, /*goto*/ 0x16 - if_player_looking_at_something_maybe 0x15, 0x01, 0x00, /*goto*/ 0x3b - goto_next 0x16 - - label 0xc8 - unset_self_flag_bankx CHRFLAG1_02000000, BANK_1 - goto_first 0x31 - - label 0x16 - if_in_disarm_range /*goto*/ 0x26 - label 0x13 - dprint "NOSEEPLAYER\n" - if_self_flag_bankx_eq CHRFLAG0_AIVSAI, FALSE, BANK_0, /*goto*/ 0x13 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x16 - goto_next 0x13 - - label 0x16 - if_chr_lost_track_of_target_maybe /*goto*/ 0x13 - set_return_function CHR_SELF, GFUNC_UNALERTED - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - - label 0x13 - if_chr_distance_gt 1300, /*goto*/ 0x3c - if_self_flag_bankx_eq CHRFLAG0_CAN_RETREAT, FALSE, BANK_0, /*goto*/ 0x16 - if_self_flag_bankx_eq CHRFLAG0_CANT_ALERT_GROUP, TRUE, BANK_0, /*goto*/ LABEL_RETREAT - if_num_times_shot_lt 1, /*goto*/ 0x16 - if_retreat_risk_lt 3, /*goto*/ LABEL_RETREAT - label 0x16 - if_self_flag_bankx_eq CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x91 - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x4d - label 0x91 - if_retreat_risk_lt 5, /*goto*/ 0x39 - label 0x4d - if_self_flag_bankx_eq CHRFLAG0_00008000, TRUE, BANK_0, /*goto*/ 0x3a - goto_next 0x3c - - label 0x39 - if_self_flag_bankx_eq CHRFLAG1_01000000, TRUE, BANK_1, /*goto*/ 0x3c - if_player_looking_at_something_maybe 0x15, 0x01, 0x00, /*goto*/ 0x3b - if_chr_distance_lt 1300, /*goto*/ 0x3b - goto_next 0x17 - - label 0x3a - if_self_flag_bankx_eq CHRFLAG1_01000000, TRUE, BANK_1, /*goto*/ 0x3c - if_player_looking_at_something_maybe 0x15, 0x01, 0x00, /*goto*/ 0x3b - goto_next 0x3c - - label 0x3c - dprint "NOANG\n" - label 0x17 - if_chr_stopped /*goto*/ 0x13 - if_timer_gt 600, /*goto*/ 0x36 - endloop 0x35 - - label 0x13 - dprint "COMPLETED\n" - set_target_chr FOLLOW_CHR - goto_first 0xf7 - - label 0x36 - set_target_chr FOLLOW_CHR - dprint "END TRACK\n" - set_alertness 0 - set_return_function CHR_SELF, GFUNC_ALERTED - set_function CHR_SELF, GFUNC_SEARCH_FOR_PLAYER - goto_first 0x1b - - label 0x3b - goto_first 0x1b - - label 0x37 - goto_first 0x1b - - // - // SYNC SHOOT - // - label 0x87 - dprint "SYNC SHOOT\n" - cmd012f - set_action ACTION_SYNC_SHOOT, FALSE - unset_self_flag_bankx CHRFLAG1_00040000, BANK_1 - unset_self_flag_bankx CHRFLAG1_00020000, BANK_1 - restart_timer - try_run_to_target_chr /*goto*/ 0x85 - - beginloop 0x85 - cmd013d_if_grenade_thrown_nearby_maybe ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED - if_self_flag_bankx_eq CHRFLAG1_00001000, TRUE, BANK_1, /*goto*/ 0x13 - if_self_flag_bankx_eq CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x16 - if_chr_distance_lt 120, /*goto*/ 0x16 - call_rng - if_rand_lt 128, /*goto*/ 0x13 - if_chr_distance_gt 250, /*goto*/ 0x13 - label 0x16 - if_in_disarm_range /*goto*/ 0x16 - goto_next 0x13 - - label 0x16 - set_return_function CHR_SELF, GFUNC_ALERTED - set_function CHR_SELF, GFUNC_HAND_COMBAT - - label 0x13 - if_in_disarm_range /*goto*/ 0x26 - if_timer_gt 120, /*goto*/ 0x86 - endloop 0x85 - - label 0x86 - goto_first 0x1b - - label 0x26 - dprint "ICANSE PLAYER\n" - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED - if_self_flag_bankx_eq CHRFLAG1_00001000, TRUE, BANK_1, /*goto*/ 0x13 - if_self_flag_bankx_eq CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x16 - if_chr_distance_lt 120, /*goto*/ 0x16 - call_rng - if_rand_lt 128, /*goto*/ 0x13 - if_chr_distance_gt 250, /*goto*/ 0x13 - label 0x16 - if_in_disarm_range /*goto*/ 0x16 - goto_next 0x13 - - label 0x16 - set_return_function CHR_SELF, GFUNC_ALERTED - set_function CHR_SELF, GFUNC_HAND_COMBAT - - label 0x13 - dprint "target\n" - restart_timer - stop_chr - set_action ACTION_SYNC_SHOOT, FALSE - unset_self_flag_bankx CHRFLAG1_00040000, BANK_1 - unset_self_flag_bankx CHRFLAG1_00020000, BANK_1 - if_self_flag_bankx_eq CHRFLAG1_00002000, FALSE, BANK_1, /*goto*/ 0x13 - unset_self_flag_bankx CHRFLAG1_00002000, BANK_1 - goto_first 0x48 - - label 0x13 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED - call_rng - if_rand_lt 10, /*goto*/ 0x57 - if_rand_gt 64, /*goto*/ 0x16 - if_self_flag_bankx_eq CHRFLAG1_00000010, FALSE, BANK_1, /*goto*/ 0x13 - cmd0184 0x5a64 - set_self_flag_bankx CHRFLAG1_00000020, BANK_1 - goto_next 0x44 - - label 0x13 - if_self_flag_bankx_eq CHRFLAG1_00000004, FALSE, BANK_1, /*goto*/ 0x13 - cmd0184 0x141e - goto_next 0x44 - - label 0x13 - label 0x16 - call_rng - if_rand_gt 50, /*goto*/ 0x13 - call_rng - if_rand_gt 128, /*goto*/ 0x16 - label 0xbe - try_roll_and_shoot /*goto*/ 0x44 - label 0x16 - try_walk_and_shoot /*goto*/ 0x44 - label 0x13 - call_rng - if_rand_gt 128, /*goto*/ 0x8c - try_chr_kneel_and_shoot_thing 0x0220, 0x0000, /*goto*/ 0x28 - label 0x8c - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x28 - dprint "SHOOTFAILED\n" - yield - cmd013d_if_grenade_thrown_nearby_maybe ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE - goto_first 0x8b - - label 0x28 - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x44 - goto_next 0x67 - - label 0x44 - say_quip CHR_JOANNA, 0x00, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00 - say_quip CHR_JOANNA, 0x01, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00 - - beginloop 0x45 - cmd013d_if_grenade_thrown_nearby_maybe ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE - if_chr_stopped /*goto*/ 0x2a - endloop 0x45 - - label 0x57 - say_quip CHR_JOANNA, 0x27, 0xfe, 0x03, 0xff, BANK_0, 0x00, 0x00 - do_special_animation -2 - goto_next 0xea - label 0x2a - if_self_flag_bankx_eq CHRFLAG0_01000000, FALSE, BANK_0, /*goto*/ 0x13 - unset_self_flag_bankx CHRFLAG0_01000000, BANK_0 - set_accuracy 0 - label 0x13 - if_chr_injured_target CHR_SELF, /*goto*/ 0x13 - say_quip CHR_JOANNA, 0x16, 0x19, 0x03, 0x00, BANK_0, 0x00, 0x00 - say_quip CHR_JOANNA, 0x17, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00 - goto_next 0x16 - - label 0x13 - say_quip CHR_JOANNA, 0x15, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00 - say_quip CHR_JOANNA, 0x15, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00 - label 0x16 - call_rng - if_rand_lt 20, /*goto*/ 0x16 - if_self_flag_bankx_eq CHRFLAG1_00000020, FALSE, BANK_1, /*goto*/ 0x13 - label 0x16 - set_self_flag_bankx CHRFLAG1_00000020, BANK_1 - restart_timer - animation ANIM_RELOAD_0209, 0, -1, 0x1010, CHR_SELF, 2 - label 0xea - yield - if_self_flag_bankx_eq CHRFLAG1_00000020, FALSE, BANK_1, /*goto*/ 0x16 - if_timer_lt 120, /*goto*/ 0x16 - assign_sound 0x80f6, CHANNEL_6 - play_sound_from_entity CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01 - unset_self_flag_bankx CHRFLAG1_00000020, BANK_1 - label 0x16 - if_chr_stopped /*goto*/ 0x13 - goto_first 0xea - - label 0x13 - dprint "LEFTSHOOT\n" - goto_first 0x8b - - label 0x67 - dprint "SHOTNOWORK\n" - label 0x2b - goto_first 0x8b - - // - // DODGE - // - label 0x18 - dprint "Dodge\n" - set_action ACTION_DODGE, FALSE - unset_self_flag_bankx CHRFLAG1_00040000, BANK_1 - set_self_flag_bankx CHRFLAG1_00020000, BANK_1 - if_self_flag_bankx_eq CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x16 - cmd0133 ACTION_DODGE, /*goto*/ 0x16 - label 0x16 - call_rng - if_rand_lt 128, /*goto*/ 0x2d - try_hop_sideways /*goto*/ 0x13 - goto_next 0x2e - - label 0x2d - try_jump_sideways /*goto*/ 0x13 - goto_next 0x2e - - label 0x13 - set_self_flag_bankx CHRFLAG1_00020000, BANK_1 - - beginloop 0x2c - cmd013d_if_grenade_thrown_nearby_maybe ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE - if_chr_stopped /*goto*/ 0x2e - endloop 0x2c - - label 0x2e - dprint "DODGE DONE\n" - call_rng - if_rand_lt 128, /*goto*/ 0x16 - goto_first 0x87 - - label 0x16 - goto_first 0x1b - - // - // RETREAT - // - label LABEL_RETREAT - set_chr_dodge_rating 0, 0x00 - set_chr_dodge_rating 1, 0x00 - dprint "ROUTED\n" - set_action ACTION_RETREAT, FALSE - unset_self_flag_bankx CHRFLAG1_00040000, BANK_1 - unset_self_flag_bankx CHRFLAG1_00020000, BANK_1 - say_quip CHR_JOANNA, 0x04, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00 // "Go to plan B","Get the hell out of here!","Retreat!" - try_target_chr_in_same_group /*goto*/ 0x95 - if_self_flag_bankx_eq CHRFLAG1_00000002, TRUE, BANK_1, /*goto*/ 0x16 - label 0x16 - if_self_flag_bankx_eq CHRFLAG0_00200000, TRUE, BANK_0, /*goto*/ 0x16 - unset_self_flag_bankx CHRFLAG0_CAN_RETREAT, BANK_0 - unset_self_flag_bankx CHRFLAG0_CANT_ALERT_GROUP, BANK_0 - goto_first 0x1b - - // - // RUNNING - // - label 0x16 - dprint "RUNNING\n" - set_target_chr CHR_P1P2 - retreat 0x02, 0x01 - - beginloop 0x6c - cmd013d_if_grenade_thrown_nearby_maybe ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE - if_chr_distance_gt 300, /*goto*/ 0x16 - if_chr_in_view /*goto*/ 0x70 - label 0x16 - if_chr_distance_gt 3000, /*goto*/ 0x6d - endloop 0x6c - - label 0x6d - stop_chr - - beginloop 0x6e - cmd013d_if_grenade_thrown_nearby_maybe ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_distance_lt 3000, /*goto*/ 0x6f - endloop 0x6e - - label 0x6f - goto_first LABEL_RETREAT - - // - // SURRENDER - // - label 0x70 - if_chr_dying CHR_SELF, /*goto*/ 0x88 - set_action ACTION_SURRENDER, FALSE - unset_self_flag_bankx CHRFLAG1_00040000, BANK_1 - unset_self_flag_bankx CHRFLAG1_00020000, BANK_1 - say_quip CHR_JOANNA, 0x08, 0xfe, 0x0a, 0xff, BANK_0, 0x00, 0x00 // "Please! Don't shoot me!","I give up!","You win! I surrender" - restart_timer - surrender - - beginloop 0x71 - if_chr_dying CHR_SELF, /*goto*/ 0x88 - if_timer_gt 300, /*goto*/ 0x16 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_in_view /*goto*/ 0x72 - if_bitcheck_in_position_struct /*goto*/ 0x13 - endloop 0x71 - - // Out of view for 5 seconds - remove - label 0x16 - drop_concealed_items CHR_SELF - yield - remove_chr CHR_SELF - label 0x13 - restart_timer - goto_first 0x71 - - label 0x72 - say_quip CHR_JOANNA, 0x08, 0x23, 0x0a, 0x00, BANK_0, 0x00, 0x00 - restart_timer - goto_first 0x71 - - label 0x95 - unset_self_flag_bankx CHRFLAG0_CAN_RETREAT, BANK_0 - unset_self_flag_bankx CHRFLAG0_CANT_ALERT_GROUP, BANK_0 - try_run_to_chr FOLLOW_CHR, /*goto*/ 0x96 - - beginloop 0x96 - cmd013d_if_grenade_thrown_nearby_maybe ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE - if_chr_death_animation_finished FOLLOW_CHR, /*goto*/ 0x84 - if_chr_unloaded FOLLOW_CHR, /*goto*/ 0x84 - if_detected_chr FOLLOW_CHR, /*goto*/ 0x97 - if_chr_stopped /*goto*/ 0x97 - endloop 0x96 - - label 0x97 - dprint "WARN FRIENDS\n" - say_quip CHR_JOANNA, 0x10, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00 - set_group_alertness 100 - label 0x84 - goto_first 0x1b - - label 0x88 - set_function CHR_SELF, GFUNC_IDLE - - // - // RUN FOR ALARM - // - label LABEL_RUN_FOR_ALARM - set_action ACTION_WARN_OTHERS, FALSE - unset_self_flag_bankx CHRFLAG1_00040000, BANK_1 - unset_self_flag_bankx CHRFLAG1_00020000, BANK_1 - say_quip CHR_JOANNA, 0x22, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 // "Trigger the alarm" - go_to_target_pad SPEED_JOG - - beginloop 0x9d - cmd013d_if_grenade_thrown_nearby_maybe ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE - if_chr_stopped /*goto*/ 0x16 - endloop 0x9d - - label 0x16 - animation ANIM_PUSH_BUTTON, 0, 193, 0x1010, CHR_SELF, 2 - restart_timer - - beginloop 0xed - if_timer_gt 70, /*goto*/ 0x16 - endloop 0xed - - label 0x16 - activate_alarm - - beginloop 0x9e - cmd013d_if_grenade_thrown_nearby_maybe ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE - if_chr_stopped /*goto*/ 0x16 - endloop 0x9e - - label 0x16 - goto_first 0x1b - - // - // FLEE GRENADE - // - label LABEL_FLEE_GRENADE - set_return_function CHR_SELF, GFUNC_ALERTED - set_function CHR_SELF, GFUNC_FLEE_FROM_GRENADE - - // - // CLOAKED - // - label LABEL_CLOAKED - set_alertness 0 - set_return_function CHR_SELF, GFUNC_ALERTED - set_function CHR_SELF, GFUNC_SEARCH_FOR_PLAYER - - label 0x01 - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_00002000 - stop_chr - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x16 - if_chr_dying CHR_SELF, /*goto*/ 0x16 - if_chr_unloaded CHR_SELF, /*goto*/ 0x16 - if_chr_sees_player /*goto*/ 0x13 - set_alertness 0 - set_self_flag_bankx CHRFLAG1_10000000, BANK_1 - set_return_function CHR_SELF, GFUNC_UNALERTED - set_function CHR_SELF, GFUNC_SEARCH_FOR_PLAYER - - label 0x13 - set_function CHR_SELF, GFUNC_ALERTED - - label 0x0a - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func000a_do_idle_animation: - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_00000080 - if_chr_flag_bank2 CHR_SELF, CHRFLAG2_TRIGGER_BUDDY_WARP, /*goto*/ 0x13 - if_chr_idle_action_eq IDLEACTION_SITTING_TYPING, /*goto*/ 0x16 - if_chr_idle_action_eq IDLEACTION_SITTING_DORMANT, /*goto*/ 0x16 - goto_next 0x13 - - label 0x16 - set_chr_health CHR_SELF, 1 - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_TRIGGER_BUDDY_WARP - - label 0x13 - set_onshot_function GFUNC_UNALERTED - label 0x00 - if_chr_idle_action_eq IDLEACTION_STANDING, /*goto*/ 0x03 - if_chr_idle_action_eq IDLEACTION_SITTING_TYPING, /*goto*/ 0x04 - if_chr_idle_action_eq IDLEACTION_SITTING_DORMANT, /*goto*/ 0x05 - if_chr_idle_action_eq IDLEACTION_OPERATING, /*goto*/ 0x06 - if_chr_idle_action_eq IDLEACTION_OPERATING_PAD, /*goto*/ 0x07 - stop_chr - return - set_function CHR_SELF, GFUNC_IDLE - - label 0x03 - dprint "STANDING\n" - animation ANIM_OPERATE_0204, 0, -1, 0x1010, CHR_SELF, 2 - goto_next 0x0c - - label 0x04 - dprint "SITTING TYPING\n" - set_chr_special_death_animation CHR_SELF, 0x06 - animation ANIM_SITTING_TYPING, 0, -1, 0x1400, CHR_SELF, 2 - goto_next 0x0c - - label 0x05 - dprint "SITTING\n" - set_chr_special_death_animation CHR_SELF, 0x06 - animation ANIM_SITTING_DORMANT, 0, -1, 0x1400, CHR_SELF, 2 - goto_next 0x0c - - label 0x07 - dprint "NAT 5\n" - restart_timer - try_face_entity ENTITYTYPE_PAD, TARGET_PAD, /*goto*/ 0xfa - - beginloop 0xfa - if_timer_gt 60, /*goto*/ 0x06 - endloop 0xfa - - label 0x06 - dprint "OPERATING\n" - call_rng - if_rand_gt 85, /*goto*/ 0x28 - if_rand_gt 170, /*goto*/ 0x29 - animation ANIM_OPERATE_0221, 0, -1, 0x1000, CHR_SELF, 2 - goto_next 0x0c - - label 0x28 - animation ANIM_OPERATE_0222, 0, -1, 0x1000, CHR_SELF, 2 - goto_next 0x0c - - label 0x29 - animation ANIM_OPERATE_0223, 0, -1, 0x1000, CHR_SELF, 2 - goto_next 0x0c - - label 0x0c - return - - // Nothing jumps to here or below - beginloop 0x15 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x13 - if_self_flag_bankx_eq CHRFLAG0_AIVSAI, FALSE, BANK_0, /*goto*/ 0x16 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - goto_next 0x12 - - label 0x16 - endloop 0x15 - - // Stand up - label 0x13 - animation ANIM_STAND_UP_FROM_SITTING, 0, -1, 0x0210, CHR_SELF, 2 - object_do_animation 0x025a, 0xff, 0x02ff, 0xff - - beginloop 0x06 - if_chr_stopped /*goto*/ 0x13 - endloop 0x06 - - label 0x13 - return - - label 0x12 - set_return_function CHR_SELF, GFUNC_UNALERTED - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - endfunction - -/** - * Attempts to set the target chr and engage in combat with them. - * - * - If current chr has been shot, say something, raise group alertness, then - * engage combat with the target (if in range and line of sight). - * - Otherwise, attempt to find the target using a one of two methods, - * determined by a bitflag on the chr: - * - * 1) Find chr by group (details unknown) - * 2) Distance and line of sight check on all chrs - * - * When one fails the other is attempted. Presumably both of these are quite - * expensive, so the flag exists to determine which one is more likely to pass - * on a per chr basis. - * - * If both fail, the function yields and continues checking. - */ -func000b_choose_target_chr: - set_onshot_function GFUNC_CHOOSE_TARGET_CHR - if_num_times_shot_lt 1, /*goto*/ 0xd3 - - // Has been shot - say_quip CHR_JOANNA, 0x0c, 0x78, 0x03, 0x00, BANK_0, 0x00, 0x00 // "Holy shh...","What the hell?!" - - beginloop 0x03 - if_chr_stopped /*goto*/ 0x16 - endloop 0x03 - - label 0x16 - say_quip CHR_JOANNA, 0x0c, 0xff, 0x03, 0x00, BANK_0, 0x00, 0x00 // "Holy shh...","What the hell?!" - dprint "NO WARNING\n" - set_group_alertness 100 - dprint "NO WARNING\n" - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x13 - goto_next 0xd3 - - label 0x13 - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - - // Hasn't been shot, or can't engage target chr - label 0xd3 - set_action ACTION_SCAN, FALSE - yield - dprint "SCAN\n" - - if_self_flag_bankx_eq CHRFLAG0_NOHEAR, TRUE, BANK_0, /*goto*/ 0x13 - cmd0127_try_find_chr_in_group /*goto*/ 0x16 - goto_next 0x04 - - // No hear - only see - label 0x13 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x16 - - // Scan failed - label 0x04 - if_shot_near_chr 0x00, /*goto*/ 0x13 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x13 - goto_first 0xd3 - - // Found - label 0x16 - dprint "FOUND\n" - set_group_alertness 100 - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - set_return_function CHR_SELF, GFUNC_CHOOSE_TARGET_CHR - - label 0x13 - dprint "FOUNDALERT\n" - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x13 - if_self_flag_bankx_eq CHRFLAG0_NOHEAR, TRUE, BANK_0, /*goto*/ 0x16 - cmd0127_try_find_chr_in_group /*goto*/ 0x13 - label 0x16 - goto_first 0xd3 - - label 0x13 - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - endfunction - -func000d_init_combat: - set_onshot_function GFUNC_COMBAT_WITH_TARGET_CHR - - // If not idle, turn off special death animation - if_self_flag_bankx_eq CHRFLAG1_DOINGIDLEANIMATION, FALSE, BANK_1, /*goto*/ 0x13 - set_chr_special_death_animation CHR_SELF, NULL - - label 0x13 - if_self_flag_bankx_eq CHRFLAG1_DOINGIDLEANIMATION, FALSE, BANK_1, /*goto*/ 0x16 - unset_self_flag_bankx CHRFLAG1_DOINGIDLEANIMATION, BANK_1 - if_chr_idle_action_eq IDLEACTION_SITTING_TYPING, /*goto*/ 0x05 - if_chr_idle_action_eq IDLEACTION_SITTING_DORMANT, /*goto*/ 0x05 - goto_next 0x16 - - // Stand up - label 0x05 - set_chr_health CHR_SELF, 40 - animation ANIM_STAND_UP_FROM_SITTING, 0, -1, 0x0210, CHR_SELF, 2 - object_do_animation 0x025a, 0xff, 0x02ff, 0xff - - beginloop 0x0c - if_chr_stopped /*goto*/ 0x13 - endloop 0x0c - - label 0x13 - label 0x16 - set_onshot_function GFUNC_COMBAT_WITH_TARGET_CHR - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - endfunction - -func000c_combat_with_target_chr: - if_chr_is_dead_maybe CHR_SELF, /*goto*/ 0x16 - dprint "SEE ENEMY\n" - if_num_human_players_lt 2, /*goto*/ 0x16 - label 0x13 - if_chr_lost_track_of_target_maybe /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - if_stage_is_not STAGE_WAR, /*goto*/ 0x13 - if_num_human_players_lt 2, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - if_stage_is_not STAGE_DEEPSEA, /*goto*/ 0x13 - if_num_human_players_lt 2, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - if_stage_is_not STAGE_DEFENSE, /*goto*/ 0x13 - if_num_human_players_lt 2, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - if_stage_is_not STAGE_WAR, /*goto*/ 0x13 - if_num_human_players_lt 2, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - if_stage_is_not STAGE_ESCAPE, /*goto*/ 0x13 - if_num_human_players_lt 2, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - if_stage_is_not STAGE_ATTACKSHIP, /*goto*/ 0x13 - if_num_human_players_lt 2, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - if_stage_is_not STAGE_CRASHSITE, /*goto*/ 0x13 - if_num_human_players_lt 2, /*goto*/ 0x13 - goto_next 0x16 - - // Solo mode, or co-op/counter-op on any other stage - label 0x13 - if_chr_lost_track_of_target_maybe /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - set_function CHR_SELF, GFUNC_ALERTED - - // Co-op with friend or counter-op on any of the above stages - // Or follow through if chr still has target - label 0x16 - set_self_flag_bank3 CHRFLAG3_00000040 - dprint "DETECT\n" - if_chr_dying CHR_SELF, /*goto*/ 0x16 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x16 - if_chr_unloaded CHR_SELF, /*goto*/ 0x16 - goto_next 0x13 - - // Dying - label 0x16 - set_onshot_function GFUNC_IDLE - restart_timer - - beginloop 0x1c - if_timer_gt 15, /*goto*/ 0x16 - endloop 0x1c - - label 0x16 - if_chr_is_dead_maybe CHR_SELF, /*goto*/ 0x16 - say_quip CHR_JOANNA, 0x19, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 - goto_next 0x17 - - label 0x16 - say_quip CHR_JOANNA, 0x02, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 - - label 0x17 - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x13 - dprint "DETECT1\n" - if_num_times_shot_lt 1, /*goto*/ 0xb2 - if_just_injured CHR_SELF, /*goto*/ 0x16 - if_has_gun CHR_SELF, /*goto*/ 0xb2 - set_self_flag_bankx CHRFLAG1_00000001, BANK_1 - goto_next 0xb2 - - dprint "DETECT2\n" - - // Injured - label 0x16 - restart_timer - - beginloop 0x1d - if_self_flag_bankx_eq CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x16 - if_num_times_shot_lt 1, /*goto*/ 0x16 - if_timer_lt 20, /*goto*/ 0x16 - say_quip CHR_JOANNA, 0x0d, 0x28, 0x03, 0xff, BANK_0, 0x00, 0x00 - say_quip CHR_JOANNA, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00 - set_self_flag_bankx CHRFLAG0_SAID_INJURY_QUIP, BANK_0 - label 0x16 - if_chr_stopped /*goto*/ 0x13 - if_timer_gt 180, /*goto*/ 0x13 - endloop 0x1d - - label 0x13 - dprint "DETECT3\n" - label 0xb2 - yield - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_08000000, /*goto*/ 0x13 - unset_self_flag_bankx CHRFLAG1_00000001, BANK_1 - goto_next 0x16 - - label 0x13 - set_self_flag_bankx CHRFLAG1_00000001, BANK_1 - label 0x16 - dprint "TEAMD\n" - if_alertness 100, OPERATOR_LESS_THAN, /*goto*/ 0xb3 - dprint "ALERT\n" - if_enemy_distance_lt_and_los 2540, /*goto*/ 0xb3 - if_chr_is_dead_maybe CHR_SELF, /*goto*/ 0x16 - if_chr_flag_bank2 CHR_SELF, CHRFLAG2_PSYCHOSISED, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - if_target_chrs_field_0x17e_is_different /*goto*/ 0xb3 - label 0x16 - dprint "NO TARGET\n" - set_target_chr -1 - return - - label 0xb3 - if_chr_is_dead_maybe CHR_SELF, /*goto*/ 0x16 - label 0x13 - if_chr_lost_track_of_target_maybe /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - if_stage_is_not STAGE_WAR, /*goto*/ 0x13 - if_num_human_players_lt 2, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - if_stage_is_not STAGE_DEEPSEA, /*goto*/ 0x13 - if_num_human_players_lt 2, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - if_stage_is_not STAGE_DEFENSE, /*goto*/ 0x13 - if_num_human_players_lt 2, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - if_stage_is_not STAGE_WAR, /*goto*/ 0x13 - if_num_human_players_lt 2, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - if_stage_is_not STAGE_ESCAPE, /*goto*/ 0x13 - if_num_human_players_lt 2, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - if_stage_is_not STAGE_ATTACKSHIP, /*goto*/ 0x13 - if_num_human_players_lt 2, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - if_stage_is_not STAGE_CRASHSITE, /*goto*/ 0x13 - if_num_human_players_lt 2, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - set_function CHR_SELF, GFUNC_ALERTED - - label 0x16 - dprint "FOUND ENEMY\n" - restart_timer - if_chr_dying TARGET_CHR, /*goto*/ 0xba - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0xba - if_chr_unloaded TARGET_CHR, /*goto*/ 0xba - if_target_chrs_field_0x17e_is_different /*goto*/ 0x13 - goto_next 0x16 - - // Target's field 0x17e is different - label 0x13 - if_self_flag_bankx_eq CHRFLAG1_00000001, FALSE, BANK_1, /*goto*/ 0x16 - if_self_flag_bankx_eq CHRFLAG1_00001000, TRUE, BANK_1, /*goto*/ 0x16 - call_rng - if_rand_lt 128, /*goto*/ 0x13 - if_chr_distance_gt 250, /*goto*/ 0x16 - if_in_disarm_range /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - set_self_flag_bankx CHRFLAG1_PUNCH_THEN_GENERAL_COMBAT, BANK_1 - set_function CHR_SELF, GFUNC_HAND_COMBAT - - label 0x16 - try_run_to_target_chr /*goto*/ 0xb4 - dprint "RUN FAIL\n" - - beginloop 0xb4 - dprint "FOUND 1\n" - if_timer_gt 600, /*goto*/ 0xba - if_self_flag_bankx_eq CHRFLAG1_00000001, FALSE, BANK_1, /*goto*/ 0x13 - if_timer_gt 20, /*goto*/ 0x09 - label 0x13 - if_chr_dying TARGET_CHR, /*goto*/ 0xba - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0xba - if_chr_unloaded TARGET_CHR, /*goto*/ 0xba - if_target_chrs_field_0x17e_is_different /*goto*/ 0x13 - goto_next 0xba - - label 0x13 - dprint "FOUND 2\n" - if_self_flag_bankx_eq CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x16 - if_self_flag_bankx_eq CHRFLAG1_00001000, TRUE, BANK_1, /*goto*/ 0x13 - if_chr_distance_lt 120, /*goto*/ 0x16 - call_rng - if_rand_lt 128, /*goto*/ 0x13 - if_chr_distance_gt 250, /*goto*/ 0x13 - label 0x16 - if_in_disarm_range /*goto*/ 0x16 - dprint "NOUNARM\n" - goto_next 0x13 - - label 0x16 - dprint "GOUNARM\n" - set_self_flag_bankx CHRFLAG1_PUNCH_THEN_GENERAL_COMBAT, BANK_1 - set_function CHR_SELF, GFUNC_HAND_COMBAT - - label 0x13 - label 0x13 - if_enemy_distance_lt_and_los 1200, /*goto*/ 0xb5 - if_in_disarm_range /*goto*/ 0xb6 - endloop 0xb4 - - label 0x09 - goto_first 0xb3 - - label 0xb7 - label 0xb9 - if_in_disarm_range /*goto*/ 0xb6 - if_chr_dying TARGET_CHR, /*goto*/ 0xba - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0xba - if_chr_unloaded TARGET_CHR, /*goto*/ 0xba - if_target_chrs_field_0x17e_is_different /*goto*/ 0x13 - goto_next 0xba - - label 0x13 - if_chr_in_view /*goto*/ 0xbb - goto_first 0xb4 - - label 0xb5 - restart_timer - try_run_to_target_chr /*goto*/ 0xbc - - beginloop 0xbc - if_chr_dying TARGET_CHR, /*goto*/ 0xc0 - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0xc0 - if_chr_unloaded TARGET_CHR, /*goto*/ 0xc0 - if_target_chrs_field_0x17e_is_different /*goto*/ 0x13 - goto_next 0xc0 - - label 0x13 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ 0x13 - if_in_disarm_range /*goto*/ 0xbf - label 0x13 - if_timer_gt 120, /*goto*/ 0xc0 - endloop 0xbc - - label 0xbf - goto_next 0xb6 - - label 0xc0 - goto_first 0xb2 - - label 0xb6 - set_grenade_probability_out_of_255 255 - set_self_flag_bank3 CHRFLAG3_00000040 - if_chr_dying TARGET_CHR, /*goto*/ 0xc1 - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0xc1 - if_chr_unloaded TARGET_CHR, /*goto*/ 0xc1 - if_target_chrs_field_0x17e_is_different /*goto*/ 0x13 - goto_next 0xc1 - - label 0x13 - dprint "SHOOTING\n" - goto_next 0xc2 - - label 0x16 - if_chr_distance_lt 800, /*goto*/ 0xc2 - if_something_hypotenuse 0, /*goto*/ 0xc2 - dprint "GRENADE\n" - restart_timer - if_any_chr_doing_action ACTION_THROW_GRENADE, /*goto*/ 0xc2 - set_action ACTION_THROW_GRENADE, FALSE - consider_throwing_grenade 0x0200, 0x0000, /*goto*/ 0x16 - label 0x16 - if_self_flag_bankx_eq CHRFLAG1_00001000, TRUE, BANK_1, /*goto*/ 0x13 - if_self_flag_bankx_eq CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x16 - if_chr_distance_lt 120, /*goto*/ 0x16 - call_rng - if_rand_lt 128, /*goto*/ 0x13 - if_chr_distance_gt 250, /*goto*/ 0x13 - label 0x16 - if_in_disarm_range /*goto*/ 0x16 - goto_next 0x13 - - label 0x16 - set_self_flag_bankx CHRFLAG1_PUNCH_THEN_GENERAL_COMBAT, BANK_1 - set_function CHR_SELF, GFUNC_HAND_COMBAT - - label 0x13 - yield - dprint "GRENADE END\n" - label 0xc2 - if_self_flag_bankx_eq CHRFLAG1_00001000, TRUE, BANK_1, /*goto*/ 0x13 - if_self_flag_bankx_eq CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x16 - if_chr_distance_lt 120, /*goto*/ 0x16 - call_rng - if_rand_lt 128, /*goto*/ 0x13 - if_chr_distance_gt 250, /*goto*/ 0x13 - label 0x16 - if_in_disarm_range /*goto*/ 0x16 - goto_next 0x13 - - label 0x16 - set_self_flag_bankx CHRFLAG1_PUNCH_THEN_GENERAL_COMBAT, BANK_1 - set_function CHR_SELF, GFUNC_HAND_COMBAT - - label 0x13 - label 0x13 - dprint "CHOSE SHTND\n" // choose... ? - call_rng - if_rand_gt 64, /*goto*/ 0x16 - if_self_flag_bankx_eq CHRFLAG1_00000010, FALSE, BANK_1, /*goto*/ 0x13 - cmd0184 0x5a64 - set_self_flag_bankx CHRFLAG1_00000020, BANK_1 - goto_next 0xc3 - - label 0x13 - if_self_flag_bankx_eq CHRFLAG1_00000004, FALSE, BANK_1, /*goto*/ 0x13 - cmd0184 0x141e - goto_next 0xc3 - - label 0x13 - label 0x16 - if_chr_is_dead_maybe CHR_SELF, /*goto*/ 0x17 - goto_next 0x16 - - label 0x17 - say_quip CHR_JOANNA, 0x01, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 - label 0x16 - call_rng - if_rand_gt 50, /*goto*/ 0x13 - call_rng - if_rand_gt 128, /*goto*/ 0x16 - label 0xbe - try_roll_and_shoot /*goto*/ 0xc3 - label 0x16 - try_walk_and_shoot /*goto*/ 0xc3 - label 0x13 - call_rng - if_rand_gt 128, /*goto*/ 0x8c - try_chr_kneel_and_shoot_thing 0x0220, 0x0000, /*goto*/ 0x16 - label 0x8c - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x16 - label 0x16 - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0xc3 - - label 0xc3 - say_quip CHR_JOANNA, 0x24, 0x19, 0x02, 0xff, BANK_0, 0x00, 0x00 - say_quip CHR_JOANNA, 0x25, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00 - - beginloop 0xe2 - if_chr_dying TARGET_CHR, /*goto*/ 0xc1 - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0xc1 - if_chr_unloaded TARGET_CHR, /*goto*/ 0xc1 - if_target_chrs_field_0x17e_is_different /*goto*/ 0x16 - goto_next 0xc1 - - label 0x16 - if_chr_stopped /*goto*/ 0xc1 - endloop 0xe2 - - label 0x13 - restart_timer - dprint "SHOOT FAIL\n" - - beginloop 0x03 - if_timer_gt 60, /*goto*/ 0x16 - endloop 0x03 - - label 0x16 - goto_first 0xc3 - - label 0xba - dprint "FOUND 3\n" - label 0xc1 - if_chr_injured_target CHR_SELF, /*goto*/ 0x13 - dprint "PUNCHMISSED\n" - say_quip CHR_JOANNA, 0x16, 0x19, 0x03, 0xff, BANK_0, 0x00, 0x00 - say_quip CHR_JOANNA, 0x17, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00 - goto_next 0x16 - - label 0x13 - dprint "PUNCHHIT\n" - say_quip CHR_JOANNA, 0x15, 0x19, 0x02, 0xff, BANK_0, 0x00, 0x00 - say_quip CHR_JOANNA, 0x15, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00 - - label 0x16 - dprint "BONND 3\n" - if_self_flag_bankx_eq CHRFLAG1_00000800, FALSE, BANK_1, /*goto*/ 0x13 - if_chr_lost_track_of_target_maybe /*goto*/ 0x13 - damage_chr TARGET_CHR, 18 - unset_self_flag_bankx CHRFLAG1_00000800, BANK_1 - label 0x13 - if_chr_dying TARGET_CHR, /*goto*/ 0xc5 - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0xc5 - if_chr_unloaded TARGET_CHR, /*goto*/ 0xc5 - if_target_chrs_field_0x17e_is_different /*goto*/ 0x13 - goto_next 0xc5 - - label 0x13 - if_self_flag_bankx_eq CHRFLAG1_40000000, TRUE, BANK_1, /*goto*/ 0xc5 - label 0xb8 - label 0xc6 - if_self_flag_bankx_eq CHRFLAG0_08000000, FALSE, BANK_0, /*goto*/ 0x13 - goto_first 0xb3 - - label 0x13 - dprint "LOOK FOR COVER\n" - if_self_flag_bankx_eq CHRFLAG1_00004000, TRUE, BANK_1, /*goto*/ 0x15 - cmd0121_if_something 0x1035, /*goto*/ 0x53 - cmd0121_if_something 0x1095, /*goto*/ 0x53 - goto_next 0x16 - - label 0x15 - cmd0121_if_something 0x9035, /*goto*/ 0x53 - cmd0121_if_something 0x9095, /*goto*/ 0x53 - label 0x16 - goto_next 0x54 - - label 0x53 - dprint "GO TO COVER\n" - say_quip CHR_JOANNA, 0x02, 0xff, 0x02, 0x01, BANK_0, 0x00, 0x00 - cmd0124_run_for_cover_maybe ACTION_UNDER_COVER - restart_timer - - beginloop 0xc7 - if_chr_dying TARGET_CHR, /*goto*/ 0xc5 - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0xc5 - if_chr_unloaded TARGET_CHR, /*goto*/ 0xc5 - if_enemy_distance_lt_and_los 400, /*goto*/ 0x13 - if_chr_stopped /*goto*/ 0x16 - if_timer_gt 360, /*goto*/ 0x16 - endloop 0xc7 - - label 0x13 - goto_first 0xb5 - - label 0x16 - dprint "GOT TO COVER\n" - label 0xc8 - restart_timer - try_chr_kneel_and_shoot_thing 0x0220, 0x0000, /*goto*/ 0xc9 - - beginloop 0xc9 - if_chr_dying TARGET_CHR, /*goto*/ 0xc5 - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0xc5 - if_chr_unloaded TARGET_CHR, /*goto*/ 0xc5 - if_target_chrs_field_0x17e_is_different /*goto*/ 0x13 - goto_next 0xc5 - - label 0x13 - if_enemy_distance_lt_and_los 400, /*goto*/ 0x15 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ 0x13 - if_in_disarm_range /*goto*/ 0xca - label 0x13 - if_timer_gt 200, /*goto*/ 0x16 - endloop 0xc9 - - label 0x16 - dprint "TIMOUT\n" - goto_first 0xb3 - - label 0x15 - dprint "OPFIRE\n" - goto_first 0xb5 - - label 0xa3 - goto_first 0xc1 - - label 0xca - restart_timer - dprint "TARSHO\n" - if_chr_is_dead_maybe CHR_SELF, /*goto*/ 0x16 - goto_next 0x17 - - label 0x16 - say_quip CHR_JOANNA, 0x01, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 - label 0x17 - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0xcb - goto_next 0x16 - - label 0xcb - say_quip CHR_JOANNA, 0x24, 0x19, 0x02, 0xff, BANK_0, 0x00, 0x00 - say_quip CHR_JOANNA, 0x25, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00 - - beginloop 0xcc - if_chr_dying TARGET_CHR, /*goto*/ 0xc5 - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0xc5 - if_chr_unloaded TARGET_CHR, /*goto*/ 0xc5 - if_target_chrs_field_0x17e_is_different /*goto*/ 0x13 - goto_next 0xc5 - - label 0x13 - if_timer_gt 300, /*goto*/ 0x16 - if_chr_stopped /*goto*/ 0x16 - endloop 0xcc - - label 0x54 - dprint "NOCOVER\n" - goto_first 0xb3 - - restart_timer - try_run_sideways /*goto*/ 0xcd - - beginloop 0xcd - if_timer_gt 300, /*goto*/ 0xce - if_chr_stopped /*goto*/ 0xce - endloop 0xcd - - label 0xce - goto_first 0xb3 - - label 0xc5 - dprint "FOUND 4\n" - if_self_flag_bankx_eq CHRFLAG1_00100000, FALSE, BANK_1, /*goto*/ 0x13 - dprint "FOUND 5\n" - return - - label 0x13 - if_self_flag_bankx_eq CHRFLAG0_NOHEAR, TRUE, BANK_0, /*goto*/ 0x13 - label 0x13 - goto_next 0xcf - - label 0x16 - dprint "KILLED TARGET\n" - restart_timer - call_rng - if_self_flag_bankx_eq CHRFLAG1_00100000, FALSE, BANK_1, /*goto*/ 0x13 - return - - label 0x13 - goto_next 0xd0 - - // Unreachable - no label - if_rand_gt 128, /*goto*/ 0xd1 - try_run_to_target_chr_with_hand_up /*goto*/ 0xd0 - - beginloop 0xd0 - if_timer_gt 120, /*goto*/ 0xd2 - if_chr_stopped /*goto*/ 0xd2 - endloop 0xd0 - - label 0xd2 - goto_next 0xc4 - - // Begin unreachable - kneel - - beginloop 0xd4 - if_timer_gt 60, /*goto*/ 0xc4 - endloop 0xd4 - - label 0xd1 - try_run_sideways /*goto*/ 0xd5 - - beginloop 0xd5 - if_timer_gt 180, /*goto*/ 0xc4 - if_chr_stopped /*goto*/ 0xc4 - endloop 0xd5 - // End unreachable - - label 0xc4 - if_self_flag_bankx_eq CHRFLAG0_10000000, FALSE, BANK_0, /*goto*/ 0x13 - return - - label 0x13 - goto_first 0xb3 - - label 0xcf - if_self_flag_bankx_eq CHRFLAG0_10000000, FALSE, BANK_0, /*goto*/ 0x13 - if_chr_lost_track_of_target_maybe /*goto*/ 0x16 - goto_next 0x13 - - label 0x16 - return - - label 0x13 - try_walk_to_target_chr /*goto*/ 0xd6 - - beginloop 0xd6 - if_enemy_distance_lt_and_los 1200, /*goto*/ 0x13 - if_chr_stopped /*goto*/ 0xd7 - endloop 0xd6 - - label 0x13 - goto_first 0xb3 - - label 0xd7 - say_quip CHR_JOANNA, 0x0f, 0x28, 0x00, 0x01, BANK_0, 0x00, 0x00 - try_face_entity 0x0200, 0x0000, /*goto*/ 0x16 - label 0x16 - if_chr_is_dead_maybe CHR_SELF, /*goto*/ 0xd9 - animation ANIM_YAWN, 0, 193, 0x1810, CHR_SELF, 2 - - beginloop 0xd8 - if_chr_stopped /*goto*/ 0xd9 - endloop 0xd8 - - label 0xd9 - return - endfunction - -unregistered_function2: - stop_chr - label 0x19 - stop_chr - yield - goto_first 0x19 - - endfunction - -unregistered_function3: - surrender - beginloop 0x19 - if_chr_stopped /*goto*/ 0x16 - endloop 0x19 - - label 0x16 - dprint "finyawn\n" - return - endfunction - -/** - * This is the initial function for Defense blondes and some chr in - * Attack Ship. - */ -func0000_idle_0009: - dprint "START LIST\n" - set_action ACTION_SCAN, FALSE - set_return_function CHR_SELF, GFUNC_IDLE_0009 - stop_chr - - beginloop 0x0c - endloop 0x0c - - endfunction - -/** - * Not used. - */ -func000e_see_then_attack: - set_onshot_function GFUNC_ALERTED - - beginloop 0x0c - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_sees_player /*goto*/ 0x16 - endloop 0x0c - - label 0x16 - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -/** - * Waits for an objective to fail, then shows the objectives failed messages - * periodically. - */ -func0016_show_objective_failed_msg: - // Wait until an objective has failed - beginloop 0x0c - if_timer_gt 0, /*goto*/ 0x13 - if_objective_failed 0, /*goto*/ 0x16 - if_objective_failed 1, /*goto*/ 0x16 - if_objective_failed 2, /*goto*/ 0x16 - if_objective_failed 3, /*goto*/ 0x16 - if_objective_failed 4, /*goto*/ 0x16 - endloop 0x0c - - // Wait 30 seconds. It iterates to the top loop here, which instantly jumps - // down to 0x13 because the timer is > 0. Seems a bit unnecessary... - label 0x16 - restart_timer - yield - label 0x13 - if_timer_gt 1800, /*goto*/ 0x13 - goto_first 0x0c - - // Check objective is still failed - label 0x13 - if_objective_failed 0, /*goto*/ 0x13 - if_objective_failed 1, /*goto*/ 0x13 - if_objective_failed 2, /*goto*/ 0x13 - if_objective_failed 3, /*goto*/ 0x13 - if_objective_failed 4, /*goto*/ 0x13 - set_function CHR_SELF, GFUNC_IDLE - - // Show message first time - label 0x13 - message CHR_JOANNA, 0x5845 // "OBJECTIVES FAILED - abort mission." - - // Wait 60 seconds - restart_timer - - beginloop 0x03 - if_timer_gt 3600, /*goto*/ 0x16 - endloop 0x03 - - // Check objective is still failed - label 0x16 - if_objective_failed 0, /*goto*/ 0x13 - if_objective_failed 1, /*goto*/ 0x13 - if_objective_failed 2, /*goto*/ 0x13 - if_objective_failed 3, /*goto*/ 0x13 - if_objective_failed 4, /*goto*/ 0x13 - set_function CHR_SELF, GFUNC_IDLE - - // Show message second time - label 0x13 - message CHR_JOANNA, 0x5845 // "OBJECTIVES FAILED - abort mission." - restart_timer - - // Wait 2 minutes - beginloop 0x04 - if_timer_gt 7200, /*goto*/ 0x06 - endloop 0x04 - - // Check objective is still failed - label 0x06 - if_objective_failed 0, /*goto*/ 0x13 - if_objective_failed 1, /*goto*/ 0x13 - if_objective_failed 2, /*goto*/ 0x13 - if_objective_failed 3, /*goto*/ 0x13 - if_objective_failed 4, /*goto*/ 0x13 - set_function CHR_SELF, GFUNC_IDLE - - // Show message third time - label 0x13 - message CHR_JOANNA, 0x5845 // "OBJECTIVES FAILED - abort mission." - restart_timer - - // Wait 5 minutes - beginloop 0x05 - if_timer_gt 18000, /*goto*/ 0x16 - endloop 0x05 - - // Loop back to the last message, so it will display every 5 minutes - label 0x16 - goto_first 0x06 - - endfunction - -func0017_rebuild_groups: - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0018_do_bored_animation: - call_rng - if_rand_gt 50, /*goto*/ 0x13 - animation ANIM_YAWN, 0, 193, 0x1810, CHR_SELF, 2 - goto_next 0x16 - - label 0x13 - if_rand_gt 100, /*goto*/ 0x13 - animation ANIM_SCRATCH_HEAD, 0, 294, 0x1810, CHR_SELF, 2 - goto_next 0x16 - - label 0x13 - if_rand_gt 150, /*goto*/ 0x13 - animation ANIM_ROLL_HEAD, 0, 183, 0x1810, CHR_SELF, 2 - goto_next 0x16 - - label 0x13 - if_rand_gt 200, /*goto*/ 0x13 - animation ANIM_GRAB_CROTCH, 0, 123, 0x1810, CHR_SELF, 2 - goto_next 0x16 - - label 0x13 - if_rand_gt 250, /*goto*/ 0x13 - animation ANIM_GRAB_BUTT, 0, 56, 0x1810, CHR_SELF, 2 - goto_next 0x16 - - label 0x13 - label 0x16 - return - endfunction - -func001e_look_around: - call_rng - if_rand_gt 50, /*goto*/ 0x13 - animation ANIM_LOOK_AROUND_025B, 0, 193, 0x1810, CHR_SELF, 2 - goto_next 0x16 - - label 0x13 - if_rand_gt 100, /*goto*/ 0x13 - animation ANIM_LOOK_AROUND_025C, 0, 294, 0x1810, CHR_SELF, 2 - goto_next 0x16 - - label 0x13 - if_rand_gt 150, /*goto*/ 0x13 - animation ANIM_LOOK_AROUND_025D, 0, 183, 0x1810, CHR_SELF, 2 - goto_next 0x16 - - // @bug: Shows grab crotch animation when wanting to look around instead. - // Probably a copy/paste error from previous function. - label 0x13 - if_rand_gt 200, /*goto*/ 0x13 - animation ANIM_GRAB_CROTCH, 0, 123, 0x1810, CHR_SELF, 2 - goto_next 0x16 - - label 0x13 - if_rand_gt 250, /*goto*/ 0x13 - animation ANIM_LOOK_AROUND_025E, 0, 56, 0x1810, CHR_SELF, 2 - goto_next 0x16 - - label 0x13 - label 0x16 - return - endfunction - -func0019_do_sitting_animation: - call_rng - if_rand_gt 128, /*goto*/ 0x13 - animation ANIM_SITTING_TYPING, 0, -1, 0x1010, CHR_SELF, 2 - goto_next 0x16 - - label 0x13 - animation ANIM_SITTING_DORMANT, 0, -1, 0x1010, CHR_SELF, 2 - goto_next 0x16 - - label 0x13 - label 0x16 - return - endfunction - -/** - * This function is only used by other global functions. - * - * It appears the purpose is to unset CHRFLAG1_DISSPEE in certain conditions. - */ -func001a_maybe_unset_disspee: - restart_timer - - // If target has both DISGUISED and chrflag2_02000000 - // then they must not have a gun equipped. - label 0x00 - yield - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x14 - goto_next 0x13 - - label 0x14 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_02000000, /*goto*/ 0xe8 - goto_next 0x13 - - label 0xe8 - if_chr_weapon_equipped TARGET_CHR, WEAPON_NONE, /*goto*/ 0x13 - if_chr_weapon_equipped TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x13 - if_chr_weapon_equipped TARGET_CHR, WEAPON_COMBATBOOST, /*goto*/ 0x13 - if_chr_weapon_equipped TARGET_CHR, WEAPON_HORIZONSCANNER, /*goto*/ 0x13 - if_chr_weapon_equipped TARGET_CHR, WEAPON_SUITCASE, /*goto*/ 0x13 - set_function CHR_SELF, GFUNC_UNALERTED_0004 - - // Not disguised, or - // disguised but not 02000000, or - // disguised and 02000000 and has no weapon equipped. - // Wait 1 second, or for some field in the current chr to change. - label 0x13 - if_timer_lt 60, /*goto*/ 0x15 - if_chr_propsoundcount_zero CHR_SELF, /*goto*/ 0x28 - goto_next 0x15 - - // Field changed - label 0x28 - unset_self_flag_bankx CHRFLAG1_DISSPEE, BANK_1 - stop_chr - - // Field changed (follow through from above) or 1 second elapsed - label 0x15 - if_chr_idle /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - goto_first 0x00 - - // Resume walking a path - label 0x16 - start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 - endfunction - -func000f_hand_combat: - .set LABEL_FACE_TARGET, 0x16 - .set LABEL_PUNCH, 0x16 - - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x13 - if_chr_dying CHR_SELF, /*goto*/ 0x13 - if_chr_unloaded CHR_SELF, /*goto*/ 0x13 - goto_next 0x16 - - // Dying - label 0x13 - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - label 0x16 - set_action ACTION_HAND_COMBAT, FALSE - restart_timer - - // If current chr doesn't have this flag and isn't idle, stop them - if_self_flag_bankx_eq CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x0c - if_chr_idle /*goto*/ 0x0c - stop_chr - - // Begin loop - label 0x0c - yield - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0xfa - if_chr_dying TARGET_CHR, /*goto*/ 0xfa - if_chr_unloaded TARGET_CHR, /*goto*/ 0xfa - - // This if-statement is effectively a no op - dprint "L1\n" - if_target_chrs_field_0x17e_is_different /*goto*/ 0x13 - - dprint "L2\n" - label 0x13 - dprint "LOOK FOR TARGET\n" - if_self_flag_bankx_eq CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x13 - if_chr_is_dead_maybe CHR_SELF, /*goto*/ 0x0f - if_chr_distance_gt 120, /*goto*/ 0x13 - goto_next 0x10 - - label 0x0f - if_chr_distance_gt 150, /*goto*/ 0x13 - - label 0x10 - if_in_disarm_range /*goto*/ 0x13 - if_timer_gt 120, /*goto*/ 0x0b - goto_first 0x0c - - label 0x13 - if_chr_lost_track_of_target_maybe /*goto*/ 0x0a - if_self_flag_bankx_eq CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x13 - if_chr_distance_gt 400, /*goto*/ 0x0b - label 0x13 - if_chr_is_dead_maybe CHR_SELF, /*goto*/ 0x0f - if_chr_distance_lt 120, /*goto*/ LABEL_FACE_TARGET - goto_next 0x10 - - label 0x0f - if_chr_distance_lt 150, /*goto*/ LABEL_FACE_TARGET - label 0x10 - label 0xe3 - restart_timer - dprint "RUN TO TARGET\n" - try_run_to_target_chr /*goto*/ 0x03 - - beginloop 0x03 - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0xfa - if_chr_dying TARGET_CHR, /*goto*/ 0xfa - if_chr_unloaded TARGET_CHR, /*goto*/ 0xfa - label 0x13 - if_timer_gt 90, /*goto*/ 0x0b - if_chr_lost_track_of_target_maybe /*goto*/ 0x09 - if_self_flag_bankx_eq CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x13 - if_chr_distance_gt 400, /*goto*/ 0x0b - label 0x13 - if_chr_is_dead_maybe CHR_SELF, /*goto*/ 0x0f - if_chr_distance_lt 120, /*goto*/ LABEL_FACE_TARGET - goto_next 0x10 - - label 0x0f - if_chr_distance_lt 150, /*goto*/ LABEL_FACE_TARGET - label 0x10 - endloop 0x03 - - label 0x09 - if_chr_is_dead_maybe CHR_SELF, /*goto*/ 0x0f - if_chr_distance_lt 120, /*goto*/ LABEL_FACE_TARGET - goto_next 0x10 - - label 0x0f - if_chr_distance_lt 150, /*goto*/ LABEL_FACE_TARGET - label 0x10 - if_self_flag_bankx_eq CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x13 - if_chr_distance_gt 400, /*goto*/ 0x0b - label 0x13 - goto_first 0x03 - - label 0x0a - if_chr_is_dead_maybe CHR_SELF, /*goto*/ 0x0f - if_chr_distance_lt 120, /*goto*/ LABEL_FACE_TARGET - goto_next 0x10 - - label 0x0f - if_chr_distance_lt 150, /*goto*/ LABEL_FACE_TARGET - label 0x10 - if_chr_distance_gt 400, /*goto*/ 0x0b - goto_first 0xe3 - - label 0x13 - restart_timer - goto_first 0x0c - - label LABEL_FACE_TARGET - restart_timer - dprint "FACE TARGET\n" - if_angle_to_target_chr_lt 10, /*goto*/ LABEL_PUNCH - cmd004f 246, /*goto*/ LABEL_PUNCH - stop_chr - try_face_entity 0x0200, 0x0001, /*goto*/ 0x04 - - beginloop 0x04 - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0xfa - if_chr_dying TARGET_CHR, /*goto*/ 0xfa - if_chr_unloaded TARGET_CHR, /*goto*/ 0xfa - label 0x13 - if_chr_distance_gt 400, /*goto*/ 0x0b - if_angle_to_target_chr_lt 15, /*goto*/ LABEL_PUNCH - cmd004f 240, /*goto*/ LABEL_PUNCH - if_timer_gt 60, /*goto*/ LABEL_PUNCH - endloop 0x04 - - label 0x13 - restart_timer - goto_first 0x0c - - label LABEL_PUNCH - dprint "PUNCH\n" - try_punch_or_kick /*goto*/ 0x13 - - // Unable to punch or kick for some reason - return to main loop - restart_timer - goto_first 0x0c - - label 0x13 - add_var_a 1 - if_chr_is_dead_maybe CHR_SELF, /*goto*/ 0x17 - goto_next 0x05 - - label 0x17 - restart_timer - say_quip CHR_JOANNA, 0x01, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 // "Open fire!","Wipe her out!","Waste her!" - - beginloop 0x05 - if_timer_gt 180, /*goto*/ 0x16 - if_chr_stopped /*goto*/ 0x16 - endloop 0x05 - - label 0x16 - if_chr_injured_target CHR_SELF, /*goto*/ 0x13 - dprint "PUNCHMISSED\n" - say_quip CHR_JOANNA, 0x16, 0x19, 0x03, 0x00, BANK_0, 0x00, 0x00 // Say random quip: "Damn, missed!","How did I miss?" - say_quip CHR_JOANNA, 0x17, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00 // "God sakes, someone hit her","She's a tricky one" - goto_next 0x16 - - label 0x13 - dprint "PUNCHHIT\n" - say_quip CHR_JOANNA, 0x15, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00 // Say random quip: "Give it up!","Surrender, now!","Take that!" - say_quip CHR_JOANNA, 0x15, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00 // "Give it up!","Surrender, now!","Take that!" - - label 0x16 - goto_next 0x0b - - label 0xfa - dprint "TARGET IS DYING\n" - - // Finished attack - label 0x0b - dprint "FUN HIT\n" - label 0x15 - if_self_flag_bankx_eq CHRFLAG1_PUNCH_THEN_GENERAL_COMBAT, TRUE, BANK_1, /*goto*/ 0x13 - dprint "RET HHIT\n" - label 0x17 - return - - label 0x13 - dprint "DET ENIT\n" - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - endfunction - -/** - * Used in Chicago, Air Base, and some other global functions. - * - * There is special logic for Chicago, where they don't care if you have a gun - * and say different things. - * - * The chr will make one comment, then it returns to the previous function. - */ -func0010_civilian_say_comment: - set_self_flag_bank3 CHRFLAG3_00040000 - set_onshot_function GFUNC_SURPRISED - label 0x0c - yield - dprint "LOOK FOR TARGET\n" - label 0x16 - restart_timer - dprint "FACE TARGET\n" - try_face_entity 0x0200, 0x0000, /*goto*/ 0x04 - - // Wait until facing target, or a second has passed, or something else - // happens such as hearing gunfire or seeing someone die. - beginloop 0x04 - if_shot_near_chr 0x01, /*goto*/ 0x83 - if_saw_death 0x01, /*goto*/ 0x83 - if_angle_to_target_chr_lt 10, /*goto*/ 0x13 - cmd004f 246, /*goto*/ 0x13 - if_timer_gt 60, /*goto*/ 0x13 - endloop 0x04 - - // Facing target - label 0x13 - if_stage_is_not STAGE_CHICAGO, /*goto*/ 0x16 - goto_next 0x0e - - // Not Chicago - label 0x16 - label 0x16 - set_self_flag_bankx CHRFLAG1_DISSPEE, BANK_1 - dprint "SET DISSPEE\n" - if_chr_weapon_equipped TARGET_CHR, WEAPON_NONE, /*goto*/ 0x07 - if_chr_weapon_equipped TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x07 - if_chr_weapon_equipped TARGET_CHR, WEAPON_COMBATBOOST, /*goto*/ 0x07 - if_chr_weapon_equipped TARGET_CHR, WEAPON_HORIZONSCANNER, /*goto*/ 0x07 - if_chr_weapon_equipped TARGET_CHR, WEAPON_SUITCASE, /*goto*/ 0x07 - goto_next 0x05 - - // Unarmed - label 0x07 - restart_timer - if_chr_flag_bank2 CHR_SELF, CHRFLAG2_01000000, /*goto*/ 0x13 - do_special_animation -1 - say_quip CHR_JOANNA, 0x1d, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00 // "How's things?","Hey there","Hi, how are you?" - yield - - // Set a do-once flag, so chr is only stopped the first time - dprint "RET\n" - if_self_flag_bankx_eq CHRFLAG1_DISSPEE, TRUE, BANK_1, /*goto*/ 0x13 - stop_chr - set_self_flag_bankx CHRFLAG1_DISSPEE, BANK_1 - - label 0x13 - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_01000000 - return - - // Armed - label 0x05 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_01000000, /*goto*/ 0x06 - set_chr_flag_bank2 TARGET_CHR, CHRFLAG2_01000000 - say_quip CHR_JOANNA, 0x1e, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00 // "Where did you get that?","Should you have that?","What are you doing with that weapon?" - do_special_animation 6 - restart_timer - - beginloop 0x08 - if_shot_near_chr 0x01, /*goto*/ 0x83 - if_saw_death 0x01, /*goto*/ 0x83 - if_timer_gt 180, /*goto*/ 0x16 - endloop 0x08 - - // Unreachable - return - - // Has chrflag2_01000000 - label 0x06 - if_chr_in_view /*goto*/ 0x13 - return - - label 0x13 - set_chr_flag_bank2 TARGET_CHR, CHRFLAG2_02000000 - dprint "DONT POINT\n" - say_quip CHR_JOANNA, 0x1f, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 // "Don't point that at me","Watch where you're pointing that" - do_special_animation -1 - restart_timer - - // Wait 3 seconds, or for see/hear gunfire - beginloop 0x09 - if_shot_near_chr 0x01, /*goto*/ 0x83 - if_saw_death 0x01, /*goto*/ 0x83 - if_timer_gt 180, /*goto*/ 0x16 - endloop 0x09 - - // Timer expired - label 0x16 - return - label 0x15 - - // Special Chicago logic - label 0x0e - call_rng - if_rand_gt 128, /*goto*/ 0x16 - dprint "B4TALK\n" - if_stage_is_not STAGE_CHICAGO, /*goto*/ 0x15 // will never pass - - // 50% chance of this happening - say_quip CHR_JOANNA, 0x16, 0xff, 0x00, 0xff, 0x81, 0x00, 0x00 - goto_next 0x13 - - // 50% chance of this happening - label 0x16 - say_quip CHR_JOANNA, 0x17, 0xff, 0x00, 0xff, 0x81, 0x00, 0x00 - label 0x13 - do_special_animation 3 - return - - // Not Chicago - label 0x15 - say_quip CHR_JOANNA, 0x22, 0xff, 0x00, 0xff, 0x81, 0x00, 0x00 - goto_next 0x13 - - label 0x16 - say_quip CHR_JOANNA, 0x23, 0xff, 0x00, 0xff, 0x81, 0x00, 0x00 - label 0x13 - do_special_animation 3 - return - - label 0x83 - set_alertness 100 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -/** - * This function is only used by civilians while they say comments...? - */ -func001c_surprised: - set_onshot_function GFUNC_ALERTED - set_group_alertness 100 - say_quip CHR_JOANNA, 0x0c, 0xff, 0x03, 0x00, BANK_0, 0x00, 0x00 // "Holy shh...","What the hell?!" - restart_timer - animation ANIM_SURPRISED_0202, 0, -1, 0x0010, CHR_SELF, 2 - - // Wait 1 second - beginloop 0x03 - dprint "S6" - if_timer_gt 60, /*goto*/ 0x77 - endloop 0x03 - - label 0x77 - set_function CHR_SELF, GFUNC_ALERTED - set_return_function CHR_SELF, GFUNC_ALERTED - endfunction - -func0011_flee_from_grenade: - set_action ACTION_FLEE_GRENADE, FALSE - dprint "NEAR DANGER\n" - run_from_grenade - say_quip CHR_JOANNA, 0x03, 0xff, 0x00, 0xff, BANK_0, 0x00, 0x00 // "Look out, look out!","It's a grenade!","Clear the area!" - restart_timer - - beginloop 0x0c - dprint "DANGER LOOP\n" - cmd013d_if_grenade_thrown_nearby_maybe ACTION_GRENADE_STOP, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - if_timer_gt 180, /*goto*/ 0x16 - endloop 0x0c - - label 0x16 - return - endfunction - -func001b_observe_camspy: - stop_chr - set_onshot_function GFUNC_ALERTED - unset_self_flag_bankx CHRFLAG1_DOINGIDLEANIMATION, BANK_1 - set_chr_special_death_animation CHR_SELF, NULL - set_follow_chr TARGET_CHR - - if_just_injured CHR_SELF, /*goto*/ 0x09 - dprint "EYE SPY\n" - - label 0x00 - set_target_chr FOLLOW_CHR - if_chr_distance_lt 300, /*goto*/ 0x13 - try_run_to_target_chr_with_hand_up /*goto*/ 0x0c - restart_timer - - beginloop 0x0c - if_timer_gt 60, /*goto*/ 0x0b - if_chr_distance_lt 300, /*goto*/ 0x13 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_player_looking_at_something_maybe 0x00, 0x00, 0x01, /*goto*/ 0x16 - if_target_chr_in_sight /*goto*/ 0x0b - label 0x16 - set_target_chr FOLLOW_CHR - endloop 0x0c - - // At camspy - label 0x13 - set_target_chr FOLLOW_CHR - restart_timer - try_face_entity 0x0200, 0x0000, /*goto*/ 0x03 - - // Wait 5 seconds. During this time: - // - If the camspy moves away, exit the loop and follow it - // - If the player comes into sight, return from the function - beginloop 0x03 - if_timer_gt 300, /*goto*/ 0x04 - if_chr_distance_gt 400, /*goto*/ 0x13 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_player_looking_at_something_maybe 0x00, 0x00, 0x01, /*goto*/ 0x16 - if_target_chr_in_sight /*goto*/ 0x0b - label 0x16 - set_target_chr FOLLOW_CHR - endloop 0x03 - - // Camspy moved away - follow it - label 0x13 - goto_first 0x00 - - // Timer expired - label 0x04 - do_special_animation -1 - say_quip CHR_JOANNA, 0x1c, 0xff, 0x00, 0xff, BANK_0, 0x00, 0x00 // "What the hell?","Hello there","What's this?" - - // Wait another 5 seconds with same logic as previous timer - beginloop 0x05 - if_chr_idle /*goto*/ 0x13 - if_timer_gt 300, /*goto*/ 0x06 - label 0x13 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_player_looking_at_something_maybe 0x00, 0x00, 0x01, /*goto*/ 0x16 - if_target_chr_in_sight /*goto*/ 0x0b - label 0x16 - set_target_chr FOLLOW_CHR - endloop 0x05 - - // Timer expired - label 0x06 - if_self_flag_bankx_eq CHRFLAG1_LONG_CAMSPY_OBSERVATION, FALSE, BANK_1, /*goto*/ 0xe8 - unset_self_flag_bankx CHRFLAG1_LONG_CAMSPY_OBSERVATION, BANK_1 - goto_first 0x00 - - // Player in sight while observing camspy - label 0x0b - return - - // Timer expired second time - label 0xe8 - say_quip CHR_JOANNA, 0x28, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 // "It's a spy!" - - // Shoot camspy - label 0x09 - set_self_flag_bank3 CHRFLAG3_00000040 - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x16 - label 0x16 - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0xc3 - - // Wait until shooting animation done - beginloop 0xc3 - if_chr_stopped /*goto*/ 0x16 - endloop 0xc3 - - label 0x16 - dprint "E1\n" - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x13 - if_chr_dying TARGET_CHR, /*goto*/ 0x13 - if_chr_unloaded TARGET_CHR, /*goto*/ 0x13 - - // Camspy still alive - dprint "E2\n" - if_chr_sees_player /*goto*/ 0x16 - dprint "E3\n" - goto_next 0x13 - - // Unreachable - no label - dprint "E4\n" - if_target_chrs_field_0x17e_is_different /*goto*/ 0x16 - dprint "E5\n" - goto_next 0x13 - - label 0x16 - dprint "E6\n" - if_chr_lost_track_of_target_maybe /*goto*/ 0x13 - dprint "E7\n" - goto_first 0x09 - - label 0x13 - set_target_chr CHR_JOANNA - dprint "E8\n" - set_self_flag_bankx CHRFLAG1_10000000, BANK_1 - set_function CHR_SELF, GFUNC_SEARCH_FOR_PLAYER - endfunction - -func001d_search_for_player: - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x13 - if_chr_dying CHR_SELF, /*goto*/ 0x13 - if_chr_unloaded CHR_SELF, /*goto*/ 0x13 - goto_next 0x16 - - // Dying - label 0x13 - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x16 - if_self_flag_bankx_eq CHRFLAG1_DOINGIDLEANIMATION, FALSE, BANK_1, /*goto*/ 0x13 - set_chr_special_death_animation CHR_SELF, NULL - label 0x13 - dprint "SEARCH ROOM\n" - set_chr_dodge_rating 2, 0x00 - label 0x00 - set_target_chr FOLLOW_CHR - set_self_flag_bankx CHRFLAG1_01000000, BANK_1 - if_self_flag_bankx_eq CHRFLAG1_10000000, TRUE, BANK_1, /*goto*/ 0x16 - set_chr_roomtosearch - if_chr_distance_gt 1000, /*goto*/ 0x13 - try_run_to_target_chr_with_hand_up /*goto*/ 0x03 - label 0x13 - try_run_to_target_chr /*goto*/ 0x03 - - beginloop 0x03 - dprint "SEARCHINIT\n" - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x12 - if_self_flag_bankx_eq CHRFLAG0_AIVSAI, FALSE, BANK_0, /*goto*/ 0x13 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0xc3 - label 0x13 - if_chr_in_room CHR_SELF, 0x01, 0x0001, /*goto*/ 0x16 - endloop 0x03 - - // Player is in the same room as self - label 0x16 - restart_timer - - beginloop 0x0a - dprint "POINT SRCH\n" - if_self_flag_bankx_eq CHRFLAG0_AIVSAI, FALSE, BANK_0, /*goto*/ 0x13 - if_self_flag_bankx_eq CHRFLAG1_00000400, TRUE, BANK_1, /*goto*/ 0x15 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0xc3 - goto_next 0x13 - - label 0x15 - if_enemy_distance_lt_and_los 100, /*goto*/ 0xc3 - label 0x13 - if_self_flag_bankx_eq CHRFLAG1_00000400, FALSE, BANK_1, /*goto*/ 0x13 - if_chr_distance_lt 500, /*goto*/ 0x13 - goto_next 0x05 - - label 0x13 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_player_looking_at_something_maybe 0x00, 0x00, 0x01, /*goto*/ 0x15 - if_target_chr_in_sight /*goto*/ 0x12 - label 0x15 - if_timer_gt 30, /*goto*/ 0x05 - endloop 0x0a - - label 0x05 - restart_timer - label 0x06 - if_chr_distance_lt 1000, /*goto*/ 0x13 - goto_first 0x00 - - label 0x13 - stop_chr - if_self_flag_bankx_eq CHRFLAG1_DONE_SEARCH_ANIM, TRUE, BANK_1, /*goto*/ 0x13 - call_rng - if_rand_gt 128, /*goto*/ 0x13 - call_rng - if_rand_lt 64, /*goto*/ 0x28 - if_rand_lt 128, /*goto*/ 0x29 - if_rand_lt 196, /*goto*/ 0x2a - set_self_flag_bankx CHRFLAG1_DONE_SEARCH_ANIM, BANK_1 - animation ANIM_LOOK_AROUND_025B, 0, -1, 0x100a, CHR_SELF, 2 - goto_next 0x04 - - label 0x28 - animation ANIM_LOOK_AROUND_025C, 0, -1, 0x100a, CHR_SELF, 2 - goto_next 0x04 - - label 0x29 - animation ANIM_LOOK_AROUND_025D, 0, -1, 0x100a, CHR_SELF, 2 - goto_next 0x04 - - label 0x2a - animation ANIM_LOOK_AROUND_025E, 0, -1, 0x100a, CHR_SELF, 2 - goto_next 0x04 - - label 0x13 - unset_self_flag_bankx CHRFLAG1_DONE_SEARCH_ANIM, BANK_1 - call_rng - if_rand_lt 64, /*goto*/ 0x28 - if_rand_lt 128, /*goto*/ 0x29 - if_rand_lt 196, /*goto*/ 0x2a - try_set_target_pad_to_something 0x08, /*goto*/ 0x13 - label 0x28 - try_set_target_pad_to_something 0x02, /*goto*/ 0x13 - label 0x29 - try_set_target_pad_to_something 0x04, /*goto*/ 0x13 - label 0x2a - try_set_target_pad_to_something 0x08, /*goto*/ 0x13 - goto_next 0x04 - - label 0x13 - go_to_target_pad SPEED_WALK - - beginloop 0x04 - dprint "WALK PAD\n" - if_self_flag_bankx_eq CHRFLAG0_AIVSAI, FALSE, BANK_0, /*goto*/ 0x13 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0xc3 - label 0x13 - if_self_flag_bankx_eq CHRFLAG1_00000400, FALSE, BANK_1, /*goto*/ 0x13 - if_chr_distance_lt 500, /*goto*/ 0x13 - label 0x13 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - dprint "1\n" - if_timer_gt 600, /*goto*/ 0x0b - dprint "1\n" - if_chr_stopped /*goto*/ 0x16 - dprint "1\n" - if_hears_gunfire /*goto*/ 0x12 - dprint "1\n" - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x12 - dprint "1\n" - if_near_miss /*goto*/ 0x12 - dprint "1\n" - if_self_flag_bankx_eq CHRFLAG1_00000400, FALSE, BANK_1, /*goto*/ 0x13 - if_chr_distance_gt 500, /*goto*/ 0x15 - label 0x13 - dprint "CHEK VIS\n" - if_player_looking_at_something_maybe 0x00, 0x00, 0x01, /*goto*/ 0x15 - if_target_chr_in_sight /*goto*/ 0x12 - label 0x15 - if_saw_death 0x00, /*goto*/ 0x28 - endloop 0x04 - - label 0x16 - goto_first 0x06 - - // Saw death? - label 0x28 - dprint "EYE SPY\n" - label 0x12 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - set_alertness 0 - set_return_function CHR_SELF, GFUNC_UNALERTED - set_function CHR_SELF, GFUNC_UNALERTED - - label 0x16 - set_alertness 100 - dprint "SEE PLAY\n" - if_self_flag_bankx_eq CHRFLAG1_00000400, FALSE, BANK_1, /*goto*/ 0x13 - say_quip CHR_JOANNA, 0x1b, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 - label 0x13 - set_function CHR_SELF, GFUNC_ALERTED - label 0x0b - say_quip CHR_JOANNA, 0x23, 0x32, 0x03, 0xff, BANK_0, 0x00, 0x00 - goto_first 0x05 - - label 0xc3 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - set_alertness 0 - set_return_function CHR_SELF, GFUNC_UNALERTED - set_function CHR_SELF, GFUNC_UNALERTED - - label 0x16 - set_return_function CHR_SELF, GFUNC_UNALERTED - set_onshot_function GFUNC_COMBAT_WITH_TARGET_CHR - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - endfunction - -func001f_related_to_spawning: - dprint "SEE PLAY\n" - if_chr_dying CHR_SELF, /*goto*/ 0x13 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x13 - if_chr_unloaded CHR_SELF, /*goto*/ 0x13 - goto_next 0x16 - - // Dying - label 0x13 - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x16 - set_return_function CHR_SELF, GFUNC_RELATED_TO_SPAWNING - set_target_chr CHR_P1P2 - set_onshot_function GFUNC_RELATED_TO_SPAWNING - if_num_times_shot_lt 1, /*goto*/ 0x1a // pointless check - label 0x1a - set_action ACTION_SCAN, TRUE - yield - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_alertness 100, OPERATOR_LESS_THAN, /*goto*/ 0x16 - goto_next 0x78 - - // Not alert - label 0x16 - if_saw_death 0x01, /*goto*/ 0x1e - if_shot_near_chr 0x01, /*goto*/ 0x1e - if_player_looking_at_something_maybe 0x00, 0x00, 0x01, /*goto*/ 0x16 - if_target_chr_in_sight /*goto*/ 0x1e - label 0x16 - if_self_flag_bankx_eq CHRFLAG0_AIVSAI, FALSE, BANK_0, /*goto*/ 0x16 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - goto_next 0x12 - - label 0x16 - if_near_miss /*goto*/ 0x1e - if_num_times_shot_gt 0, /*goto*/ 0x1e - if_self_flag_bankx_eq CHRFLAG0_NOHEAR, FALSE, BANK_0, /*goto*/ 0x16 - if_chr_sees_player /*goto*/ 0x16 - goto_next 0x13 - - label 0x16 - if_shot_at_close_range /*goto*/ 0x1f - label 0x13 - if_self_flag_bankx_eq CHRFLAG0_CAN_HEAR_ALARMS, FALSE, BANK_0, /*goto*/ 0x16 - if_alarm_active /*goto*/ 0x23 - label 0x16 - goto_first 0x1a - - label 0x1e - dprint "SEE DETECT\n" - say_quip CHR_JOANNA, 0x0b, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 - label 0x9f - set_group_alertness 100 - set_alertness 255 - set_return_function CHR_SELF, GFUNC_RELATED_TO_SPAWNING - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - - label 0x1f - yield - say_quip CHR_JOANNA, 0x09, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 - if_self_flag_bankx_eq CHRFLAG0_CAN_HEARSPAWN, TRUE, BANK_0, /*goto*/ 0xda - set_group_alertness 100 - set_return_function CHR_SELF, GFUNC_RELATED_TO_SPAWNING - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - - label 0xda - if_never_been_onscreen /*goto*/ 0x0e - set_return_function CHR_SELF, GFUNC_RELATED_TO_SPAWNING - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - - label 0x0e - if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x0e - if_chr_unloaded CHR_CLONE, /*goto*/ 0x0e - set_return_function CHR_SELF, GFUNC_RELATED_TO_SPAWNING - set_function CHR_SELF, GFUNC_RELATED_TO_SPAWNING - - label 0x0e - try_spawn_clone2 CHR_SELF, GFUNC_SEARCH_FOR_PLAYER, 0x00000000, /*goto*/ 0x13 - set_return_function CHR_SELF, GFUNC_RELATED_TO_SPAWNING - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - - label 0x13 - set_function CHR_SELF, GFUNC_RELATED_TO_SPAWNING - - // Alert - label 0x78 - if_self_flag_bankx_eq CHRFLAG0_CAN_HEARSPAWN, FALSE, BANK_0, /*goto*/ 0x13 - set_alertness 0 - goto_first 0xda - - label 0x13 - set_return_function CHR_SELF, GFUNC_RELATED_TO_SPAWNING - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - - label 0x12 - if_self_flag_bankx_eq CHRFLAG1_00100000, TRUE, BANK_1, /*goto*/ 0x13 - set_return_function CHR_SELF, GFUNC_RELATED_TO_SPAWNING - - label 0x13 - dprint "WARNEDBEND3\n" - set_return_function CHR_SELF, GFUNC_RELATED_TO_SPAWNING - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - endfunction - -/** - * Not used? - */ -func0012_init_coop_100: - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_00000400 - set_self_flag_bank3 CHRFLAG3_00040000 - set_chr_alliance CHR_SELF, ALLIANCE_ALLY - set_self_flag_bank3 CHRFLAG3_01000000 - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_PSYCHOSISED - set_alertness 100 - set_follow_chr CHR_JOANNA - yield - cmd0145_rebuild_groups - cmd0146_rebuild_groups - yield - yield - yield - yield - yield - yield - yield - yield - - // Wait for intro to finish - beginloop 0x03 - if_camera_animating /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - endloop 0x03 - - label 0x16 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_target_chr -1 - - // Set stage flag 00000080 for Air Force One and Skedar Ruins - if_stage_is_not STAGE_AIRFORCEONE, /*goto*/ 0x15 - set_stage_flag 0x00000080 - label 0x15 - - if_stage_is_not STAGE_SKEDARRUINS, /*goto*/ 0x15 - set_stage_flag 0x00000080 - label 0x15 - - // Uncloak - set_chr_cloaked CHR_SELF, FALSE, TRUE - - // Wait 2 seconds - restart_timer - - beginloop 0x04 - if_timer_gt 120, /*goto*/ 0x16 - endloop 0x04 - - label 0x16 - set_target_chr -1 - - // Set the flags again - if_stage_is_not STAGE_AIRFORCEONE, /*goto*/ 0x15 - set_stage_flag 0x00000080 - - label 0x15 - if_stage_is_not STAGE_SKEDARRUINS, /*goto*/ 0x15 - set_stage_flag 0x00000080 - - label 0x15 - set_function CHR_SELF, GFUNC_COOP_BUDDY - endfunction - -/** - * Similar to the previous function, but with minor differences. - * Alertness is 200 for example. - * - * Not used? - */ -func0013_init_coop_200: - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_00000400 - set_chr_alliance CHR_SELF, ALLIANCE_ALLY - set_self_flag_bank3 CHRFLAG3_00040000 - set_self_flag_bank3 CHRFLAG3_01000000 - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_PSYCHOSISED - set_alertness 200 - yield - yield - yield - yield - yield - yield - yield - yield - yield - set_self_flag_bank3 CHRFLAG3_00080000 - - // Wait for intro to finish - beginloop 0x03 - if_camera_animating /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - endloop 0x03 - - label 0x16 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_chr_cloaked CHR_SELF, FALSE, TRUE - - // Wait 2 seconds - restart_timer - - beginloop 0x04 - if_timer_gt 120, /*goto*/ 0x16 - endloop 0x04 - - label 0x16 - set_target_chr -1 - - // Set stage flag 00000080 for Air Force One and Skedar Ruins - if_stage_is_not STAGE_AIRFORCEONE, /*goto*/ 0x15 - set_stage_flag 0x00000080 - - label 0x15 - if_stage_is_not STAGE_SKEDARRUINS, /*goto*/ 0x15 - set_stage_flag 0x00000080 - - label 0x15 - set_function CHR_SELF, GFUNC_COOP_BUDDY - endfunction - -func0014_coop_buddy: - .set LABEL_PLACE_BUDDY, 0x0a - - set_return_function CHR_SELF, GFUNC_COOP_BUDDY - set_onshot_function GFUNC_COOP_BUDDY - dprint "BACK TO BUDDY\n" - unset_self_flag_bank3 CHRFLAG3_00040000 - set_self_flag_bankx CHRFLAG1_00100000, BANK_1 - set_var_a 0 - set_onshot_function GFUNC_COOP_BUDDY - set_target_chr CHR_JOANNA - if_chr_dying CHR_SELF, /*goto*/ 0x13 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x13 - if_chr_unloaded CHR_SELF, /*goto*/ 0x13 - goto_next 0x16 - - // Dying - label 0x13 - dprint "BUDDY DIE\n" - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x16 - if_just_injured CHR_SELF, /*goto*/ 0x13 - goto_next 0x16 - - // Injured - label 0x13 - say_quip CHR_JOANNA, 0x0e, 0xff, 0x14, 0xff, BANK_0, 0x00, 0x00 // "I'm hit, I'm hit!","I'm taking fire!","Taking damage!" - dprint "BUDDY WOUND\n" - - beginloop 0xf2 - if_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP, /*goto*/ 0x13 - unset_chr_flag_bank2 CHR_SELF, CHRFLAG2_BUDDY_PLACED - goto_next 0x15 - - label 0x13 - if_chr_flag_bank2 CHR_SELF, CHRFLAG2_BUDDY_PLACED, /*goto*/ 0x15 - goto_next LABEL_PLACE_BUDDY - - label 0x15 - if_chr_stopped /*goto*/ 0x16 - endloop 0xf2 - - // Healthy - label 0x16 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_08000000, /*goto*/ 0x13 - unset_self_flag_bankx CHRFLAG1_00000001, BANK_1 - goto_next 0x16 - - label 0x13 - set_self_flag_bankx CHRFLAG1_00000001, BANK_1 - label 0x16 - if_chr_flag_bank2 CHR_SELF, CHRFLAG2_00000400, /*goto*/ 0xdc - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x03 - label 0xdc - set_target_chr CHR_JOANNA - if_chr_distance_lt 200, /*goto*/ 0x16 - - // Start outer loop - label 0x00 - dprint "BUDDY GO TOWARDS\n" - set_target_chr CHR_JOANNA - restart_timer - if_chr_distance_gt 300, /*goto*/ 0x16 - try_run_to_target_chr_with_hand_up /*goto*/ 0x0c - label 0x16 - try_run_to_target_chr /*goto*/ 0x0c - - beginloop 0x0c - if_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP, /*goto*/ 0x13 - unset_chr_flag_bank2 CHR_SELF, CHRFLAG2_BUDDY_PLACED - goto_next 0x15 - - label 0x13 - if_chr_flag_bank2 CHR_SELF, CHRFLAG2_BUDDY_PLACED, /*goto*/ 0x15 - goto_next LABEL_PLACE_BUDDY - - label 0x15 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x06 - goto_next 0x07 - - label 0x06 - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_DISGUISED - label 0x07 - set_target_chr CHR_JOANNA - if_chr_sees_player /*goto*/ 0xdd - if_chr_flag_bank2 CHR_SELF, CHRFLAG2_00000400, /*goto*/ 0xdc - label 0xdd - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x03 - label 0xdc - set_target_chr CHR_JOANNA - if_chr_distance_lt 200, /*goto*/ 0x16 - if_timer_gt 60, /*goto*/ 0x13 - endloop 0x0c - - label 0x13 - goto_first 0x00 - - // Standing next to player - label 0x16 - dprint "BUDDY STAND\n" - stop_chr - - beginloop 0x04 - if_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP, /*goto*/ 0x13 - unset_chr_flag_bank2 CHR_SELF, CHRFLAG2_BUDDY_PLACED - goto_next 0x15 - - label 0x13 - if_chr_flag_bank2 CHR_SELF, CHRFLAG2_BUDDY_PLACED, /*goto*/ 0x15 - goto_next LABEL_PLACE_BUDDY - - label 0x15 - label 0x13 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x06 - goto_next 0x07 - - label 0x06 - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_DISGUISED - label 0x07 - if_chr_flag_bank2 CHR_SELF, CHRFLAG2_00000400, /*goto*/ 0xdc - if_stage_is_not STAGE_G5BUILDING, /*goto*/ 0x15 - goto_next 0x13 - - label 0x15 - if_stage_is_not STAGE_DEEPSEA, /*goto*/ 0x15 - goto_next 0x13 - - // Not G5 Building or Deep Sea - label 0x15 - cmd0127_try_find_chr_in_group /*goto*/ 0x0b - - // All stages - label 0x13 - label 0xdc - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x03 - set_target_chr CHR_JOANNA - if_chr_distance_gt 300, /*goto*/ 0x16 - endloop 0x04 - - label 0x16 - goto_first 0x00 - - label 0x03 - dprint "DETECTED\n" - call_rng - if_rand_lt 85, /*goto*/ 0xfa - if_rand_lt 170, /*goto*/ 0xf3 - say_quip CHR_JOANNA, 0x00, 0xff, 0x14, 0xff, BANK_0, 0x00, 0x00 // "I've got a clear shot","She's mine!" - goto_next 0x13 - - label 0xfa - say_quip CHR_JOANNA, 0x0b, 0xff, 0x14, 0xff, BANK_0, 0x00, 0x00 // "Hey, you!","Intruder alert","We've got a contact!" - goto_next 0x13 - - label 0xf3 - say_quip CHR_JOANNA, 0x15, 0xff, 0x14, 0xff, BANK_0, 0x00, 0x00 // "Give it up!","Surrender, now!","Take that!" - label 0x13 - - // Found chr in group from non G5 or Deep Sea stage - label 0x0b - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_08000000, /*goto*/ 0x13 - unset_self_flag_bankx CHRFLAG1_00000001, BANK_1 - goto_next 0x16 - - label 0x13 - set_self_flag_bankx CHRFLAG1_00000001, BANK_1 - label 0x16 - set_return_function CHR_SELF, GFUNC_COOP_BUDDY - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - - label LABEL_PLACE_BUDDY - set_function CHR_SELF, GFUNC_PLACE_COOP_BUDDY - endfunction - -/** - * Not used? - */ -func002b_do_something_and_wait: - cmd01c5 - - beginloop 0x03 - if_chr_stopped /*goto*/ 0x16 - endloop 0x03 - - label 0x16 - return - endfunction - -/** - * Not used. - */ -func0022_comment_on_player_dead: - set_aishootingatmel 0 - dprint "KILL\n" - stop_chr - - // Wait until player in sight. Which won't happen if the current chr is - // stopped and player is dying... - beginloop 0x0c - if_chr_sees_player /*goto*/ 0x16 - endloop 0x0c - - // Wait half a second - label 0x16 - restart_timer - - beginloop 0x03 - if_timer_gt 30, /*goto*/ 0x13 - endloop 0x03 - - // Roll the dice, and maybe wait another half second - label 0x13 - call_rng - if_rand_gt 25, /*goto*/ 0x16 - goto_first 0x03 - - label 0x16 - dprint "KILLEDER\n" - say_quip CHR_JOANNA, 0x26, 0xff, 0x02, 0x00, BANK_0, 0x00, 0x00 // "Grab a body bag","One for the morgue","Rest in peace" - say_quip CHR_JOANNA, 0x15, 0x80, 0x03, 0x01, BANK_0, 0x00, 0x00 // "Give it up!","Surrender, now!","Take that!" - - beginloop 0x04 - endloop 0x04 - - // Unreachable - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Do a sideways dodge, then assign GFUNC_ALERTED. - * - * Not used? - */ -func0023_dodge: - if_chr_dying CHR_SELF, /*goto*/ 0x16 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x16 - if_chr_unloaded CHR_SELF, /*goto*/ 0x16 - goto_next 0x13 - - // Dying - label 0x16 - set_aishootingatmel 0 - set_function CHR_SELF, GFUNC_IDLE - - label 0x13 - dprint "DODO\n" - set_self_flag_bankx CHRFLAG1_00020000, BANK_1 - - // 50% chance of hop vs jump - call_rng - if_rand_lt 128, /*goto*/ 0x2d - try_hop_sideways /*goto*/ 0x13 - goto_next 0x2e - - label 0x2d - try_jump_sideways /*goto*/ 0x13 - goto_next 0x2c - - // Unreachable - label 0xbb - cmd0139 25, 0x01, TRUE - goto_next 0x2c - - // Was able to start dodge - label 0x13 - - beginloop 0x2c - if_chr_stopped /*goto*/ 0x2e - endloop 0x2c - - // Unable to hop sideways, or follow-through from above - label 0x2e - set_self_flag_bankx CHRFLAG1_00020000, BANK_1 - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -/** - * This appears to be a function used to test something related to the co-op - * buddy and the intro cinema. The function expects the cutscene to finish and - * then start again several times. After this has happened, the co-op buddy is - * warped to the same pad every second. - * - * Not used. - */ -func0015_test_cutscene_buddy: - stop_chr - set_chr_cloaked CHR_SELF, TRUE, TRUE - - // Wait 1 second - restart_timer - - beginloop 0x03 - if_timer_gt 60, /*goto*/ 0x16 - endloop 0x03 - - // Hide chr - label 0x16 - cmd01e0 - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_HIDDEN | CHRFLAG3_00010000 | CHRFLAG3_00040000 - - // Wait 3 seconds - restart_timer - - beginloop 0x04 - if_timer_gt 180, /*goto*/ 0x16 - endloop 0x04 - - // Wait for intro to finish and for 1 second to have passed - // (in case intro was cut by player) - .macro wait_intro loopid - restart_timer - beginloop \loopid - if_camera_animating /*goto*/ 0x13 - if_timer_gt 60, /*goto*/ 0x16 - label 0x13 - endloop \loopid - label 0x16 - .endm - - label 0x16 - - wait_intro 0x05 - cmd01b4_if_something /*goto*/ 0x17 - - wait_intro 0x06 - cmd01b4_if_something /*goto*/ 0x17 - - wait_intro 0x07 - cmd01b4_if_something /*goto*/ 0x17 - - wait_intro 0x08 - cmd01b4_if_something /*goto*/ 0x17 - - wait_intro 0x09 - cmd01b4_if_something /*goto*/ 0x17 - - wait_intro 0x0a - cmd01b4_if_something /*goto*/ 0x17 - - label 0x19 - wait_intro 0x0b - - // This will execute every second after the initial 7ish seconds and while - // cutscene is not running. The chr is being moved back to the same pad - // repeatedly, so this is surely some kind of debug function. - set_chr_flag_bank2 CHR_SELF, 0x00100200 - chr_move_to_pad CHR_SELF, 0x00f8, 0x58, /*goto*/ 0x17 - goto_first 0x19 - - label 0x17 - unset_self_flag_bank3 0x00050400 - unset_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank2 CHR_SELF, 0x00100200 - set_chr_cloaked CHR_SELF, FALSE, TRUE - set_return_function CHR_SELF, GFUNC_COOP_BUDDY - set_onshot_function GFUNC_COOP_BUDDY - set_function CHR_SELF, GFUNC_COOP_BUDDY - endfunction - -/** - * Not used. - */ -func002c_init_search_unused: - set_self_flag_bankx CHRFLAG1_00000400, BANK_1 - set_self_flag_bankx CHRFLAG1_10000000, BANK_1 - set_function CHR_SELF, GFUNC_SEARCH_FOR_PLAYER - endfunction - -/** - * Not used. - */ -func0024_follow_joanna: - set_target_chr CHR_JOANNA - - label 0x03 - restart_timer - try_run_to_target_chr /*goto*/ 0x04 - - beginloop 0x04 - set_action ACTION_FOLLOW, FALSE - if_chr_distance_lt 200, /*goto*/ 0x16 - if_timer_gt 120, /*goto*/ 0x13 - if_chr_stopped /*goto*/ 0x13 - endloop 0x04 - - // Been running for 2 seconds, or stopped - label 0x13 - goto_first 0x03 - - // Within 200 units - label 0x16 - stop_chr - - // Wait here until 300 units away, then follow again - beginloop 0x05 - set_action ACTION_WAIT, FALSE - if_chr_distance_gt 300, /*goto*/ 0x16 - endloop 0x05 - - label 0x16 - goto_first 0x03 - - endfunction - -/** - * Not used. - */ -func0025_pointless: - // Wait until target chr is dead - beginloop 0x0c - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x03 - if_chr_dying TARGET_CHR, /*goto*/ 0x03 - endloop 0x0c - - // Wait 10 seconds - label 0x03 - restart_timer - - beginloop 0x04 - if_timer_gt 600, /*goto*/ 0x13 - endloop 0x04 - - // Continue waiting 10 seconds indefinitely - label 0x13 - goto_first 0x03 - - endfunction - -func0026_init_psychosis: - set_onshot_function GFUNC_INIT_PSYCHOSIS - set_chr_alliance CHR_SELF, 0x80 - set_self_flag_bankx CHRFLAG1_80000000, BANK_1 - set_self_flag_bank3 CHRFLAG3_00040000 - set_self_flag_bank3 CHRFLAG3_01000000 - set_self_flag_bankx CHRFLAG1_00100000, BANK_1 - set_self_flag_bankx CHRFLAG1_40000000, BANK_1 - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_PSYCHOSISED - set_alertness 100 - set_follow_chr CHR_JOANNA - yield - cmd0145_rebuild_groups - cmd0146_rebuild_groups - yield - yield - yield - yield - yield - yield - yield - yield - animation ANIM_BIG_SNEEZE, -1, -1, 0x1014, CHR_SELF, 2 - - // Wait for animation to finish - beginloop 0x03 - if_chr_stopped /*goto*/ 0x16 - endloop 0x03 - - // Become ally - label 0x16 - set_chr_alliance CHR_SELF, ALLIANCE_ALLY - cmd0145_rebuild_groups - cmd0146_rebuild_groups - - label 0x16 - set_target_chr -1 - set_function CHR_SELF, GFUNC_PSYCHOSISED - endfunction - -func0027_psychosised: - set_var_a 0 - set_onshot_function GFUNC_PSYCHOSISED - set_target_chr FOLLOW_CHR - if_chr_dying CHR_SELF, /*goto*/ 0x13 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x13 - if_chr_unloaded CHR_SELF, /*goto*/ 0x13 - goto_next 0x16 - - // Dying - label 0x13 - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x16 - if_just_injured CHR_SELF, /*goto*/ 0x13 - goto_next 0x16 - - // Injured - label 0x13 - say_quip CHR_JOANNA, 0x0e, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 // "I'm hit, I'm hit!","I'm taking fire!","Taking damage!" - - beginloop 0xf2 - if_chr_stopped /*goto*/ 0x16 - endloop 0xf2 - - // Healthy - label 0x16 - cmd0127_try_find_chr_in_group /*goto*/ 0x03 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x03 - set_target_chr FOLLOW_CHR - if_chr_distance_lt 200, /*goto*/ 0x16 - - // Following Joanna - label 0x00 - set_target_chr FOLLOW_CHR - restart_timer - if_chr_distance_gt 300, /*goto*/ 0x16 - try_run_to_target_chr_with_hand_up /*goto*/ 0x0c - label 0x16 - if_chr_distance_lt 200, /*goto*/ 0x16 - try_run_to_target_chr /*goto*/ 0x0c - - beginloop 0x0c - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x06 - goto_next 0x07 - - label 0x06 - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_DISGUISED - label 0x07 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x03 - set_target_chr FOLLOW_CHR - if_chr_distance_lt 200, /*goto*/ 0x16 - if_timer_gt 60, /*goto*/ 0x13 - endloop 0x0c - - label 0x13 - goto_first 0x00 - - // At Joanna - label 0x16 - stop_chr - - beginloop 0x04 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x06 - goto_next 0x07 - - label 0x06 - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_DISGUISED - label 0x07 - cmd0127_try_find_chr_in_group /*goto*/ 0x03 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x03 - set_target_chr FOLLOW_CHR - if_chr_distance_gt 300, /*goto*/ 0x16 - endloop 0x04 - - label 0x16 - goto_first 0x00 - - // Detected enemy - label 0x03 - call_rng - if_rand_lt 85, /*goto*/ 0xfa - if_rand_lt 170, /*goto*/ 0xf3 - - say_quip CHR_JOANNA, 0x00, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 // "I've got a clear shot","She's mine!" - goto_next 0x13 - - label 0xfa - say_quip CHR_JOANNA, 0x0b, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 // "Hey, you!","Intruder alert","We've got a contact!" - goto_next 0x13 - - label 0xf3 - say_quip CHR_JOANNA, 0x15, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 // "Give it up!","Surrender, now!","Take that!" - - label 0x13 - set_return_function CHR_SELF, GFUNC_PSYCHOSISED - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - endfunction - -func002d_invincible_and_idle: - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_UNEXPLODABLE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0020_place_coop_buddy: - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_00040000 - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_CLOAKED - stop_chr - set_target_chr CHR_JOANNA - yield - if_stage_is_not STAGE_DEEPSEA, /*goto*/ 0x15 - goto_next 0x16 - - // Not Deep Sea - label 0x15 - if_stage_is_not STAGE_AIRFORCEONE, /*goto*/ 0x15 - - // Deep Sea or Air Force One - label 0x16 - yield - yield - yield - yield - yield - - // Try to move chr to one of four pads until it works - label 0x03 - yield - try_set_target_pad_to_something2 0x01, /*goto*/ 0xfa - goto_next 0xf3 - - label 0xfa - chr_move_to_pad CHR_SELF, TARGET_PAD, 0x01, /*goto*/ 0x13 - label 0xf3 - try_set_target_pad_to_something2 0x02, /*goto*/ 0xfa - goto_next 0xf3 - - label 0xfa - chr_move_to_pad CHR_SELF, TARGET_PAD, 0x01, /*goto*/ 0x13 - label 0xf3 - try_set_target_pad_to_something2 0x04, /*goto*/ 0xfa - goto_next 0xf3 - - label 0xfa - chr_move_to_pad CHR_SELF, TARGET_PAD, 0x01, /*goto*/ 0x13 - label 0xf3 - try_set_target_pad_to_something2 0x08, /*goto*/ 0xfa - goto_next 0xf3 - - label 0xfa - chr_move_to_pad CHR_SELF, TARGET_PAD, 0x01, /*goto*/ 0x13 - label 0xf3 - goto_first 0x03 - - // Move to pad worked - label 0x13 - unset_self_flag_bank3 CHRFLAG3_HIDDEN - unset_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - stop_chr - set_chr_cloaked CHR_SELF, FALSE, TRUE - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_BUDDY_PLACED - set_return_function CHR_SELF, GFUNC_COOP_BUDDY - set_function CHR_SELF, GFUNC_COOP_BUDDY - - // Not Deep Sea nor Air Force One - label 0x15 - yield - yield - yield - yield - yield - stop_chr - if_stage_is_not STAGE_ATTACKSHIP, /*goto*/ 0x04 - - // Attack Ship - beginloop 0x05 - chr_move_to_pad CHR_SELF, 0x011f, 0x01, /*goto*/ 0x13 - chr_move_to_pad CHR_SELF, 0x0120, 0x01, /*goto*/ 0x13 - chr_move_to_pad CHR_SELF, 0x0121, 0x01, /*goto*/ 0x13 - chr_move_to_pad CHR_SELF, 0x0122, 0x01, /*goto*/ 0x13 - endloop 0x05 - - // Not Air Force One, Deep Sea or Attack Ship - beginloop 0x04 - chr_move_to_pad CHR_SELF, 0x0012, 0x01, /*goto*/ 0x13 - chr_move_to_pad CHR_SELF, 0x001a, 0x01, /*goto*/ 0x13 - chr_move_to_pad CHR_SELF, 0x0013, 0x01, /*goto*/ 0x13 - chr_move_to_pad CHR_SELF, 0x0019, 0x01, /*goto*/ 0x13 - endloop 0x04 - - // Move to pad worked - label 0x13 - stop_chr - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_00020000 - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_BUDDY_PLACED - - // Wait until flag unset (timer is not checked) - restart_timer - - beginloop 0xef - if_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - endloop 0xef - - // Unhide - label 0x16 - unset_self_flag_bank3 CHRFLAG3_HIDDEN - unset_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - stop_chr - set_chr_cloaked CHR_SELF, FALSE, TRUE - set_return_function CHR_SELF, GFUNC_COOP_BUDDY - set_function CHR_SELF, GFUNC_COOP_BUDDY - endfunction - -func0021_stop_and_idle: - set_onshot_function GFUNC_STOP_AND_IDLE - stop_chr - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Maybe used by multiplayer bots? - */ -func0029_ai_bot_init: - dprint "list: aibotinit" - set_chr_health CHR_SELF, 80 - set_reaction_speed 100 - set_return_function CHR_SELF, GFUNC_AI_BOT_ALIVE - - beginloop 0x19 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x13 - goto_next 0x16 - - label 0x13 - endloop 0x19 - - label 0x16 - set_function CHR_SELF, GFUNC_AI_BOT_ALIVE - endfunction - -func0028_ai_bot_dead: - dprint "list: aidead" - - beginloop 0x0d - cmd0176_if_something /*goto*/ 0x16 - endloop 0x0d - - label 0x16 - set_function CHR_SELF, GFUNC_AI_BOT_INIT - endfunction - -func002a_ai_bot_alive: - beginloop 0xf8 - if_chr_dying CHR_SELF, /*goto*/ 0xf9 - endloop 0xf8 - - label 0xf9 - set_function CHR_SELF, GFUNC_AI_BOT_DEAD - endfunction - -functions: - register_function func0000_idle 0x0000 - register_function func0001_unalerted_0001 0x0001 - register_function func0004_unalerted_0004 0x0004 - register_function func0003_stop_unalerted 0x0003 - register_function func0002_unalerted_0002 0x0002 - register_function func0005_end_cinema 0x0005 - register_function func0006_unalerted 0x0006 - register_function func0007_alerted 0x0007 - register_function func0008_wakeup 0x0008 - register_function func000a_do_idle_animation 0x000a - register_function func000b_choose_target_chr 0x000b - register_function func000c_combat_with_target_chr 0x000c - register_function func000d_init_combat 0x000d - register_function func000e_see_then_attack 0x000e - register_function func0016_show_objective_failed_msg 0x0016 - register_function func0017_rebuild_groups 0x0017 - register_function func0018_do_bored_animation 0x0018 - register_function func0019_do_sitting_animation 0x0019 - register_function func0000_idle_0009 0x0009 - register_function func001a_maybe_unset_disspee 0x001a - register_function func000f_hand_combat 0x000f - register_function func0010_civilian_say_comment 0x0010 - register_function func0011_flee_from_grenade 0x0011 - register_function func001b_observe_camspy 0x001b - register_function func0020_place_coop_buddy 0x0020 - register_function func0012_init_coop_100 0x0012 - register_function func0013_init_coop_200 0x0013 - register_function func0014_coop_buddy 0x0014 - register_function func001d_search_for_player 0x001d - register_function func001e_look_around 0x001e - register_function func001f_related_to_spawning 0x001f - register_function func001c_surprised 0x001c - register_function func0022_comment_on_player_dead 0x0022 - register_function func0023_dodge 0x0023 - register_function func002c_init_search_unused 0x002c - register_function func0024_follow_joanna 0x0024 - register_function func0025_pointless 0x0025 - register_function func0026_init_psychosis 0x0026 - register_function func0027_psychosised 0x0027 - register_function func002d_invincible_and_idle 0x002d - register_function func0021_stop_and_idle 0x0021 - register_function func0015_test_cutscene_buddy 0x0015 - register_function func0028_ai_bot_dead 0x0028 - register_function func0029_ai_bot_init 0x0029 - register_function func002a_ai_bot_alive 0x002a - register_function func002b_do_something_and_wait 0x002b - endfunctions - -.align 4 diff --git a/asm/include/commands.inc b/asm/include/commands.inc deleted file mode 100644 index a10f7f6c0..000000000 --- a/asm/include/commands.inc +++ /dev/null @@ -1,2214 +0,0 @@ -# vi: ft=asm - -.macro register_function label id - .word \label - .word \id -.endm - -.macro endfunctions - .word 0 - .word 0 -.endm - -// ---BEGIN-COMMANDS--- - -.macro goto_next label - .short 0x0000 - .byte \label -.endm - -.macro goto_first label - .short 0x0001 - .byte \label -.endm - -.macro label id - .short 0x0002 - .byte \id -.endm - -.macro yield - .short 0x0003 -.endm - -.macro endfunction - .short 0x0004 - .align 2 -.endm - -.macro set_function chr function - .short 0x0005 - .byte \chr - .short \function -.endm - -.macro set_return_function chr function - .short 0x0006 - .byte \chr - .short \function -.endm - -.macro set_onshot_function function - .short 0x0007 - .short \function -.endm - -.macro return - .short 0x0008 -.endm - -.macro stop_chr - .short 0x0009 -.endm - -.macro kneel - .short 0x000a -.endm - -.macro animation animation unknown1 unknown2 unknown3 chr animspeed - .short 0x000b - .short \animation - .short \unknown1 - .short \unknown2 - .short \unknown3 - .byte \chr - .byte \animspeed -.endm - -.macro if_chr_idle label - .short 0x000c - .byte \label -.endm - -.macro try_jump_sideways label - .short 0x000f - .byte \label -.endm - -.macro try_hop_sideways label - .short 0x0010 - .byte \label -.endm - -.macro try_run_sideways label - .short 0x0011 - .byte \label -.endm - -.macro try_walk_and_shoot label - .short 0x0012 - .byte \label -.endm - -.macro try_roll_and_shoot label - .short 0x0014 - .byte \label -.endm - -.macro try_aim_and_shoot_thing1 u1 u2 label - .short 0x0015 - .short \u1 - .short \u2 - .byte \label -.endm - -.macro try_chr_kneel_and_shoot_thing u1 u2 label - .short 0x0016 - .short \u1 - .short \u2 - .byte \label -.endm - -.macro try_aim_and_shoot_thing2 u1 u2 label - .short 0x0017 - .short \u1 - .short \u2 - .byte \label -.endm - -// Suspected types: -// Type 0004 = no idea -// Type 0008 = pad -// Type 0010 = compass direction (0000, 4000, 8000, c000) -// Type 0200 = player -.macro try_face_entity entity_type entity_id label - .short 0x0018 - .short \entity_type - .short \entity_id - .byte \label -.endm - -.macro damage_chr chr value - .short 0x0019 - .byte \chr - .byte 0x08 - .byte \value - .byte 0x00 - .byte 0x00 - .byte 0x00 -.endm - -.macro chr_shoot_chr chr1 chr2 weapon - .short 0x001a - .byte \chr1 - .byte \chr2 - .byte \weapon -.endm - -// Only ever called with values 512, 0 -.macro consider_throwing_grenade value_1 value_2 label - .short 0x001b - .short \value_1 - .short \value_2 - .byte \label -.endm - -.macro jog_to_pad pad - .short 0x001d - .short \pad -.endm - -.macro go_to_target_pad speed - .short 0x001e - .byte \speed -.endm - -.macro walk_to_pad pad - .short 0x001f - .short \pad -.endm - -.macro run_to_pad pad - .short 0x0020 - .short \pad -.endm - -.macro assign_path pathid - .short 0x0021 - .byte \pathid -.endm - -.macro start_path - .short 0x0022 -.endm - -.macro if_path_started label - .short 0x0023 - .byte \label -.endm - -.macro surrender - .short 0x0024 -.endm - -.macro drop_gun_and_fade_out - .short 0x0025 -.endm - -.macro remove_chr chr - .short 0x0026 - .byte \chr -.endm - -.macro activate_alarm - .short 0x0028 -.endm - -.macro deactivate_alarm - .short 0x0029 -.endm - -.macro try_run_to_target_chr_with_hand_up label - .short 0x002b - .byte \label -.endm - -.macro try_walk_to_target_chr label - .short 0x002c - .byte \label -.endm - -.macro try_run_to_target_chr label - .short 0x002d - .byte \label -.endm - -.macro chr_try_run_to_target_chr_with_hand_up chr label - .short 0x002f - .byte \chr - .byte \label -.endm - -.macro try_run_to_chr chr label - .short 0x0031 - .byte \chr - .byte \label -.endm - -.macro if_chr_stopped label - .short 0x0032 - .byte \label -.endm - -.macro if_chr_dying chr label - .short 0x0033 - .byte \chr - .byte \label -.endm - -.macro if_chr_death_animation_finished chr label - .short 0x0034 - .byte \chr - .byte \label -.endm - -.macro if_target_chr_in_sight label - .short 0x0035 - .byte \label -.endm - -.macro call_rng - .short 0x0036 -.endm - -.macro if_rand_lt value label - .short 0x0037 - .byte \value - .byte \label -.endm - -.macro if_rand_gt value label - .short 0x0038 - .byte \value - .byte \label -.endm - -.macro if_alarm_active2 label - .short 0x0039 - .byte \label -.endm - -.macro if_alarm_active label - .short 0x003a - .byte \label -.endm - -.macro if_hears_gunfire label - .short 0x003c - .byte \label -.endm - -.macro if_shot_near_chr u1 label - .short 0x003d - .byte \u1 - .byte \label -.endm - -.macro if_saw_death u1 label - .short 0x003e - .byte \u1 - .byte \label -.endm - -.macro if_chr_sees_player label - .short 0x003f - .byte \label -.endm - -.macro if_within_units_of_sight value label - .short 0x0041 - .word \value - .byte \label -.endm - -.macro if_shot_at_close_range label - .short 0x0044 - .byte \label -.endm - -.macro if_detected_chr chr label - .short 0x0045 - .byte \chr - .byte \label -.endm - -.macro if_never_been_onscreen label - .short 0x0046 - .byte \label -.endm - -.macro if_bitcheck_in_position_struct label - .short 0x0047 - .byte \label -.endm - -// Used by CIA guards in chicago -.macro cmd0049 u1 label - .short 0x0049 - .short \u1 - .byte \label -.endm - -.macro if_chr_in_view label - .short 0x004a - .byte \label -.endm - -.macro if_near_miss label - .short 0x004b - .byte \label -.endm - -.macro if_dying label - .short 0x004c - .byte \label -.endm - -.macro if_angle_to_target_chr_lt value label - .short 0x004d - .byte \value - .byte \label -.endm - -// Either bool1 or bool2 are set - never none or both -// When bool1 is set, u1 is populated -// When bool2 is set, u1 is 0 (likely unused) -.macro if_player_looking_at_something_maybe u1 bool1 bool2 label - .short 0x004e - .byte \u1 - .byte \bool1 - .byte \bool2 - .byte \label -.endm - -// If given value * some global / 256 is less than some value derived from the current chr -// Used by skedar before they do hand combat or pounce -.macro cmd004f value label - .short 0x004f - .byte \value - .byte \label -.endm - -// The value is multiplied by a variable at 0x7f1a9364 -.macro if_distance_to_target_chr_lt value label - .short 0x0050 - .byte \value - .byte \label -.endm - -.macro if_chr_distance_lt distance label - .short 0x0052 - .short \distance / 10 - .byte \label -.endm - -.macro if_chr_distance_gt distance label - .short 0x0053 - .short \distance / 10 - .byte \label -.endm - -.macro if_chr_distance_to_pad_lt chr distance pad label - .short 0x0054 - .byte \chr - .short \distance / 10 - .short \pad - .byte \label -.endm - -.macro if_chr_distance_to_pad_gt chr distance pad label - .short 0x0055 - .byte \chr - .short \distance / 10 - .short \pad - .byte \label -.endm - -.macro if_self_distance_to_chr_lt distance chr label - .short 0x0056 - .short \distance / 10 - .byte \chr - .byte \label -.endm - -.macro if_chr_distance_to_target_chr_gt distance chr label - .short 0x0057 - .short \distance / 10 - .byte \chr - .byte \label -.endm - -.macro if_distance_to_pad_gt2 distance pad label - .short 0x0059 - .short \distance / 10 - .short \pad - .byte \label -.endm - -// type 0 = if in -// type 1 = if in same room as self -// type 2 = if 's camspy in -.macro if_chr_in_room chr type room label - .short 0x005b - .byte \chr - .byte \type - .short \room - .byte \label -.endm - -.macro if_chr_has_object chr object label - .short 0x005d - .byte \chr - .byte \object - .byte \label -.endm - -.macro if_weapon_thrown weapon label - .short 0x005e - .byte \weapon - .byte \label -.endm - -.macro if_weapon_thrown_on_object weapon object label - .short 0x005f - .byte \weapon - .byte \object - .byte \label -.endm - -.macro if_chr_weapon_equipped chr weapon label - .short 0x0060 - .byte \chr - .byte \weapon - .byte \label -.endm - -// If behavior is zero, go to label if object exists. -// If behavior is nonzero, do something related to the current chr and ignore -// the object parameter. -// In practice this is always called with object = -1 and behavior = 1. -.macro if_gun_unclaimed object behavior label - .short 0x0061 - .byte \object - .byte \behavior - .byte \label -.endm - -.macro if_object_in_good_condition object label - .short 0x0062 - .byte \object - .byte \label -.endm - -.macro if_chr_activated_object chr object label - .short 0x0063 - .byte \chr - .byte \object - .byte \label -.endm - -.macro destroy_object object - .short 0x0066 - .byte \object -.endm - -.macro drop_concealed_items chr - .short 0x0068 - .byte \chr -.endm - -.macro chr_drop_weapon chr - .short 0x0069 - .byte \chr -.endm - -.macro give_object_to_chr object chr - .short 0x006a - .byte \object - .byte \chr -.endm - -.macro move_object_to_pad object pad - .short 0x006b - .byte \object - .short \pad -.endm - -.macro open_door door - .short 0x006c - .byte \door -.endm - -.macro close_door door - .short 0x006d - .byte \door -.endm - -.macro if_door_state door doorstate label - .short 0x006e - .byte \door - .byte \doorstate - .byte \label -.endm - -.macro lock_door door bits - .short 0x0070 - .byte \door - .byte \bits -.endm - -.macro unlock_door door bits - .short 0x0071 - .byte \door - .byte \bits -.endm - -.macro if_door_locked door bits label - .short 0x0072 - .byte \door - .byte \bits - .byte \label -.endm - -.macro if_objective_complete objective label - .short 0x0073 - .byte \objective - .byte \label -.endm - -.macro if_objective_failed objective label - .short 0x0074 - .byte \objective - .byte \label -.endm - -// This is only ever called in a sequence of 4, with u1 values 8, 2, 4, 8 in -// that order. Believed to be a pad within specific distance of target chr, -// where the higher the number the further the distance. -// If u1 were 0x10 or 0x20, some other logic would be used. -.macro try_set_target_pad_to_something u1 label - .short 0x0075 - .byte \u1 - .byte \label -.endm - -// Only ever called with values 1, 2, 4 and 8. The value is related to circles, -// perhaps specifying a certain side of the target chr. -// If u1 were 0x10 or 0x20, some other logic would be used (same as previous). -.macro try_set_target_pad_to_something2 u1 label - .short 0x0076 - .byte \u1 - .byte \label -.endm - -.macro if_difficulty_lt diff label - .short 0x0077 - .byte \diff - .byte \label -.endm - -.macro if_difficulty_gt diff label - .short 0x0078 - .byte \diff - .byte \label -.endm - -.macro if_stage_lt stage label - .short 0x007b - .byte \stage - .byte \label -.endm - -.macro if_stage_gt stage label - .short 0x007c - .byte \stage - .byte \label -.endm - -.macro if_num_times_shot_lt value label - .short 0x007d - .byte \value - .byte \label -.endm - -.macro if_num_times_shot_gt value label - .short 0x007e - .byte \value - .byte \label -.endm - -// Checks chr bank 3 0x00000100. If set, unsets it and follows label. -.macro if_just_injured chr label - .short 0x0083 - .byte \chr - .byte \label -.endm - -.macro set_var_a value - .short 0x0084 - .byte \value -.endm - -.macro add_var_a value - .short 0x0085 - .byte \value -.endm - -.macro subtract_var_a value - .short 0x0087 - .byte \value -.endm - -.macro if_var_a_lt value label - .short 0x0088 - .byte \value - .byte \label -.endm - -.macro set_alertness value - .short 0x008a - .byte \value -.endm - -.macro increase_self_alertness value - .short 0x008b - .byte \value -.endm - -.macro increase_chr_alertness value chr - .short 0x008c - .byte \value - .byte \chr -.endm - -.macro if_alertness value operator label - .short 0x008e - .byte \value - .byte \operator - .byte \label -.endm - -.macro if_chr_alertness_lt value chr label - .short 0x008f - .byte \value - .byte \chr - .byte \label -.endm - -// Set their hear distance to value divided by 1000. -// Only ever called with distance = 10,000, so it gets set to 10. -.macro set_hear_distance value - .short 0x0092 - .short \value -.endm - -.macro set_view_distance value - .short 0x0093 - .byte \value -.endm - -.macro set_grenade_probability_out_of_255 value - .short 0x0094 - .byte \value -.endm - -.macro set_chr_id newid - .short 0x0095 - .byte \newid -.endm - -.macro set_chr_health chr value - .short 0x0096 - .byte \chr - .short \value -.endm - -.macro set_armor value - .short 0x0097 - .short \value -.endm - -.macro set_reaction_speed value - .short 0x0098 - .byte \value -.endm - -.macro set_recovery_speed value - .short 0x0099 - .byte \value -.endm - -.macro set_accuracy value - .short 0x009a - .byte \value -.endm - -.macro set_self_flag_bankx flag bank - .short 0x009b - .word \flag - .byte \bank -.endm - -.macro unset_self_flag_bankx flag bank - .short 0x009c - .word \flag - .byte \bank -.endm - -.macro if_self_flag_bankx_eq props bool bank label - .short 0x009d - .word \props - .byte \bool - .byte \bank - .byte \label -.endm - -.macro set_chr_flag_bankx chr props bank - .short 0x009e - .byte \chr - .word \props - .byte \bank -.endm - -.macro unset_chr_flag_bankx chr flag bank - .short 0x009f - .byte \chr - .word \flag - .byte \bank -.endm - -.macro if_chr_flag_bankx chr flag bank label - .short 0x00a0 - .byte \chr - .word \flag - .byte \bank - .byte \label -.endm - -.macro set_stage_flag stageflag - .short 0x00a1 - .word \stageflag -.endm - -.macro unset_stage_flag stageflag - .short 0x00a2 - .word \stageflag -.endm - -.macro if_stage_flag_eq stageflag bool label - .short 0x00a3 - .word \stageflag - .byte \bool - .byte \label -.endm - -.macro set_self_flag_bank3 chrflag3 - .short 0x00a4 - .word \chrflag3 -.endm - -.macro unset_self_flag_bank3 chrflag3 - .short 0x00a5 - .word \chrflag3 -.endm - -.macro if_self_flag_bank3 chrflag3 label - .short 0x00a6 - .word \chrflag3 - .byte \label -.endm - -.macro set_chr_flag_bank3 chr chrflag3 - .short 0x00a7 - .byte \chr - .word \chrflag3 -.endm - -.macro unset_chr_flag_bank3 chr chrflag3 - .short 0x00a8 - .byte \chr - .word \chrflag3 -.endm - -.macro if_chr_flag_bank3 chr chrflag3 label - .short 0x00a9 - .byte \chr - .word \chrflag3 - .byte \label -.endm - -.macro set_object_flag_bank0 object objectflag0 - .short 0x00aa - .byte \object - .word \objectflag0 -.endm - -.macro unset_object_flag_bank0 object objectflag0 - .short 0x00ab - .byte \object - .word \objectflag0 -.endm - -.macro set_object_flag_bank1 object objectflag1 - .short 0x00ad - .byte \object - .word \objectflag1 -.endm - -.macro unset_object_flag_bank1 object objectflag1 - .short 0x00ae - .byte \object - .word \objectflag1 -.endm - -.macro if_object_flag_bank1 object objectflag1 label - .short 0x00af - .byte \object - .word \objectflag1 - .byte \label -.endm - -.macro set_follow_chr chr - .short 0x00b0 - .byte \chr -.endm - -.macro set_chr_target_chr chr target - .short 0x00b1 - .byte \chr - .byte \target -.endm - -.macro set_target_pad pad - .short 0x00b2 - .short \pad -.endm - -.macro dprint str - .short 0x00b5 - .ascii "\str" - .byte 0 -.endm - -.macro restart_timer - .short 0x00b6 -.endm - -.macro reset_timer - .short 0x00b7 -.endm - -.macro pause_timer - .short 0x00b8 -.endm - -.macro resume_timer - .short 0x00b9 -.endm - -.macro if_timer_gt value label - .short 0x00bd - .byte 0x00 - .short \value - .byte \label -.endm - -.macro if_timer_lt value label - .short 0x00bc - .byte 0x00 - .short \value - .byte \label -.endm - -.macro show_countdown_timer - .short 0x00be -.endm - -.macro hide_countdown_timer - .short 0x00bf -.endm - -.macro set_countdown_timer seconds - .short 0x00c0 - .short \seconds -.endm - -.macro stop_countdown_timer - .short 0x00c1 -.endm - -.macro start_countdown_timer - .short 0x00c2 -.endm - -.macro if_countdown_timer_lt value label - .short 0x00c4 - .short \value - .byte \label -.endm - -.macro if_countdown_timer_gt value label - .short 0x00c5 - .short \value - .byte \label -.endm - -.macro try_spawn_chr body head pad function props label - .short 0x00c6 - .byte \body - .byte \head - .short \pad - .short \function - .word \props - .byte \label -.endm - -.macro try_spawn_clone body head u1 function props label - .short 0x00c7 - .byte \body - .byte \head - .byte \u1 - .short \function - .word \props - .byte \label -.endm - -.macro try_draw_weapon model weapon u1 label - .short 0x00c8 - .short \model - .byte \weapon - .word \u1 - .byte \label -.endm - -.macro try_spawn_clone2 chr function u1 label - .short 0x00ca - .byte \chr - .short \function - .word \u1 - .byte \label -.endm - -.macro message chr text - .short 0x00cb - .byte \chr - .short \text -.endm - -.macro display_text_top_middle chr text color - .short 0x00cc - .byte \chr - .short \text - .byte \color -.endm - -.macro speak chr text sound channel color - .short 0x00cd - .byte \chr - .short \text - .short \sound - .byte \channel - .byte \color -.endm - -.macro play_sound id channel - .short 0x00ce - .short \id - .byte \channel -.endm - -.macro control_sound_from_object channel object bool - .short 0x00cf - .byte \channel - .byte \object - .byte 0x00 - .byte \bool -.endm - -.macro play_sound_from_pad pad sound - .short 0x00d0 - .byte 0x00 - .short \pad - .short \sound -.endm - -.macro mute_channel channel - .short 0x00d3 - .byte \channel -.endm - -.macro begin_hovercar_path path - .short 0x00d5 - .byte \path -.endm - -.macro set_vehicle_speed speed num_accel_frames - .short 0x00d6 - .short \speed - .short \num_accel_frames -.endm - -.macro set_rotor_speed speed u1 u2 - .short 0x00d7 - .short \speed - .byte \u1 - .byte \u2 -.endm - -.macro set_object_image object slot image - .short 0x00da - .byte \object - .byte \slot - .byte \image -.endm - -.macro end_level - .short 0x00dc -.endm - -.macro enter_firstperson - .short 0x00dd -.endm - -.macro enter_camera_and_move_to_pad pad - .short 0x00de - .short \pad -.endm - -.macro revoke_control chr value - .short 0x00e0 - .byte \chr - .byte \value -.endm - -.macro grant_control chr - .short 0x00e1 - .byte \chr -.endm - -.macro chr_move_to_pad chr pad unknown label - .short 0x00e2 - .byte \chr - .short \pad - .byte \unknown - .byte \label -.endm - -.macro open_door2 door - .short 0x00e8 - .byte \door -.endm - -// Reads 4 global values and counts how many are nonzero. -// If number of nonzeroes is less than given value, goto label. -// Only ever called with value = 2 -.macro if_num_human_players_lt value label - .short 0x00ea - .byte \value - .byte \label -.endm - -.macro if_ammo_quantity_lt chr ammotype value label - .short 0x00eb - .byte \chr - .byte \ammotype - .byte \value - .byte \label -.endm - -.macro chr_draw_weapon chr weapon - .short 0x00ec - .byte \chr - .byte \weapon -.endm - -.macro chr_draw_weapon_in_cutscene chr weapon - .short 0x00ed - .byte \chr - .byte \weapon -.endm - -.macro if_object_in_room object room label - .short 0x00ef - .byte \object - .short \room - .byte \label -.endm - -.macro set_invincible chr - .short 0x00f3 - .byte \chr -.endm - -.macro if_all_objectives_complete label - .short 0x00f7 - .byte \label -.endm - -.macro play_x_music channel seconds - .short 0x00f9 - .byte 0x01 - .byte \channel - .byte \seconds -.endm - -.macro stop_music_channel channel - .short 0x00fa - .byte \channel -.endm - -.macro explosions_around_chr chr - .short 0x00fb - .byte \chr -.endm - -.macro if_kill_count_gt value label - .short 0x00fc - .byte \value - .byte \label -.endm - -.macro set_lights_state room u1 u2 u3 u4 - .short 0x0102 - .short \room - .byte \u1 - .byte \u2 - .byte \u3 - .byte \u4 - .byte 0x00 - .byte 0x00 - .byte 0x00 -.endm - -.macro set_target_chr chr - .short 0x0106 - .byte \chr - .short 0 -.endm - -.macro if_target_chrs_field_0x17e_is_different label - .short 0x0107 - .byte \label -.endm - -// Used only in globals.s with CHR_SELF, CHR_P1P2, FALSE -.macro cmd0108_if_something chr1 chr2 bool label - .short 0x0108 - .byte \chr1 - .byte \chr2 - .byte \bool - .byte \label -.endm - -.macro set_chr_alliance chr alliance - .short 0x010b - .byte \chr - .byte \alliance -.endm - -.macro set_shield value - .short 0x010e - .short \value -.endm - -.macro if_chr_shield_lt chr value label - .short 0x010f - .byte \chr - .short \value - .byte \label -.endm - -.macro camera_movement animation - .short 0x0111 - .short \animation -.endm - -.macro object_do_animation u1 object u2 u3 - .short 0x0112 - .short \u1 - .byte \object - .short \u2 - .byte \u3 -.endm - -.macro if_camera_animating label - .short 0x0113 - .byte \label -.endm - -.macro show_chr chr - .short 0x0114 - .byte \chr -.endm - -.macro hide_chr chr - .short 0x0115 - .byte \chr -.endm - -.macro show_object object - .short 0x0116 - .byte \object -.endm - -.macro hide_object object - .short 0x0117 - .byte \object -.endm - -.macro set_object_flag_bank2 object objectflag2 - .short 0x0118 - .byte \object - .word \objectflag2 -.endm - -.macro unset_object_flag_bank2 object objectflag2 - .short 0x0119 - .byte \object - .word \objectflag2 -.endm - -.macro if_object_flag_bank2 object objectflag2 label - .short 0x011a - .byte \object - .word \objectflag2 - .byte \label -.endm - -.macro set_chr_flag_bank2 chr chrflag2 - .short 0x011b - .byte \chr - .word \chrflag2 -.endm - -.macro unset_chr_flag_bank2 chr chrflag2 - .short 0x011c - .byte \chr - .word \chrflag2 -.endm - -.macro if_chr_flag_bank2 chr chrflag2 label - .short 0x011d - .byte \chr - .word \chrflag2 - .byte \label -.endm - -// This is definitely wrong -.macro if_chr_is_dead_maybe chr label - .short 0x011f - .byte \chr - .byte \label -.endm - -// Tries to find an chr in the group who meets certain criteria. For each -// chr, a score is calculated based on several fchrs, such as whether -// they've been shot. If any chr in the group has a score lower than the given -// value, the condition passes. -.macro if_retreat_risk_lt value label - .short 0x0120 - .byte \value - .byte \label -.endm - -// If cover exists nearby -.macro cmd0121_if_something u1 label - .short 0x0121 - .short \u1 - .byte \label -.endm - -.macro cmd0124_run_for_cover_maybe action - .short 0x0124 - .byte \action -.endm - -// Related to command 012f -// globals.s only -.macro cmd0125_if_or_try_something label - .short 0x0125 - .byte \label -.endm - -// Looks at the first element in some struct array, -// and checks if field 0x640 is nonzero. -// globals.s only -.macro cmd0126_if_something label - .short 0x0126 - .byte \label -.endm - -// Tries to find an chr in the group who meets some criteria, the stores them -// in the current chr's struct at 0x17e. -// globals.s only -.macro cmd0127_try_find_chr_in_group label - .short 0x0127 - .byte \label -.endm - -// Check if there's an enemy within the range and sight, then sets the -// target chr field to that enemy -.macro if_enemy_distance_lt_and_los distance label - .short 0x0128 - .byte \distance / 10 - .byte \label -.endm - -// If value is nonzero then it's an chr ID. If zero then use current chr. -// This means chr ID 0 cannot be used. In practice, this command is only -// called once and it has value 0. -.macro if_something_hypotenuse value label - .short 0x012a - .byte \value - .byte \label -.endm - -// Checks if the chr is within 50 units of something -.macro if_something_chicago_robot label - .short 0x012b - .byte \label -.endm - -// Does some math on chr's bdlist, possibly involving square roots. -// If result is > 50, goto label -.macro if_distance_to_home_gt_50_maybe label - .short 0x012c - .byte \label -.endm - -// If chr field 0x292 > 0, call some function. -// Involves some global array at 0x800a2360 -// globals.s only -.macro cmd012f - .short 0x012f -.endm - -.macro say_quip chr u1 index u2 u3 bank u4 channel - .short 0x0130 - .byte \chr - .byte \u1 - .byte \index - .byte \u2 - .byte \u3 - .byte \bank - .byte \u4 - .byte \channel -.endm - -.macro set_group_alertness value - .short 0x0131 - .byte \value -.endm - -// Sets chr's field_0x2a0 to value. If bool is false, also sets 0x2a1 to zero. -.macro set_action value bool - .short 0x0132 - .byte \value - .byte \bool -.endm - -// Set next action (0x2a1)? -.macro cmd0133 action label - .short 0x0133 - .byte \action - .byte \label -.endm - -.macro if_field_0x2a1_eq action label - .short 0x0134 - .byte 0xfd - .byte \action - .byte \label -.endm - -.macro if_field_0x2a1_nonzero label - .short 0x0135 - .byte \label -.endm - -// u1 can theoretically be any value but in practice is only ever 2. -// u2 can be either 0, 1 or 2 and determines what the command does, -// but in practice is only ever 1 or 2. -.macro retreat u1 u2 - .short 0x0136 - .byte \u1 - .byte \u2 -.endm - -.macro if_any_chr_doing_action action label - .short 0x0137 - .byte \action - .byte \label -.endm - -.macro if_sound_finished channel label - .short 0x0138 - .byte \channel - .byte \label -.endm - -// value is either 25, 70 or 335. -// u1 is either 1 or 2. -// It seems related to the chr's position properties -// Used by G5 cloaked guards, Deep Sea cloaked purple guards and globals.s -// I think this is related to flanking, where the value arg is the angle -// relative to the player's direction. 335 is the same as 25 degress to the -// right (360 - 25). -.macro cmd0139 value u1 bool - .short 0x0139 - .word \value - .byte \u1 - .byte \bool -.endm - -.macro try_target_chr_in_same_group label - .short 0x013a - .short 0x0000 - .byte \label -.endm - -.macro set_group id - .short 0x013b - .byte \id -.endm - -// Value is only ever 3. The function checks bits 0x01 and 0x02 to decide what -// to do, so in all cases it does both paths. -// globals.s only -.macro cmd013d_if_grenade_thrown_nearby_maybe value label - .short 0x013d - .byte \value - .byte \label -.endm - -.macro run_from_grenade - .short 0x013e -.endm - -.macro if_hoverbot_path_finished u1 u2 label - .short 0x0140 - .byte \u1 - .byte \u2 - .byte \label -.endm - -.macro shuffle_investigation_terminals dst1 dst2 src1 src2 src3 src4 - .short 0x0141 - .byte \dst1 - .byte \dst2 - .byte \src1 - .byte \src2 - .byte \src3 - .byte \src4 - .byte 0x00 -.endm - -.macro jog_to_object object - .short 0x0142 - .byte \object - .byte 0x00 -.endm - -// Related to hovercopter and Infiltration interceptors -// Sets player struct's field_0x2e to 1/true. -.macro cmd0143 - .short 0x0143 -.endm - -.macro cmd0145_rebuild_groups - .short 0x0145 -.endm - -.macro cmd0146_rebuild_groups - .short 0x0146 -.endm - -.macro if_all_chrs_in_group_are_dead group label - .short 0x0147 - .byte \group - .byte \label -.endm - -.macro if_num_chrs_in_group_gt value group label - .short 0x0152 - .byte \value - .byte \group - .byte \label -.endm - -.macro set_tinted_glass_enabled bool - .short 0x0157 - .byte \bool -.endm - -.macro play_music_track id - .short 0x015b - .byte \id -.endm - -.macro restart_music - .short 0x015c -.endm - -.macro if_chr_injured_target chr label - .short 0x0165 - .byte \chr - .byte \label -.endm - -.macro hovercopter_fire_rocket side - .short 0x0167 - .byte \side -.endm - -// If flag is set, unsets it and goes to label -.macro try_unset_chr_flag_bank3_02000000 chr label - .short 0x0168 - .byte \chr - .byte \label -.endm - -.macro if_chr_idle_action_eq action label - .short 0x0169 - .byte \action - .byte \label -.endm - -.macro if_chr_y chr value operator label - .short 0x016a - .byte \chr - .short \value - .byte \operator - .byte \label -.endm - -.macro play_sound_from_object channel object sound u1 - .short 0x016b - .byte \channel - .byte \object - .short 0x0001 - .short \sound - .short \u1 -.endm - -.macro noop016c - .short 0x016c -.endm - -.macro add_motion_blur chr value bool - .short 0x016d - .byte \chr - .byte \value - .byte \bool -.endm - -.macro damage_chr2 chr value - .short 0x016e - .byte \chr - .short \value -.endm - -// Likely related to being disarmed. -// Not sure what this does if the chr had no gun to begin with. -.macro if_has_gun chr label - .short 0x016f - .byte \chr - .byte 0x00 - .byte \label -.endm - -// If bool is false, run some function on the chr and their gun ground -// position, then follow the label. -// If bool is true, don't call the function, and only follow the label if field -// 0x4 in the gun ground position struct is less than 64. -.macro if_gun_landed bool label - .short 0x0170 - .byte \bool - .byte \label -.endm - -.macro if_distance_to_target_position_lt distance label - .short 0x0171 - .short \distance / 10 - .byte \label -.endm - -// Makes gun disappear from the ground and gives it to the chr -// (when a guard drops their gun and picks it up) -.macro chr_recover_gun chr label - .short 0x0172 - .byte \chr - .byte \label -.endm - -.macro try_inherit_properties chr_src label - .short 0x0173 - .byte \chr_src - .byte \label -.endm - -.macro if_controller_button_pressed label - .short 0x0174 - .byte \label -.endm - -// Used in cutscenes before giving control to Jo -// Value is always 60 -// Without this command, or with a 0 value, Jo faces a different direction -.macro cmd0175 u1 - .short 0x0175 - .byte \u1 -.endm - -// Points to a non-command function...? -// globals.s only -.macro cmd0176_if_something label - .short 0x0176 - .byte \label -.endm - -.macro force_walk chr pad unknown1 unknown2 - .short 0x0177 - .byte \chr - .short \pad - .short \unknown1 - .short \unknown2 -.endm - -.macro if_force_walk_finished chr label - .short 0x0178 - .byte \chr - .byte \label -.endm - -.macro play_sound_from_entity channel entity_id u1 u2 entity_type - .short 0x0179 - .byte \channel - .byte \entity_id - .short 0x0001 - .short \u1 - .short \u2 - .byte \entity_type -.endm - -// Suspected to be named incorrectly. Global functions suggests this checks if -// the chr can see the player. -.macro if_in_disarm_range label - .short 0x017a - .byte \label -.endm - -.macro if_chr_unloaded chr label - .short 0x017b - .byte \chr - .byte \label -.endm - -.macro assign_sound sound channel - .short 0x017c - .short \sound - .byte \channel -.endm - -.macro set_music_track id - .short 0x017d - .byte \id -.endm - -.macro restart_default_music - .short 0x017e -.endm - -.macro set_sfx_track id - .short 0x017f - .byte \id -.endm - -.macro reset_ambience - .short 0x0180 -.endm - -.macro if_chr_looking_at_object chr object label - .short 0x0181 - .byte \chr - .byte \object - .byte \label -.endm - -.macro try_punch_or_kick label - .short 0x0182 - .byte 0x00 - .byte \label -.endm - -// Related to chr fields 0x17e and 0x32e -// In practice, scripts will assign function unalerted guard if this passes -.macro if_chr_lost_track_of_target_maybe label - .short 0x0183 - .byte \label -.endm - -// Involves a call to the RNG, and zeroing chr fields aimendlshoulder, -// aimendrshoulder, aimendback and amendsideback. -// -// Called with values: -// 0x5a64 (23140) -// 0x283c (10300) -// 0x141e (5150) -// -// Used by: -// Attack Ship - Bridge skedar (with 0x283c) -// Ruins - Reaper and Slayer skedar (with 0x283c) -// globals.s - with values 0x5a64 and 0x141e -// -// Sometimes accompanied with dprint "FIRE FULL" -.macro cmd0184 u1 - .short 0x0184 - .short \u1 -.endm - -// The rom address for this command is not a valid function entry...? -.macro cmd0185_mponly - .short 0x0185 -.endm - -.macro if_chr_soundtimer value operator label - .short 0x0186 - .short \value - .byte \operator - .byte \label -.endm - -.macro if_chr_sees_camspy_maybe label - .short 0x0187 - .byte \label -.endm - -.macro if_lift_stationary lift label - .short 0x0188 - .byte \lift - .byte \label -.endm - -.macro enable_rain value - .short 0x018b - .byte \value -.endm - -.macro remove_cass_necklace chr - .short 0x018c - .byte \chr - .byte 0x07 -.endm - -.macro activate_lift liftid object - .short 0x018d - .byte \liftid - .byte \object -.endm - -.macro miniskedar_try_pounce u1 u2 label - .short 0x018e - .byte \u1 - .short \u2 - .byte 0x00 - .byte \label -.endm - -.macro if_object_distance_to_pad_lt object distance pad label - .short 0x018f - .byte \object - .short \distance / 10 - .short \pad - .byte \label -.endm - -.macro set_eeprom_flag eeprom_flag - .short 0x0190 - .byte \eeprom_flag -.endm - -.macro unset_eeprom_flag eeprom_flag - .short 0x0191 - .byte \eeprom_flag -.endm - -.macro if_eeprom_flag_is_set eeprom_flag label - .short 0x0192 - .byte \eeprom_flag - .byte \label -.endm - -.macro if_eeprom_flag_is_unset eeprom_flag label - .short 0x0193 - .byte \eeprom_flag - .byte \label -.endm - -.macro if_object_health_lt object value label - .short 0x019e - .byte \object - .short \value - .byte \label -.endm - -.macro set_object_health object value - .short 0x019f - .byte \object - .short \value -.endm - -.macro set_chr_special_death_animation chr animation - .short 0x01a0 - .byte \chr - .byte \animation -.endm - -// Copies the room from the chr's position struct into the chr struct itself -.macro set_chr_roomtosearch - .short 0x01a1 -.endm - -.macro play_chr_specific_quip bank channel - .short 0x01a2 - .byte \bank - .byte \channel -.endm - -.macro do_special_animation value - .short 0x01a3 - .byte \value -.endm - -.macro display_text position color text - .short 0x01a4 - .byte \position - .byte \color - .short \text -.endm - -.macro if_chr_propsoundcount_zero chr label - .short 0x01a7 - .byte \chr - .byte \label -.endm - -.macro if_num_subdued value operator label - .short 0x01ab - .byte \value - .byte 1 - \operator - .byte \label -.endm - -.macro release_grabbed_object chr - .short 0x01ad - .byte \chr -.endm - -.macro clear_inventory chr - .short 0x01ae - .byte \chr -.endm - -.macro grab_object chr object - .short 0x01af - .byte \chr - .byte \object -.endm - -.macro shuffle_ruins_pillars pdst1 pdst2 pdst3 psrc1 psrc2 psrc3 psrc4 psrc5 mdst1 mdst2 mdst3 msrc1 msrc2 msrc3 msrc4 msrc5 - .short 0x01b1 - .byte \pdst1 - .byte \pdst2 - .byte \pdst3 - .byte \psrc1 - .byte \psrc2 - .byte \psrc3 - .byte \psrc4 - .byte \psrc5 - .byte \mdst1 - .byte \mdst2 - .byte \mdst3 - .byte \msrc1 - .byte \msrc2 - .byte \msrc3 - .byte \msrc4 - .byte \msrc5 -.endm - -// This just does: -// addr8007db84 = addr7f1a9da4 * value -// In practice, value is 8, 11, 15, 20, 22 and 130, -// though some of these setup files are probably not used. -.macro cmd01b2_mponly value - .short 0x01b2 - .byte \value -.endm - -.macro consider_coop_for_p1p2_chr chr - .short 0x01b3 - .byte \chr -.endm - -.macro cmd01b4_if_something label - .short 0x01b4 - .byte \label -.endm - -.macro enable_snow bool - .short 0x01b6 - .byte \bool -.endm - -// bool_unknown determines whether to call some function on the chr afterwards -.macro set_chr_cloaked chr bool_enable bool_unknown - .short 0x01b7 - .byte \chr - .byte \bool_enable - .byte \bool_unknown -.endm - -.macro set_autoturret_type object type - .short 0x01b8 - .byte \object - .byte \type -.endm - -.macro shuffle_pelagic_switches - .short 0x01b9 -.endm - -.macro cmd01ba u1 u2 label - .short 0x01ba - .short \u1 - .short \u2 - .byte \label -.endm - -.macro if_training_pc_holographed label - .short 0x01bd - .byte \label -.endm - -.macro if_chr_has_weapon_equipped chr weapon label - .short 0x01be - .byte \chr - .byte \weapon - .byte \label -.endm - -.macro teleport_to_pad pad chr - .short 0x01bf - .short \pad - .byte \chr -.endm - -.macro if_teleport_full_white label chr - .short 0x01c0 - .byte \label - .byte \chr -.endm - -.macro set_aishootingatmel value - .short 0x01c2 - .short \value -.endm - -// Sets a function in the chr's struct. Likely a callback of some sort, such as -// the onshot function. -.macro set_unknown_function function - .short 0x01c3 - .short \function -.endm - -// Calls some function on the chr. Possibly related to geometry, because it -// works with values such as 45 and 360. -.macro cmd01c5 - .short 0x01c5 -.endm - -// Sets a field in the chr struct -// If whichprop is 0, set dodgerating -// If whichprop is 1, set maxdodgerating -// If whichprop is 2, set both -.macro set_chr_dodge_rating value whichprop - .short 0x01c6 - .byte \value - .byte \whichprop -.endm - -.macro set_unarmeddodgerating value - .short 0x01c7 - .byte \value -.endm - -// Only used in test levels. Value can be 0-4. -// Looks up the index in a pointer array and calls the function at the pointer. -// If passed a value > 4, sets 800624b8 to -1. -// Related to cmd01c9 -.macro cmd01c8 value - .short 0x01c8 - .byte \value -.endm - -// Test levels only. Checks if value at 800624b8 is >= 0. -// If so, runs some function and goes to label. -// Related to cmd01c8. -.macro cmd01c9 label - .short 0x01c9 - .byte \label -.endm - -.macro set_cutscene_weapon chr weapon weapon_fallback - .short 0x01ca - .byte \chr - .byte \weapon - .byte \weapon_fallback -.endm - -.macro fade_to_color rgba num_frames - .short 0x01cb - .word \rgba - .short \num_frames -.endm - -.macro set_chr_hud_visible chr bool - .short 0x01cd - .byte \chr - .byte \bool -.endm - -// If enabled, Jo cannot use weapons or even the "unarmed" weapon -.macro passive_mode bool - .short 0x01ce - .byte \bool -.endm - -.macro set_chr_shooting_in_cutscene chr bool - .short 0x01cf - .byte \chr - .byte \bool -.endm - -.macro set_portal_flag portal flag - .short 0x01d0 - .short \portal - .byte \flag -.endm - -.macro set_object_part_visible object bool - .short 0x01d1 - .byte \object - .byte 0xb7 - .byte \bool -.endm - -.macro emit_sparks chr - .short 0x01d2 - .byte \chr -.endm - -.macro set_drcaroll_image chr left right - .short 0x01d3 - .byte \chr - .byte \left - .byte \right -.endm - -.macro configure_room_portals room - .short 0x01d4 - .short \room - .short 0x0800 -.endm - -.macro show_nonessential_chrs bool - .short 0x01d5 - .byte \bool -.endm - -.macro set_lighting room operation unknown - .short 0x01d6 - .short \room - .byte \operation - .byte \unknown -.endm - -.macro play_sound_from_object2 channel object sound u1 u2 - .short 0x01d9 - .byte \channel - .byte \object - .short \sound - .short 0xffff - .byte \u1 - .byte 0x00 - .byte \u2 -.endm - -// Only called in AF1 with param 0x35. -// Calls some functions and stores the value at 80840c8. -.macro cmd01da u1 - .short 0x01da - .byte \u1 -.endm - -.macro kill chr - .short 0x01db - .byte \chr -.endm - -.macro remove_weapon_from_inventory weapon - .short 0x01dc - .byte \weapon -.endm - -// Only used to trigger the Defection intro. -// Calls a bunch of functions outside of the main game binary object and then -// goes to label if 800840c4 is 0. -.macro cmd01dd_if_something u1 label - .short 0x01dd - .byte \u1 - .byte \label -.endm - -.macro if_chr_distance_to_pad_lt2 chr pad distance label - .short 0x01df - .byte \chr - .short \pad - .short \distance / 10 - .byte \label -.endm - -.macro if_coop_mode label - .short 0x01de - .byte \label -.endm - -// Something to do with the chr's position struct -.macro cmd01e0 - .short 0x01e0 -.endm - -// ---END-COMMANDS--- - -.macro beginloop id - label \id - yield -.endm - -.macro endloop id - goto_first \id -.endm - -.macro reloop id - goto_first \id -.endm - -.macro remove_displayed_text - display_text 0x02, 0, 0x0002 -.endm - -.macro if_stage_is_not stage label - if_stage_lt \stage \label - if_stage_gt \stage \label -.endm - diff --git a/asm/include/constants.inc b/asm/include/constants.inc deleted file mode 100644 index 3d5d8fc33..000000000 --- a/asm/include/constants.inc +++ /dev/null @@ -1,1392 +0,0 @@ -.set NULL, 0 -.set FALSE, 0 -.set TRUE, 1 - -.set ACTION_SCAN, 0x01 -.set ACTION_UNDER_COVER, 0x02 -.set ACTION_GRENADE_STOP, 0x03 -.set ACTION_WAIT, 0x04 -.set ACTION_GO_TO_COVER, 0x05 -.set ACTION_BREAKING_COVER, 0x06 -.set ACTION_SEE_COVER, 0x07 -.set ACTION_FLANK_LEFT, 0x08 -.set ACTION_FLANK_RIGHT, 0x09 -.set ACTION_DODGE, 0x0a -.set ACTION_THROW_GRENADE, 0x0b -.set ACTION_SEEWAIT, 0x0c -.set ACTION_BACKOFF, 0x0d -.set ACTION_SYNC_SHOOT, 0x0e -.set ACTION_16, 0x10 // unknown -.set ACTION_FOLLOW, 0x12 -.set ACTION_RETREAT, 0x13 -.set ACTION_SURRENDER, 0x14 -.set ACTION_COWER, 0x15 -.set ACTION_WARN_OTHERS, 0x17 -.set ACTION_RUN_AWAY, 0x1f -.set ACTION_FLEE_GRENADE, 0x20 -.set ACTION_HAND_COMBAT, 0x21 -.set ACTION_FACING_TARGET, 0x35 -.set ACTION_HAND_COMBAT_SKEDAR, 0x36 - -.set ALLIANCE_ENEMY, 0x02 -.set ALLIANCE_ALLY, 0x10 - -.set AMMOTYPE_PISTOL, 0x01 -.set AMMOTYPE_SMG, 0x02 -.set AMMOTYPE_CROSSBOW, 0x03 -.set AMMOTYPE_RIFLE, 0x04 -.set AMMOTYPE_SHOTGUN, 0x05 -.set AMMOTYPE_FARSIGHT, 0x06 -.set AMMOTYPE_GRENADE, 0x07 -.set AMMOTYPE_ROCKET, 0x08 -.set AMMOTYPE_KNIFE, 0x09 -.set AMMOTYPE_MAGNUM, 0x0a -.set AMMOTYPE_DEVASTATOR, 0x0b -.set AMMOTYPE_REMOTE_MINE, 0x0c -.set AMMOTYPE_PROXY_MINE, 0x0d -.set AMMOTYPE_TIMED_MINE, 0x0e -.set AMMOTYPE_REAPER, 0x0f -# 0x10 -# 0x11 -.set AMMOTYPE_NBOMB, 0x12 -.set AMMOTYPE_SEDATIVE, 0x13 -.set AMMOTYPE_CLOAK, 0x14 -.set AMMOTYPE_BOOST, 0x15 -.set AMMOTYPE_PSYCHOSIS, 0x16 -# 0x17 -.set AMMOTYPE_BUG, 0x18 -# 0x19 -.set AMMOTYPE_ECM_MINE, 0x20 - -.set BANK_0, 0 -.set BANK_1, 1 -.set BANK_2, 2 -.set BANK_3, 3 - -.set CHANNEL_0, 0 -.set CHANNEL_1, 1 -.set CHANNEL_2, 2 -.set CHANNEL_3, 3 -.set CHANNEL_4, 4 -.set CHANNEL_5, 5 -.set CHANNEL_6, 6 -.set CHANNEL_7, 7 -.set CHANNEL_8, 8 -.set CHANNEL_9, 9 -.set CHANNEL_10, 10 - -.set CHR_P1P2, 0xf2 -.set CHR_F3, 0xf3 -.set CHR_COUNTEROP, 0xf4 -.set CHR_VELVET, 0xf5 -.set TARGET_CHR, 0xf6 -.set CHR_JOANNA, 0xf8 -.set CHR_CLONE, 0xf9 -.set CHR_FRIEND, 0xfb // when seeing friend die -.set FOLLOW_CHR, 0xfc -.set CHR_SELF, 0xfd - -// Character flags - bank 0 (chr struct offset 0x114) -.set CHRFLAG0_CANT_ALERT_GROUP, 0x00000001 // Don't set group alertness when becoming aware -.set CHRFLAG0_00000002, 0x00000002 // Not used in scripts -.set CHRFLAG0_00000004, 0x00000004 // Can search for player when heard? -.set CHRFLAG0_CAN_EXAMINE_BODY, 0x00000008 -.set CHRFLAG0_00000010, 0x00000010 // Globals, Skedar Ruins -.set CHRFLAG0_SAID_INJURY_QUIP, 0x00000020 -.set CHRFLAG0_00000040, 0x00000040 // Globals - related to cover? -.set CHRFLAG0_00000080, 0x00000080 // Globals, Chicago, Air Base -.set CHRFLAG0_CAN_BACKOFF, 0x00000100 -.set CHRFLAG0_CAN_RETREAT, 0x00000200 -.set CHRFLAG0_UNSURPRISABLE, 0x00000400 // may also be "can uncover disguise" -.set CHRFLAG0_CAN_THROW_GRENADES, 0x00000800 -.set CHRFLAG0_CAN_FLANK, 0x00001000 -.set CHRFLAG0_00002000, 0x00002000 // Used quite a lot -.set CHRFLAG0_00004000, 0x00004000 // Patroller - if set, overrides the 00002000 flag (interprets 00002000 as off) -.set CHRFLAG0_00008000, 0x00008000 // Something to do with breaking cover or grenades? -.set CHRFLAG0_AIVSAI, 0x00010000 -.set CHRFLAG0_CAN_TRAP, 0x00020000 -.set CHRFLAG0_CAN_RUN_FOR_ALARM, 0x00040000 -.set CHRFLAG0_00080000, 0x00080000 // Air Force One: a "spawn done" flag -.set CHRFLAG0_00100000, 0x00100000 // Become alert when hearing player and never on screen -.set CHRFLAG0_00200000, 0x00200000 // Globals, Villa hostage takers -.set CHRFLAG0_00400000, 0x00400000 // Not used in scripts -.set CHRFLAG0_CAN_HEAR_ALARMS, 0x00800000 -.set CHRFLAG0_01000000, 0x01000000 // Globals -.set CHRFLAG0_02000000, 0x02000000 // Globals - set when ambushing -.set CHRFLAG0_04000000, 0x04000000 // If set, chr can't follow player (ie. stays)? -.set CHRFLAG0_08000000, 0x08000000 // Globals, Villa, Infiltration, Pelagic -.set CHRFLAG0_10000000, 0x10000000 // If set, "IM GOING TO POP" -.set CHRFLAG0_CAN_HEARSPAWN, 0x20000000 -.set CHRFLAG0_NOHEAR, 0x40000000 // Globals, Villa -.set CHRFLAG0_80000000, 0x80000000 // Globals, Villa, Chicago, CI Training - -// Character flags - bank 1 (chr struct offset 0x118) -.set CHRFLAG1_00000001, 0x00000001 // Globals, Extraction, Air Base, Deep Sea -.set CHRFLAG1_00000002, 0x00000002 // Globals -.set CHRFLAG1_00000004, 0x00000004 // Globals - If set, avoids cmd0184 -.set CHRFLAG1_00000008, 0x00000008 // Only used in WAR. If set, chr waits 2 seconds before attacking while defending -.set CHRFLAG1_00000010, 0x00000010 // Globals - If set, avoids cmd0184 -.set CHRFLAG1_00000020, 0x00000020 // Globals, AF1, Defense - related to reload animation -.set CHRFLAG1_CAN_SNIPE, 0x00000040 -.set CHRFLAG1_00000080, 0x00000080 // Not used in scripts -.set CHRFLAG1_DOINGIDLEANIMATION, 0x00000100 -.set CHRFLAG1_WARNED, 0x00000200 -.set CHRFLAG1_00000400, 0x00000400 // Globals -.set CHRFLAG1_00000800, 0x00000800 // Globals - related to punch damage -.set CHRFLAG1_00001000, 0x00001000 // Globals, Chicago, Infiltration -.set CHRFLAG1_00002000, 0x00002000 // Globals - triggers grenade throw -.set CHRFLAG1_00004000, 0x00004000 // Globals - related to cover -.set CHRFLAG1_LONG_CAMSPY_OBSERVATION, 0x00008000 -.set CHRFLAG1_00010000, 0x00010000 // Globals - if set, prevents setting of chrflag0_00100000 -.set CHRFLAG1_00020000, 0x00020000 // Globals -.set CHRFLAG1_00040000, 0x00040000 // Globals - seems related to 00020000 -.set CHRFLAG1_00080000, 0x00080000 // Set in many places, read in globals and AF1 -.set CHRFLAG1_00100000, 0x00100000 // Globals -.set CHRFLAG1_00200000, 0x00200000 // Deep Sea (Elvis) -.set CHRFLAG1_PUNCH_THEN_GENERAL_COMBAT, 0x00400000 // If unset, return after punching. If set, assign general combat -.set CHRFLAG1_DONE_SEARCH_ANIM, 0x00800000 -.set CHRFLAG1_01000000, 0x01000000 // Can search for player when heard? -.set CHRFLAG1_02000000, 0x02000000 // Globals -.set CHRFLAG1_CAN_LOOK_AROUND, 0x04000000 -.set CHRFLAG1_DISSPEE, 0x08000000 -.set CHRFLAG1_10000000, 0x10000000 // Some kind of param for searching -.set CHRFLAG1_CAN_DRAW_PISTOL, 0x20000000 -.set CHRFLAG1_40000000, 0x40000000 // Globals -.set CHRFLAG1_80000000, 0x80000000 // Globals - -// Character flags - bank 2 (chr struct offset 0x14) -.set CHRFLAG2_00000001, 0x00000001 // Not used in scripts - sunglasses? -.set CHRFLAG2_00000002, 0x00000002 // Not used in scripts -.set CHRFLAG2_00000004, 0x00000004 // Not used in scripts -.set CHRFLAG2_00000008, 0x00000008 // Not used in scripts -.set CHRFLAG2_00000010, 0x00000010 // Not used in scripts -.set CHRFLAG2_00000020, 0x00000020 // Not used in scripts -.set CHRFLAG2_00000040, 0x00000040 // Not used in scripts -.set CHRFLAG2_00000080, 0x00000080 // Not used in scripts -.set CHRFLAG2_00000100, 0x00000100 // Not used in scripts -.set CHRFLAG2_00000200, 0x00000200 // Not used in scripts -.set CHRFLAG2_00000400, 0x00000400 // Related to coop buddy? Also used in Chicago -.set CHRFLAG2_KEEP_CORPSE, 0x00000800 -.set CHRFLAG2_BUDDY_PLACED, 0x00001000 -.set CHRFLAG2_00002000, 0x00002000 // Globals, Rescue guards once disguised -.set CHRFLAG2_TRIGGER_BUDDY_WARP, 0x00004000 -.set CHRFLAG2_00008000, 0x00008000 // Duel only. Set on each opponent when they start combat. -.set CHRFLAG2_DISGUISE_UNCOVERED, 0x00010000 -.set CHRFLAG2_00020000, 0x00020000 // Used in every stage, on Jo and other chrs. Only ever set, never unset or read. -.set CHRFLAG2_00040000, 0x00040000 // Not used in scripts -.set CHRFLAG2_DISGUISED, 0x00080000 -.set CHRFLAG2_00100000, 0x00100000 // Set before warping to pad, never unset or read -.set CHRFLAG2_00200000, 0x00200000 // Not used in scripts -.set CHRFLAG2_00400000, 0x00400000 // Set in Chicago, G5, AF1, Defense, Attack Ship, Skedar Ruins, Maian SOS, WAR -.set CHRFLAG2_00800000, 0x00800000 // Not used in scripts -.set CHRFLAG2_01000000, 0x01000000 // Globals - asked about gun (eg. "where did you get that?") -.set CHRFLAG2_02000000, 0x02000000 // Similar to DISGUISED flag, but not sure where set -.set CHRFLAG2_04000000, 0x04000000 // Related to disguise and detection -.set CHRFLAG2_08000000, 0x08000000 // Globals, Villa and G5 -.set CHRFLAG2_10000000, 0x10000000 // Related to invincible flag -.set CHRFLAG2_CLOAKED, 0x20000000 -.set CHRFLAG2_40000000, 0x40000000 // Air Base and AF1 -.set CHRFLAG2_PSYCHOSISED, 0x80000000 - -// Character flags - bank 3 (chr struct offset 0x18) -.set CHRFLAG3_00000001, 0x00000001 // Villa takers, Attack Ship Cass and skedar - both set at end of intros -.set CHRFLAG3_00000002, 0x00000002 // Seems to be set on guards who can spawn clones? -.set CHRFLAG3_00000004, 0x00000004 // Not used in scripts -.set CHRFLAG3_NEVER_BEEN_ON_SCREEN, 0x00000008 -.set CHRFLAG3_INVINCIBLE_TO_GUNFIRE, 0x00000010 -.set CHRFLAG3_00000020, 0x00000020 // Chicago, Infiltration, AF1, Ruins, WAR -.set CHRFLAG3_00000040, 0x00000040 // Used quite a lot -.set CHRFLAG3_00000080, 0x00000080 // Defection programmer, Rescue lab techs, globals when doing idle animation -.set CHRFLAG3_JUST_INJURED, 0x00000100 -.set CHRFLAG3_00000200, 0x00000200 // Set on clones -.set CHRFLAG3_HIDDEN, 0x00000400 -.set CHRFLAG3_NOAUTOAIM, 0x00000800 -.set CHRFLAG3_UNEXPLODABLE, 0x00001000 -.set CHRFLAG3_00002000, 0x00002000 // Not used in scripts -.set CHRFLAG3_HAS_SPECIAL_DEATH_ANIMATION, 0x00004000 -.set CHRFLAG3_00008000, 0x00008000 // Not used in scripts -.set CHRFLAG3_00010000, 0x00010000 // Related to dead people in intro cutscenes -.set CHRFLAG3_00020000, 0x00020000 // Chicago, Crash Site, Deep Sea, Defense, Ruins -.set CHRFLAG3_00040000, 0x00040000 // Used a lot -.set CHRFLAG3_00080000, 0x00080000 -.set CHRFLAG3_KILLCOUNTABLE, 0x00100000 -.set CHRFLAG3_00200000, 0x00200000 // Not used in scripts -.set CHRFLAG3_00400000, 0x00400000 // Not used in scripts -.set CHRFLAG3_UNPLAYABLE, 0x00800000 -.set CHRFLAG3_01000000, 0x01000000 // Typically set on allies during init -.set CHRFLAG3_02000000, 0x02000000 // can be unset by cmd0168 -.set CHRFLAG3_04000000, 0x04000000 -.set CHRFLAG3_08000000, 0x08000000 // Not used in scripts -.set CHRFLAG3_10000000, 0x10000000 // Not used in scripts -.set CHRFLAG3_20000000, 0x20000000 // Not used in scripts -.set CHRFLAG3_40000000, 0x40000000 // Not used in scripts -.set CHRFLAG3_80000000, 0x80000000 // Not used in scripts - -.set COLOR_00_GREEN, 0x00 -.set COLOR_02_WHITE, 0x02 -.set COLOR_03_RED, 0x03 -.set COLOR_04_ORANGE, 0x04 -.set COLOR_05_GREEN, 0x05 -.set COLOR_06_WHITE, 0x06 -.set COLOR_07_RED, 0x07 -.set COLOR_08_RED, 0x08 -.set COLOR_09_BLUE, 0x09 - -.set DIFF_A, 0x00 -.set DIFF_SA, 0x01 -.set DIFF_PA, 0x02 -.set DIFF_PD, 0x03 - -// These difficulties are for briefings, which can be bitwise ORed -.set DIFFBIT_A, 0x01 -.set DIFFBIT_SA, 0x02 -.set DIFFBIT_PA, 0x04 -.set DIFFBIT_PD, 0x08 - -.set DOORSTATE_CLOSED, 1 -.set DOORSTATE_OPEN, 2 -.set DOORSTATE_CLOSING, 4 -.set DOORSTATE_OPENING, 8 - -.set EEPROMFLAG_CI_TOUR_DONE, 0x24 -.set EEPROMFLAG_CI_HOLO7_DONE, 0x29 -.set EEPROMFLAG_CI_HOLO6_DONE, 0x2a -.set EEPROMFLAG_CI_HOLO5_DONE, 0x2b -.set EEPROMFLAG_CI_HOLO4_DONE, 0x2c -.set EEPROMFLAG_CI_HOLO3_DONE, 0x2d -.set EEPROMFLAG_CI_HOLO2_DONE, 0x2e -.set EEPROMFLAG_CI_HOLO1_DONE, 0x2f -.set EEPROMFLAG_CI_CLOAK_DONE, 0x30 -.set EEPROMFLAG_CI_DISGUISE_DONE, 0x31 -.set EEPROMFLAG_CI_XRAY_DONE, 0x32 -.set EEPROMFLAG_CI_IR_DONE, 0x33 -.set EEPROMFLAG_CI_RTRACKER_DONE, 0x34 -.set EEPROMFLAG_CI_DOORDECODER_DONE, 0x35 -.set EEPROMFLAG_CI_NIGHTVISION_DONE, 0x36 -.set EEPROMFLAG_CI_CAMSPY_DONE, 0x37 -.set EEPROMFLAG_CI_ECMMINE_DONE, 0x38 -.set EEPROMFLAG_CI_UPLINK_DONE, 0x39 -.set EEPROMFLAG_CI_TOUR_STARTED, 0x3a -.set EEPROMFLAG_CRASHSITE_BIKE, 0x3b -.set EEPROMFLAG_DEFENSE_JON, 0x3c -.set EEPROMFLAG_AF1_ENTRY, 0x3d -.set EEPROMFLAG_RESCUE_MECHANIC_DEAD, 0x3e -.set EEPROMFLAG_G5_MINE, 0x3f // true if thrown on top door - -.set ENTITYTYPE_CHR, 0x0004 -.set ENTITYTYPE_PAD, 0x0008 -.set ENTITYTYPE_DIRECTION, 0x0010 -.set ENTITYTYPE_TARGETCHR, 0x0200 - -.set GFUNC_IDLE, 0x0000 -.set GFUNC_UNALERTED_0001, 0x0001 -.set GFUNC_UNALERTED_0002, 0x0002 -.set GFUNC_STOP_UNALERTED, 0x0003 // unused -.set GFUNC_UNALERTED_0004, 0x0004 -.set GFUNC_END_CINEMA, 0x0005 -.set GFUNC_UNALERTED, 0x0006 -.set GFUNC_ALERTED, 0x0007 -.set GFUNC_WAKEUP, 0x0008 -.set GFUNC_IDLE_0009, 0x0009 -.set GFUNC_BUSY, 0x000a -.set GFUNC_CHOOSE_TARGET_CHR, 0x000b -.set GFUNC_COMBAT_WITH_TARGET_CHR, 0x000c -.set GFUNC_INIT_COMBAT, 0x000d // unused -.set GFUNC_SEE_THEN_ATTACK, 0x000e // unused -.set GFUNC_HAND_COMBAT, 0x000f -.set GFUNC_CIVILIAN_SAY_COMMENT, 0x0010 -.set GFUNC_FLEE_FROM_GRENADE, 0x0011 -.set GFUNC_INIT_COOP_100, 0x0012 // unused -.set GFUNC_INIT_COOP_200, 0x0013 // unused -.set GFUNC_COOP_BUDDY, 0x0014 -.set GFUNC_TEST_CUTSCENE_BUDDY, 0x0015 // unused -.set GFUNC_SHOW_OBJ_FAILED_MSG, 0x0016 -.set GFUNC_REBUILD_GROUPS, 0x0017 -.set GFUNC_DO_BORED_ANIMATION, 0x0018 -.set GFUNC_DO_SITTING_ANIMATION, 0x0019 -.set GFUNC_DISGUISE_DETECTION, 0x001a -.set GFUNC_OBSERVE_CAMSPY, 0x001b -.set GFUNC_SURPRISED, 0x001c -.set GFUNC_SEARCH_FOR_PLAYER, 0x001d -.set GFUNC_LOOK_AROUND, 0x001e -.set GFUNC_RELATED_TO_SPAWNING, 0x001f -.set GFUNC_PLACE_COOP_BUDDY, 0x0020 -.set GFUNC_STOP_AND_IDLE, 0x0021 -.set GFUNC_COMMENT_ON_PLAYER_DEAD, 0x0022 // unused -.set GFUNC_DODGE, 0x0023 -.set GFUNC_FOLLOW_JOANNA, 0x0024 -.set GFUNC_POINTLESS, 0x0025 // unused -.set GFUNC_INIT_PSYCHOSIS, 0x0026 -.set GFUNC_PSYCHOSISED, 0x0027 -.set GFUNC_AI_BOT_DEAD, 0x0028 // unused -.set GFUNC_AI_BOT_INIT, 0x0029 // unused -.set GFUNC_AI_BOT_ALIVE, 0x002a // unused -.set GFUNC_DO_SOMETHING_AND_WAIT, 0x002b // unused -.set GFUNC_INIT_SEARCH, 0x002c // unused -.set GFUNC_INVINCIBLE_AND_IDLE, 0x002d - -.set IDLEACTION_STANDING, 0x01 -.set IDLEACTION_SITTING_TYPING, 0x02 -.set IDLEACTION_SITTING_DORMANT, 0x03 -.set IDLEACTION_OPERATING, 0x04 -.set IDLEACTION_OPERATING_PAD, 0x05 - -// Object flags - bank 0 (object struct offset 0x08) -.set OBJECTFLAG0_00000001, 0x00000001 // Not used in scripts -.set OBJECTFLAG0_00000002, 0x00000002 // Not used in scripts -.set OBJECTFLAG0_00000004, 0x00000004 // Not used in scripts -.set OBJECTFLAG0_00000008, 0x00000008 // Not used in scripts -.set OBJECTFLAG0_00000010, 0x00000010 // Not used in scripts -.set OBJECTFLAG0_00000020, 0x00000020 // Not used in scripts -.set OBJECTFLAG0_00000040, 0x00000040 // Not used in scripts -.set OBJECTFLAG0_00000080, 0x00000080 // Not used in scripts -.set OBJECTFLAG0_00000100, 0x00000100 // G5 mines, Air Base brown door, AF1 grate and escape door, Defense shuttle, Ruins mines, MBR lift door -.set OBJECTFLAG0_00000200, 0x00000200 // Not used in scripts -.set OBJECTFLAG0_ILLUMINATED, 0x00000400 -.set OBJECTFLAG0_00000800, 0x00000800 // Not used in scripts -.set OBJECTFLAG0_00001000, 0x00001000 // Not used in scripts -.set OBJECTFLAG0_00002000, 0x00002000 // AF1 commhubs -.set OBJECTFLAG0_00004000, 0x00004000 // Not used in scripts -.set OBJECTFLAG0_00008000, 0x00008000 // Not used in scripts -.set OBJECTFLAG0_00010000, 0x00010000 // Not used in scripts -.set OBJECTFLAG0_INVINCIBLE, 0x00020000 -.set OBJECTFLAG0_COLLECTABLE, 0x00040000 -.set OBJECTFLAG0_00080000, 0x00080000 // Not used in scripts -.set OBJECTFLAG0_00100000, 0x00100000 // Lots of stages - mainly keycards? -.set OBJECTFLAG0_00200000, 0x00200000 // Not used in scripts -.set OBJECTFLAG0_00400000, 0x00400000 // Not used in scripts -.set OBJECTFLAG0_00800000, 0x00800000 // Not used in scripts -.set OBJECTFLAG0_01000000, 0x01000000 // Not used in scripts -.set OBJECTFLAG0_02000000, 0x02000000 // Extraction "winddoor", Rescue doors, Air Base lift door, Attack Ship hanger doors, CI xray comhubs -.set OBJECTFLAG0_04000000, 0x04000000 // Not used in scripts -.set OBJECTFLAG0_08000000, 0x08000000 // Not used in scripts -.set OBJECTFLAG0_DEACTIVATED, 0x10000000 -.set OBJECTFLAG0_20000000, 0x20000000 // Not used in scripts -.set OBJECTFLAG0_40000000, 0x40000000 // Used quite a lot -.set OBJECTFLAG0_INTERCEPTOR_DISABLED, 0x80000000 - -// Object flags - bank 1 (object struct offset 0x0c) -.set OBJECTFLAG1_00000001, 0x00000001 // Used only in CI Training -.set OBJECTFLAG1_00000002, 0x00000002 // Ruins spikes -.set OBJECTFLAG1_00000004, 0x00000004 // Defense hostage doors - openable by AI? -.set OBJECTFLAG1_00000008, 0x00000008 // Not used in scripts -.set OBJECTFLAG1_00000010, 0x00000010 // Not used in scripts -.set OBJECTFLAG1_00000020, 0x00000020 // Not used in scripts -.set OBJECTFLAG1_00000040, 0x00000040 // Not used in scripts -.set OBJECTFLAG1_00000080, 0x00000080 // Not used in scripts -.set OBJECTFLAG1_00000100, 0x00000100 // Not used in scripts -.set OBJECTFLAG1_00000200, 0x00000200 // Not used in scripts -.set OBJECTFLAG1_00000400, 0x00000400 // Not used in scripts -.set OBJECTFLAG1_00000800, 0x00000800 // Not used in scripts -.set OBJECTFLAG1_00001000, 0x00001000 // Investigation CMP150s, Air Base safe item and shield -.set OBJECTFLAG1_00002000, 0x00002000 // Ruins commhub -.set OBJECTFLAG1_00004000, 0x00004000 // Not used in scripts -.set OBJECTFLAG1_00008000, 0x00008000 // Not used in scripts -.set OBJECTFLAG1_00010000, 0x00010000 // Not used in scripts -.set OBJECTFLAG1_00020000, 0x00020000 // G5 mine, Air Base mine -.set OBJECTFLAG1_00040000, 0x00040000 // Only used in CI training -.set OBJECTFLAG1_INVISIBLE, 0x00080000 -.set OBJECTFLAG1_00100000, 0x00100000 // Not used in scripts -.set OBJECTFLAG1_00200000, 0x00200000 // Ruins spikes -.set OBJECTFLAG1_00400000, 0x00400000 // Not used in scripts -.set OBJECTFLAG1_00800000, 0x00800000 // Not used in scripts -.set OBJECTFLAG1_01000000, 0x01000000 // Not used in scripts -.set OBJECTFLAG1_02000000, 0x02000000 // Not used in scripts -.set OBJECTFLAG1_04000000, 0x04000000 // Used quite a lot - gravity? -.set OBJECTFLAG1_08000000, 0x08000000 // Locked door? -.set OBJECTFLAG1_10000000, 0x10000000 // Locked door? -.set OBJECTFLAG1_20000000, 0x20000000 // Locked door? Or indestructible by counter op? -.set OBJECTFLAG1_40000000, 0x40000000 // Not used in scripts -.set OBJECTFLAG1_80000000, 0x80000000 // Attack Ship glass - -// Object flags - bank 2 (object struct offset 0x10) -.set OBJECTFLAG2_PUSHABLE, 0x00000001 -.set OBJECTFLAG2_GRABBABLE, 0x00000002 -.set OBJECTFLAG2_00000004, 0x00000004 // Not used in scripts -.set OBJECTFLAG2_00000008, 0x00000008 // Not used in scripts -.set OBJECTFLAG2_00000010, 0x00000010 // Used heaps -.set OBJECTFLAG2_00000020, 0x00000020 // Not used in scripts -.set OBJECTFLAG2_RTRACKED_YELLOW, 0x00000040 -.set OBJECTFLAG2_00000080, 0x00000080 // Not used in scripts -.set OBJECTFLAG2_00000100, 0x00000100 // Not used in scripts -.set OBJECTFLAG2_00000200, 0x00000200 // Not used in scripts -.set OBJECTFLAG2_NO_COLLISION, 0x00000400 -.set OBJECTFLAG2_RTRACKED_BLUE, 0x00000800 -.set OBJECTFLAG2_00001000, 0x00001000 // Show shield around object (always) -.set OBJECTFLAG2_00002000, 0x00002000 // Not used in scripts -.set OBJECTFLAG2_00004000, 0x00004000 // Not used in scripts -.set OBJECTFLAG2_00008000, 0x00008000 // Not used in scripts -.set OBJECTFLAG2_00010000, 0x00010000 // Not used in scripts -.set OBJECTFLAG2_00020000, 0x00020000 // Not used in scripts -.set OBJECTFLAG2_00040000, 0x00040000 // Not used in scripts -.set OBJECTFLAG2_00080000, 0x00080000 // Not used in scripts -.set OBJECTFLAG2_00100000, 0x00100000 // Ruins spikes -.set OBJECTFLAG2_00200000, 0x00200000 // Not used in scripts -.set OBJECTFLAG2_00400000, 0x00400000 // Investigation tech items -.set OBJECTFLAG2_00800000, 0x00800000 // Not used in scripts -.set OBJECTFLAG2_01000000, 0x01000000 // Not used in scripts -.set OBJECTFLAG2_02000000, 0x02000000 // Not used in scripts -.set OBJECTFLAG2_04000000, 0x04000000 // Not used in scripts -.set OBJECTFLAG2_08000000, 0x08000000 // Not used in scripts -.set OBJECTFLAG2_10000000, 0x10000000 // Not used in scripts -.set OBJECTFLAG2_20000000, 0x20000000 // Not used in scripts -.set OBJECTFLAG2_40000000, 0x40000000 // Not used in scripts -.set OBJECTFLAG2_80000000, 0x80000000 // Not used in scripts - -.set OPERATOR_LESS_THAN, 0 -.set OPERATOR_GREATER_THAN, 1 - -.set OUTFIT_DEFAULT, 0x00 -.set OUTFIT_ELVIS, 0x01 -.set OUTFIT_TRENT, 0x02 // unused -.set OUTFIT_TRENCH, 0x03 -.set OUTFIT_FROCK_RIPPED, 0x04 -.set OUTFIT_FROCK, 0x05 -.set OUTFIT_LEATHER, 0x06 -.set OUTFIT_DEEPSEA, 0x07 -.set OUTFIT_WETSUIT, 0x08 -.set OUTFIT_SNOW, 0x09 -.set OUTFIT_LAB, 0x0a -.set OUTFIT_STEWARDESS, 0x0b -.set OUTFIT_MRBLONDE, 0x0c -.set OUTFIT_MAIAN, 0x0d -.set OUTFIT_NEGOTIATOR, 0x0e // unused by scripts - -.set PADEFFECT_SPARKS, 0x00 -.set PADEFFECT_01, 0x01 // used only in Escape on a pad containing nothing -.set PADEFFECT_SPLASH, 0x02 -.set PADEFFECT_SPARKS2, 0x03 -.set PADEFFECT_SMOKE, 0x04 -.set PADEFFECT_SMOKE_TEMPORARY, 0x05 - -.set SPEED_WALK, 0 -.set SPEED_JOG, 1 -.set SPEED_RUN, 2 - -.set STAGE_MAIANSOS, 0x09 -.set STAGE_WAR, 0x16 -.set STAGE_MP_RAVINE, 0x17 -.set STAGE_ESCAPE, 0x19 -.set STAGE_RETAKING, 0x1b -.set STAGE_CRASHSITE, 0x1c -.set STAGE_CHICAGO, 0x1d -.set STAGE_G5BUILDING, 0x1e -.set STAGE_MP_COMPLEX, 0x1f -.set STAGE_MP_G5BUILDING, 0x20 -.set STAGE_PELAGIC, 0x21 -.set STAGE_EXTRACTION, 0x22 -.set STAGE_MP_TEMPLE, 0x25 -.set STAGE_CITRAINING, 0x26 -.set STAGE_AIRBASE, 0x27 -.set STAGE_MP_PIPES, 0x29 -.set STAGE_SKEDARRUINS, 0x2a -.set STAGE_VILLA, 0x2c -.set STAGE_DEFENSE, 0x2d -.set STAGE_INFILTRATION, 0x2f -.set STAGE_DEFECTION, 0x30 -.set STAGE_AIRFORCEONE, 0x31 -.set STAGE_MP_SKEDAR, 0x32 -.set STAGE_INVESTIGATION, 0x33 -.set STAGE_ATTACKSHIP, 0x34 -.set STAGE_RESCUE, 0x35 -.set STAGE_MBR, 0x37 -.set STAGE_DEEPSEA, 0x38 -.set STAGE_MP_BASE, 0x39 -.set STAGE_MP_AREA52, 0x3b -.set STAGE_MP_WAREHOUSE, 0x3c -.set STAGE_MP_CARPARK, 0x3d -.set STAGE_MP_RUINS, 0x41 -.set STAGE_MP_SEWERS, 0x42 -.set STAGE_MP_FELICITY, 0x43 -.set STAGE_MP_FORTRESS, 0x44 -.set STAGE_MP_VILLA, 0x45 -.set STAGE_MP_GRID, 0x47 -.set STAGE_DUEL, 0x4f - -.set TARGET_PAD, 0x2328 - -.set WEAPON_NONE, 0x00 -.set WEAPON_UNARMED, 0x01 -.set WEAPON_FALCON2, 0x02 -.set WEAPON_FALCON2_SILENCER, 0x03 -.set WEAPON_FALCON2_SCOPE, 0x04 -.set WEAPON_MAGSEC4, 0x05 -.set WEAPON_MAULER, 0x06 -.set WEAPON_PHOENIX, 0x07 -.set WEAPON_DY357MAGNUM, 0x08 -.set WEAPON_DY357LX, 0x09 -.set WEAPON_CMP150, 0x0a -.set WEAPON_CYCLONE, 0x0b -.set WEAPON_CALLISTONTG, 0x0c -.set WEAPON_RCP120, 0x0d -.set WEAPON_LAPTOPGUN, 0x0e -.set WEAPON_DRAGON, 0x0f -.set WEAPON_K7AVENGER, 0x10 -.set WEAPON_AR34, 0x11 -.set WEAPON_SUPERDRAGON, 0x12 -.set WEAPON_SHOTGUN, 0x13 -.set WEAPON_REAPER, 0x14 -.set WEAPON_SNIPERRIFLE, 0x15 -.set WEAPON_FARSIGHTXR20, 0x16 -.set WEAPON_DEVASTATOR, 0x17 -.set WEAPON_ROCKETLAUNCHER, 0x18 -.set WEAPON_SLAYER, 0x19 -.set WEAPON_COMBATKNIFE, 0x1a -.set WEAPON_CROSSBOW, 0x1b -.set WEAPON_TRANQUILIZER, 0x1c -.set WEAPON_LASER, 0x1d -.set WEAPON_GRENADE, 0x1e -.set WEAPON_NBOMB, 0x1f -.set WEAPON_TIMEDMINE, 0x20 -.set WEAPON_PROXIMITYMINE, 0x21 -.set WEAPON_REMOTEMINE, 0x22 -.set WEAPON_COMBATBOOST, 0x23 -.set WEAPON_PP9I, 0x24 -.set WEAPON_CC13, 0x25 -.set WEAPON_KL01313, 0x26 -.set WEAPON_KF7SPECIAL, 0x27 -.set WEAPON_ZZT9MM, 0x28 -.set WEAPON_DMC, 0x29 -.set WEAPON_AR53, 0x2a -.set WEAPON_RCP45, 0x2b -.set WEAPON_PSYCHOSISGUN, 0x2c -.set WEAPON_NIGHTVISION, 0x2d -.set WEAPON_CAMSPY, 0x2e -.set WEAPON_XRAYSCANNER, 0x2f -.set WEAPON_IRSCANNER, 0x30 -.set WEAPON_CLOAKINGDEVICE, 0x31 -.set WEAPON_HORIZONSCANNER, 0x32 -.set WEAPON_TESTER, 0x33 -.set WEAPON_ROCKETLAUNCHER_34, 0x34 -.set WEAPON_ECMMINE, 0x35 -.set WEAPON_DATAUPLINK, 0x36 -.set WEAPON_RTRACKER, 0x37 -.set WEAPON_PRESIDENTSCANNER, 0x38 -.set WEAPON_DOORDECODER, 0x39 -.set WEAPON_AUTOSURGEON, 0x3a -.set WEAPON_EXPLOSIVES, 0x3b -.set WEAPON_SKEDARBOMB, 0x3c -.set WEAPON_COMMSRIDER, 0x3d -.set WEAPON_TRACERBUG, 0x3e -.set WEAPON_TARGETAMPLIFIER, 0x3f -.set WEAPON_DISGUISE40, 0x40 -.set WEAPON_DISGUISE41, 0x41 -.set WEAPON_FLIGHTPLANS, 0x42 -.set WEAPON_RESEARCHTAPE, 0x43 -.set WEAPON_BACKUPDISK, 0x44 -.set WEAPON_KEYCARD45, 0x45 -.set WEAPON_KEYCARD46, 0x46 -.set WEAPON_KEYCARD47, 0x47 -.set WEAPON_KEYCARD48, 0x48 -.set WEAPON_KEYCARD49, 0x49 -.set WEAPON_KEYCARD4A, 0x4a -.set WEAPON_KEYCARD4B, 0x4b -.set WEAPON_KEYCARD4C, 0x4c -.set WEAPON_SUITCASE, 0x4d -.set WEAPON_BRIEFCASE, 0x4e -.set WEAPON_SHIELD, 0x4f -.set WEAPON_NECKLACE, 0x50 -.set WEAPON_HAMMER, 0x51 -.set WEAPON_52, 0x52 -.set WEAPON_ROCKET, 0x53 -.set WEAPON_HOMINGROCKET, 0x54 -.set WEAPON_GRENADEROUND, 0x55 -.set WEAPON_BOLT, 0x56 -.set WEAPON_BRIEFCASE, 0x57 -.set WEAPON_ROCKET, 0x58 -.set WEAPON_59, 0x59 -.set WEAPON_5A, 0x5a -.set WEAPON_5B, 0x5b -.set WEAPON_5C, 0x5c -.set WEAPON_SUICIDEPILL, 0x5d - -// Heads and bodies -.set HEAD_RANDOM, -1 -.set BODY_DJBOND, 0x00 -.set BODY_CONNERY, 0x01 -.set BODY_DALTON, 0x02 -.set BODY_MOORE, 0x03 -.set HEAD_DARK_COMBAT, 0x04 -.set HEAD_ELVIS, 0x05 -.set HEAD_ROSS, 0x06 -.set HEAD_CARRINGTON, 0x07 -.set HEAD_MRBLONDE, 0x08 -.set HEAD_TRENT, 0x09 -.set HEAD_DDSHOCK, 0x0a -.set HEAD_GRAHAM, 0x0b -.set HEAD_DARK_FROCK, 0x0c -.set HEAD_SECRETARY, 0x0d -.set HEAD_CASSANDRA, 0x0e -.set HEAD_THEKING, 0x0f -.set HEAD_FEM_GUARD, 0x10 -.set HEAD_JON, 0x11 -.set HEAD_MARK2, 0x12 -.set HEAD_CHRIST, 0x13 -.set HEAD_RUSS, 0x14 -.set HEAD_GREY, 0x15 -.set HEAD_DARLING, 0x16 -.set HEAD_ROBERT, 0x17 -.set HEAD_BEAU1, 0x18 -.set HEAD_FEM_GUARD2, 0x19 -.set HEAD_BRIAN, 0x1a -.set HEAD_JAMIE, 0x1b -.set HEAD_DUNCAN2, 0x1c -.set HEAD_BIOTECH, 0x1d -.set HEAD_NEIL2, 0x1e -.set HEAD_EDMCG, 0x1f -.set HEAD_ANKA, 0x20 -.set HEAD_LESLIE_S, 0x21 -.set HEAD_MATT_C, 0x22 -.set HEAD_PEER_S, 0x23 -.set HEAD_EILEEN_T, 0x24 -.set HEAD_ANDY_R, 0x25 -.set HEAD_BEN_R, 0x26 -.set HEAD_STEVE_K, 0x27 -.set HEAD_JONATHAN, 0x28 -.set HEAD_MAIAN_S, 0x29 -.set HEAD_SHAUN, 0x2a -.set HEAD_BEAU2, 0x2b -.set HEAD_EILEEN_H, 0x2c -.set HEAD_SCOTT_H, 0x2d -.set HEAD_SANCHEZ, 0x2e -.set HEAD_DARKAQUA, 0x2f -.set HEAD_DDSNIPER, 0x30 -.set HEAD_BEAU3, 0x31 -.set HEAD_BEAU4, 0x32 -.set HEAD_BEAU5, 0x33 -.set HEAD_BEAU6, 0x34 -.set HEAD_GRIFFEY, 0x35 -.set HEAD_MOTO, 0x36 -.set HEAD_KEITH, 0x37 -.set HEAD_WINNER, 0x38 -.set HEAD_A51FACEPLATE, 0x39 -.set HEAD_ELVIS_GOGS, 0x3a -.set HEAD_STEVEM, 0x3b -.set HEAD_DARK_SNOW, 0x3c -.set HEAD_PRESIDENT, 0x3d -.set HEAD_VD, 0x3e -.set HEAD_KEN, 0x3f -.set HEAD_JOEL, 0x40 -.set HEAD_TIM, 0x41 -.set HEAD_GRANT, 0x42 -.set HEAD_PENNY, 0x43 -.set HEAD_ROBIN, 0x44 -.set HEAD_ALEX, 0x45 -.set HEAD_JULIANNE, 0x46 -.set HEAD_LAURA, 0x47 -.set HEAD_DAVEC, 0x48 -.set HEAD_COOK, 0x49 -.set HEAD_PRYCE, 0x4a -.set HEAD_SILKE, 0x4b -.set HEAD_SMITH, 0x4c -.set HEAD_GARETH, 0x4d -.set HEAD_MURCHIE, 0x4e -.set HEAD_WONG, 0x4f -.set HEAD_CARTER, 0x50 -.set HEAD_TINTIN, 0x51 -.set HEAD_MUNTON, 0x52 -.set HEAD_STAMPER, 0x53 -.set HEAD_JONES, 0x54 -.set HEAD_PHELPS, 0x55 -.set BODY_DARK_COMBAT, 0x56 -.set BODY_ELVIS1, 0x57 -.set BODY_AREA51GUARD, 0x58 -.set BODY_OVERALL, 0x59 -.set BODY_CARRINGTON, 0x5a -.set BODY_MRBLONDE, 0x5b -.set BODY_SKEDAR, 0x5c -.set BODY_TRENT, 0x5d -.set BODY_DDSHOCK, 0x5e -.set BODY_LABTECH, 0x5f -.set BODY_STRIPES, 0x60 -.set BODY_DARK_FROCK, 0x61 -.set BODY_DARK_TRENCH, 0x62 -.set BODY_OFFICEWORKER, 0x63 -.set BODY_OFFICEWORKER2, 0x64 -.set BODY_SECRETARY, 0x65 -.set BODY_CASSANDRA, 0x66 -.set BODY_THEKING, 0x67 -.set BODY_FEM_GUARD, 0x68 -.set BODY_DD_LABTECH, 0x69 -.set BODY_DD_SECGUARD, 0x6a -.set BODY_DRCARROLL, 0x6b -.set BODY_EYESPY, 0x6c -.set BODY_DARK_RIPPED, 0x6d -.set BODY_DD_GUARD, 0x6e -.set BODY_DD_SHOCK_INF, 0x6f -.set BODY_TESTCHR, 0x70 -.set BODY_BIOTECH, 0x71 -.set BODY_FBIGUY, 0x72 -.set BODY_CIAGUY, 0x73 -.set BODY_A51TROOPER, 0x74 -.set BODY_A51AIRMAN, 0x75 -.set BODY_CHICROB, 0x76 -.set BODY_STEWARD, 0x77 -.set BODY_STEWARDESS, 0x78 -.set BODY_PRESIDENT, 0x79 -.set BODY_STEWARDESS_COAT, 0x7a -.set BODY_MINISKEDAR, 0x7b -.set BODY_NSA_LACKEY, 0x7c -.set BODY_PRES_SECURITY, 0x7d -.set BODY_NEGOTIATOR, 0x7e -.set BODY_G5_GUARD, 0x7f -.set BODY_PELAGIC_GUARD, 0x80 -.set BODY_G5_SWAT_GUARD, 0x81 -.set BODY_ALASKAN_GUARD, 0x82 -.set BODY_MAIAN_SOLDIER, 0x83 -.set BODY_PRESIDENT_CLONE, 0x84 -.set BODY_PRESIDENT_CLONE, 0x85 -.set BODY_DARK_AF1, 0x86 -.set BODY_DARKWET, 0x87 -.set BODY_DARKAQUALUNG, 0x88 -.set BODY_DARKSNOW, 0x89 -.set BODY_DARKLAB, 0x8a -.set BODY_FEMLABTECH, 0x8b -.set BODY_DDSNIPER, 0x8c -.set BODY_PILOTAF1, 0x8d -.set BODY_CILABTECH, 0x8e -.set BODY_CIFEMTECH, 0x8f -.set BODY_CARREVENINGSUIT, 0x90 -.set BODY_JONATHON, 0x91 -.set BODY_CISOLDIER, 0x92 -.set BODY_SKEDARKING, 0x93 -.set BODY_ELVISWAISTCOAT, 0x94 -.set BODY_DARK_LEATHER, 0x95 -.set BODY_DARK_NEGOTIATOR, 0x96 - -// Models -.set MODEL_ROOFGUN, 0x0000 -.set MODEL_GROUNDGUN, 0x0001 -.set MODEL_TVSCREEN, 0x0002 -.set MODEL_BORG_CRATE, 0x0003 -.set MODEL_WINDOW, 0x0004 -.set MODEL_A51_CRATE1_0005, 0x0005 -.set MODEL_A51_CRATE1_0006, 0x0006 -.set MODEL_A51_CRATE1_0007, 0x0007 -.set MODEL_A51_CRATE1_0008, 0x0008 -.set MODEL_A51_CRATE1_0009, 0x0009 -.set MODEL_A51_CRATE1_000a, 0x000a -.set MODEL_A51_CRATE1_000b, 0x000b -.set MODEL_A51_CRATE1_000c, 0x000c -.set MODEL_A51_CRATE1_000d, 0x000d -.set MODEL_A51_CRATE1_000e, 0x000e -.set MODEL_A51_CRATE1_000f, 0x000f -.set MODEL_CRYPTDOOR1B, 0x0010 -.set MODEL_CHRBRIEFCASE, 0x0011 -.set MODEL_CHRBUG, 0x0012 -.set MODEL_CHRDATATHIEF, 0x0013 -.set MODEL_NINTENDOLOGO, 0x0014 -.set MODEL_DOOR_ROLLERTRAIN, 0x0015 -.set MODEL_FLAG, 0x0016 -.set MODEL_MODEMBOX, 0x0017 -.set MODEL_DOORCONSOLE, 0x0018 -.set MODEL_A51_HORIZ_DOOR_TOP, 0x0019 -.set MODEL_A51_HORIZ_DOOR_BOT, 0x001a -.set MODEL_A51_VERT_DOOR_LEFT, 0x001b -.set MODEL_A51_VERT_DOOR_RIGHT, 0x001c -.set MODEL_A51_VERT_DOOR_ST, 0x001d -.set MODEL_A51_HORIZ_DOOR_GL, 0x001e -.set MODEL_A51_HORIZ_DOOR_SECRET, 0x001f -.set MODEL_A51_CRATE1, 0x0020 -.set MODEL_A51_CRATE2, 0x0021 -.set MODEL_A51_CRATE3, 0x0022 -.set MODEL_A51_EXP1, 0x0023 -.set MODEL_A51_UNEXP1, 0x0024 -.set MODEL_A51_EXP2, 0x0025 -.set MODEL_A51_UNEXP2, 0x0026 -.set MODEL_A51_UNEXP3, 0x0027 -.set MODEL_AIVILLADOOR1, 0x0028 -.set MODEL_AIVILLADOOR2A, 0x0029 -.set MODEL_AIVILLADOOR4, 0x002a -.set MODEL_A51_LIFT_HANGAR, 0x002b -.set MODEL_A51_LIFT_CONTROL, 0x002c -.set MODEL_A51_LIFT_STORE, 0x002d -.set MODEL_A51_LIFT_THINWALL, 0x002e -.set MODEL_AIVILLABOT1, 0x002f -.set MODEL_AIVILLABOT2, 0x0030 -.set MODEL_AIVILLABOT3, 0x0031 -.set MODEL_AIVILLAWINDMILL, 0x0032 -.set MODEL_HOVERBED, 0x0033 -.set MODEL_MARKER, 0x0034 -.set MODEL_ALDOOR_R, 0x0035 -.set MODEL_ALDOOR_L, 0x0036 -.set MODEL_DD_LIFTR, 0x0037 -.set MODEL_DD_FANROOF, 0x0038 -.set MODEL_DD_FANWALL, 0x0039 -.set MODEL_HOVBIKE, 0x003a -.set MODEL_DD_OFFICEDOOR, 0x003b -.set MODEL_DD_PLANTRUBBER, 0x003c -.set MODEL_DD_PLANTSPIKE, 0x003d -.set MODEL_DD_PLANTSPIDER, 0x003e -.set MODEL_DD_WINDOW, 0x003f -.set MODEL_DD_REDSOFA, 0x0040 -.set MODEL_DD_REDARM, 0x0041 -.set MODEL_DD_SERVICEDOOR, 0x0042 -.set MODEL_DD_WINDDOOR, 0x0043 -.set MODEL_DD_LIFTDOOR, 0x0044 -.set MODEL_DD_VERTBLIND, 0x0045 -.set MODEL_DD_DESK, 0x0046 -.set MODEL_DD_CHAIR, 0x0047 -.set MODEL_NLOGO, 0x0048 -.set MODEL_NLOGO2, 0x0049 -.set MODEL_NLOGO3, 0x004a -.set MODEL_PERFECTDARK, 0x004b -.set MODEL_PDONE, 0x004c -.set MODEL_PDTWO, 0x004d -.set MODEL_PDTHREE, 0x004e -.set MODEL_PDFOUR, 0x004f -.set MODEL_DD_HOVCOP, 0x0050 -.set MODEL_DD_HOVMOTO, 0x0051 -.set MODEL_DD_HOVTRUCK, 0x0052 -.set MODEL_DD_HOVCAR, 0x0053 -.set MODEL_DD_HOVCAB, 0x0054 -.set MODEL_DD_AC_UNEXP, 0x0055 -.set MODEL_DD_AC_EXP, 0x0056 -.set MODEL_DD_ACBOT_UNEXP, 0x0057 -.set MODEL_DD_ACBOT_EXP, 0x0058 -.set MODEL_PC1, 0x0059 -.set MODEL_HOVERCRATE1, 0x005a -.set MODEL_DROPSHIP, 0x005b -.set MODEL_AL_AIRLOCK, 0x005c -.set MODEL_AL_DOCKLIFT, 0x005d -.set MODEL_CASE, 0x005e -.set MODEL_DD_STONEDESK, 0x005f -.set MODEL_MEDLABWIN1, 0x0060 -.set MODEL_MEDLABWIN2, 0x0061 -.set MODEL_A51TABLE, 0x0062 -.set MODEL_A51CHAIR, 0x0063 -.set MODEL_A51SCREEN, 0x0064 -.set MODEL_A51WASTEBIN, 0x0065 -.set MODEL_A51DESKENT, 0x0066 -.set MODEL_A51TROLLEY, 0x0067 -.set MODEL_A51DIVIDE, 0x0068 -.set MODEL_A51BOARD, 0x0069 -.set MODEL_SKCREV_EXP1, 0x006a -.set MODEL_SKCREV_UNEXP1, 0x006b -.set MODEL_SKTNL_EXP1, 0x006c -.set MODEL_SKTNL_UNEXP1, 0x006d -.set MODEL_SK_DOOR1, 0x006e -.set MODEL_SK_SHIP_DOOR1, 0x006f -.set MODEL_SK_SHIP_HOLO1, 0x0070 -.set MODEL_SK_SHIP_HOLO2, 0x0071 -.set MODEL_SK_SHIP_HULLDOOR1, 0x0072 -.set MODEL_SK_SHIP_HULLDOOR2, 0x0073 -.set MODEL_SK_SHIP_HULLDOOR3, 0x0074 -.set MODEL_SK_SHIP_HULLDOOR4, 0x0075 -.set MODEL_SK_FIGHTER1, 0x0076 -.set MODEL_SK_CRYOPOD1_TOP, 0x0077 -.set MODEL_SK_CRYOPOD1_BOT, 0x0078 -.set MODEL_SK_UNDER_GENERATOR, 0x0079 -.set MODEL_SK_UNDER_TRANS, 0x007a -.set MODEL_SK_HANGARDOOR_TOP, 0x007b -.set MODEL_SK_HANGARDOOR_BOT, 0x007c -.set MODEL_DOOR2_G5, 0x007d -.set MODEL_DOOR1A_G5, 0x007e -.set MODEL_DOOR1B_G5, 0x007f -.set MODEL_DOOR1ATRI_G5, 0x0080 -.set MODEL_DOOR2A_G5, 0x0081 -.set MODEL_DD_DECODOOR, 0x0082 -.set MODEL_DD_SECRETDOOR, 0x0083 -.set MODEL_DD_SECRETDOOR2, 0x0084 -.set MODEL_DDJUMPSHIP, 0x0085 -.set MODEL_TAXICAB, 0x0086 -.set MODEL_POLICECAR, 0x0087 -.set MODEL_RAVINELIFT, 0x0088 -.set MODEL_DD_LAB_DOOR_BS, 0x0089 -.set MODEL_DD_LAB_DOOR_SEC, 0x008a -.set MODEL_DD_LAB_DOOR_WIND, 0x008b -.set MODEL_HOOVERBOT, 0x008c -.set MODEL_TESTERBOT, 0x008d -.set MODEL_DD_LAB_SECTOR2BOT, 0x008e -.set MODEL_DD_LAB_SECTOR2TOP, 0x008f -.set MODEL_DD_LAB_CAUTIONTOP, 0x0090 -.set MODEL_DD_LAB_HAZARD, 0x0091 -.set MODEL_DD_LAB_CAUTION, 0x0092 -.set MODEL_DR_CAROLL_DOOR, 0x0093 -.set MODEL_DD_LAB_SECTOR3TOP, 0x0094 -.set MODEL_DD_LAB_SECTOR3, 0x0095 -.set MODEL_DD_LAB_SECTOR3WIND, 0x0096 -.set MODEL_DD_HOVERCOPTER, 0x0097 -.set MODEL_DD_LAB_SECTOR4TOP, 0x0098 -.set MODEL_DD_LAB_RESTRICTED, 0x0099 -.set MODEL_DOOR4A_G5, 0x009a -.set MODEL_DOOR4B_G5, 0x009b -.set MODEL_LASDOOR, 0x009c -.set MODEL_G5SAFEDOOR, 0x009d -.set MODEL_ROPE, 0x009e -.set MODEL_G5_MAINFRAME, 0x009f -.set MODEL_DR_CAROLL_DOOR_BASE, 0x00a0 -.set MODEL_DR_CAROLL_DOOR_MAIN, 0x00a1 -.set MODEL_DR_CAROLL_DOOR_LEFT, 0x00a2 -.set MODEL_DR_CAROLL_DOOR_RIGHT, 0x00a3 -.set MODEL_DR_CAROLL_DOOR_BMAIN, 0x00a4 -.set MODEL_DR_CAROLL_DOOR_BLEFT, 0x00a5 -.set MODEL_DR_CAROLL_DOOR_BRIGHT, 0x00a6 -.set MODEL_DD_BANNER, 0x00a7 -.set MODEL_G5_ESCDOORUP, 0x00a8 -.set MODEL_G5_ESCDOORUPBOOM, 0x00a9 -.set MODEL_G5_ESCDOORDOWN, 0x00aa -.set MODEL_G5_ESCDOORDOWNBOOM, 0x00ab -.set MODEL_DUMPSTER, 0x00ac -.set MODEL_G5CARLIFTDOOR, 0x00ad -.set MODEL_CH_SHUTTER1, 0x00ae -.set MODEL_CCTV_PD, 0x00af -.set MODEL_COMHUB, 0x00b0 -.set MODEL_QUADPOD, 0x00b1 -.set MODEL_PD_CONSOLE, 0x00b2 -.set MODEL_DD_GRATE, 0x00b3 -.set MODEL_LIFT_PLATFORM, 0x00b4 -.set MODEL_LIGHTSWITCH, 0x00b5 -.set MODEL_BLASTSHIELD, 0x00b6 -.set MODEL_LIGHTSWITCH2, 0x00b7 -.set MODEL_DD_ACCESSDOORUP, 0x00b8 -.set MODEL_DD_ACCESSDOORDN, 0x00b9 -.set MODEL_LAB_CONTAINER, 0x00ba -.set MODEL_LAB_CHAIR, 0x00bb -.set MODEL_LAB_TABLE, 0x00bc -.set MODEL_LAB_MICROSCOPE, 0x00bd -.set MODEL_LAB_MAINFRAME, 0x00be -.set MODEL_DD_LABDOOR, 0x00bf -.set MODEL_DD_LAB_DOORTOP, 0x00c0 -.set MODEL_MULTI_AMMO_CRATE, 0x00c1 -.set MODEL_CHRCHAIN, 0x00c2 -.set MODEL_TDOOR, 0x00c3 -.set MODEL_CI_SOFA, 0x00c4 -.set MODEL_CI_LIFT, 0x00c5 -.set MODEL_CI_LIFTDOOR, 0x00c6 -.set MODEL_LASERCUT, 0x00c7 -.set MODEL_SK_SHUTTLE, 0x00c8 -.set MODEL_NEWVILLADOOR, 0x00c9 -.set MODEL_SK_PILLARLEFT, 0x00ca -.set MODEL_SK_PILLARRIGHT, 0x00cb -.set MODEL_SK_PLINTH_T, 0x00cc -.set MODEL_SK_PLINTH_ML, 0x00cd -.set MODEL_SK_PLINTH_MR, 0x00ce -.set MODEL_SK_PLINTH_BL, 0x00cf -.set MODEL_SK_PLINTH_BR, 0x00d0 -.set MODEL_SK_FL_SHAD_T, 0x00d1 -.set MODEL_SK_FL_SHAD_ML, 0x00d2 -.set MODEL_SK_FL_SHAD_MR, 0x00d3 -.set MODEL_SK_FL_SHAD_BL, 0x00d4 -.set MODEL_SK_FL_SHAD_BR, 0x00d5 -.set MODEL_SK_FL_NOSHAD_T, 0x00d6 -.set MODEL_SK_FL_NOSHAD_ML, 0x00d7 -.set MODEL_SK_FL_NOSHAD_MR, 0x00d8 -.set MODEL_SK_FL_NOSHAD_BL, 0x00d9 -.set MODEL_SK_FL_NOSHAD_BR, 0x00da -.set MODEL_SK_TEMPLECOLUMN1, 0x00db -.set MODEL_SK_TEMPLECOLUMN2, 0x00dc -.set MODEL_SK_TEMPLECOLUMN3, 0x00dd -.set MODEL_SK_SUNSHAD1, 0x00de -.set MODEL_SK_SUNSHAD2, 0x00df -.set MODEL_SK_SUNNOSHAD1, 0x00e0 -.set MODEL_SK_SUNNOSHAD2, 0x00e1 -.set MODEL_BARREL, 0x00e2 -.set MODEL_GLASS_FLOOR, 0x00e3 -.set MODEL_ESCA_STEP, 0x00e4 -.set MODEL_MATRIX_LIFT, 0x00e5 -.set MODEL_RUBBLE1, 0x00e6 -.set MODEL_RUBBLE2, 0x00e7 -.set MODEL_RUBBLE3, 0x00e8 -.set MODEL_RUBBLE4, 0x00e9 -.set MODEL_CABLE_CAR, 0x00ea -.set MODEL_ELVIS_SAUCER, 0x00eb -.set MODEL_STEWARDESS_TROLLEY, 0x00ec -.set MODEL_AIRBASE_LIFT_ENCLOSED, 0x00ed -.set MODEL_AIRBASE_LIFT_ANGLE, 0x00ee -.set MODEL_AIRBASE_SAFEDOOR, 0x00ef -.set MODEL_AF1_PILOTCHAIR, 0x00f0 -.set MODEL_AF1_PASSCHAIR, 0x00f1 -.set MODEL_TESTOBJ, 0x00f2 -.set MODEL_CHRNIGHTSIGHT, 0x00f3 -.set MODEL_CHRSHIELD, 0x00f4 -.set MODEL_CHRFALCON2, 0x00f5 -.set MODEL_CHRLEEGUN1, 0x00f6 -.set MODEL_CHRMAULER, 0x00f7 -.set MODEL_CHRDY357, 0x00f8 -.set MODEL_CHRDY357TRENT, 0x00f9 -.set MODEL_CHRMAIANPISTOL, 0x00fa -.set MODEL_CHRFALCON2SIL, 0x00fb -.set MODEL_CHRFALCON2SCOPE, 0x00fc -.set MODEL_CHRCMP150, 0x00fd -.set MODEL_CHRAR34, 0x00fe -.set MODEL_CHRDRAGON, 0x00ff -.set MODEL_CHRSUPERDRAGON, 0x0100 -.set MODEL_CHRAVENGER, 0x0101 -.set MODEL_CHRCYCLONE, 0x0102 -.set MODEL_CHRMAIANSMG, 0x0103 -.set MODEL_CHRRCP120, 0x0104 -.set MODEL_CHRPCGUN, 0x0105 -.set MODEL_CHRSHOTGUN, 0x0106 -.set MODEL_CHRSKMINIGUN, 0x0107 -.set MODEL_CHRDYROCKET, 0x0108 -.set MODEL_CHRDEVASTATOR, 0x0109 -.set MODEL_CHRSKROCKET, 0x010a -.set MODEL_CHRZ2020, 0x010b -.set MODEL_CHRSNIPERRIFLE, 0x010c -.set MODEL_CHRCROSSBOW, 0x010d -.set MODEL_CHRDRUGGUN, 0x010e -.set MODEL_CHRKNIFE, 0x010f -.set MODEL_CHRNBOMB, 0x0110 -.set MODEL_CHRFLASHBANG, 0x0111 -.set MODEL_CHRGRENADE, 0x0112 -.set MODEL_CHRTIMEDMINE, 0x0113 -.set MODEL_CHRPROXIMITYMINE, 0x0114 -.set MODEL_CHRREMOTEMINE, 0x0115 -.set MODEL_CHRECMMINE, 0x0116 -.set MODEL_CHRWPPK, 0x0117 -.set MODEL_CHRTT33, 0x0118 -.set MODEL_CHRSKORPION, 0x0119 -.set MODEL_CHRKALASH, 0x011a -.set MODEL_CHRUZI, 0x011b -.set MODEL_CHRMP5K, 0x011c -.set MODEL_CHRM16, 0x011d -.set MODEL_CHRFNP90, 0x011e -.set MODEL_CHRDYROCKETMIS, 0x011f -.set MODEL_CHRSKROCKETMIS, 0x0120 -.set MODEL_CHRCROSSBOLT, 0x0121 -.set MODEL_CHRDEVGRENADE, 0x0122 -.set MODEL_CHRDRAGGRENADE, 0x0123 -.set MODEL_A51_TURRET, 0x0124 -.set MODEL_PELAGICDOOR, 0x0125 -.set MODEL_AUTOSURGEON, 0x0126 -.set MODEL_LIMO, 0x0127 -.set MODEL_A51INTERCEPTOR, 0x0128 -.set MODEL_A51DISH, 0x0129 -.set MODEL_A51RADARCONSOLE, 0x012a -.set MODEL_A51LOCKERDOOR, 0x012b -.set MODEL_G5GENERATOR, 0x012c -.set MODEL_G5DUMPSTER, 0x012d -.set MODEL_CHRCLOAKER, 0x012e -.set MODEL_CHRSPEEDPILL, 0x012f -.set MODEL_BIGPELAGICDOOR, 0x0130 -.set MODEL_SK_JONRUBBLE3, 0x0131 -.set MODEL_SK_JONRUBBLE4, 0x0132 -.set MODEL_SK_JONRUBBLE5, 0x0133 -.set MODEL_SK_JONRUBBLE6, 0x0134 -.set MODEL_BAGGAGECARRIER, 0x0135 -.set MODEL_MINESIGN, 0x0136 -.set MODEL_CHAMBER, 0x0137 -.set MODEL_ISOTOPEEXPERIMENT, 0x0138 -.set MODEL_ISOTOPE, 0x0139 -.set MODEL_REACTORDOOR, 0x013a -.set MODEL_SAUCERINSIDE, 0x013b -.set MODEL_VILLASTOOL, 0x013c -.set MODEL_CETANWINDOW1, 0x013d -.set MODEL_CETANWINDOW2, 0x013e -.set MODEL_CETANWINDOW3, 0x013f -.set MODEL_BINOCULARS, 0x0140 -.set MODEL_SUBMARINE, 0x0141 -.set MODEL_AIRFORCE1, 0x0142 -.set MODEL_ENGINEPART, 0x0143 -.set MODEL_CETROOFGUN, 0x0144 -.set MODEL_CETANSMALLDOOR, 0x0145 -.set MODEL_POWERNODE, 0x0146 -.set MODEL_CETANBLUEGREENL, 0x0147 -.set MODEL_CETANBLUEGREENR, 0x0148 -.set MODEL_SKEDARCONSOLE, 0x0149 -.set MODEL_SKEDARCONSOLEPANEL, 0x014a -.set MODEL_WEAPONCDOOR, 0x014b -.set MODEL_TARGET, 0x014c -.set MODEL_DEVICESECRETDOOR, 0x014d -.set MODEL_CARRINGTONSECRETDOOR, 0x014e -.set MODEL_SINISTERPC, 0x014f -.set MODEL_SINISTERSTATION, 0x0150 -.set MODEL_KEYPADLOCK, 0x0151 -.set MODEL_THUMBPRINTSCANNER, 0x0152 -.set MODEL_RETINALOCK, 0x0153 -.set MODEL_CARDLOCK, 0x0154 -.set MODEL_GOODSTATION, 0x0155 -.set MODEL_GOODPC, 0x0156 -.set MODEL_CHRAUTOGUN, 0x0157 -.set MODEL_G5BIGCHAIR, 0x0158 -.set MODEL_G5SMALLCHAIR, 0x0159 -.set MODEL_KINGSCEPTRE, 0x015a -.set MODEL_LABCOAT, 0x015b -.set MODEL_CIDOOR1, 0x015c -.set MODEL_G5_CHAIR, 0x015d -.set MODEL_G5_CHAIR2, 0x015e -.set MODEL_DD_WINDOW_FOYER, 0x015f -.set MODEL_CI_CABINET, 0x0160 -.set MODEL_CI_DESK, 0x0161 -.set MODEL_CI_CARR_DESK, 0x0162 -.set MODEL_CI_F_CHAIR, 0x0163 -.set MODEL_CI_LOUNGER, 0x0164 -.set MODEL_CI_F_SOFA, 0x0165 -.set MODEL_CI_TABLE, 0x0166 -.set MODEL_CV_COFFEE_TABLE, 0x0167 -.set MODEL_CV_CHAIR1, 0x0168 -.set MODEL_CV_CHAIR2, 0x0169 -.set MODEL_CV_SOFA, 0x016a -.set MODEL_CV_CHAIR4, 0x016b -.set MODEL_CV_LAMP, 0x016c -.set MODEL_CV_CABINET, 0x016d -.set MODEL_CV_F_BED, 0x016e -.set MODEL_PEL_CHAIR1, 0x016f -.set MODEL_SK_CONSOLE2, 0x0170 -.set MODEL_DD_EAR_TABLE, 0x0171 -.set MODEL_DD_EAR_CHAIR, 0x0172 -.set MODEL_AIRBASE_TABLE2, 0x0173 -.set MODEL_AIRBASE_CHAIR2, 0x0174 -.set MODEL_MISC_CRATE, 0x0175 -.set MODEL_A51_CRATE1_0175, 0x0176 -.set MODEL_MISC_IRSPECS, 0x0177 -.set MODEL_A51_ROOFGUN, 0x0178 -.set MODEL_SK_DRONE_GUN, 0x0179 -.set MODEL_CI_ROOFGUN, 0x017a -.set MODEL_CV_TABLE, 0x017b -.set MODEL_CIDOOR1_REF, 0x017c -.set MODEL_ALASKADOOR_OUT, 0x017d -.set MODEL_ALASKADOOR_IN, 0x017e -.set MODEL_WIREFENCE, 0x017f -.set MODEL_RARELOGO, 0x0180 -.set MODEL_KEYCARD, 0x0181 -.set MODEL_BODYARMOUR, 0x0182 -.set MODEL_A51GATE_R, 0x0183 -.set MODEL_A51GATE_L, 0x0184 -.set MODEL_AF1_LAMP, 0x0185 -.set MODEL_AF1_TOILET, 0x0186 -.set MODEL_AF1_DOORBIG2, 0x0187 -.set MODEL_AF1_PHONE, 0x0188 -.set MODEL_AF1_CARGODOOR, 0x0189 -.set MODEL_G5_ALARM, 0x018a -.set MODEL_G5_LASER_SWITCH, 0x018b -.set MODEL_SK_TEMPLECOLUMN4, 0x018c -.set MODEL_COREHATCH, 0x018d -.set MODEL_A51GRATE, 0x018e -.set MODEL_AF1ESCAPEDOOR, 0x018f -.set MODEL_PRESCAPSULE, 0x0190 -.set MODEL_SKEDARBRIDGE, 0x0191 -.set MODEL_PELAGICDOOR2, 0x0192 -.set MODEL_TTB_BOX, 0x0193 -.set MODEL_INSTFRONTDOOR, 0x0194 -.set MODEL_CHRLASER, 0x0195 -.set MODEL_BAFTA, 0x0196 -.set MODEL_CHRSONICSCREWER, 0x0197 -.set MODEL_CHRLUMPHAMMER, 0x0198 -.set MODEL_EXPLOSIVEBRICK, 0x0199 -.set MODEL_SKEDARBOMB, 0x019a -.set MODEL_ZIGGYCARD, 0x019b -.set MODEL_SAFEITEM, 0x019c -.set MODEL_RUSSDAR, 0x019d -.set MODEL_XRAYSPECS, 0x019e -.set MODEL_CHRLUMPHAMMER, 0x019f -.set MODEL_CHREYESPY, 0x01a0 -.set MODEL_CHRDOORDECODER, 0x01a1 -.set MODEL_AF1_TABLE, 0x01a2 -.set MODEL_SHUTTLEDOOR, 0x01a3 -.set MODEL_RUINBRIDGE, 0x01a4 -.set MODEL_SECRETINDOOR, 0x01a5 -.set MODEL_SENSITIVEINFO, 0x01a6 -.set MODEL_SUITCASE, 0x01a7 -.set MODEL_SKPUZZLEOBJECT, 0x01a8 -.set MODEL_A51LIFTDOOR, 0x01a9 -.set MODEL_CIHUB, 0x01aa -.set MODEL_SK_SHIP_DOOR2, 0x01ab -.set MODEL_SK_WINDOW1, 0x01ac -.set MODEL_SK_HANGARDOORB_TOP, 0x01ad -.set MODEL_SK_HANGARDOORB_BOT, 0x01ae -.set MODEL_AF1_INNERDOOR, 0x01af -.set MODEL_LASER_POST, 0x01b0 -.set MODEL_TARGETAMP, 0x01b1 -.set MODEL_SK_LIFT, 0x01b2 -.set MODEL_KNOCKKNOCK, 0x01b3 -.set MODEL_CETANDOOR, 0x01b4 -.set MODEL_AF1RUBBLE, 0x01b5 -.set MODEL_DD_DR_NONREF, 0x01b6 -.set MODEL_CETANDOORSIDE, 0x01b7 -.set MODEL_BUDDYBRIDGE, 0x01b8 - -.set MUSIC_NONE, 0x00 -.set MUSIC_TITLE2, 0x01 -.set MUSIC_EXTRACTION, 0x02 -.set MUSIC_PAUSEMENU, 0x03 -.set MUSIC_DEFENSE, 0x04 -.set MUSIC_INVESTIGATION_SFX, 0x05 -.set MUSIC_ESCAPE, 0x06 -.set MUSIC_DEEPSEA, 0x07 -.set MUSIC_DDTOWER_SFX, 0x08 -.set MUSIC_DEFECTION, 0x09 -.set MUSIC_DEATH_SOLO, 0x0a -.set MUSIC_DEFECTION_INTRO_SFX, 0x0b -.set MUSIC_VILLA, 0x0c -.set MUSIC_CI, 0x0d -.set MUSIC_CHICAGO, 0x0e -.set MUSIC_G5, 0x0f -.set MUSIC_DEFECTION_X, 0x10 -.set MUSIC_EXTRACTION_X, 0x11 -.set MUSIC_INVESTIGATION, 0x12 -.set MUSIC_INVESTIGATION_x, 0x13 -.set MUSIC_INFILTRATION, 0x14 -.set MUSIC_DEATH_BETA, 0x15 -.set MUSIC_RESCUE, 0x16 -.set MUSIC_AIRBASE, 0x17 -.set MUSIC_AIRFORCEONE, 0x18 -.set MUSIC_DEATH_MP, 0x19 -.set MUSIC_EXTRACTION_OUTRO_SFX, 0x1a -.set MUSIC_MISSION_UNKNOWN, 0x1b -.set MUSIC_PELAGIC, 0x1c -.set MUSIC_CRASHSITE, 0x1d -.set MUSIC_CRASHSITE_X, 0x1e -.set MUSIC_ATTACKSHIP, 0x1f -.set MUSIC_ATTACKSHIP_X, 0x20 -.set MUSIC_SKEDARRUINS, 0x21 -.set MUSIC_DEFECTION_INTRO, 0x22 -.set MUSIC_DEFECTION_OUTRO, 0x23 -.set MUSIC_DEFENSE_X, 0x24 -.set MUSIC_INVESTIGATION_INTRO, 0x25 -.set MUSIC_INVESTIGATION_OUTRO, 0x26 -.set MUSIC_VILLA_X, 0x27 -.set MUSIC_CHICAGO_X, 0x28 -.set MUSIC_G5_X, 0x29 -.set MUSIC_INFILTRATION_X, 0x2a -.set MUSIC_CHICAGO_OUTRO, 0x2b -.set MUSIC_EXTRACTION_OUTRO, 0x2c -.set MUSIC_EXTRACTION_INTRO, 0x2d -.set MUSIC_G5_INTRO, 0x2e -.set MUSIC_CHICAGO_INTRO, 0x2f -.set MUSIC_VILLA_INTRO1, 0x30 -.set MUSIC_INFILTRATION_INTRO, 0x31 -.set MUSIC_RESCUE_X, 0x32 -.set MUSIC_ESCAPE_X, 0x33 -.set MUSIC_AIRBASE_X, 0x34 -.set MUSIC_AIRFORCEONE_X, 0x35 -.set MUSIC_PELAGIC_X, 0x36 -.set MUSIC_DEEPSEA_X, 0x37 -.set MUSIC_SKEDARRUINS_X, 0x38 -.set MUSIC_AIRBASE_OUTRO_LONG, 0x39 -.set MUSIC_DARK_COMBAT, 0x3a -.set MUSIC_SKEDAR_MYSTERY, 0x3b -.set MUSIC_DEEPSEA_BETA, 0x3c -.set MUSIC_CI_OPERATIVE, 0x3d -.set MUSIC_DATADYNE_ACTION, 0x3e -.set MUSIC_MAIAN_TEARS, 0x3f -.set MUSIC_ALIEN_CONFLICT, 0x40 -.set MUSIC_ESCAPE_INTRO, 0x41 -.set MUSIC_RESCUE_OUTRO, 0x42 -.set MUSIC_VILLA_INTRO2, 0x43 -.set MUSIC_VILLA_INTRO3, 0x44 -.set MUSIC_G5_OUTRO, 0x45 -.set MUSIC_G5_MIDCUTSCENE, 0x46 -.set MUSIC_MISSION_FAILED, 0x47 -.set MUSIC_COMBATSIM_MENU, 0x48 -.set MUSIC_MISSION_SUCCESS, 0x49 -.set MUSIC_CRASHSITE_INTRO, 0x4a -.set MUSIC_AIRBASE_INTRO, 0x4b -.set MUSIC_ATTACKSHIP_INTRO, 0x4c -.set MUSIC_DEEPSEA_MIDCUTSCENE, 0x4d -.set MUSIC_AIRFORCEONE_INTRO, 0x4e -.set MUSIC_ATTACKSHIP_OUTRO, 0x4f -.set MUSIC_ESCAPE_MIDCUTSCENE, 0x50 -.set MUSIC_RESCUE_INTRO, 0x51 -.set MUSIC_DEEPSEA_INTRO, 0x52 -.set MUSIC_INFILTRATION_OUTRO, 0x53 -.set MUSIC_PELAGIC_INTRO, 0x54 -.set MUSIC_ESCAPE_OUTRO_LONG, 0x55 -.set MUSIC_DEFENSE_INTRO, 0x56 -.set MUSIC_CRASHSITE_OUTRO, 0x57 -.set MUSIC_CREDITS, 0x58 -.set MUSIC_MAINMENU, 0x59 -.set MUSIC_DEEPSEA_OUTRO, 0x5a -.set MUSIC_AIRFORCEONE_MIDCUTSCENE, 0x5b -.set MUSIC_PELAGIC_OUTRO, 0x5c -.set MUSIC_AIRFORCEONE_OUTRO, 0x5d -.set MUSIC_SKEDARRUINS_INTRO, 0x5e -.set MUSIC_BETA_NOTE, 0x5f -.set MUSIC_AIRBASE_OUTRO, 0x60 -.set MUSIC_DEFENSE_OUTRO, 0x61 -.set MUSIC_SKEDARRUINS_OUTRO, 0x62 -.set MUSIC_VILLA_OUTRO, 0x63 -.set MUSIC_SKEDARRUINS_KING, 0x64 -.set MUSIC_CI_TRAINING, 0x65 -.set MUSIC_CRASHSITE_WIND, 0x66 -.set MUSIC_COMBATSIM_COMPLETE, 0x67 -.set MUSIC_OCEAN, 0x68 -.set MUSIC_WIND, 0x69 -.set MUSIC_TRAFFIC, 0x6a -.set MUSIC_TITLE1, 0x6b -.set MUSIC_CI_INTRO, 0x6c -.set MUSIC_INFILTRATION_SFX, 0x6d -.set MUSIC_DEEPSEA_SFX, 0x6e -.set MUSIC_AIRFORCEONE_SFX, 0x6f -.set MUSIC_ATTACKSHIP_SFX, 0x70 -.set MUSIC_SKEDAR_WIND, 0x71 -.set MUSIC_ESCAPE_OUTRO_SFX, 0x72 -.set MUSIC_A51_LOUDSPEAKER1, 0x73 -.set MUSIC_A51_LOUDSPEAKER2, 0x74 -.set MUSIC_BETA_MELODY, 0x75 -.set MUSIC_ESCAPE_OUTRO_SHORT, 0x76 - - -# Animations -#.set ANIM_, 0x0000: idle -.set ANIM_TWO_GUN_HOLD, 0x0001 -.set ANIM_SURRENDER_002E, 0x002e -.set ANIM_TALKING_003D, 0x003d -#.set ANIM_, 0x0066: arms up action then move forward -.set ANIM_TALKING_0098, 0x0098 -.set ANIM_YAWN, 0x009a -.set ANIM_SCRATCH_HEAD, 0x009b -.set ANIM_ROLL_HEAD, 0x009c -.set ANIM_GRAB_CROTCH, 0x009d -.set ANIM_GRAB_BUTT, 0x009e -.set ANIM_SNEEZE, 0x009f -.set ANIM_TALKING_00A0, 0x00a0 -#.set ANIM_, 0x00a1: two handed gun, taunting a bit -.set ANIM_TALKING_00A3, 0x00a3 -.set ANIM_PUSH_BUTTON, 0x00ac -.set ANIM_STANDING_TYPE_ONE_HAND, 0x00af -#.set ANIM_, 0x00e1: look up -#.set ANIM_, 0x0156: Jo in Defection intro -#.set ANIM_, 0x0166: Jo in G5 intro -#.set ANIM_, 0x0167: Guard in G5 intro -#.set ANIM_, 0x0179: Jo in Chicago outro -#.set ANIM_, 0x0197: Jo in G5 outro -#.set ANIM_, 0x01d5: Jo in Deep Sea mid cutscene -#.set ANIM_, 0x01d6: Elvis in Deep Sea mid cutscene -#.set ANIM_, 0x01d7: Dr Caroll in Deep Sea mid cutscene -.set ANIM_COWER_01F5, 0x01f5 -.set ANIM_STAND_UP_FROM_SITTING, 0x01fa -.set ANIM_SITTING_TYPING, 0x01fb -#.set ANIM_, 0x01fd: slow aim and walk forward -.set ANIM_RELOAD, 0x01ff -.set ANIM_DONT_SHOOT, 0x0201 -.set ANIM_SURPRISED_0202, 0x0202 -.set ANIM_OPERATE_0204, 0x0204 -.set ANIM_OPERATE_0205, 0x0205 -.set ANIM_OPERATE_0206, 0x0206 -.set ANIM_SMOKE_CIGARETTE, 0x0207 -.set ANIM_RELOAD_0209, 0x0209 -#.set ANIM_, 0x020b: laying on floor -#.set ANIM_, 0x020c: seated dead on floor -.set ANIM_OPERATE_0221, 0x0221 // point with right arm -.set ANIM_OPERATE_0222, 0x0222 // push button with right hand -.set ANIM_OPERATE_0223, 0x0223 // right arm up, waggle for a bit -.set ANIM_WALK_BACKWARDS, 0x0226 -.set ANIM_SITTING_DORMANT, 0x0227 -.set ANIM_BLINDED, 0x0228 -.set ANIM_COWER_0229, 0x0229 -#.set ANIM_, 0x022a: on floor face down -.set ANIM_TALKING_0231, 0x0231 -.set ANIM_TALKING_0232, 0x0232 -.set ANIM_TALKING_0233, 0x0233 -.set ANIM_TALKING_0234, 0x0234 -#.set ANIM_, 0x023a: scratch head -.set ANIM_HEAD_ROLL, 0x023b -.set ANIM_PICK_UP_GUN, 0x023d -.set ANIM_BIG_SNEEZE, 0x023f -.set ANIM_DRAW_PISTOL_0245, 0x0245 -.set ANIM_LOOK_AROUND_025B, 0x025b -.set ANIM_LOOK_AROUND_025C, 0x025c -.set ANIM_LOOK_AROUND_025D, 0x025d -.set ANIM_LOOK_AROUND_025E, 0x025e -.set ANIM_LOOK_AROUND_FRANTIC, 0x025f -.set ANIM_SITTING_0265, 0x0265 -#.set ANIM_, 0x0266: covering mouth looking -.set ANIM_DRAW_PISTOL_0288, 0x0288 -.set ANIM_DRAW_PISTOL_0289, 0x0289 -#.set ANIM_, 0x02c4: Jo in Defense intro -#.set ANIM_, 0x0350: Skedar right up straight up -#.set ANIM_, 0x0351: Skedar stretching arms and lefts -.set ANIM_SKEDAR_COLLAPSE, 0x0352 - diff --git a/asm/include/intro.inc b/asm/include/intro.inc deleted file mode 100644 index ee8106e0b..000000000 --- a/asm/include/intro.inc +++ /dev/null @@ -1,47 +0,0 @@ -# vi: ft=asm - -.macro spawn pad - .word 0x00000000 - .word \pad - .word 0 -.endm - -.macro intro_weapon weapon u1 - .word 0x00000001 - .word \weapon - .word \u1 - .word 0 -.endm - -.macro ammo ammotype value - .word 0x00000002 - .word \ammotype - .word \value - .word 0 -.endm - -.macro outfit outfit - .word 0x00000005 - .word \outfit -.endm - -.macro case id pad - .word 0x00000009 - .word \id - .word \pad -.endm - -.macro case_respawn id pad - .word 0x0000000a - .word \id - .word \pad -.endm - -.macro hill room - .word 0x0000000b - .word \room -.endm - -.macro endintro - .word 0x0000000c -.endm diff --git a/asm/include/paths.inc b/asm/include/paths.inc deleted file mode 100644 index 88551e55b..000000000 --- a/asm/include/paths.inc +++ /dev/null @@ -1,27 +0,0 @@ -# vi: ft=asm - -.macro register_path label id param - .word \label - .byte \id - .byte \param - .short 0 -.endm - -.macro endpaths - .word 0 - .word 0 -.endm - -.macro beginpath id flags - .byte \id - .byte 0 - .short \flags -.endm - -.macro pad pad_id - .word \pad_id -.endm - -.macro endpath - .word 0xffffffff -.endm diff --git a/asm/include/props.inc b/asm/include/props.inc deleted file mode 100644 index f6df66ce4..000000000 --- a/asm/include/props.inc +++ /dev/null @@ -1,704 +0,0 @@ -# vi: ft=asm - -// Only used within this file -.macro generic_object model pad props1 props2 u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 u17 u18 u19 - .short \model - .short \pad - .word \props1 - .word \props2 - .word \u1 - .word \u2 - .word \u3 - .word \u4 - .word \u5 - .word \u6 - .word \u7 - .word \u8 - .word \u9 - .word \u10 - .word \u11 - .word \u12 - .word \u13 - .word \u14 - .word \u15 - .word \u16 - .word \u17 - .word \u18 - .word \u19 -.endm - -.macro door scale model pad props1 props2 u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 u17 u18 u19 u20 u21 u22 u23 u24 u25 u26 u27 u28 u29 u30 u31 u32 u33 u34 u35 u36 u37 u38 u39 u40 u41 u42 u43 u44 u45 u46 u47 u48 u49 u50 u51 - .short \scale - .short 0x0001 - generic_object \model \pad \props1 \props2 \u1 \u2 \u3 \u4 \u5 \u6 \u7 \u8 \u9 \u10 \u11 \u12 \u13 \u14 \u15 \u16 \u17 \u18 \u19 - .word \u20 - .word \u21 - .word \u22 - .word \u23 - .word \u24 - .word \u25 - .word \u26 - .word \u27 - .word \u28 - .word \u29 - .word \u30 - .word \u31 - .word \u32 - .word \u33 - .word \u34 - .word \u35 - .word \u36 - .word \u37 - .word \u38 - .word \u39 - .word \u40 - .word \u41 - .word \u42 - .word \u43 - .word \u44 - .word \u45 - .word \u46 - .word \u47 - .word \u48 - .word \u49 - .word \u50 - .word \u51 -.endm - -.macro door_scale scale - .word 0x00000002 - .word \scale -.endm - -.macro object scale model pad props1 props2 u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 u17 u18 u19 - .short \scale - .short 0x0003 - generic_object \model \pad \props1 \props2 \u1 \u2 \u3 \u4 \u5 \u6 \u7 \u8 \u9 \u10 \u11 \u12 \u13 \u14 \u15 \u16 \u17 \u18 \u19 -.endm - -.macro key scale model pad props1 props2 u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 u17 u18 u19 lockbits - .short \scale - .short 0x0004 - generic_object \model \pad \props1 \props2 \u1 \u2 \u3 \u4 \u5 \u6 \u7 \u8 \u9 \u10 \u11 \u12 \u13 \u14 \u15 \u16 \u17 \u18 \u19 - .word \lockbits -.endm - -.macro camera scale model pad props1 props2 u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 u17 u18 u19 u20 u21 u22 u23 u24 u25 u26 u27 u28 u29 u30 u31 u32 u33 u34 u35 u36 u37 u38 u39 u40 u41 u42 u43 u44 u45 - .short \scale - .short 0x0006 - generic_object \model \pad \props1 \props2 \u1 \u2 \u3 \u4 \u5 \u6 \u7 \u8 \u9 \u10 \u11 \u12 \u13 \u14 \u15 \u16 \u17 \u18 \u19 - .word \u20 - .word \u21 - .word \u22 - .word \u23 - .word \u24 - .word \u25 - .word \u26 - .word \u27 - .word \u28 - .word \u29 - .word \u30 - .word \u31 - .word \u32 - .word \u33 - .word \u34 - .word \u35 - .word \u36 - .word \u37 - .word \u38 - .word \u39 - .word \u40 - .word \u41 - .word \u42 - .word \u43 - .word \u44 - .word \u45 -.endm - -.macro weapon scale model chr props1 props2 u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 u17 u18 u19 weapon u20 u21 - .short \scale - .short 0x0008 - generic_object \model \chr \props1 \props2 \u1 \u2 \u3 \u4 \u5 \u6 \u7 \u8 \u9 \u10 \u11 \u12 \u13 \u14 \u15 \u16 \u17 \u18 \u19 - .byte \weapon - .byte 0 - .short 0 - .word \u20 - .word \u21 -.endm - -.macro ammocrate scale model pad props1 props2 u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 u17 u18 u19 ammotype - .short \scale - .short 0x0007 - generic_object \model \pad \props1 \props2 \u1 \u2 \u3 \u4 \u5 \u6 \u7 \u8 \u9 \u10 \u11 \u12 \u13 \u14 \u15 \u16 \u17 \u18 \u19 - .word \ammotype -.endm - -.macro chr unk1 id pad body head function target_pad target_chr hear_dist view_dist props1 bank1flags alliance group chair group2 associated - .word 0x00000009 - .word \unk1 - .short \id - .short \pad - .byte \body - .byte \head - .short \function - .short \target_pad - .short \target_chr - .short \hear_dist - .short \view_dist - .word \props1 - .word \bank1flags - .byte \alliance - .byte \group - .short \chair - .word \group2 - .word \associated -.endm - -.macro singlemonitor scale model pad props1 props2 u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 u17 u18 u19 u20 u21 u22 u23 u24 u25 u26 u27 u28 u29 u30 u31 u32 u33 u34 u35 u36 u37 u38 u39 u40 u41 u42 u43 u44 u45 u46 u47 u48 u49 - .short \scale - .short 0x000a - generic_object \model \pad \props1 \props2 \u1 \u2 \u3 \u4 \u5 \u6 \u7 \u8 \u9 \u10 \u11 \u12 \u13 \u14 \u15 \u16 \u17 \u18 \u19 - .word \u20 - .word \u21 - .word \u22 - .word \u23 - .word \u24 - .word \u25 - .word \u26 - .word \u27 - .word \u28 - .word \u29 - .word \u30 - .word \u31 - .word \u32 - .word \u33 - .word \u34 - .word \u35 - .word \u36 - .word \u37 - .word \u38 - .word \u39 - .word \u40 - .word \u41 - .word \u42 - .word \u43 - .word \u44 - .word \u45 - .word \u46 - .word \u47 - .word \u48 - .word \u49 -.endm - -.macro multimonitor scale model pad props1 props2 u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 u17 u18 u19 u20 u21 u22 u23 u24 u25 u26 u27 u28 u29 u30 u31 u32 u33 u34 u35 u36 u37 u38 u39 u40 u41 u42 u43 u44 u45 u46 u47 u48 u49 u50 u51 u52 u53 u54 u55 u56 u57 u58 u59 u60 u61 u62 u63 u64 u65 u66 u67 u68 u69 u70 u71 u72 u73 u74 u75 u76 u77 u78 u79 u80 u81 u82 u83 u84 u85 u86 u87 u88 u89 u90 u91 u92 u93 u94 u95 u96 u97 u98 u99 u100 u101 u102 u103 u104 u105 u106 u107 u108 u109 u110 u111 u112 u113 u114 u115 u116 u117 u118 u119 u120 u121 u122 u123 u124 u125 u126 u127 u128 u129 u130 u131 u132 u133 u134 u135 u136 - .short \scale - .short 0x000b - generic_object \model \pad \props1 \props2 \u1 \u2 \u3 \u4 \u5 \u6 \u7 \u8 \u9 \u10 \u11 \u12 \u13 \u14 \u15 \u16 \u17 \u18 \u19 - .word \u20 - .word \u21 - .word \u22 - .word \u23 - .word \u24 - .word \u25 - .word \u26 - .word \u27 - .word \u28 - .word \u29 - .word \u30 - .word \u31 - .word \u32 - .word \u33 - .word \u34 - .word \u35 - .word \u36 - .word \u37 - .word \u38 - .word \u39 - .word \u40 - .word \u41 - .word \u42 - .word \u43 - .word \u44 - .word \u45 - .word \u46 - .word \u47 - .word \u48 - .word \u49 - .word \u50 - .word \u51 - .word \u52 - .word \u53 - .word \u54 - .word \u55 - .word \u56 - .word \u57 - .word \u58 - .word \u59 - .word \u60 - .word \u61 - .word \u62 - .word \u63 - .word \u64 - .word \u65 - .word \u66 - .word \u67 - .word \u68 - .word \u69 - .word \u70 - .word \u71 - .word \u72 - .word \u73 - .word \u74 - .word \u75 - .word \u76 - .word \u77 - .word \u78 - .word \u79 - .word \u80 - .word \u81 - .word \u82 - .word \u83 - .word \u84 - .word \u85 - .word \u86 - .word \u87 - .word \u88 - .word \u89 - .word \u90 - .word \u91 - .word \u92 - .word \u93 - .word \u94 - .word \u95 - .word \u96 - .word \u97 - .word \u98 - .word \u99 - .word \u100 - .word \u101 - .word \u102 - .word \u103 - .word \u104 - .word \u105 - .word \u106 - .word \u107 - .word \u108 - .word \u109 - .word \u110 - .word \u111 - .word \u112 - .word \u113 - .word \u114 - .word \u115 - .word \u116 - .word \u117 - .word \u118 - .word \u119 - .word \u120 - .word \u121 - .word \u122 - .word \u123 - .word \u124 - .word \u125 - .word \u126 - .word \u127 - .word \u128 - .word \u129 - .word \u130 - .word \u131 - .word \u132 - .word \u133 - .word \u134 - .word \u135 - .word \u136 -.endm - -.macro autogun scale model pad props1 props2 u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 u17 u18 u19 u20 u21 u22 u23 u24 u25 u26 u27 u28 u29 u30 u31 u32 u33 u34 u35 u36 u37 u38 u39 - .short \scale - .short 0x000d - generic_object \model \pad \props1 \props2 \u1 \u2 \u3 \u4 \u5 \u6 \u7 \u8 \u9 \u10 \u11 \u12 \u13 \u14 \u15 \u16 \u17 \u18 \u19 - .word \u20 - .word \u21 - .word \u22 - .word \u23 - .word \u24 - .word \u25 - .word \u26 - .word \u27 - .word \u28 - .word \u29 - .word \u30 - .word \u31 - .word \u32 - .word \u33 - .word \u34 - .word \u35 - .word \u36 - .word \u37 - .word \u38 - .word \u39 -.endm - -.macro link_collectibles a b - .word 0x0000000e - .short \a - .short \b -.endm - -.macro debris scale model pad props1 props2 u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 u17 u18 u19 - .short \scale - .short 0x000f - generic_object \model \pad \props1 \props2 \u1 \u2 \u3 \u4 \u5 \u6 \u7 \u8 \u9 \u10 \u11 \u12 \u13 \u14 \u15 \u16 \u17 \u18 \u19 -.endm - -.macro link_objects u1 u2 u3 u4 - .word 0x00000013 - .word \u1 - .word \u2 - .word \u3 - .word \u4 -.endm - -.macro ammocratemulti scale model pad props1 props2 u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 u17 u18 u19 u20 u21 u22 u23 u24 u25 u26 u27 u28 u29 u30 u31 u32 u33 u34 u35 u36 u37 u38 - .short \scale - .short 0x0014 - generic_object \model \pad \props1 \props2 \u1 \u2 \u3 \u4 \u5 \u6 \u7 \u8 \u9 \u10 \u11 \u12 \u13 \u14 \u15 \u16 \u17 \u18 \u19 - .word \u20 - .word \u21 - .word \u22 - .word \u23 - .word \u24 - .word \u25 - .word \u26 - .word \u27 - .word \u28 - .word \u29 - .word \u30 - .word \u31 - .word \u32 - .word \u33 - .word \u34 - .word \u35 - .word \u36 - .word \u37 - .word \u38 -.endm - -.macro shield scale model pad props1 props2 u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 u17 u18 u19 u20 u21 u22 - .short \scale - .short 0x0015 - generic_object \model \pad \props1 \props2 \u1 \u2 \u3 \u4 \u5 \u6 \u7 \u8 \u9 \u10 \u11 \u12 \u13 \u14 \u15 \u16 \u17 \u18 \u19 - .word \u20 - .word \u21 - .word \u22 -.endm - -.macro tag id value - .word 0x00000016 - .short \id - .short \value - .word 0 - .word 0 -.endm - -.macro beginobjective value text diffbit - .word 0x00000017 - .word \value - .word \text - .word \diffbit -.endm - -.macro endobjective - .word 0x00000018 -.endm - -.macro require_object_destroyed object - .word 0x00000019 - .word \object -.endm - -.macro complete_flags stageflag - .word 0x0000001a - .word \stageflag -.endm - -.macro fail_flags stageflag - .word 0x0000001b - .word \stageflag -.endm - -.macro require_object_collected object - .word 0x0000001c - .word \object -.endm - -.macro require_object_thrown object - .word 0x0000001d - .word \object -.endm - -.macro require_object_holographed object u1 u2 - .word 0x0000001e - .word \object - .word \u1 - .word \u2 -.endm - -.macro require_room_entered room - .word 0x00000020 - .word \room -.endm - -.macro require_object_thrown_on_target throw_object target_object u1 - .word 0x00000021 - .word \throw_object - .word \target_object - .word \u1 -.endm - -.macro briefing value text1 - .word 0x00000023 - .word \value - .word \text1 - .word 0 -.endm - -.macro rename_object u1 id text text2 text3 text4 text5 u2 u3 - .word 0x00000025 - .word \u1 - .word \id - .word \text - .word \text2 - .word \text3 - .word \text4 - .word \text5 - .word \u2 - .word \u3 -.endm - -.macro glass scale model pad props1 props2 u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 u17 u18 u19 u20 - .short \scale - .short 0x002a - generic_object \model \pad \props1 \props2 \u1 \u2 \u3 \u4 \u5 \u6 \u7 \u8 \u9 \u10 \u11 \u12 \u13 \u14 \u15 \u16 \u17 \u18 \u19 - .word \u20 -.endm - -.macro camera2 scale u1 u2 u3 u4 u5 u6 - .short \scale - .short 0x002e - .word \u1 - .word \u2 - .word \u3 - .word \u4 - .word \u5 - .word \u6 -.endm - -.macro tinted_glass scale model pad props1 props2 u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 u17 u18 u19 u20 u21 u22 - .short \scale - .short 0x002f - generic_object \model \pad \props1 \props2 \u1 \u2 \u3 \u4 \u5 \u6 \u7 \u8 \u9 \u10 \u11 \u12 \u13 \u14 \u15 \u16 \u17 \u18 \u19 - .word \u20 - .word \u21 - .word \u22 -.endm - -.macro lift scale model pad props1 props2 u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 u17 u18 u19 pad1 pad2 u20 u21 u22 u23 u24 u25 u26 u27 u28 u29 u30 u31 u32 - .short \scale - .short 0x0030 - generic_object \model \pad \props1 \props2 \u1 \u2 \u3 \u4 \u5 \u6 \u7 \u8 \u9 \u10 \u11 \u12 \u13 \u14 \u15 \u16 \u17 \u18 \u19 - .short \pad1 - .short \pad2 - .word \u20 - .word \u21 - .word \u22 - .word \u23 - .word \u24 - .word \u25 - .word \u26 - .word \u27 - .word \u28 - .word \u29 - .word \u30 - .word \u31 - .word \u32 -.endm - -.macro link_scenery unk1 unk2 unk3 - .word 0x00000031 - .word \unk1 - .word \unk2 - .word \unk3 - .word 0 -.endm - -.macro link_paths u1 u2 u3 - .word 0x00000032 - .word \u1 - .word \u2 - .word \u3 -.endm - -.macro hoverbike scale model pad props1 props2 u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 u17 u18 u19 u20 u21 u22 u23 u24 u25 u26 u27 u28 u29 u30 u31 u32 u33 u34 u35 u36 u37 u38 u39 u40 u41 u42 u43 u44 u45 u46 u47 u48 u49 u50 u51 u52 - .short \scale - .short 0x0033 - generic_object \model \pad \props1 \props2 \u1 \u2 \u3 \u4 \u5 \u6 \u7 \u8 \u9 \u10 \u11 \u12 \u13 \u14 \u15 \u16 \u17 \u18 \u19 - .word \u20 - .word \u21 - .word \u22 - .word \u23 - .word \u24 - .word \u25 - .word \u26 - .word \u27 - .word \u28 - .word \u29 - .word \u30 - .word \u31 - .word \u32 - .word \u33 - .word \u34 - .word \u35 - .word \u36 - .word \u37 - .word \u38 - .word \u39 - .word \u40 - .word \u41 - .word \u42 - .word \u43 - .word \u44 - .word \u45 - .word \u46 - .word \u47 - .word \u48 - .word \u49 - .word \u50 - .word \u51 - .word \u52 -.endm - -.macro endprops - .word 0x00000034 -.endm - -.macro hover_prop scale model pad props1 props2 u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 u17 u18 u19 u20 u21 u22 u23 u24 u25 u26 u27 u28 u29 u30 u31 u32 u33 u34 u35 - .short \scale - .short 0x0035 - generic_object \model \pad \props1 \props2 \u1 \u2 \u3 \u4 \u5 \u6 \u7 \u8 \u9 \u10 \u11 \u12 \u13 \u14 \u15 \u16 \u17 \u18 \u19 - .word \u20 - .word \u21 - .word \u22 - .word \u23 - .word \u24 - .word \u25 - .word \u26 - .word \u27 - .word \u28 - .word \u29 - .word \u30 - .word \u31 - .word \u32 - .word \u33 - .word \u34 - .word \u35 -.endm - -.macro vent_fan scale model pad props1 props2 u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 u17 u18 u19 u20 u21 u22 u23 u24 u25 - .short \scale - .short 0x0036 - generic_object \model \pad \props1 \props2 \u1 \u2 \u3 \u4 \u5 \u6 \u7 \u8 \u9 \u10 \u11 \u12 \u13 \u14 \u15 \u16 \u17 \u18 \u19 - .word \u20 - .word \u21 - .word \u22 - .word \u23 - .word \u24 - .word \u25 -.endm - -.macro hover_vehicle scale model pad props1 props2 u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 u17 u18 u19 u20 u21 u22 u23 u24 u25 u26 u27 u28 u29 u30 u31 u32 u33 u34 - .short \scale - .short 0x0037 - generic_object \model \pad \props1 \props2 \u1 \u2 \u3 \u4 \u5 \u6 \u7 \u8 \u9 \u10 \u11 \u12 \u13 \u14 \u15 \u16 \u17 \u18 \u19 - .word \u20 - .word \u21 - .word \u22 - .word \u23 - .word \u24 - .word \u25 - .word \u26 - .word \u27 - .word \u28 - .word \u29 - .word \u30 - .word \u31 - .word \u32 - .word \u33 - .word \u34 -.endm - -.macro pad_effect effect pad - .word 0x00000038 - .word \effect - .word \pad -.endm - -.macro armed_vehicle scale model pad props1 props2 u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 u17 u18 u19 u20 u21 u22 u23 u24 u25 u26 u27 u28 u29 u30 u31 u32 u33 u34 u35 u36 u37 u38 u39 u40 u41 u42 u43 u44 u45 u46 u47 u48 u49 u50 u51 u52 u53 u54 - .short \scale - .short 0x0039 - generic_object \model \pad \props1 \props2 \u1 \u2 \u3 \u4 \u5 \u6 \u7 \u8 \u9 \u10 \u11 \u12 \u13 \u14 \u15 \u16 \u17 \u18 \u19 - .word \u20 - .word \u21 - .word \u22 - .word \u23 - .word \u24 - .word \u25 - .word \u26 - .word \u27 - .word \u28 - .word \u29 - .word \u30 - .word \u31 - .word \u32 - .word \u33 - .word \u34 - .word \u35 - .word \u36 - .word \u37 - .word \u38 - .word \u39 - .word \u40 - .word \u41 - .word \u42 - .word \u43 - .word \u44 - .word \u45 - .word \u46 - .word \u47 - .word \u48 - .word \u49 - .word \u50 - .word \u51 - .word \u52 - .word \u53 - .word \u54 -.endm - -.macro remote_mine scale model pad props1 props2 u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 u17 u18 u19 u20 u21 u22 - .short \scale - .short 0x003a - generic_object \model \pad \props1 \props2 \u1 \u2 \u3 \u4 \u5 \u6 \u7 \u8 \u9 \u10 \u11 \u12 \u13 \u14 \u15 \u16 \u17 \u18 \u19 - .word \u20 - .word \u21 - .word \u22 -.endm - -.macro escalator scale model pad props1 props2 u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 u17 u18 u19 u20 u21 u22 u23 - .short \scale - .short 0x003b - generic_object \model \pad \props1 \props2 \u1 \u2 \u3 \u4 \u5 \u6 \u7 \u8 \u9 \u10 \u11 \u12 \u13 \u14 \u15 \u16 \u17 \u18 \u19 - .word \u20 - .word \u21 - .word \u22 - .word \u23 -.endm diff --git a/asm/include/setup.inc b/asm/include/setup.inc deleted file mode 100644 index 4647848bc..000000000 --- a/asm/include/setup.inc +++ /dev/null @@ -1,32 +0,0 @@ -.include "asm/include/constants.inc" -.include "asm/include/commands.inc" -.include "asm/include/intro.inc" -.include "asm/include/paths.inc" -.include "asm/include/props.inc" - -// Write file header -.data -.word 0 -.word 0 -.word 0 -.word intro -.word props -.word paths -.word functions -.word 0 - -.if HEADERLEN > 0x20 - .word text_stagename - .word text_briefing1 - .word text_briefing2 - .word text_briefing3 - .word text_briefing4 - .word text_objective1 - .word text_objective2 - .word text_objective3 - - .if HEADERLEN > 0x40 - .word text_objective4 - .word text_objective5 - .endif -.endif diff --git a/asm/setup/mp_setupame.s b/asm/setup/mp_setupame.s deleted file mode 100644 index afa72d93a..000000000 --- a/asm/setup/mp_setupame.s +++ /dev/null @@ -1,26 +0,0 @@ -# -# Defection -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - endintro - -path00: - endpath - -paths: - endpaths - -func0000_0034: - endfunction - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setuparch.s b/asm/setup/mp_setuparch.s deleted file mode 100644 index eb8d4f980..000000000 --- a/asm/setup/mp_setuparch.s +++ /dev/null @@ -1,20 +0,0 @@ -# -# Stage ID 0x18 -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupark.s b/asm/setup/mp_setupark.s deleted file mode 100644 index 6578f8089..000000000 --- a/asm/setup/mp_setupark.s +++ /dev/null @@ -1,23 +0,0 @@ -# -# Extraction -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - endintro - -path00: - endpath - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupash.s b/asm/setup/mp_setupash.s deleted file mode 100644 index 7c926b381..000000000 --- a/asm/setup/mp_setupash.s +++ /dev/null @@ -1,26 +0,0 @@ -# -# Stage ID 0x2e -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - endintro - -path00: - endpath - -paths: - endpaths - -func0000_0034: - endfunction - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupate.s b/asm/setup/mp_setupate.s deleted file mode 100644 index 9d603a0cf..000000000 --- a/asm/setup/mp_setupate.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Duel -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupazt.s b/asm/setup/mp_setupazt.s deleted file mode 100644 index 86b3250f7..000000000 --- a/asm/setup/mp_setupazt.s +++ /dev/null @@ -1,26 +0,0 @@ -# -# Crash Site -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - endintro - -path00: - endpath - -paths: - endpaths - -func0000_0034: - endfunction - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupcat.s b/asm/setup/mp_setupcat.s deleted file mode 100644 index d4e184ab0..000000000 --- a/asm/setup/mp_setupcat.s +++ /dev/null @@ -1,20 +0,0 @@ -# -# Stage ID 0x28 -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupcave.s b/asm/setup/mp_setupcave.s deleted file mode 100644 index f410516f0..000000000 --- a/asm/setup/mp_setupcave.s +++ /dev/null @@ -1,20 +0,0 @@ -# -# Air Base -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupdam.s b/asm/setup/mp_setupdam.s deleted file mode 100644 index 977a4c42e..000000000 --- a/asm/setup/mp_setupdam.s +++ /dev/null @@ -1,82 +0,0 @@ -# -# Pelagic II -# - -.set HEADERLEN, 0x48 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 - -text_stagename: - .ascii "B Y E L O M O R Y E D A M\n" - .byte 0x00 - - .align 2 - -text_briefing1: - .ascii "mi6 has confirmed the existence of a secret chemical warfare facility at the arkhangelsk dam, ussr. its heavily guarded location and workings are a cause for major concern. nerve gas produced there has been turning up in the hands of hostile regimes around the world and deals with international terrorists have been rumoured. this facility should be destroyed without prejudice.\n" - .byte 0x00 - - .align 2 - -text_briefing2: - .ascii "the area around the dam is well defended against a full scale military attack but they won't be expecting a lone agent. i've looked at the recon reports and decided that the easiest way to gain entrance to the weapons factory will be to bungee jump down the face of the dam. safe and simple. just throw yourself off the top and remember to look before you leap old chap.\n" - .byte 0x00 - - .align 2 - -text_briefing3: - .ascii "information concerning shipping and contacts is stored on a computer system in a secret ops room within the dam.with this covert modem connected to their satellite link we can intercept this data when a backup is carried out.\n" - .byte 0x00 - - .align 2 - -text_briefing4: - .ascii "hardly a lover's leap, james. be careful though, i hate to think of you falling for anyone else.\n" - .byte 0x00 - - .align 2 - -text_objective1: - .ascii "neutralize all alarms\n" - .byte 0x00 - - .align 2 - -text_objective2: - .ascii "install covert modem\n" - .byte 0x00 - - .align 2 - -text_objective3: - .ascii "intercept data backup\n" - .byte 0x00 - - .align 2 - -text_objective4: - .ascii "bungee jump from platform\n" - .byte 0x00 - - .align 2 - -text_objective5: - .ascii "Byelomorye Dam, Archangel, USSR\n" - .byte 0x00 - - .align 2 - -.align 4 diff --git a/asm/setup/mp_setupdepo.s b/asm/setup/mp_setupdepo.s deleted file mode 100644 index c3896a5ce..000000000 --- a/asm/setup/mp_setupdepo.s +++ /dev/null @@ -1,20 +0,0 @@ -# -# G5 Building -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupdest.s b/asm/setup/mp_setupdest.s deleted file mode 100644 index 0ebeb166b..000000000 --- a/asm/setup/mp_setupdest.s +++ /dev/null @@ -1,20 +0,0 @@ -# -# Stage ID 0x1a -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupdish.s b/asm/setup/mp_setupdish.s deleted file mode 100644 index f2feeb2ad..000000000 --- a/asm/setup/mp_setupdish.s +++ /dev/null @@ -1,20 +0,0 @@ -# -# CI Training -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupear.s b/asm/setup/mp_setupear.s deleted file mode 100644 index 6252568e9..000000000 --- a/asm/setup/mp_setupear.s +++ /dev/null @@ -1,28 +0,0 @@ -# -# Investigation -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - intro_weapon WEAPON_UNARMED, -1 - outfit OUTFIT_DEFAULT - endintro - -path00: - endpath - -paths: - endpaths - -func0000_004c: - endfunction - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupeld.s b/asm/setup/mp_setupeld.s deleted file mode 100644 index 079b78e15..000000000 --- a/asm/setup/mp_setupeld.s +++ /dev/null @@ -1,28 +0,0 @@ -# -# Villa -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - intro_weapon WEAPON_UNARMED, -1 - outfit OUTFIT_DEFAULT - endintro - -path00: - endpath - -paths: - endpaths - -func0000_004c: - endfunction - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupimp.s b/asm/setup/mp_setupimp.s deleted file mode 100644 index c1036ee11..000000000 --- a/asm/setup/mp_setupimp.s +++ /dev/null @@ -1,26 +0,0 @@ -# -# Defense -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - endintro - -path00: - endpath - -paths: - endpaths - -func0000_0034: - endfunction - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setuplam.s b/asm/setup/mp_setuplam.s deleted file mode 100644 index d6dd4a62f..000000000 --- a/asm/setup/mp_setuplam.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Stage ID 0x50 -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setuplee.s b/asm/setup/mp_setuplee.s deleted file mode 100644 index 49d3cf883..000000000 --- a/asm/setup/mp_setuplee.s +++ /dev/null @@ -1,28 +0,0 @@ -# -# Attack Ship -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - intro_weapon WEAPON_UNARMED, -1 - outfit OUTFIT_DEFAULT - endintro - -path00: - endpath - -paths: - endpaths - -func0000_004c: - endfunction - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setuplen.s b/asm/setup/mp_setuplen.s deleted file mode 100644 index 75589526f..000000000 --- a/asm/setup/mp_setuplen.s +++ /dev/null @@ -1,27 +0,0 @@ -# -# Stage ID 0x36 -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -path00: - endpath - -paths: - endpaths - -func0000_003c: - endfunction - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setuplip.s b/asm/setup/mp_setuplip.s deleted file mode 100644 index 9ae73a6ba..000000000 --- a/asm/setup/mp_setuplip.s +++ /dev/null @@ -1,26 +0,0 @@ -# -# Rescue -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - endintro - -path00: - endpath - -paths: - endpaths - -func0000_0034: - endfunction - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setuplue.s b/asm/setup/mp_setuplue.s deleted file mode 100644 index ebf641c6b..000000000 --- a/asm/setup/mp_setuplue.s +++ /dev/null @@ -1,26 +0,0 @@ -# -# Infiltration -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - endintro - -path00: - endpath - -paths: - endpaths - -func0000_0034: - endfunction - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupmp14.s b/asm/setup/mp_setupmp14.s deleted file mode 100644 index bb831921b..000000000 --- a/asm/setup/mp_setupmp14.s +++ /dev/null @@ -1,28 +0,0 @@ -# -# Stage ID 0x46 -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -unregistered_func1: - cmd0185_mponly - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE - endfunction - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupmp16.s b/asm/setup/mp_setupmp16.s deleted file mode 100644 index 12972c7a0..000000000 --- a/asm/setup/mp_setupmp16.s +++ /dev/null @@ -1,27 +0,0 @@ -# -# Stage ID 0x48 -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - endintro - -paths: - endpaths - -unregistered_func1: - cmd0185_mponly - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE - endfunction - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupmp17.s b/asm/setup/mp_setupmp17.s deleted file mode 100644 index a2da45a30..000000000 --- a/asm/setup/mp_setupmp17.s +++ /dev/null @@ -1,35 +0,0 @@ -# -# Stage ID 0x49 -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -func1001_0038: - cmd01b2_mponly 130 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1000_0044: - cmd0185_mponly - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE - endfunction - -functions: - register_function func1000_0044 0x1000 - register_function func1001_0038 0x1001 - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupmp18.s b/asm/setup/mp_setupmp18.s deleted file mode 100644 index 7819d8b44..000000000 --- a/asm/setup/mp_setupmp18.s +++ /dev/null @@ -1,29 +0,0 @@ -# -# Stage ID 0x4a -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -func1000_0038: - cmd0185_mponly - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE - endfunction - -functions: - register_function func1000_0038 0x1000 - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupmp19.s b/asm/setup/mp_setupmp19.s deleted file mode 100644 index e53c35709..000000000 --- a/asm/setup/mp_setupmp19.s +++ /dev/null @@ -1,29 +0,0 @@ -# -# Stage ID 0x4b -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -func1000_0038: - cmd0185_mponly - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE - endfunction - -functions: - register_function func1000_0038 0x1000 - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupmp2.s b/asm/setup/mp_setupmp2.s deleted file mode 100644 index d74c00eee..000000000 --- a/asm/setup/mp_setupmp2.s +++ /dev/null @@ -1,33 +0,0 @@ -# -# Stage ID 0x3a -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - endintro - -path00: - endpath - -paths: - endpaths - -unregistered_func1: - endfunction - -unregistered_func2: - cmd0185_mponly - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE - endfunction - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupmp20.s b/asm/setup/mp_setupmp20.s deleted file mode 100644 index 00e3d9291..000000000 --- a/asm/setup/mp_setupmp20.s +++ /dev/null @@ -1,29 +0,0 @@ -# -# Stage ID 0x4c -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -func1000_0038: - cmd0185_mponly - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE - endfunction - -functions: - register_function func1000_0038 0x1000 - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupmp6.s b/asm/setup/mp_setupmp6.s deleted file mode 100644 index 106de090d..000000000 --- a/asm/setup/mp_setupmp6.s +++ /dev/null @@ -1,27 +0,0 @@ -# -# Stage ID 0x3e -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - endintro - -paths: - endpaths - -unregistered_func1: - cmd0185_mponly - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE - endfunction - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupmp7.s b/asm/setup/mp_setupmp7.s deleted file mode 100644 index e5e8f2644..000000000 --- a/asm/setup/mp_setupmp7.s +++ /dev/null @@ -1,29 +0,0 @@ -# -# Stage ID 0x3f -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -func1000_0038: - cmd0185_mponly - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE - endfunction - -functions: - register_function func1000_0038 0x1000 - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupmp8.s b/asm/setup/mp_setupmp8.s deleted file mode 100644 index 891e3f181..000000000 --- a/asm/setup/mp_setupmp8.s +++ /dev/null @@ -1,29 +0,0 @@ -# -# Stage ID 0x40 -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -func1000_0038: - cmd0185_mponly - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE - endfunction - -functions: - register_function func1000_0038 0x1000 - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupold.s b/asm/setup/mp_setupold.s deleted file mode 100644 index 97faf4995..000000000 --- a/asm/setup/mp_setupold.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Stage ID 0x4e -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setuppam.s b/asm/setup/mp_setuppam.s deleted file mode 100644 index 91fef9402..000000000 --- a/asm/setup/mp_setuppam.s +++ /dev/null @@ -1,28 +0,0 @@ -# -# Deep Sea -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - intro_weapon WEAPON_UNARMED, -1 - outfit OUTFIT_DEFAULT - endintro - -path00: - endpath - -paths: - endpaths - -func0000_004c: - endfunction - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setuppete.s b/asm/setup/mp_setuppete.s deleted file mode 100644 index c3da84e43..000000000 --- a/asm/setup/mp_setuppete.s +++ /dev/null @@ -1,87 +0,0 @@ -# -# Chicago -# - -.set HEADERLEN, 0x40 -.include "asm/include/setup.inc" - -props: - briefing 0, 0x0020 - briefing 1, 0x0024 - briefing 2, 0x0028 - briefing 3, 0x002c - briefing 4, 0x0030 - - beginobjective 0, 0x0034, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD - endobjective - - beginobjective 1, 0x0038, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD - endobjective - - beginobjective 2, 0x003c, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD - endobjective - endprops - -intro: - intro_weapon WEAPON_PP9I, -1 - ammo AMMOTYPE_PISTOL, 100 - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 - -text_stagename: - .ascii "S T . P E T E R S B U R G\n" - .byte 0x00 - - .align 2 - -text_briefing1: - .ascii "use the stolen tank to chase the car containing natalya. you are up against a time limit.\n" - .byte 0x00 - - .align 2 - -text_briefing2: - .ascii "\n" - .byte 0x00 - - .align 2 - -text_briefing3: - .ascii "\n" - .byte 0x00 - - .align 2 - -text_briefing4: - .ascii "\n" - .byte 0x00 - - .align 2 - -text_objective1: - .ascii "\n\n\n" - .byte 0x00 - - .align 2 - -text_objective2: - .ascii "\n\n\n" - .byte 0x00 - - .align 2 - -text_objective3: - .ascii "\n" - .byte 0x00 - - .align 2 - -.align 4 diff --git a/asm/setup/mp_setuprit.s b/asm/setup/mp_setuprit.s deleted file mode 100644 index 647d46490..000000000 --- a/asm/setup/mp_setuprit.s +++ /dev/null @@ -1,28 +0,0 @@ -# -# Air Force One -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - intro_weapon WEAPON_UNARMED, -1 - outfit OUTFIT_DEFAULT - endintro - -path00: - endpath - -paths: - endpaths - -func0000_004c: - endfunction - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setuprun.s b/asm/setup/mp_setuprun.s deleted file mode 100644 index 16f08b273..000000000 --- a/asm/setup/mp_setuprun.s +++ /dev/null @@ -1,32 +0,0 @@ -# -# Stage ID 0x23 -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -unregistered_func1: - set_function CHR_SELF, GFUNC_IDLE - endfunction - -unregistered_func2: - cmd0185_mponly - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE - endfunction - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupsev.s b/asm/setup/mp_setupsev.s deleted file mode 100644 index 113abd77e..000000000 --- a/asm/setup/mp_setupsev.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Maian SOS -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupsevb.s b/asm/setup/mp_setupsevb.s deleted file mode 100644 index 2c8cd9c6f..000000000 --- a/asm/setup/mp_setupsevb.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Retaking the Institute -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupsevx.s b/asm/setup/mp_setupsevx.s deleted file mode 100644 index 9043509ec..000000000 --- a/asm/setup/mp_setupsevx.s +++ /dev/null @@ -1,20 +0,0 @@ -# -# Stage IDs 0x24 and 0x2b -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupsho.s b/asm/setup/mp_setupsho.s deleted file mode 100644 index b5dfc9a1e..000000000 --- a/asm/setup/mp_setupsho.s +++ /dev/null @@ -1,20 +0,0 @@ -# -# Skedar Ruins -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - endintro - -functions: - endfunctions - -paths: - endpaths - -.align 4 diff --git a/asm/setup/mp_setupsilo.s b/asm/setup/mp_setupsilo.s deleted file mode 100644 index 5a6c179e1..000000000 --- a/asm/setup/mp_setupsilo.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Stage ID 0x14 -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupstat.s b/asm/setup/mp_setupstat.s deleted file mode 100644 index 14d4e8d59..000000000 --- a/asm/setup/mp_setupstat.s +++ /dev/null @@ -1,20 +0,0 @@ -# -# WAR! -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setuptra.s b/asm/setup/mp_setuptra.s deleted file mode 100644 index a4069e8f4..000000000 --- a/asm/setup/mp_setuptra.s +++ /dev/null @@ -1,20 +0,0 @@ -# -# Escape -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupuff.s b/asm/setup/mp_setupuff.s deleted file mode 100644 index 54f27a06b..000000000 --- a/asm/setup/mp_setupuff.s +++ /dev/null @@ -1,26 +0,0 @@ -# -# Stage ID 0x4d -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - endintro - -path00: - endpath - -paths: - endpaths - -func0000_0034: - endfunction - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/mp_setupwax.s b/asm/setup/mp_setupwax.s deleted file mode 100644 index 0d4502a3b..000000000 --- a/asm/setup/mp_setupwax.s +++ /dev/null @@ -1,26 +0,0 @@ -# -# Mr. Blonde's Revenge -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - endintro - -path00: - endpath - -paths: - endpaths - -func0000_0034: - endfunction - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupame.s b/asm/setup/setupame.s deleted file mode 100644 index 6b8ef7c28..000000000 --- a/asm/setup/setupame.s +++ /dev/null @@ -1,3958 +0,0 @@ -# -# Defection -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -// Characters -.set CHR_CASS, 0x24 -.set CHR_SECRETARY, 0x25 -.set CHR_PROGRAMMER, 0x26 - -// Objects -.set OBJ_NECKLACE, 0x00 -.set OBJ_SECURITYHUB, 0x03 -.set OBJ_EXTCOMMSHUB, 0x04 -.set OBJ_PC, 0x0c -.set OBJ_DOORSWITCH, 0x0d -.set OBJ_OFFICEDOOR1, 0x0e -.set OBJ_OFFICEDOOR2, 0x0f -.set OBJ_LIGHTSWITCH, 0x14 -.set OBJ_JUMPSHIP1, 0x17 -.set OBJ_ROPE, 0x18 -.set OBJ_BANNER1, 0x19 -.set OBJ_BANNER2, 0x1a -.set OBJ_JUMPSHIP2, 0x1b -.set OBJ_HOVERTAXI1, 0x1c -.set OBJ_HOVERTAXI2, 0x1e -.set OBJ_HOVERCOP1, 0x1f -.set OBJ_HOVERCOP2, 0x20 -.set OBJ_HOVERCAR1, 0x21 -.set OBJ_HOVERCAR2, 0x22 -.set OBJ_HOVERMOTO1, 0x23 -.set OBJ_HOVERMOTO2, 0x24 -.set OBJ_HOVERTRUCK1, 0x25 -.set OBJ_HOVERTRUCK2, 0x26 -.set OBJ_HOVERCAB1, 0x27 -.set OBJ_HOVERCAB2, 0x28 -.set OBJ_HOVERCOP3, 0x29 -.set OBJ_HOVERCAR3, 0x2a -.set OBJ_HOVERMOTO3, 0x2b -.set OBJ_HOVERCAB3, 0x2c -.set OBJ_HOVERTRUCK3, 0x2d -.set OBJ_LABLIFTDOOR1, 0x2e -.set OBJ_LABLIFTDOOR2, 0x2f -.set OBJ_POLICECAR, 0x30 -.set OBJ_ECMMINE_JOANNA, 0x31 -.set OBJ_DATAUPLINK_JOANNA, 0x32 -.set OBJ_SECRETDOOR, 0x33 -.set OBJ_ECMMINE_VELVET, 0x3e -.set OBJ_DATAUPLINK_VELVET, 0x3f -.set OBJ_LAPTOPGUNDOOR, 0x40 -.set OBJ_LAPTOPGUN, 0x43 -.set OBJ_LIFT1, 0x4e -.set OBJ_LIFT2, 0x4f -.set OBJ_CAMERA1, 0x50 -.set OBJ_CAMERA2, 0x51 -.set OBJ_CAMERA3, 0x52 -.set OBJ_CAMERA4, 0x53 -.set OBJ_CAMERA5, 0x54 -.set OBJ_CAMERA6, 0x55 -.set OBJ_LIFT1DOOR1, 0x56 -.set OBJ_LIFT1DOOR2, 0x57 -.set OBJ_LIFT1DOOR3, 0x58 -.set OBJ_LIFT1DOOR4, 0x59 -.set OBJ_LIFT2DOOR1, 0x5a -.set OBJ_LIFT2DOOR2, 0x5b -.set OBJ_LIFT2DOOR3, 0x5c -.set OBJ_LIFT2DOOR4, 0x5d -.set OBJ_FALCONSIL1, 0x61 -.set OBJ_FALCONSIL2, 0x62 -.set OBJ_PCMONITOR, 0x63 - -// Stage flags -.set STAGEFLAG_TALKED_TO_PROGRAMMER, 0x00000001 -.set STAGEFLAG_SECRETARY_SAW_VELVET, 0x00000002 -.set STAGEFLAG_STOP_INTRO, 0x00000004 -.set STAGEFLAG_SECURITY_DISABLED, 0x00000008 -.set STAGEFLAG_TRIGGER_INTRO, 0x00000010 -.set STAGEFLAG_SECURITYHUB_COMPLETE, 0x00000100 -.set STAGEFLAG_EXTCOMMSHUB_COMPLETE, 0x00000200 -.set STAGEFLAG_SECURITYHUB_MINES_WASTED, 0x00000400 -.set STAGEFLAG_EXTCOMMSHUB_MINES_WASTED, 0x00000800 -.set STAGEFLAG_LIGHTS_OFF, 0x00001000 -.set STAGEFLAG_CIVILIANS_KILLED, 0x00002000 -.set STAGEFLAG_OFFICE_DOOR_UNLOCKED, 0x00004000 -.set STAGEFLAG_PROGRAMMER_DEAD, 0x00010000 -.set STAGEFLAG_PROGRAMMER_WALKING, 0x00020000 -.set STAGEFLAG_DELETED_WITHOUT_DOWNLOAD, 0x00040000 -.set STAGEFLAG_PROGRAMMER_LOGGED_IN, 0x00080000 -.set STAGEFLAG_PROGRAMMER_RAN_TO_GUARD, 0x00100000 -.set STAGEFLAG_PERSONALITY_DELETED, 0x00200000 -.set STAGEFLAG_PROGRAMMER_INJURED, 0x00400000 -.set STAGEFLAG_DOWNLOAD_COMPLETE, 0x00800000 -.set STAGEFLAG_LAB_LIFT_LOCATED, 0x02000000 -.set STAGEFLAG_PC_DESTROYED, 0x04000000 -.set STAGEFLAG_SECURITYHUB_DESTROYED, 0x08000000 -.set STAGEFLAG_EXTCOMMSHUB_DESTROYED, 0x10000000 -.set STAGEFLAG_DOORSWITCH_DESTROYED, 0x20000000 -.set STAGEFLAG_SECETARY_SAW_JO_OR_VELVET, 0x40000000 -.set STAGEFLAG_LAB_ELEVATOR_CLOSED, 0x80000000 - -// Functions -.set FUNC_INIT_HOVERCAR, 0x0404 -.set FUNC_CASS, 0x040f -.set FUNC_INIT_CASS, 0x0410 -.set FUNC_SECRETARY, 0x0411 -.set FUNC_INIT_SECRETARY, 0x0412 -.set FUNC_PROGRAMMER, 0x0414 -.set FUNC_OUTRO, 0x0416 -.set FUNC_INIT_DD_GUARD, 0x0417 -.set FUNC_INIT_SHOCK_GUARD, 0x0418 -.set FUNC_INTRO_0419, 0x0419 -.set FUNC_INTRO_041A, 0x041a -.set FUNC_INTRO_041B, 0x041b -.set FUNC_INTRO_041C, 0x041c -.set FUNC_INTRO_041E, 0x041e -.set FUNC_INTRO_041F, 0x041f -.set FUNC_INTRO_041D, 0x041d -.set FUNC_INTRO_0420, 0x0420 -.set FUNC_INTRO_0421, 0x0421 -.set FUNC_INTRO, 0x0422 -.set FUNC_INTRO_0423, 0x0423 -.set FUNC_INTRO_0424, 0x0424 -.set FUNC_INTRO_0425, 0x0425 -.set FUNC_INTRO_0426, 0x0426 -.set FUNC_INTRO_0427, 0x0427 -.set FUNC_INTRO_0428, 0x0428 -.set FUNC_INTRO_0429, 0x0429 -.set FUNC_INTRO_042A, 0x042a -.set FUNC_INTRO_042B, 0x042b -.set FUNC_INTRO_042C, 0x042c -.set FUNC_INTRO_042D, 0x042d -.set FUNC_SURRENDERING_GUARD, 0x042f -.set FUNC_INIT_FALCON_GUARD, 0x0430 - -props: - briefing 0, 0x0201 - briefing 1, 0x0200 - briefing 2, 0x0202 - briefing 3, 0x0203 - - beginobjective 0, 0x0210, DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Disable internal security hub" - complete_flags STAGEFLAG_SECURITYHUB_COMPLETE - fail_flags STAGEFLAG_SECURITYHUB_MINES_WASTED - fail_flags STAGEFLAG_SECURITYHUB_DESTROYED - endobjective - - beginobjective 1, 0x0211, DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Obtain keycode necklace" - require_object_collected OBJ_NECKLACE - fail_flags STAGEFLAG_DOORSWITCH_DESTROYED - fail_flags STAGEFLAG_CIVILIANS_KILLED - endobjective - - beginobjective 2, 0x0212, DIFFBIT_PA | DIFFBIT_PD // "Download project files" - complete_flags STAGEFLAG_DOWNLOAD_COMPLETE - fail_flags STAGEFLAG_PROGRAMMER_DEAD - fail_flags STAGEFLAG_DELETED_WITHOUT_DOWNLOAD - fail_flags STAGEFLAG_PC_DESTROYED - endobjective - - beginobjective 3, 0x0213, DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Disable external comms hub" - complete_flags STAGEFLAG_EXTCOMMSHUB_COMPLETE - fail_flags STAGEFLAG_EXTCOMMSHUB_MINES_WASTED - fail_flags STAGEFLAG_EXTCOMMSHUB_DESTROYED - endobjective - - beginobjective 4, 0x0214, DIFFBIT_A // "Gain entrance to laboratory" - complete_flags STAGEFLAG_LAB_LIFT_LOCATED - fail_flags STAGEFLAG_CIVILIANS_KILLED - endobjective - - beginobjective 5, 0x0214, DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Gain entrance to laboratory" - complete_flags STAGEFLAG_LAB_LIFT_LOCATED - endobjective - - tag 0x3d, 1 - vent_fan 0x0100, MODEL_DD_FANROOF, 0x0095, 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_DD_FANROOF, 0x0096, 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_DD_FANROOF, 0x0097, 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_DD_FANROOF, 0x0098, 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_DD_FANWALL, 0x0099, 0x000204e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000222, 0x00000000, 0x00000002, 0x01000000 - tag 0x2e, 1 - door 0x0100, MODEL_DOOR4A_G5, 0x022b, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001200, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR4B_G5, 0x022c, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x2f, -1 - door 0x0100, MODEL_DD_DECODOOR, 0x0226, 0x10000400, 0x080000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000020, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DECODOOR, 0x0226, 0x10000400, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DECODOOR, 0x0227, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x0229, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x022a, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x33, 1 - door 0x0100, MODEL_DD_SECRETDOOR, 0x0228, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x02140000, 0x00000020, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_SECRETDOOR, 0x00bc, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x02140000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00a0, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00a1, 0x10000400, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00a2, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00a3, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00a4, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00a5, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00a6, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00a7, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00b2, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00b3, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00a8, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00a9, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00aa, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00ab, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00ac, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00ad, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00ae, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00b1, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x0e, 2 - tag 0x0f, 2 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00af, 0x10000000, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x00000005, 0x00000001, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00b0, 0x30000000, 0x30000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x00000005, 0x00000001, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_SERVICEDOOR, 0x00b4, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_SERVICEDOOR, 0x00b5, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_SERVICEDOOR, 0x00b6, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_SERVICEDOOR, 0x00b7, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x40, 1 - door 0x0100, MODEL_DD_SERVICEDOOR, 0x00bb, 0x10000400, 0x30000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_WINDDOOR, 0x00b8, 0x14000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_WINDDOOR, 0x00b9, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_WINDDOOR, 0x00ba, 0x94000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x56, 6 - tag 0x57, 6 - tag 0x58, 6 - tag 0x59, 6 - tag 0x4e, 1 - lift 0x0100, MODEL_DD_LIFTR, 0x0256, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0256, 0x012f, 0x012e0130, 0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x0224, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x009c, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x009b, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x009a, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -4, -5, 0, 0 - link_objects -4, -6, 0, 1 - link_objects -4, -7, 0, 2 - link_objects -4, -8, 0, 3 - tag 0x5a, 6 - tag 0x5b, 6 - tag 0x5c, 6 - tag 0x5d, 6 - tag 0x4f, 1 - lift 0x0100, MODEL_DD_LIFTR, 0x012d, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012d, 0x012c, 0x012b0255, 0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x009d, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x009e, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x009f, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x0225, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -4, -5, 0, 0 - link_objects -4, -6, 0, 1 - link_objects -4, -7, 0, 2 - link_objects -4, -8, 0, 3 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00bd, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00be, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00bf, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00c0, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00c1, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00c2, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00c3, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00c4, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00c5, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00c6, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00c7, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00c8, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00ca, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00cb, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00cc, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00cd, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00ce, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00cf, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x0235, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x0236, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x0237, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x0238, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x0239, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x023a, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x011b, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x011c, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00df, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e0, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e1, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e2, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e3, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e4, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e5, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e6, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e7, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0123, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0124, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0125, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0126, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0127, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0128, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0129, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x012a, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e8, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e9, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00ea, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00eb, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00ec, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00ed, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00ee, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00ef, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f0, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f1, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f2, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f3, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f4, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f5, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f6, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f7, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f8, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f9, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00fa, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00fb, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00fc, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00fd, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00fe, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00ff, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0100, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0101, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0102, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0103, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0105, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0106, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0107, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0108, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0109, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x010a, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x010b, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x010c, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x010d, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x010e, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x010f, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0110, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0111, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0112, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0113, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0114, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0104, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0117, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0118, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0119, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x011a, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x0248, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x0249, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x024a, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x024b, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x024c, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x024d, 0x04000a62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x024e, 0x04000a62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x024f, 0x04000a62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x0250, 0x04000a62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW_FOYER, 0x0251, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW_FOYER, 0x0252, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - object 0x0100, MODEL_DD_REDSOFA, 0x00d3, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDSOFA, 0x00d4, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDARM, 0x00d5, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDARM, 0x00d2, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x37, 1 - object 0x0100, MODEL_DD_REDARM, 0x00d7, 0x000205e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDARM, 0x00d8, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x38, 1 - object 0x0100, MODEL_DD_REDARM, 0x00d9, 0x000205e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDSOFA, 0x00d6, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x00da, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDSOFA, 0x0253, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDARM, 0x0254, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x3b, 1 - object 0x0100, MODEL_DD_CHAIR, 0x01a4, 0x000205e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01a3, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - singlemonitor 0x0100, MODEL_PC1, 0x01a2, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff23 - tag 0x3c, 1 - object 0x0100, MODEL_DD_CHAIR, 0x01a5, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01a6, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - singlemonitor 0x0100, MODEL_PC1, 0x01a7, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff23 - tag 0x3a, 1 - object 0x0100, MODEL_DD_CHAIR, 0x01a8, 0x000205e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01a9, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - singlemonitor 0x0100, MODEL_PC1, 0x01aa, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff20 - tag 0x39, 1 - object 0x0100, MODEL_DD_CHAIR, 0x01ab, 0x000205e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01ac, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - singlemonitor 0x0100, MODEL_PC1, 0x01ad, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff21 - tag 0x5e, 1 - object 0x0100, MODEL_DD_CHAIR, 0x01b0, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01af, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - singlemonitor 0x0100, MODEL_PC1, 0x01ae, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff23 - object 0x0100, MODEL_DD_DESK, 0x01b1, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x01ba, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01bb, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x63, 1 - singlemonitor 0x0100, MODEL_PC1, 0x01bc, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff03 - tag 0x0d, 1 - object 0x0100, MODEL_LIGHTSWITCH2, 0x013e, 0x00000001, 0x00000001, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x01b3, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01b4, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - singlemonitor 0x0100, MODEL_PC1, 0x01b5, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff08 - object 0x0100, MODEL_DD_DESK, 0x01b2, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x0c, 1 - singlemonitor 0x0100, MODEL_PC1, 0x01b6, 0x000004e1, 0x00000001, 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, 0xffffff03 - object 0x0100, MODEL_DD_REDSOFA, 0x00db, 0x000005e1, 0x00004100, 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_DD_CHAIR, 0x01b7, 0x000205e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01b8, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - singlemonitor 0x0100, MODEL_PC1, 0x01b9, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff20 - tag 0x35, 1 - object 0x0100, MODEL_DD_REDARM, 0x00dc, 0x000205e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDARM, 0x00dd, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x022d, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x022e, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0232, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x0231, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - singlemonitor 0x0100, MODEL_PC1, 0x0230, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff23 - singlemonitor 0x0100, MODEL_PC1, 0x0233, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff23 - singlemonitor 0x0100, MODEL_PC1, 0x0234, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff03 - chr 0x00000200, 0x06, 0x0011, BODY_DD_GUARD, HEAD_RANDOM, 0x040a, 0x001d, -1, 1000, 9, 0x80804608, 0x00008080, 0x02, 0x01, -1, 3, 0x02001400 - weapon 0x0100, MODEL_CHRCMP150, 0x0006, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x05, 0x01c0, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_DD_GUARD, 0x001e, -1, 1000, 100, 0x88a04608, 0x00000000, 0x02, 0x01, -1, 0, 0x02001400 - weapon 0x0100, MODEL_CHRCMP150, 0x0005, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x08, 0x0028, BODY_DD_GUARD, HEAD_RANDOM, 0x040b, -1, -1, 500, 100, 0x8808c200, 0x00000000, 0x02, 0x02, -1, 0, 0x02001400 - weapon 0x0100, MODEL_CHRCMP150, 0x0008, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0d, 0x006f, BODY_DD_GUARD, HEAD_RANDOM, 0x040c, -1, -1, 100, 100, 0x8808c000, 0x00000000, 0x02, 0x02, -1, 0, 0x02001400 - weapon 0x0100, MODEL_CHRCMP150, 0x000d, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x07, 0x0058, BODY_DD_GUARD, HEAD_RANDOM, 0x0407, -1, -1, 100, 100, 0xc0082000, 0x02000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0007, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0a, 0x0057, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_DD_GUARD, -1, -1, 100, 100, 0xa0882000, 0x02010000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000a, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0c, 0x0060, BODY_DD_GUARD, HEAD_RANDOM, 0x0408, -1, -1, 100, 100, 0xc0082000, 0x02000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x00, 0x007d, BODY_DD_GUARD, HEAD_RANDOM, 0x0405, -1, -1, 100, 100, 0xcc080000, 0x02000000, 0x02, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0000, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0b, 0x008e, BODY_DD_GUARD, HEAD_RANDOM, 0x0406, -1, -1, 100, 100, 0xc8080000, 0x02000000, 0x02, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x09, 0x0081, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_DD_GUARD, -1, -1, 100, 100, 0xa8880000, 0x02010000, 0x02, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0009, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x01, 0x021a, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 1000, 9, 0x8008a100, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x02, 0x021b, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 1000, 9, 0x8008a100, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0002, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0e, 0x01f6, BODY_DDSHOCK, HEAD_DDSHOCK, 0x040d, -1, -1, 1000, 100, 0x8008a100, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x12, 0x0221, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 1000, 100, 0x80282300, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0012, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0f, 0x021e, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 500, 100, 0xa008a000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x10, 0x021f, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 500, 100, 0xa0082000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0010, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x11, 0x0220, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 500, 100, 0xa0082000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0011, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x13, 0x0222, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 500, 100, 0xa0082000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0013, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x03, 0x021c, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 1000, 100, 0x80002100, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0003, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x04, 0x021d, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 1000, 100, 0x80002100, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0004, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x14, 0x020f, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 500, 100, 0xa0002000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x15, 0x020e, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 500, 100, 0xa0002000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0015, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x16, 0x0210, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 500, 100, 0xa0002000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00004200, 0x17, 0x01c6, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_DD_GUARD, -1, -1, 2000, 100, 0xc0002400, 0x00000100, 0x02, 0x09, -1, 0, 0x00010000 - weapon 0x0100, MODEL_CHRCMP150, 0x0017, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00004000, 0x18, 0x01c7, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_DD_GUARD, -1, -1, 1000, 100, 0xc0002000, 0x00000100, 0x02, 0x0a, 0x35, 0, 0x00030000 - weapon 0x0100, MODEL_CHRCMP150, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00004000, 0x19, 0x01c8, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_DD_GUARD, -1, -1, 1000, 100, 0xc0002400, 0x00000100, 0x02, 0x0a, 0x36, 0, 0x00020000 - weapon 0x0100, MODEL_CHRCMP150, 0x0019, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00004200, 0x1a, 0x01c9, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_DD_GUARD, -1, -1, 1000, 100, 0xc0002400, 0x00000100, 0x02, 0x0b, -1, 0, 0x00010000 - weapon 0x0100, MODEL_CHRCMP150, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00004000, 0x1b, 0x01ca, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_DD_GUARD, -1, -1, 1000, 100, 0xc0002000, 0x00000100, 0x02, 0x0c, 0x37, 0, 0x00030000 - weapon 0x0100, MODEL_CHRCMP150, 0x001b, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00004000, 0x1c, 0x01cb, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_DD_GUARD, -1, -1, 1000, 100, 0xc0002000, 0x00000100, 0x02, 0x0c, 0x38, 0, 0x00030000 - weapon 0x0100, MODEL_CHRCMP150, 0x001c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00004200, 0x1d, 0x01cc, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_DD_GUARD, -1, -1, 1000, 100, 0xc0002000, 0x00000100, 0x02, 0x0c, -1, 0, 0x00010000 - weapon 0x0100, MODEL_CHRCMP150, 0x001d, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00004000, 0x1e, 0x01ce, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_DD_GUARD, -1, -1, 1000, 100, 0xc8000000, 0x00000100, 0x02, 0x0d, 0x39, 0, 0x00020000 - weapon 0x0100, MODEL_CHRCMP150, 0x001e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00004000, 0x1f, 0x01cf, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_DD_GUARD, -1, -1, 1000, 100, 0xc8000000, 0x00000100, 0x02, 0x0e, 0x3a, 0, 0x00020000 - weapon 0x0100, MODEL_CHRCMP150, 0x001f, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00004000, 0x20, 0x01d0, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_DD_GUARD, -1, -1, 1000, 100, 0xc8080000, 0x00000100, 0x02, 0x0f, 0x3b, 0, 0x00020000 - weapon 0x0100, MODEL_CHRCMP150, 0x0020, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - - chr 0x00004000, 0x21, 0x01d1, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_FALCON_GUARD, -1, -1, 1000, 100, 0xc008a000, 0x00000100, 0x02, 0x0f, 0x3c, 0, 0x00010000 - weapon 0x0100, MODEL_CHRFALCON2SIL, 0x0021, 0x00424000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SILENCER, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRFALCON2SIL, 0x0021, 0x10424000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SILENCER, 0x00ffffff, 0x00000000 - link_collectibles -1, -2 - tag 0x61, -3 - tag 0x62, -3 - - chr 0x00010400, CHR_CASS, 0x01c2, BODY_CASSANDRA, HEAD_CASSANDRA, FUNC_INIT_CASS, -1, -1, 1000, 100, 0x0000c400, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - chr 0x00010400, CHR_SECRETARY, 0x01c3, BODY_NEGOTIATOR, HEAD_SECRETARY, GFUNC_IDLE, -1, -1, 1000, 100, 0x0000c400, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - chr 0x00010480, CHR_PROGRAMMER, 0x007a, BODY_OFFICEWORKER, HEAD_RANDOM, FUNC_PROGRAMMER, -1, -1, 50, 100, 0x00002000, 0x00000000, 0x02, 0x0f, -1, 0, 0x00000000 - tag 0x1f, 1 - hover_vehicle 0x004c, MODEL_DD_HOVCOP, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x20, 1 - hover_vehicle 0x004c, MODEL_DD_HOVCOP, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x21, 1 - hover_vehicle 0x004c, MODEL_DD_HOVCAR, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x22, 1 - hover_vehicle 0x004c, MODEL_DD_HOVCAR, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x23, 1 - hover_vehicle 0x004c, MODEL_DD_HOVMOTO, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x24, 1 - hover_vehicle 0x004c, MODEL_DD_HOVMOTO, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x25, 1 - hover_vehicle 0x004c, MODEL_DD_HOVTRUCK, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x26, 1 - hover_vehicle 0x004c, MODEL_DD_HOVTRUCK, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x27, 1 - hover_vehicle 0x004c, MODEL_DD_HOVCAB, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x28, 1 - hover_vehicle 0x004c, MODEL_DD_HOVCAB, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - link_scenery 1, 0, 2 - door 0x0100, MODEL_DD_AC_UNEXP, 0x019f, 0x13500d00, 0x20304300, 0x04000000, 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_DD_AC_EXP, 0x01a1, 0x031204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - link_scenery 1, 0, 2 - door 0x0100, MODEL_DD_ACBOT_UNEXP, 0x019e, 0x13500d00, 0x20304300, 0x04000000, 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_DD_ACBOT_EXP, 0x01a0, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0140, 0x00020101, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0141, 0x00020101, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0142, 0x00020101, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0143, 0x00020101, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - - tag 0x31, 1 - weapon 0x0180, MODEL_CHRECMMINE, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_ECMMINE, 0x00ffffff, 0x00000000 - rename_object -1, 0x0035, 0x023a, 0x023b, 0x023c, 0x023d, 0x023e, 0x0000, 0x0000 // "Obtain ECM Mines." - - tag 0x32, 1 - weapon 0x0180, MODEL_CHRDATATHIEF, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DATAUPLINK, 0x00ffffff, 0x00000000 - rename_object -1, 0x0036, 0x023f, 0x0240, 0x0241, 0x0242, 0x0243, 0x0000, 0x0000 // "Obtain Data Uplink." - - tag 0x3e, 1 - weapon 0x0180, MODEL_CHRECMMINE, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_ECMMINE, 0x00ffffff, 0x00000000 - rename_object -1, 0x0035, 0x023a, 0x023b, 0x023c, 0x023d, 0x023e, 0x0000, 0x0000 // "Obtain ECM Mines." - - tag 0x3f, 1 - weapon 0x0180, MODEL_CHRDATATHIEF, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DATAUPLINK, 0x00ffffff, 0x00000000 - rename_object -1, 0x0036, 0x023f, 0x0240, 0x0241, 0x0242, 0x0243, 0x0000, 0x0000 // "Obtain Data Uplink." - - tag 0x00, 1 - key 0x0100, MODEL_CHRCHAIN, CHR_CASS, 0x01244000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000020 - rename_object -1, 0x0050, 0x020b, 0x020c, 0x020d, 0x020e, 0x020f, 0x0000, 0x0000 // "Obtain De Vries' necklace." - - object 0x0100, MODEL_DD_STONEDESK, 0x0134, 0x000205e1, 0x00204000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - singlemonitor 0x0100, MODEL_PC1, 0x0132, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff21 - tag 0x50, 6 - tag 0x51, 6 - tag 0x52, 6 - tag 0x53, 6 - tag 0x54, 6 - tag 0x55, 6 - camera 0x00c0, MODEL_CCTV_PD, 0x0136, 0x00000002, 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x00110000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000238e, 0x00000000, 0x00000000, 0x0000001e, 0x00000000, 0x000002bc, 0x00000000 - camera 0x00c0, MODEL_CCTV_PD, 0x0137, 0x00000002, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0x00000000, 0x0000001e, 0x00000000, 0x000002bc, 0x00000000 - camera 0x00c0, MODEL_CCTV_PD, 0x0138, 0x00000002, 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x00190000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000031c7, 0x00000000, 0x00000000, 0x0000001e, 0x00000000, 0x000002bc, 0x00000000 - camera 0x00c0, MODEL_CCTV_PD, 0x0139, 0x00000002, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x001d0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001555, 0x00000000, 0x00000000, 0x0000001e, 0x00000000, 0x000003e8, 0x00000000 - camera 0x00c0, MODEL_CCTV_PD, 0x013a, 0x00000002, 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x00670000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x00000000, 0x00000000, 0x0000001e, 0x00000000, 0x000002bc, 0x00000000 - camera 0x00c0, MODEL_CCTV_PD, 0x013b, 0x00000002, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0x00000000, 0x0000001e, 0x00000000, 0x000002bc, 0x00000000 - camera2 0x0000, 0xfffd05c6, 0xfff25662, 0x000013f6, 0x005a0000, 0x00063f8f, 0x00000219 - tag 0x09, -1 - camera2 0x0000, 0xffff51d2, 0xfffd0422, 0x00000c58, 0x00060000, 0x0005f5c2, 0x00000219 - tag 0x15, -1 - camera2 0x0000, 0xffff67da, 0xfffd8eec, 0xfffe7c44, 0x0004a147, 0x0005f851, 0x00000219 - tag 0x16, -1 - tag 0x04, 1 - multimonitor 0x0099, MODEL_COMHUB, 0x025c, 0x00000002, 0x00000001, 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 0x03, 1 - multimonitor 0x0099, MODEL_COMHUB, 0x013c, 0x00000002, 0x00000001, 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 0x14, 1 - object 0x0100, MODEL_LIGHTSWITCH, 0x013d, 0x10000002, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x10, 1 - multimonitor 0x0099, MODEL_PD_CONSOLE, 0x0258, 0x000001a1, 0x00000000, 0x00000000, 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, 0x08030000 - tag 0x11, 1 - multimonitor 0x0099, MODEL_PD_CONSOLE, 0x0259, 0x000001a1, 0x00000000, 0x00000000, 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, 0x03220000 - tag 0x12, 1 - multimonitor 0x0099, MODEL_PD_CONSOLE, 0x025a, 0x000001a1, 0x00000000, 0x00000000, 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, 0x23030000 - tag 0x13, 1 - multimonitor 0x0099, MODEL_PD_CONSOLE, 0x025b, 0x000001a1, 0x00000000, 0x00000000, 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, 0x03210000 - tag 0x19, 2 - tag 0x1a, 2 - object 0x0100, MODEL_DD_BANNER, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_BANNER, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x17, 1 - object 0x0100, MODEL_DDJUMPSHIP, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x1b, 1 - object 0x0024, MODEL_DDJUMPSHIP, 0xffff, 0x00020001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x18, 1 - object 0x0100, MODEL_ROPE, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x1c, 1 - object 0x0051, MODEL_TAXICAB, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x1e, 1 - object 0x0024, MODEL_TAXICAB, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x1d, 1 - object 0x0051, MODEL_POLICECAR, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x30, 1 - object 0x0024, MODEL_POLICECAR, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x29, 1 - object 0x0019, MODEL_DD_HOVCOP, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x2a, 1 - object 0x0019, MODEL_DD_HOVCAR, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x2b, 1 - object 0x0019, MODEL_DD_HOVMOTO, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x2c, 1 - object 0x0019, MODEL_DD_HOVCAB, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x2d, 1 - object 0x0019, MODEL_DD_HOVTRUCK, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x00de, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0121, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0122, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x011f, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0120, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tag 0x41, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x000a, 0x00004001, 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, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x025f, 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 0x43, 1 - weapon 0x0100, MODEL_CHRPCGUN, 0x01d2, 0x00000008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000 - tag 0x44, 1 - weapon 0x0100, MODEL_CHRFALCON2, 0x01d5, 0x00400008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SILENCER, 0x00ffffff, 0x00000000 - tag 0x45, 1 - weapon 0x0100, MODEL_CHRFALCON2, 0x01d4, 0x00400008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SILENCER, 0x00ffffff, 0x00000000 - tag 0x46, 1 - ammocrate 0x0019, MODEL_MULTI_AMMO_CRATE, 0x01d6, 0x004000e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_PISTOL - tag 0x47, 1 - ammocrate 0x0019, MODEL_MULTI_AMMO_CRATE, 0x01d7, 0x00400001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_PISTOL - tag 0x48, 1 - ammocrate 0x0019, MODEL_MULTI_AMMO_CRATE, 0x01d8, 0x00400001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_PISTOL - tag 0x49, 1 - ammocrate 0x0019, MODEL_MULTI_AMMO_CRATE, 0x01d9, 0x00400001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_PISTOL - tag 0x4a, 1 - ammocrate 0x0100, MODEL_CHRFALCON2, 0x01da, 0x00400001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_PISTOL - tag 0x4a, 1 - ammocrate 0x0100, MODEL_CHRFALCON2, 0x01da, 0x00400001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_PISTOL - tag 0x4b, 1 - ammocrate 0x0019, MODEL_MULTI_AMMO_CRATE, 0x01db, 0x00400001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_PISTOL - tag 0x4c, 1 - weapon 0x0100, MODEL_CHRCMP150, 0x025d, 0x00400008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - tag 0x4d, 1 - weapon 0x0100, MODEL_CHRCMP150, 0x025e, 0x00400008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - endprops - -intro: - intro_weapon WEAPON_FALCON2_SILENCER, -1 - ammo AMMOTYPE_PISTOL, 80 - ammo AMMOTYPE_ECM_MINE, 2 - outfit OUTFIT_DEFAULT - spawn 0x01d3 - endintro - -path00: - pad 0x0144 - pad 0x0145 - endpath - -path01: - pad 0x0146 - pad 0x0147 - pad 0x0148 - endpath - -path02: - pad 0x0149 - pad 0x014a - pad 0x014b - pad 0x014c - pad 0x014d - pad 0x014e - endpath - -path03: - pad 0x0152 - pad 0x0151 - pad 0x0150 - pad 0x014f - endpath - -path04: - pad 0x0154 - pad 0x0157 - pad 0x0156 - pad 0x0153 - pad 0x0155 - endpath - -path05: - pad 0x0159 - pad 0x015a - pad 0x015d - pad 0x015b - pad 0x015c - pad 0x0158 - endpath - -path06: - pad 0x015e - pad 0x015f - pad 0x0160 - pad 0x0161 - pad 0x0162 - pad 0x0163 - endpath - -path07: - pad 0x0167 - pad 0x0166 - pad 0x0165 - pad 0x0168 - pad 0x0169 - pad 0x0164 - endpath - -path08: - pad 0x016a - pad 0x016b - pad 0x016c - pad 0x016d - endpath - -path09: - pad 0x016e - pad 0x016f - pad 0x0170 - pad 0x0171 - pad 0x0172 - pad 0x0173 - endpath - -path10: - pad 0x0174 - pad 0x0175 - pad 0x0176 - pad 0x0177 - endpath - -path11: - pad 0x0178 - pad 0x0179 - pad 0x017a - pad 0x017b - pad 0x017c - pad 0x017d - pad 0x017e - pad 0x017f - endpath - -path12: - pad 0x0180 - pad 0x0181 - pad 0x0182 - endpath - -path13: - pad 0x0183 - pad 0x0184 - pad 0x0185 - endpath - -path14: - pad 0x0186 - pad 0x0191 - endpath - -path15: - pad 0x0187 - pad 0x0190 - endpath - -path16: - pad 0x0188 - pad 0x018f - endpath - -path17: - pad 0x0189 - pad 0x018e - endpath - -path18: - pad 0x018c - pad 0x018b - endpath - -path19: - pad 0x018d - pad 0x018a - endpath - -path20: - pad 0x0192 - pad 0x019d - endpath - -path21: - pad 0x0193 - pad 0x019c - endpath - -path22: - pad 0x0194 - pad 0x019b - endpath - -path23: - pad 0x0195 - pad 0x019a - endpath - -path24: - pad 0x0197 - pad 0x0198 - endpath - -path25: - pad 0x0196 - pad 0x0199 - endpath - -path26: - pad 0x007d - pad 0x007c - pad 0x0077 - pad 0x0076 - pad 0x008d - pad 0x008c - pad 0x008b - pad 0x0088 - pad 0x008b - pad 0x008c - endpath - -path27: - pad 0x008e - pad 0x008d - pad 0x008c - pad 0x008b - pad 0x0088 - endpath - -path30: - pad 0x000c - pad 0x000b - pad 0x000f - pad 0x0010 - pad 0x0013 - pad 0x0011 - pad 0x0012 - pad 0x0011 - pad 0x0010 - pad 0x000f - pad 0x000b - endpath - -path32: - pad 0x0028 - pad 0x0029 - pad 0x002f - pad 0x0030 - pad 0x002b - pad 0x002a - pad 0x002d - pad 0x002c - pad 0x002e - pad 0x0031 - pad 0x0032 - pad 0x003b - pad 0x003a - pad 0x0039 - endpath - -path33: - pad 0x0032 - pad 0x003b - pad 0x003a - pad 0x0039 - pad 0x0074 - pad 0x006e - pad 0x006d - pad 0x0072 - pad 0x0073 - pad 0x0070 - pad 0x0071 - pad 0x006f - endpath - -path34: - pad 0x01f6 - pad 0x01f5 - pad 0x01f4 - pad 0x01f3 - pad 0x01f2 - pad 0x01f0 - pad 0x01ef - pad 0x01ee - pad 0x01ec - pad 0x01e8 - pad 0x01e6 - pad 0x01e5 - pad 0x01dd - pad 0x01e4 - pad 0x01e3 - pad 0x01e2 - pad 0x01e1 - endpath - -path35: - pad 0x007c - pad 0x0078 - pad 0x0077 - pad 0x0076 - pad 0x008e - pad 0x008d - pad 0x008c - pad 0x008b - pad 0x008a - pad 0x0089 - pad 0x0088 - pad 0x0090 - pad 0x0075 - pad 0x006f - pad 0x0071 - pad 0x0070 - pad 0x0073 - pad 0x0066 - pad 0x0058 - pad 0x0059 - pad 0x005a - pad 0x0067 - pad 0x0068 - pad 0x005b - pad 0x005c - pad 0x005d - pad 0x005e - pad 0x0061 - endpath - -path31: - pad 0x0011 - pad 0x0013 - pad 0x0014 - pad 0x0015 - pad 0x0016 - pad 0x0017 - endpath - -path28: - pad 0x0058 - pad 0x0067 - pad 0x0068 - pad 0x005b - pad 0x005d - endpath - -path29: - pad 0x0060 - pad 0x005f - pad 0x0056 - pad 0x0055 - pad 0x0051 - pad 0x0052 - pad 0x0053 - endpath - -/** - * @unused - */ -func0401_do_some_animation: - // Do some animation - restart_timer - animation 0x0066, 0, 1, 0x0410, CHR_SELF, 2 - - beginloop 0x08 - if_timer_gt 0, /*goto*/ 0x2c - endloop 0x08 - - label 0x2c - animation 0x0066, 1, -1, 0x0410, CHR_SELF, 2 - - beginloop 0x85 - endloop 0x85 - - // Unreachable - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * @unregistered - */ -unregistered_function: - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * @unused - */ -func0402_guard_with_chrflag: - set_return_function CHR_SELF, 0x0402 - set_self_flag_bank3 CHRFLAG3_00000200 - set_function CHR_SELF, GFUNC_UNALERTED_0001 - endfunction - -/** - * @unused - */ -func0403_shielded_guard: - set_shield 200 - set_self_flag_bank3 CHRFLAG3_00000200 - set_function CHR_SELF, GFUNC_CHOOSE_TARGET_CHR - endfunction - -func0404_init_hovercar: - dprint "hov\n" - begin_hovercar_path 0 - set_vehicle_speed 0x0c00, 120 - - beginloop 0x04 - reloop 0x04 - - // Unreachable - label 0x08 - set_vehicle_speed 0x0600, 120 - reloop 0x04 - - label 0x09 - set_vehicle_speed 0x0700, 120 - reloop 0x04 - - label 0x0a - set_vehicle_speed 0x0800, 120 - reloop 0x04 - - label 0x0b - set_vehicle_speed 0x0900, 120 - reloop 0x04 - - label 0x0c - set_vehicle_speed 0x0a00, 120 - reloop 0x04 - - label 0x0d - set_vehicle_speed 0x0b00, 120 - reloop 0x04 - - label 0x0e - set_vehicle_speed 0x0d00, 120 - endloop 0x04 - - endfunction - -.macro do_path path - assign_path \path - start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 - endfunction -.endm - -func0405_start_path26: - do_path 26 - -func0406_start_path27: - do_path 27 - -func0407_start_path28: - do_path 28 - -func0408_start_path29: - do_path 29 - -func0409_start_path30: - do_path 30 - -func040a_start_path31: - set_chr_dodge_rating 2, 0x14 - set_unarmeddodgerating 0 - set_accuracy 0 - set_reaction_speed 0 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_return_function CHR_SELF, 0x040a - assign_path 31 - start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 - endfunction - -func040b_start_path32: - set_chr_dodge_rating 2, 0x14 - set_unarmeddodgerating 0 - set_accuracy 0 - set_reaction_speed 0 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - assign_path 32 - start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 - endfunction - -func040c_start_path33: - set_chr_dodge_rating 2, 0x14 - set_unarmeddodgerating 0 - set_accuracy 0 - set_reaction_speed 0 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - assign_path 33 - start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 - endfunction - -func040d_start_path34: - set_chr_dodge_rating 2, 0x14 - set_unarmeddodgerating 0 - set_accuracy 10 - set_reaction_speed 0 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - assign_path 34 - start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 - endfunction - -func040e_start_path35: - assign_path 35 - start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 - endfunction - -func0410_init_cass: - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, FUNC_CASS - endfunction - -func040f_cass: - set_onshot_function GFUNC_IDLE - if_chr_dying CHR_CASS, /*goto*/ 0x06 - if_chr_unloaded CHR_CASS, /*goto*/ 0x06 - goto_next 0x2c - - // Dying - label 0x06 - set_function CHR_SELF, GFUNC_IDLE - - label 0x2c - animation ANIM_TALKING_00A0, 0, 193, 0x1810, CHR_SELF, 2 - - // Wait for player to enter room - beginloop 0x59 - set_target_chr CHR_JOANNA - if_chr_sees_player /*goto*/ 0x5a - set_target_chr CHR_VELVET - if_chr_sees_player /*goto*/ 0x5a - set_target_chr CHR_JOANNA - if_stage_flag_eq STAGEFLAG_SECETARY_SAW_JO_OR_VELVET, TRUE, /*goto*/ 0xbe - endloop 0x59 - - label 0xbe - if_stage_flag_eq STAGEFLAG_SECRETARY_SAW_VELVET, TRUE, /*goto*/ 0xbf - set_target_chr CHR_JOANNA - goto_next 0x5a - - label 0xbf - set_target_chr CHR_VELVET - goto_next 0x5a - - // Face target chr (Jo or Velvet) - label 0x5a - stop_chr - yield - unset_stage_flag STAGEFLAG_SECETARY_SAW_JO_OR_VELVET - try_face_entity 0x0200, 0x0000, /*goto*/ 0x5b - - beginloop 0x5b - if_chr_stopped /*goto*/ 0x5c - endloop 0x5b - - label 0x5c - speak TARGET_CHR, 0x0215, 0x0af4, CHANNEL_6, COLOR_04_ORANGE // "Who are you and what are you doing here?" - restart_timer - animation ANIM_TALKING_0098, 0, 193, 0x1810, CHR_SELF, 2 - - beginloop 0x5d - if_sound_finished CHANNEL_6, /*goto*/ 0x5e - endloop 0x5d - - // Walk backwards for 4 seconds - label 0x5e - stop_chr - animation ANIM_WALK_BACKWARDS, -1, -1, 0x1010, CHR_SELF, 2 - restart_timer - - beginloop 0x5f - if_timer_gt 240, /*goto*/ 0x06 - endloop 0x5f - - label 0x06 - stop_chr - - // Face target again - label 0x06 - restart_timer - try_face_entity 0x0200, 0x0000, /*goto*/ 0x64 - - beginloop 0x64 - if_angle_to_target_chr_lt 10, /*goto*/ 0x65 - if_timer_gt 90, /*goto*/ 0x65 - endloop 0x64 - - label 0x65 - restart_timer - if_chr_sees_player /*goto*/ 0x2c - if_chr_in_room TARGET_CHR, 0x00, 0x005b, /*goto*/ 0x2c - if_chr_in_room TARGET_CHR, 0x00, 0x005c, /*goto*/ 0x2c - if_chr_in_room TARGET_CHR, 0x00, 0x005d, /*goto*/ 0x2c - if_chr_in_room TARGET_CHR, 0x00, 0x005e, /*goto*/ 0x2c - if_chr_in_room TARGET_CHR, 0x00, 0x005f, /*goto*/ 0x2c - if_chr_in_room TARGET_CHR, 0x00, 0x0060, /*goto*/ 0x2c - if_chr_in_room TARGET_CHR, 0x00, 0x0061, /*goto*/ 0x2c - if_chr_in_room TARGET_CHR, 0x00, 0x0062, /*goto*/ 0x2c - if_chr_in_room TARGET_CHR, 0x00, 0x0064, /*goto*/ 0x2c - goto_next 0x66 - - label 0x2c - speak TARGET_CHR, 0x0217, 0x0af5, CHANNEL_6, COLOR_04_ORANGE // "You won't shoot me, foolish child!" - animation ANIM_TALKING_00A0, 0, 193, 0x1810, CHR_SELF, 2 - - beginloop 0x66 - if_sound_finished CHANNEL_6, /*goto*/ 0x67 - endloop 0x66 - - label 0x67 - if_chr_sees_player /*goto*/ 0x2c - if_chr_in_room TARGET_CHR, 0x00, 0x005b, /*goto*/ 0x2c - if_chr_in_room TARGET_CHR, 0x00, 0x005c, /*goto*/ 0x2c - if_chr_in_room TARGET_CHR, 0x00, 0x005d, /*goto*/ 0x2c - if_chr_in_room TARGET_CHR, 0x00, 0x005e, /*goto*/ 0x2c - if_chr_in_room TARGET_CHR, 0x00, 0x005f, /*goto*/ 0x2c - if_chr_in_room TARGET_CHR, 0x00, 0x0060, /*goto*/ 0x2c - if_chr_in_room TARGET_CHR, 0x00, 0x0061, /*goto*/ 0x2c - if_chr_in_room TARGET_CHR, 0x00, 0x0062, /*goto*/ 0x2c - if_chr_in_room TARGET_CHR, 0x00, 0x0064, /*goto*/ 0x2c - goto_next 0x68 - - label 0x2c - animation ANIM_TALKING_00A3, 0, 193, 0x1810, CHR_SELF, 2 - speak TARGET_CHR, 0x0218, 0x0af6, CHANNEL_6, COLOR_04_ORANGE // "Don't you know who I am?" - - beginloop 0x68 - if_sound_finished CHANNEL_6, /*goto*/ 0x69 - endloop 0x68 - - label 0x69 - walk_to_pad 0x004d - - beginloop 0x60 - if_chr_distance_to_pad_lt CHR_SELF, 70, 0x004d, /*goto*/ 0x06 - endloop 0x60 - - label 0x06 - walk_to_pad 0x004e - - beginloop 0x61 - if_chr_distance_to_pad_lt CHR_SELF, 70, 0x004e, /*goto*/ 0x06 - endloop 0x61 - - label 0x06 - walk_to_pad 0x0041 - - beginloop 0x62 - if_chr_stopped /*goto*/ 0x06 - endloop 0x62 - - label 0x06 - restart_timer - try_face_entity 0x0008, 0x0042, /*goto*/ 0xb8 - - beginloop 0xb8 - if_timer_gt 60, /*goto*/ 0x63 - endloop 0xb8 - - label 0x63 - if_chr_sees_player /*goto*/ 0x2c - if_chr_in_room TARGET_CHR, 0x00, 0x005b, /*goto*/ 0x2c - if_chr_in_room TARGET_CHR, 0x00, 0x005c, /*goto*/ 0x2c - if_chr_in_room TARGET_CHR, 0x00, 0x005d, /*goto*/ 0x2c - if_chr_in_room TARGET_CHR, 0x00, 0x005e, /*goto*/ 0x2c - if_chr_in_room TARGET_CHR, 0x00, 0x005f, /*goto*/ 0x2c - if_chr_in_room TARGET_CHR, 0x00, 0x0060, /*goto*/ 0x2c - if_chr_in_room TARGET_CHR, 0x00, 0x0061, /*goto*/ 0x2c - if_chr_in_room TARGET_CHR, 0x00, 0x0062, /*goto*/ 0x2c - if_chr_in_room TARGET_CHR, 0x00, 0x0064, /*goto*/ 0x2c - goto_next 0x06 - - label 0x2c - speak TARGET_CHR, 0x0219, 0x0af7, CHANNEL_6, COLOR_04_ORANGE // "Let's see how you deal with security." - label 0x06 - animation ANIM_PUSH_BUTTON, 0, 193, 0x1010, CHR_SELF, 2 - - beginloop 0x6a - if_chr_stopped /*goto*/ 0x06 - endloop 0x6a - - label 0x06 - activate_alarm - - label 0x6b - stop_chr - yield - try_face_entity 0x0200, 0x0000, /*goto*/ 0x6c - - beginloop 0x6c - call_rng - if_rand_lt 250, /*goto*/ 0x06 - stop_chr - try_face_entity 0x0200, 0x0000, /*goto*/ 0x2c - label 0x2c - call_rng - if_chr_distance_gt 500, /*goto*/ 0x06 - if_chr_in_view /*goto*/ 0x6d - label 0x06 - endloop 0x6c - - label 0x6d - restart_timer - say_quip TARGET_CHR, 0x00, 0xff, 0x00, 0xff, BANK_1, 0x01, 0x04 // "How dare you disturb me","You will regret this intrusion girl","If I were you I'd leave, now" - animation ANIM_TALKING_00A3, 0, 193, 0x1810, CHR_SELF, 2 - - beginloop 0x6e - if_timer_gt 100, /*goto*/ 0x6f - endloop 0x6e - - label 0x6f - restart_timer - - beginloop 0x70 - if_timer_gt 300, /*goto*/ 0x71 - endloop 0x70 - - label 0x71 - goto_first 0x6b - - endfunction - -func0412_init_secretary: - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, FUNC_SECRETARY - endfunction - -func0411_secretary: - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x06 - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - set_chr_flag_bank2 CHR_SECRETARY, CHRFLAG2_00100000 - chr_move_to_pad CHR_SECRETARY, 0x01c3, 0x00, /*goto*/ 0x2c - dprint "DETECT 4" - label 0x2c - stop_chr - label 0x06 - set_onshot_function GFUNC_IDLE - if_chr_dying CHR_SECRETARY, /*goto*/ 0x06 - if_chr_unloaded CHR_SECRETARY, /*goto*/ 0x06 - goto_next 0x2c - - label 0x06 - set_function CHR_SELF, GFUNC_IDLE - - label 0x2c - animation 0x00a1, 0, 193, 0x1810, CHR_SELF, 2 - - beginloop 0x72 - set_target_chr CHR_JOANNA - if_chr_sees_player /*goto*/ 0x73 - set_target_chr CHR_VELVET - if_chr_sees_player /*goto*/ 0x74 - set_target_chr CHR_JOANNA - endloop 0x72 - - label 0x74 - set_stage_flag STAGEFLAG_SECRETARY_SAW_VELVET - label 0x73 - stop_chr - restart_timer - set_stage_flag STAGEFLAG_SECETARY_SAW_JO_OR_VELVET - - beginloop 0x7a - if_timer_gt 20, /*goto*/ 0x7b - endloop 0x7a - - label 0x7b - try_face_entity 0x0200, 0x0000, /*goto*/ 0x7c - - beginloop 0x7c - if_timer_lt 80, /*goto*/ 0x2c - if_sound_finished CHANNEL_6, /*goto*/ 0x7d - label 0x2c - endloop 0x7c - - label 0x7d - restart_timer - if_chr_weapon_equipped TARGET_CHR, WEAPON_NONE, /*goto*/ 0x2c - if_chr_weapon_equipped TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x2c - speak TARGET_CHR, 0x0216, 0x1aed, CHANNEL_5, COLOR_07_RED // "Look out! She's got a gun." - label 0x2c - animation ANIM_SURRENDER_002E, 0, 193, 0x1810, CHR_SELF, 2 - - beginloop 0x75 - if_timer_gt 60, /*goto*/ 0x76 - endloop 0x75 - - label 0x76 - set_action ACTION_RUN_AWAY, FALSE - jog_to_pad 0x0047 - - beginloop 0x77 - if_chr_stopped /*goto*/ 0x78 - endloop 0x77 - - label 0x78 - animation ANIM_COWER_01F5, -1, -1, 0x5014, CHR_SELF, 2 - - beginloop 0x79 - if_chr_distance_gt 500, /*goto*/ 0x06 - if_chr_in_view /*goto*/ 0x7e - label 0x06 - endloop 0x79 - - label 0x7e - restart_timer - animation ANIM_COWER_01F5, -1, -1, 0x100a, CHR_SELF, 2 - yield - goto_next 0x81 - - // Unreachable - try_face_entity 0x0200, 0x0000, /*goto*/ 0x7f - - beginloop 0x7f - if_angle_to_target_chr_lt 10, /*goto*/ 0x81 - if_timer_gt 120, /*goto*/ 0x81 - endloop 0x7f - - label 0x81 - restart_timer - say_quip TARGET_CHR, 0x01, 0xff, 0x00, 0xff, BANK_1, 0x02, 0x07 // "Please don't kill me","Don't shoot!" - animation ANIM_SURRENDER_002E, 0, -1, 0x1810, CHR_SELF, 2 - - beginloop 0x82 - if_timer_gt 180, /*goto*/ 0x83 - endloop 0x82 - - label 0x83 - animation ANIM_COWER_0229, -1, -1, 0x1014, CHR_SELF, 2 - - beginloop 0x84 - call_rng - if_rand_gt 254, /*goto*/ 0x06 - endloop 0x84 - - label 0x06 - goto_first 0x78 - - endfunction - -func0414_programmer: - .set LABEL_JO_SPEAK, 0x9c - .set LABEL_RUN_TO_GUARD, 0xa5 - .set LABEL_NEAR_LAPTOPGUN_ROOM, 0xa8 - .set LABEL_LOG_ON, 0xaa - .set LABEL_PC_BROKEN, 0xc5 - - // PA only - if_difficulty_gt DIFF_SA, /*goto*/ 0x2c - set_function CHR_SELF, GFUNC_IDLE - - label 0x2c - set_reaction_speed 100 - set_onshot_function FUNC_PROGRAMMER - set_chr_flag_bank3 CHR_PROGRAMMER, CHRFLAG3_00000080 - 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 0x2c - - label 0x06 - set_function CHR_SELF, GFUNC_IDLE - - label 0x2c - if_num_times_shot_lt 1, /*goto*/ 0x06 - set_stage_flag STAGEFLAG_PROGRAMMER_INJURED - if_chr_weapon_equipped TARGET_CHR, WEAPON_NONE, /*goto*/ 0x2c - if_chr_weapon_equipped TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x2c - if_sound_finished CHANNEL_3, /*goto*/ 0x90 - goto_next 0x2c - - label 0x90 - speak TARGET_CHR, 0x0235, 0x12fe, CHANNEL_3, COLOR_03_RED // "Don't shoot, don't shoot!" - label 0x2c - restart_timer - - beginloop 0xab - if_chr_stopped /*goto*/ LABEL_JO_SPEAK - endloop 0xab - - // Hasn't been shot - label 0x06 - set_chr_alliance CHR_SELF, ALLIANCE_ENEMY - stop_chr - - // Wait until Jo or Velvet near his office - beginloop 0x91 - set_target_chr CHR_JOANNA - if_chr_distance_to_pad_lt2 TARGET_CHR, 0x0050, 1240, /*goto*/ 0x06 - set_target_chr CHR_VELVET - if_chr_distance_to_pad_lt2 TARGET_CHR, 0x0050, 1240, /*goto*/ 0x06 - endloop 0x91 - - // Phone ringing - label 0x06 - play_sound_from_object2 CHANNEL_4, OBJ_PCMONITOR, 0x8109, 0x0f, 0x02 - - // Wait until Jo or Velvet is close to his door - beginloop 0x92 - set_target_chr CHR_JOANNA - if_chr_distance_to_pad_lt2 TARGET_CHR, 0x0014, 1240, /*goto*/ 0x06 - set_target_chr CHR_VELVET - if_chr_distance_to_pad_lt2 TARGET_CHR, 0x0014, 1240, /*goto*/ 0x06 - endloop 0x92 - - label 0x06 - restart_timer - - beginloop 0x8e - if_timer_gt 40, /*goto*/ 0x2c - endloop 0x8e - - label 0x2c - mute_channel CHANNEL_4 // stop ringing - restart_timer - - beginloop 0x8f - if_timer_gt 90, /*goto*/ 0x2c - endloop 0x8f - - // The timer in the following is dialogue is used to measure the gap between - // speaks. - label 0x2c - restart_timer - speak TARGET_CHR, 0x0244, 0x8104, CHANNEL_3, COLOR_03_RED // "Yes, yes, I agree. Personality is expendable in th..." - restart_timer - animation ANIM_TALKING_00A0, 0, 193, 0x1010, CHR_SELF, 2 - - beginloop 0x08 - pause_timer - if_sound_finished CHANNEL_3, /*goto*/ 0x06 - reloop 0x08 - - label 0x06 - resume_timer - if_timer_gt 30, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - yield - yield - yield - speak TARGET_CHR, 0x0245, 0x8105, CHANNEL_3, COLOR_03_RED // "No, I can start the process from my office termina..." - restart_timer - - beginloop 0x0e - pause_timer - if_sound_finished CHANNEL_3, /*goto*/ 0x06 - reloop 0x0e - - label 0x06 - resume_timer - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x0e - - label 0x06 - speak TARGET_CHR, 0x0246, 0x8106, CHANNEL_3, COLOR_03_RED // "I'll begin at once. Goodbye." - - beginloop 0x0f - if_sound_finished CHANNEL_3, /*goto*/ 0x06 - endloop 0x0f - - label 0x06 - stop_chr - walk_to_pad 0x0062 - restart_timer - - beginloop 0x09 - if_timer_gt 30, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - set_stage_flag STAGEFLAG_PROGRAMMER_WALKING - label 0x06 - - label 0x99 - walk_to_pad 0x0062 - - // While walking, check for anything that might cause him to detect Jo. - - // @bug The condition to jump to log on should be a distance check rather - // than chr stopped. If the programmer's pathing has failed then he will - // have stopped without being near the PC. This bug is repeated several - // times in this function but only documented here. - beginloop 0x93 - if_target_chr_in_sight /*goto*/ 0x96 - if_near_miss /*goto*/ 0x96 - if_shot_near_chr 0x00, /*goto*/ 0x96 - if_saw_death 0x00, /*goto*/ 0x96 - if_hears_gunfire /*goto*/ 0x96 - if_stage_flag_eq STAGEFLAG_PROGRAMMER_RAN_TO_GUARD, TRUE, /*goto*/ 0x2c - if_dying /*goto*/ 0x96 - label 0x2c - if_chr_stopped /*goto*/ LABEL_LOG_ON - endloop 0x93 - - // Detected Jo - label 0x96 - restart_timer - set_alertness 255 - restart_timer - try_face_entity 0x0200, 0x0000, /*goto*/ 0x9a - - beginloop 0x9a - if_angle_to_target_chr_lt 10, /*goto*/ 0x06 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x9a - - label 0x06 - if_stage_flag_eq STAGEFLAG_TALKED_TO_PROGRAMMER, TRUE, /*goto*/ 0x06 - speak TARGET_CHR, 0x0224, 0x1300, CHANNEL_3, COLOR_03_RED // "HELP - Intruder!" - animation ANIM_SURRENDER_002E, 0, 193, 0x1810, CHR_SELF, 2 - - beginloop 0xa3 - if_sound_finished CHANNEL_3, /*goto*/ 0x06 - endloop 0xa3 - - label 0x06 - if_chr_in_room CHR_PROGRAMMER, 0x00, 0x007d, /*goto*/ LABEL_NEAR_LAPTOPGUN_ROOM - if_chr_in_room CHR_PROGRAMMER, 0x00, 0x007e, /*goto*/ LABEL_NEAR_LAPTOPGUN_ROOM - if_chr_in_room CHR_PROGRAMMER, 0x00, 0x007f, /*goto*/ LABEL_NEAR_LAPTOPGUN_ROOM - if_stage_flag_eq STAGEFLAG_PROGRAMMER_INJURED, TRUE, /*goto*/ LABEL_JO_SPEAK - - label 0xa2 - if_chr_sees_player /*goto*/ 0x06 - goto_next 0x2c - - // Can see Jo, and not injured or near Laptop Gun room - label 0x06 - if_stage_flag_eq STAGEFLAG_PROGRAMMER_RAN_TO_GUARD, TRUE, /*goto*/ 0x06 - - label 0x2c - speak TARGET_CHR, 0x024f, 0x8107, CHANNEL_3, COLOR_03_RED // "Security... Help me!" - goto_next 0xa1 - - label 0x06 - speak TARGET_CHR, 0x0226, 0x8108, CHANNEL_3, COLOR_03_RED // "HELP, HELP!" - label 0xa1 - restart_timer - set_stage_flag STAGEFLAG_PROGRAMMER_RAN_TO_GUARD - try_target_chr_in_same_group /*goto*/ LABEL_RUN_TO_GUARD - unset_object_flag_bank1 OBJ_LAPTOPGUNDOOR, OBJECTFLAG1_20000000 - jog_to_pad 0x0086 - - beginloop 0x97 - if_timer_lt 240, /*goto*/ 0x06 - if_chr_sees_player /*goto*/ 0x2c - goto_next 0x06 - label 0x2c - if_chr_distance_lt 300, /*goto*/ LABEL_JO_SPEAK - label 0x06 - if_chr_stopped /*goto*/ 0x06 - endloop 0x97 - - label 0x06 - set_stage_flag STAGEFLAG_PROGRAMMER_INJURED - restart_timer - unlock_door OBJ_LAPTOPGUNDOOR, 0x02 - animation ANIM_COWER_01F5, 0, -1, 0x5010, CHR_SELF, 2 - - beginloop 0x0d - if_timer_gt 300, /*goto*/ 0xb5 - if_chr_distance_gt 300, /*goto*/ 0x2c - if_chr_sees_player /*goto*/ 0x06 - goto_next 0x2c - label 0x06 - if_player_looking_at_something_maybe 0x28, 0x01, 0x00, /*goto*/ LABEL_JO_SPEAK - label 0x2c - endloop 0x0d - - label 0xb5 - goto_first 0x99 - - label LABEL_RUN_TO_GUARD - try_run_to_chr FOLLOW_CHR, /*goto*/ 0xa6 - - beginloop 0xa6 - if_detected_chr FOLLOW_CHR, /*goto*/ 0xa7 - if_timer_lt 120, /*goto*/ 0x06 - if_chr_sees_player /*goto*/ LABEL_JO_SPEAK - goto_next 0x06 - if_chr_distance_lt 300, /*goto*/ LABEL_JO_SPEAK - label 0x06 - if_chr_stopped /*goto*/ 0xa7 - endloop 0xa6 - - label 0xa7 - speak TARGET_CHR, 0x0226, 0x8108, CHANNEL_3, COLOR_03_RED // "HELP, HELP!" - set_group_alertness 100 - endloop 0x99 - - label LABEL_JO_SPEAK - restart_timer - if_stage_flag_eq STAGEFLAG_TALKED_TO_PROGRAMMER, TRUE, /*goto*/ 0x2c - speak TARGET_CHR, 0x0248, 0x7322, CHANNEL_3, COLOR_09_BLUE // "I've got a password problem, and you're the man to..." - goto_next 0x06 - label 0x2c - speak TARGET_CHR, 0x0247, 0x7323, CHANNEL_3, COLOR_09_BLUE // "Move it!" - label 0x06 - set_stage_flag STAGEFLAG_TALKED_TO_PROGRAMMER - try_face_entity 0x0200, 0x0000, /*goto*/ 0x9b - - beginloop 0x9b - if_stage_flag_eq STAGEFLAG_TALKED_TO_PROGRAMMER, TRUE, /*goto*/ 0x06 - if_angle_to_target_chr_lt 10, /*goto*/ 0x06 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x9b - - label 0x06 - animation ANIM_SURRENDER_002E, 0, 193, 0x1010, CHR_SELF, 2 - - beginloop 0x10 - if_sound_finished CHANNEL_3, /*goto*/ 0x06 - endloop 0x10 - - label 0x06 - if_stage_flag_eq STAGEFLAG_TALKED_TO_PROGRAMMER, TRUE, /*goto*/ 0x2c - speak TARGET_CHR, 0x0223, 0x12ff, CHANNEL_5, COLOR_03_RED // "I'll do what you want!" - set_stage_flag STAGEFLAG_TALKED_TO_PROGRAMMER - goto_next 0x06 - label 0x2c - speak TARGET_CHR, 0x0249, 0x12fe, CHANNEL_5, COLOR_03_RED // "Don't shoot, don't shoot!" - label 0x06 - animation ANIM_DONT_SHOOT, 0, -1, 0x1010, CHR_SELF, 2 - - beginloop 0x9f - if_sound_finished CHANNEL_5, /*goto*/ 0x9d - endloop 0x9f - - label 0x9d - walk_to_pad 0x0062 - - beginloop 0x9e - if_chr_stopped /*goto*/ LABEL_LOG_ON - if_stage_flag_eq STAGEFLAG_PROGRAMMER_INJURED, TRUE, /*goto*/ 0x06 - if_chr_distance_lt 500, /*goto*/ 0x06 - if_player_looking_at_something_maybe 0x28, 0x01, 0x00, /*goto*/ 0x06 - if_chr_in_room CHR_PROGRAMMER, 0x00, 0x007d, /*goto*/ 0x06 - if_chr_in_room CHR_PROGRAMMER, 0x00, 0x007e, /*goto*/ 0x06 - if_chr_in_room CHR_PROGRAMMER, 0x00, 0x007f, /*goto*/ 0x06 - goto_next 0xa0 - label 0x06 - endloop 0x9e - - label 0xa0 - goto_first 0xa2 - - label LABEL_NEAR_LAPTOPGUN_ROOM - stop_chr - speak TARGET_CHR, 0x0227, 0x12ff, CHANNEL_3, COLOR_03_RED // "I'll do what you want..." - restart_timer - label 0x06 - walk_to_pad 0x0062 - - beginloop 0xa9 - if_chr_stopped /*goto*/ LABEL_LOG_ON - endloop 0xa9 - - label LABEL_LOG_ON - restart_timer - if_stage_flag_eq STAGEFLAG_PC_DESTROYED, TRUE, /*goto*/ LABEL_PC_BROKEN - if_detected_chr TARGET_CHR, /*goto*/ 0x2c - speak TARGET_CHR, 0x0228, 0x1301, CHANNEL_3, COLOR_03_RED // "Logging on now..." - goto_next 0x06 - label 0x2c - speak TARGET_CHR, 0x026d, 0x1304, CHANNEL_3, COLOR_03_RED // "I...I'm logging on now." - label 0x06 - animation ANIM_STANDING_TYPE_ONE_HAND, 0, 193, 0x1810, CHR_SELF, 2 - speak TARGET_CHR, -1, 0x8116, -1, COLOR_00_GREEN - - beginloop 0xae - if_stage_flag_eq STAGEFLAG_PC_DESTROYED, TRUE, /*goto*/ LABEL_PC_BROKEN - if_timer_gt 360, /*goto*/ 0x06 - endloop 0xae - - label 0x06 - if_stage_flag_eq STAGEFLAG_PC_DESTROYED, TRUE, /*goto*/ LABEL_PC_BROKEN - animation ANIM_PUSH_BUTTON, 0, 193, 0x1810, CHR_SELF, 2 - set_stage_flag STAGEFLAG_PROGRAMMER_LOGGED_IN - if_detected_chr TARGET_CHR, /*goto*/ 0x2c - speak TARGET_CHR, 0x0229, 0x1302, CHANNEL_3, COLOR_03_RED // "Okay, I'm in..." - goto_next 0x06 - label 0x2c - speak TARGET_CHR, 0x026c, 0x1305, CHANNEL_3, COLOR_03_RED // "Right, I'm in..." - label 0x06 - speak TARGET_CHR, -1, 0x8117, -1, COLOR_00_GREEN - - beginloop 0xaf - if_stage_flag_eq STAGEFLAG_PC_DESTROYED, TRUE, /*goto*/ LABEL_PC_BROKEN - if_chr_dying CHR_SELF, /*goto*/ 0xb1 - if_timer_gt 1040, /*goto*/ 0x06 - endloop 0xaf - - label 0x06 - if_stage_flag_eq STAGEFLAG_PC_DESTROYED, TRUE, /*goto*/ LABEL_PC_BROKEN - set_stage_flag STAGEFLAG_PERSONALITY_DELETED - set_chr_health CHR_SELF, 1 - animation ANIM_TALKING_003D, 0, 193, 0x1810, CHR_SELF, 2 - speak TARGET_CHR, 0x022a, 0x1303, CHANNEL_3, COLOR_03_RED // "Goodbye, Dr. Caroll." - if_stage_flag_eq STAGEFLAG_DOWNLOAD_COMPLETE, TRUE, /*goto*/ 0x2c - set_stage_flag STAGEFLAG_DELETED_WITHOUT_DOWNLOAD - label 0x2c - speak TARGET_CHR, -1, 0x8118, -1, COLOR_00_GREEN - - beginloop 0xb0 - endloop 0xb0 - - label 0xb1 - set_function CHR_SELF, GFUNC_IDLE - - label LABEL_PC_BROKEN - set_self_flag_bankx CHRFLAG0_CANT_ALERT_GROUP, BANK_0 - speak TARGET_CHR, 0x0262, 0x1289, CHANNEL_3, COLOR_03_RED // "You vandal, you've broken it!" - do_special_animation -1 - - beginloop 0xc6 - if_sound_finished CHANNEL_3, /*goto*/ 0x06 - endloop 0xc6 - - label 0x06 - set_return_function CHR_SELF, GFUNC_ALERTED - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -/** - * This function appears to be pointless considering you have control during the - * conversation anyway. Perhaps at one point during development there was a - * cutscene for the phone conversation? - */ -func1005_give_control: - beginloop 0x52 - if_stage_flag_eq STAGEFLAG_PROGRAMMER_WALKING, TRUE, /*goto*/ 0x06 - endloop 0x52 - - label 0x06 - label 0x2c - yield - grant_control CHR_JOANNA - grant_control CHR_VELVET - yield - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * @unused - */ -func0415_set_idle: - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * @unused - */ -func0413_c318: - set_accuracy 10 - try_draw_weapon MODEL_CHRCMP150, WEAPON_CMP150, 0x00000000, /*goto*/ 0x06 - label 0x06 - set_chr_alliance CHR_SELF, ALLIANCE_ENEMY - set_group 0x09 - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - set_self_flag_bankx CHRFLAG0_00008000, BANK_0 - set_alertness 255 - set_self_flag_bank3 CHRFLAG3_00000200 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_UNALERTED_0001 - endfunction - -func100e_check_ecm_mines: - yield - yield - yield - yield - yield - yield - yield - if_difficulty_lt DIFF_SA, /*goto*/ 0x06 - give_object_to_chr OBJ_ECMMINE_JOANNA, CHR_JOANNA - give_object_to_chr OBJ_ECMMINE_VELVET, CHR_VELVET - label 0x06 - if_difficulty_lt DIFF_PA, /*goto*/ 0x00 - give_object_to_chr OBJ_DATAUPLINK_JOANNA, CHR_JOANNA - give_object_to_chr OBJ_DATAUPLINK_VELVET, CHR_VELVET - - beginloop 0x00 - if_stage_flag_eq STAGEFLAG_SECURITYHUB_COMPLETE, TRUE, /*goto*/ 0x06 - if_stage_flag_eq STAGEFLAG_SECURITYHUB_MINES_WASTED, TRUE, /*goto*/ 0x2c - if_weapon_thrown_on_object WEAPON_ECMMINE, OBJ_SECURITYHUB, /*goto*/ 0x08 - label 0x06 - if_stage_flag_eq STAGEFLAG_EXTCOMMSHUB_COMPLETE, TRUE, /*goto*/ 0x06 - if_stage_flag_eq STAGEFLAG_EXTCOMMSHUB_MINES_WASTED, TRUE, /*goto*/ 0x2c - if_weapon_thrown_on_object WEAPON_ECMMINE, OBJ_EXTCOMMSHUB, /*goto*/ 0x0a - label 0x06 - if_timer_gt 0, /*goto*/ 0x06 - if_weapon_thrown WEAPON_ECMMINE, /*goto*/ 0x0b - label 0x2c - reloop 0x00 - - label 0x06 - if_timer_gt 240, /*goto*/ 0x53 - reloop 0x00 - - label 0x08 - reset_timer - message CHR_JOANNA, 0x021d // "ECM Mine placed correctly." - yield - mute_channel CHANNEL_0 - assign_sound 0x8113, CHANNEL_0 - control_sound_from_object CHANNEL_0, OBJ_SECURITYHUB, TRUE - message CHR_JOANNA, 0x024c // "Internal security system temporarily disabled." - set_stage_flag STAGEFLAG_SECURITYHUB_COMPLETE - reloop 0x00 - - label 0x0a - reset_timer - message CHR_JOANNA, 0x021d // "ECM Mine placed correctly." - yield - mute_channel CHANNEL_1 - assign_sound 0x8113, CHANNEL_1 - control_sound_from_object CHANNEL_1, OBJ_EXTCOMMSHUB, TRUE - message CHR_JOANNA, 0x024d // "External communications hub disabled." - set_stage_flag STAGEFLAG_EXTCOMMSHUB_COMPLETE - reloop 0x00 - - label 0x0b - restart_timer - reloop 0x00 - - // Check ECM mines wasted - label 0x53 - reset_timer - if_stage_flag_eq STAGEFLAG_SECURITYHUB_COMPLETE, TRUE, /*goto*/ 0x88 - if_stage_flag_eq STAGEFLAG_EXTCOMMSHUB_COMPLETE, TRUE, /*goto*/ 0x89 - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0xbe - if_ammo_quantity_lt CHR_JOANNA, AMMOTYPE_ECM_MINE, 1, /*goto*/ 0xbe - if_ammo_quantity_lt CHR_JOANNA, AMMOTYPE_ECM_MINE, 2, /*goto*/ 0xbf - reloop 0x00 - - label 0xbe - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0xc0 - if_ammo_quantity_lt CHR_VELVET, AMMOTYPE_ECM_MINE, 2, /*goto*/ 0xc0 - reloop 0x00 - - label 0xbf - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0xc0 - if_ammo_quantity_lt CHR_VELVET, AMMOTYPE_ECM_MINE, 1, /*goto*/ 0xc0 - reloop 0x00 - - label 0xc0 - goto_next 0x8d - - // Security hub is complete - label 0x88 - if_stage_flag_eq STAGEFLAG_EXTCOMMSHUB_COMPLETE, TRUE, /*goto*/ 0x8a - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0xbe - if_ammo_quantity_lt CHR_JOANNA, AMMOTYPE_ECM_MINE, 1, /*goto*/ 0xbe - reloop 0x00 - - label 0xbe - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0xbf - if_ammo_quantity_lt CHR_VELVET, AMMOTYPE_ECM_MINE, 1, /*goto*/ 0xbf - reloop 0x00 - - label 0xbf - goto_next 0x8b - - // Comms hub is complete - label 0x89 - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0xbe - if_ammo_quantity_lt CHR_JOANNA, AMMOTYPE_ECM_MINE, 1, /*goto*/ 0xbe - reloop 0x00 - - label 0xbe - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0xbf - if_ammo_quantity_lt CHR_VELVET, AMMOTYPE_ECM_MINE, 1, /*goto*/ 0xbf - reloop 0x00 - - // Mines wasted with security hub remaining - label 0xbf - goto_next 0x06 - label 0x06 - set_stage_flag STAGEFLAG_SECURITYHUB_MINES_WASTED - goto_next 0x8c - - // Mines wasted with comms hub remaining - label 0x8b - set_stage_flag STAGEFLAG_EXTCOMMSHUB_MINES_WASTED - - label 0x8c - message CHR_JOANNA, 0x021c // "Badly placed ECM Mine." - reloop 0x00 - - // Mines wasted with both hubs remaining - label 0x8d - message CHR_JOANNA, 0x021c // "Badly placed ECM Mine." - message CHR_JOANNA, 0x0220 // "CANNOT complete all objectives." - set_stage_flag STAGEFLAG_SECURITYHUB_MINES_WASTED - set_stage_flag STAGEFLAG_EXTCOMMSHUB_MINES_WASTED - reloop 0x00 - - // Both hubs are complete - label 0x8a - endloop 0x00 - - beginloop 0x06 - endloop 0x06 - - endfunction - -func1004_check_lab_lift_located: - beginloop 0x52 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, OBJ_LABLIFTDOOR1, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, OBJ_LABLIFTDOOR2, /*goto*/ 0x2c - if_chr_in_room CHR_P1P2, 0x00, 0x002b, /*goto*/ 0x2c - reloop 0x52 - - label 0x2c - if_stage_flag_eq STAGEFLAG_LAB_LIFT_LOCATED, TRUE, /*goto*/ 0x2c - message CHR_P1P2, 0x024e // "Laboratory lift located." - set_stage_flag STAGEFLAG_LAB_LIFT_LOCATED - label 0x2c - yield - if_all_objectives_complete /*goto*/ 0x2c - endloop 0x52 - - label 0x2c - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x2c - if_chr_dying CHR_JOANNA, /*goto*/ 0x2c - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x2c - goto_next 0x06 - - label 0x2c - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2c - if_chr_dying CHR_VELVET, /*goto*/ 0x2c - if_chr_unloaded CHR_VELVET, /*goto*/ 0x2c - goto_next 0x06 - - label 0x2c - end_level - set_function CHR_SELF, GFUNC_IDLE - - label 0x06 - set_invincible CHR_JOANNA - set_function CHR_SELF, FUNC_OUTRO - endfunction - -func1006_check_programmer_dead: - if_difficulty_lt DIFF_PA, /*goto*/ 0x06 - - beginloop 0x04 - if_chr_dying CHR_PROGRAMMER, /*goto*/ 0x2c - if_chr_unloaded CHR_PROGRAMMER, /*goto*/ 0x2c - endloop 0x04 - - label 0x2c - if_stage_flag_eq STAGEFLAG_PROGRAMMER_LOGGED_IN, TRUE, /*goto*/ 0x06 - message CHR_JOANNA, 0x0239 // "Critical mission personnel killed." - set_stage_flag STAGEFLAG_PROGRAMMER_DEAD - set_function CHR_SELF, GFUNC_IDLE - - label 0x06 - set_function CHR_SELF, GFUNC_IDLE - - // Unreachable - label 0xac - yield - goto_first 0x06 - - endfunction - -func1007_uplinking: - beginloop 0x04 - if_chr_activated_object CHR_JOANNA, OBJ_PC, /*goto*/ 0xbe - if_chr_activated_object CHR_VELVET, OBJ_PC, /*goto*/ 0xbf - reloop 0x04 - - label 0xbe - set_target_chr CHR_JOANNA - goto_next 0xc0 - - label 0xbf - set_target_chr CHR_VELVET - goto_next 0xc0 - - label 0xc0 - if_chr_weapon_equipped TARGET_CHR, WEAPON_DATAUPLINK, /*goto*/ 0x2c - message TARGET_CHR, 0x0231 // "Unable to download - Data Uplink needed." - call_rng - if_rand_lt 60, /*goto*/ 0x0d - if_rand_lt 120, /*goto*/ 0x0e - if_rand_lt 180, /*goto*/ 0x0f - - label 0x0c - speak TARGET_CHR, -1, 0x8116, -1, COLOR_00_GREEN - goto_next 0x06 - - label 0x0d - speak TARGET_CHR, -1, 0x8117, -1, COLOR_00_GREEN - goto_next 0x06 - - label 0x0e - speak TARGET_CHR, -1, 0x8118, -1, COLOR_00_GREEN - goto_next 0x06 - - label 0x0f - speak TARGET_CHR, -1, 0x8118, -1, COLOR_00_GREEN - - label 0x06 - restart_timer - - beginloop 0x10 - if_timer_gt 120, /*goto*/ 0x06 - goto_first 0x10 - - label 0x06 - reloop 0x04 - - label 0x2c - if_stage_flag_eq STAGEFLAG_PROGRAMMER_LOGGED_IN, TRUE, /*goto*/ 0xae - restart_timer - message TARGET_CHR, 0x022e // "ACCESS DENIED - password needed." - assign_sound 0x01c0, CHANNEL_7 - control_sound_from_object CHANNEL_7, OBJ_PC, FALSE - - beginloop 0xaf - if_timer_gt 120, /*goto*/ 0x06 - endloop 0xaf - - label 0x06 - mute_channel CHANNEL_7 - goto_first 0x04 - - label 0xae - message TARGET_CHR, 0x022c // "File download initiated." - assign_sound 0x01bf, CHANNEL_7 - control_sound_from_object CHANNEL_7, OBJ_PC, TRUE - restart_timer - - // @bug: Missing check for player still having uplink equipped - beginloop 0xac - if_chr_distance_to_pad_gt TARGET_CHR, 250, 0x01b6, /*goto*/ 0x2c - if_stage_flag_eq STAGEFLAG_DELETED_WITHOUT_DOWNLOAD, TRUE, /*goto*/ 0x12 - if_timer_gt 300, /*goto*/ 0xad - endloop 0xac - - label 0xad - mute_channel CHANNEL_7 - assign_sound 0x01c1, CHANNEL_7 - control_sound_from_object CHANNEL_7, OBJ_PC, TRUE - message TARGET_CHR, 0x022d // "File download completed." - yield - set_stage_flag STAGEFLAG_DOWNLOAD_COMPLETE - set_function CHR_SELF, GFUNC_IDLE - - label 0x2c - message TARGET_CHR, 0x024a // "Datalink broken - connection terminated." - mute_channel CHANNEL_7 - assign_sound 0x01c0, CHANNEL_6 - play_sound_from_object CHANNEL_6, OBJ_PC, 0x012c, 0x0190 - restart_timer - - beginloop 0x11 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x11 - - label 0x06 - mute_channel CHANNEL_6 - reloop 0x04 - - label 0x12 - message TARGET_CHR, 0x024b // "Datalink error - incomplete file download." - mute_channel CHANNEL_7 - assign_sound 0x01c0, CHANNEL_6 - play_sound_from_object CHANNEL_6, OBJ_PC, 0x012c, 0x0190 - restart_timer - - beginloop 0x13 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x13 - - label 0x06 - mute_channel CHANNEL_6 - endloop 0x04 - - endfunction - -func1008_doorswitch: - if_difficulty_gt DIFF_SA, /*goto*/ 0x04 - - // A and SA - unlock_door OBJ_OFFICEDOOR1, 0x01 - unlock_door OBJ_OFFICEDOOR2, 0x01 - unset_object_flag_bank1 OBJ_OFFICEDOOR1, OBJECTFLAG1_20000000 - unset_object_flag_bank1 OBJ_OFFICEDOOR2, OBJECTFLAG1_20000000 - set_stage_flag STAGEFLAG_OFFICE_DOOR_UNLOCKED - set_function CHR_SELF, GFUNC_IDLE - - // PA - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, OBJ_DOORSWITCH, /*goto*/ 0x2c - label 0x06 - endloop 0x04 - - label 0x2c - play_sound 0x00ba, -1 - message CHR_P1P2, 0x022f // "Door unlocked." - set_stage_flag STAGEFLAG_OFFICE_DOOR_UNLOCKED - unlock_door OBJ_OFFICEDOOR1, 0x01 - unlock_door OBJ_OFFICEDOOR2, 0x01 - unset_object_flag_bank1 OBJ_OFFICEDOOR1, OBJECTFLAG1_20000000 - unset_object_flag_bank1 OBJ_OFFICEDOOR2, OBJECTFLAG1_20000000 - yield - restart_timer - - beginloop 0x08 - if_timer_gt 45, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - assign_sound 0x043b, CHANNEL_7 - control_sound_from_object CHANNEL_7, OBJ_OFFICEDOOR1, TRUE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1009_check_civilians_killed: - beginloop 0x04 - if_chr_dying CHR_SECRETARY, /*goto*/ 0x2c - if_chr_dying CHR_CASS, /*goto*/ 0x09 - label 0x06 - endloop 0x04 - - label 0x2c - message CHR_JOANNA, 0x0237 // "Unacceptable civilian casualties." - set_stage_flag STAGEFLAG_CIVILIANS_KILLED - set_function CHR_SELF, GFUNC_IDLE - - label 0x09 - message CHR_JOANNA, 0x0239 // "Critical mission personnel killed." - set_stage_flag STAGEFLAG_CIVILIANS_KILLED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Wait for alarm while security is disabled, then set a flag on a CMP guard. - */ -func100a_alarm_guard: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_SECURITY_DISABLED, FALSE, /*goto*/ 0x06 - if_alarm_active /*goto*/ 0x2c - label 0x06 - reloop 0x04 - - label 0x2c - set_chr_flag_bankx 0x09, CHRFLAG0_00002000, BANK_0 - goto_next 0xb3 - - // Unreachable - label 0xac - deactivate_alarm - reloop 0x04 - - label 0xb3 - label 0xb2 - endloop 0x04 - - endfunction - -func100b_lightswitch: - beginloop 0x04 - if_chr_activated_object CHR_F3, OBJ_LIGHTSWITCH, /*goto*/ 0x2c - reloop 0x04 - - label 0x2c - play_sound 0x00ba, -1 - if_stage_flag_eq STAGEFLAG_LIGHTS_OFF, TRUE, /*goto*/ 0x06 - - // Turning lights off - set_stage_flag STAGEFLAG_LIGHTS_OFF - set_lights_state 0x0044, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x0039, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x003c, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x003d, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x003e, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x003b, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x0042, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x003f, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x003a, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x0041, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x0040, 0x07, 0x00, 0x00, 0x00 - reloop 0x04 - - // Turning lights on - label 0x06 - unset_stage_flag STAGEFLAG_LIGHTS_OFF - set_lights_state 0x0044, 0x06, 0x00, 0x00, 0x00 - set_lights_state 0x0039, 0x06, 0x00, 0x00, 0x00 - set_lights_state 0x003c, 0x06, 0x00, 0x00, 0x00 - set_lights_state 0x003d, 0x06, 0x00, 0x00, 0x00 - set_lights_state 0x003e, 0x06, 0x00, 0x00, 0x00 - set_lights_state 0x003b, 0x06, 0x00, 0x00, 0x00 - set_lights_state 0x0042, 0x06, 0x00, 0x00, 0x00 - set_lights_state 0x003f, 0x06, 0x00, 0x00, 0x00 - set_lights_state 0x003a, 0x06, 0x00, 0x00, 0x00 - set_lights_state 0x0041, 0x06, 0x00, 0x00, 0x00 - set_lights_state 0x0040, 0x06, 0x00, 0x00, 0x00 - endloop 0x04 - - endfunction - -func100c_noop2: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_PERSONALITY_DELETED, TRUE, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100d_check_objects_destroyed: - if_difficulty_lt DIFF_SA, /*goto*/ 0x0d - - // SA and PA - beginloop 0x04 - // Check security hub - if_stage_flag_eq STAGEFLAG_SECURITYHUB_DESTROYED, TRUE, /*goto*/ 0x2c - if_object_in_good_condition OBJ_SECURITYHUB, /*goto*/ 0x2c - set_stage_flag STAGEFLAG_SECURITYHUB_DESTROYED - mute_channel CHANNEL_0 - message CHR_JOANNA, 0x0236 // "Critical mission object destroyed." - - // PA only - check door switch - label 0x2c - if_difficulty_lt DIFF_PA, /*goto*/ 0x2c - if_stage_flag_eq STAGEFLAG_OFFICE_DOOR_UNLOCKED, TRUE, /*goto*/ 0x2c - if_stage_flag_eq STAGEFLAG_DOORSWITCH_DESTROYED, TRUE, /*goto*/ 0x2c - if_object_in_good_condition OBJ_DOORSWITCH, /*goto*/ 0x2c - set_stage_flag STAGEFLAG_DOORSWITCH_DESTROYED - message CHR_JOANNA, 0x0236 // "Critical mission object destroyed." - - // PA only - check PC - label 0x2c - if_difficulty_lt DIFF_PA, /*goto*/ 0x2c - if_objective_complete 2, /*goto*/ 0x2c - if_stage_flag_eq STAGEFLAG_PC_DESTROYED, TRUE, /*goto*/ 0x2c - if_objective_failed 2, /*goto*/ 0x2c - if_object_in_good_condition OBJ_PC, /*goto*/ 0x2c - set_stage_flag STAGEFLAG_PC_DESTROYED - message CHR_JOANNA, 0x0236 // "Critical mission object destroyed." - - // Check comms hub - label 0x2c - if_stage_flag_eq STAGEFLAG_EXTCOMMSHUB_DESTROYED, TRUE, /*goto*/ 0x2c - if_object_in_good_condition OBJ_EXTCOMMSHUB, /*goto*/ 0x2c - set_stage_flag STAGEFLAG_EXTCOMMSHUB_DESTROYED - mute_channel CHANNEL_1 - message CHR_JOANNA, 0x0236 // "Critical mission object destroyed." - label 0x2c - endloop 0x04 - - // Agent - label 0x0d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1002_objectives_failed_msg: - yield - set_chr_flag_bank3 CHR_CASS, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_SECRETARY, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_PROGRAMMER, CHRFLAG3_04000000 - set_function CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG - endfunction - -.macro wait_for_camera_finished - beginloop 0x08 - if_camera_animating /*goto*/ 0x2c - goto_next 0x06 - label 0x2c - if_controller_button_pressed /*goto*/ 0x06 - endloop 0x08 -.endm - -func041b_intro_041b: - if_controller_button_pressed /*goto*/ 0x36 - camera_movement 0x00c9 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - show_object OBJ_JUMPSHIP2 - set_object_flag_bank2 OBJ_JUMPSHIP2, OBJECTFLAG2_00000010 - object_do_animation 0x00ca, OBJ_JUMPSHIP2, 0x04ff, 0xff - show_object OBJ_POLICECAR - set_object_flag_bank2 OBJ_POLICECAR, OBJECTFLAG2_00000010 - object_do_animation 0x0122, OBJ_POLICECAR, 0x04ff, 0xff - show_object OBJ_HOVERCOP3 - set_object_flag_bank2 OBJ_HOVERCOP3, OBJECTFLAG2_00000010 - object_do_animation 0x0123, OBJ_HOVERCOP3, 0x04ff, 0xff - show_object OBJ_HOVERCAR3 - set_object_flag_bank2 OBJ_HOVERCAR3, OBJECTFLAG2_00000010 - object_do_animation 0x0124, OBJ_HOVERCAR3, 0x04ff, 0xff - show_object OBJ_HOVERMOTO3 - set_object_flag_bank2 OBJ_HOVERMOTO3, OBJECTFLAG2_00000010 - object_do_animation 0x0125, OBJ_HOVERMOTO3, 0x04ff, 0xff - show_object OBJ_HOVERCAB3 - set_object_flag_bank2 OBJ_HOVERCAB3, OBJECTFLAG2_00000010 - object_do_animation 0x0126, OBJ_HOVERCAB3, 0x04ff, 0xff - fade_to_color 0x000000ff, 0 - fade_to_color 0x00000000, 90 - set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_JOANNA, WEAPON_FALCON2_SILENCER, WEAPON_NONE - - wait_for_camera_finished - - label 0x06 - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - hide_object OBJ_JUMPSHIP2 - hide_object OBJ_POLICECAR - hide_object OBJ_HOVERCOP3 - hide_object OBJ_HOVERCAR3 - hide_object OBJ_HOVERMOTO3 - hide_object OBJ_HOVERCAB3 - label 0x36 - return - endfunction - -func041a_intro_041a: - if_controller_button_pressed /*goto*/ 0x36 - camera_movement 0x00c7 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - show_object OBJ_JUMPSHIP2 - set_object_flag_bank2 OBJ_JUMPSHIP2, OBJECTFLAG2_00000010 - object_do_animation 0x00c8, OBJ_JUMPSHIP2, 0x04ff, 0xff - show_object OBJ_HOVERTAXI2 - set_object_flag_bank2 OBJ_HOVERTAXI2, OBJECTFLAG2_00000010 - object_do_animation 0x011c, OBJ_HOVERTAXI2, 0x04ff, 0xff - show_object OBJ_HOVERCOP3 - set_object_flag_bank2 OBJ_HOVERCOP3, OBJECTFLAG2_00000010 - object_do_animation 0x011d, OBJ_HOVERCOP3, 0x04ff, 0xff - show_object OBJ_HOVERCAR3 - set_object_flag_bank2 OBJ_HOVERCAR3, OBJECTFLAG2_00000010 - object_do_animation 0x011e, OBJ_HOVERCAR3, 0x04ff, 0xff - show_object OBJ_HOVERMOTO3 - set_object_flag_bank2 OBJ_HOVERMOTO3, OBJECTFLAG2_00000010 - object_do_animation 0x011f, OBJ_HOVERMOTO3, 0x04ff, 0xff - show_object OBJ_HOVERCAB3 - set_object_flag_bank2 OBJ_HOVERCAB3, OBJECTFLAG2_00000010 - object_do_animation 0x0120, OBJ_HOVERCAB3, 0x04ff, 0xff - show_object OBJ_HOVERTRUCK3 - set_object_flag_bank2 OBJ_HOVERTRUCK3, OBJECTFLAG2_00000010 - object_do_animation 0x0121, OBJ_HOVERTRUCK3, 0x04ff, 0xff - - wait_for_camera_finished - - label 0x06 - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - hide_object OBJ_JUMPSHIP2 - hide_object OBJ_HOVERTAXI2 - hide_object OBJ_HOVERCOP3 - hide_object OBJ_HOVERCAR3 - hide_object OBJ_HOVERMOTO3 - hide_object OBJ_HOVERCAB3 - hide_object OBJ_HOVERTRUCK3 - label 0x36 - return - endfunction - -func0419_intro_0419: - if_controller_button_pressed /*goto*/ 0x36 - camera_movement 0x00c5 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - show_object OBJ_JUMPSHIP2 - set_object_flag_bank2 OBJ_JUMPSHIP2, OBJECTFLAG2_00000010 - object_do_animation 0x00c6, OBJ_JUMPSHIP2, 0x04ff, 0xff - show_object OBJ_HOVERTAXI1 - set_object_flag_bank2 OBJ_HOVERTAXI1, OBJECTFLAG2_00000010 - object_do_animation 0x0119, OBJ_HOVERTAXI1, 0x04ff, 0xff - show_object OBJ_HOVERCOP3 - set_object_flag_bank2 OBJ_HOVERCOP3, OBJECTFLAG2_00000010 - object_do_animation 0x011a, OBJ_HOVERCOP3, 0x04ff, 0xff - show_object OBJ_HOVERCAR3 - set_object_flag_bank2 OBJ_HOVERCAR3, OBJECTFLAG2_00000010 - object_do_animation 0x011b, OBJ_HOVERCAR3, 0x04ff, 0xff - - wait_for_camera_finished - - label 0x06 - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - hide_object OBJ_JUMPSHIP2 - hide_object OBJ_HOVERTAXI1 - hide_object OBJ_HOVERCOP3 - hide_object OBJ_HOVERCAR3 - label 0x36 - return - endfunction - -func041c_intro_041c: - if_controller_button_pressed /*goto*/ 0x36 - camera_movement 0x00cb - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - show_object OBJ_JUMPSHIP2 - set_object_flag_bank2 OBJ_JUMPSHIP2, OBJECTFLAG2_00000010 - object_do_animation 0x00cc, OBJ_JUMPSHIP2, 0x04ff, 0xff - show_object OBJ_HOVERTAXI1 - set_object_flag_bank2 OBJ_HOVERTAXI1, OBJECTFLAG2_00000010 - object_do_animation 0x0127, OBJ_HOVERTAXI1, 0x04ff, 0xff - - // Invalid object - show_object 0x1d - set_object_flag_bank2 0x1d, OBJECTFLAG2_00000010 - object_do_animation 0x0128, 0x1d, 0x04ff, 0xff - - show_object OBJ_HOVERCOP3 - set_object_flag_bank2 OBJ_HOVERCOP3, OBJECTFLAG2_00000010 - object_do_animation 0x0129, OBJ_HOVERCOP3, 0x04ff, 0xff - show_object OBJ_HOVERCAR3 - set_object_flag_bank2 OBJ_HOVERCAR3, OBJECTFLAG2_00000010 - object_do_animation 0x012a, OBJ_HOVERCAR3, 0x04ff, 0xff - show_object OBJ_HOVERMOTO3 - set_object_flag_bank2 OBJ_HOVERMOTO3, OBJECTFLAG2_00000010 - object_do_animation 0x012b, OBJ_HOVERMOTO3, 0x04ff, 0xff - - wait_for_camera_finished - - label 0x06 - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - hide_object OBJ_JUMPSHIP2 - hide_object OBJ_HOVERTAXI1 - hide_object 0x1d - hide_object OBJ_HOVERCOP3 - hide_object OBJ_HOVERCAR3 - hide_object OBJ_HOVERMOTO3 - label 0x36 - return - endfunction - -/** - * Part of the intro cutscene. - */ -func041d_intro_041d: - if_controller_button_pressed /*goto*/ 0x36 - camera_movement 0x00cd - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - show_object OBJ_JUMPSHIP2 - set_object_flag_bank2 OBJ_JUMPSHIP2, OBJECTFLAG2_00000010 - object_do_animation 0x00ce, OBJ_JUMPSHIP2, 0x01ff, 0xff - show_object OBJ_HOVERTAXI1 - set_object_flag_bank2 OBJ_HOVERTAXI1, OBJECTFLAG2_00000010 - object_do_animation 0x012c, OBJ_HOVERTAXI1, 0x04ff, 0xff - show_object 0x1d - set_object_flag_bank2 0x1d, OBJECTFLAG2_00000010 - object_do_animation 0x012d, 0x1d, 0x04ff, 0xff - - wait_for_camera_finished - - label 0x06 - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - hide_object OBJ_JUMPSHIP2 - hide_object OBJ_HOVERTAXI1 - hide_object 0x1d - label 0x36 - return - endfunction - -/** - * @unregistered - */ -unregistered_function2: - set_return_function CHR_SELF, GFUNC_END_CINEMA - set_function CHR_SELF, FUNC_INTRO_041B - endfunction - -/** - * @unregistered - */ -unregistered_function3: - set_return_function CHR_SELF, GFUNC_END_CINEMA - set_function CHR_SELF, FUNC_INTRO_041A - endfunction - -/** - * @unregistered - */ -unregistered_function4: - set_return_function CHR_SELF, GFUNC_END_CINEMA - set_function CHR_SELF, FUNC_INTRO_0419 - endfunction - -/** - * @unregistered - */ -unregistered_function5: - set_return_function CHR_SELF, GFUNC_END_CINEMA - set_function CHR_SELF, FUNC_INTRO_041C - endfunction - -/** - * @unregistered - */ -unregistered_function6: - set_return_function CHR_SELF, GFUNC_END_CINEMA - set_function CHR_SELF, FUNC_INTRO_041D - endfunction - -/** - * This is the most ridiculous way of doing an intro cutscene. This is how all - * the functions call each other: - * - * func0422_intro calls 041b with return to 041e - * 041e calls 041a with return to 041f - * 041f calls 0419 with return to 0420 - * 0420 calls 041c with return to 0421 - * 0421 calls 041d with return to 0428 - * 0428 does stuff then sets 0424 - * 0424 does stuff then sets 0425 - * 0425 does stuff then sets 0423 - * 0423 does stuff then sets 0426 - * 0426 does stuff then sets 0429 - * 0429 does stuff then sets 0427 - * 0427 does stuff then sets 042a - * 042a does stuff then sets 042b - * 042b does stuff then sets 042c - * 042c just sets 042d - * 042d finishes intro - */ -func0422_intro: - set_sfx_track MUSIC_DEFECTION_INTRO_SFX - - // No yield in this loop! - label 0x07 - cmd01dd_if_something 0x10, /*goto*/ 0x2c - set_lighting 0x0000, 0x0b, 0x00 - goto_first 0x07 - - label 0x2c - yield - set_stage_flag STAGEFLAG_TRIGGER_INTRO - yield - set_music_track MUSIC_DEFECTION_INTRO - - label 0x08 - cmd01dd_if_something 0x01, /*goto*/ 0x2c - set_lighting 0x0000, 0x0b, 0x00 - goto_first 0x08 - - label 0x2c - set_return_function CHR_SELF, FUNC_INTRO_041E - set_function CHR_SELF, FUNC_INTRO_041B - endfunction - -func041e_intro_041e: - set_return_function CHR_SELF, FUNC_INTRO_041F - set_function CHR_SELF, FUNC_INTRO_041A - endfunction - -func041f_intro_041f: - set_return_function CHR_SELF, FUNC_INTRO_0420 - set_function CHR_SELF, FUNC_INTRO_0419 - endfunction - -func0420_intro_0420: - set_return_function CHR_SELF, FUNC_INTRO_0421 - set_function CHR_SELF, FUNC_INTRO_041C - endfunction - -func0421_intro_0421: - set_return_function CHR_SELF, 0x0428 - set_function CHR_SELF, FUNC_INTRO_041D - endfunction - -func0422_intro_0423: - if_controller_button_pressed /*goto*/ 0x36 - camera_movement 0x00ee - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - show_object OBJ_JUMPSHIP1 - set_object_flag_bank2 OBJ_JUMPSHIP1, OBJECTFLAG2_00000010 - object_do_animation 0x00ef, OBJ_JUMPSHIP1, 0x04ff, 0xff - set_tinted_glass_enabled TRUE - - wait_for_camera_finished - - label 0x06 - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - hide_object OBJ_JUMPSHIP1 - set_tinted_glass_enabled FALSE - label 0x36 - set_function CHR_SELF, FUNC_INTRO_0426 - endfunction - -func0422_intro_0424: - if_controller_button_pressed /*goto*/ 0x36 - camera_movement 0x00fc - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - show_object OBJ_JUMPSHIP1 - set_object_flag_bank2 OBJ_JUMPSHIP1, OBJECTFLAG2_00000010 - object_do_animation 0x00fd, OBJ_JUMPSHIP1, 0x04ff, 0xff - set_chr_flag_bank3 CHR_CASS, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_SECRETARY, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_SECRETARY, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_SECRETARY, CHRFLAG2_00020000 - animation 0x00fe, -1, -1, 0x0600, CHR_SECRETARY, 4 - - wait_for_camera_finished - - label 0x06 - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - hide_object OBJ_JUMPSHIP1 - unset_chr_flag_bank3 CHR_CASS, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_SECRETARY, CHRFLAG3_UNPLAYABLE - label 0x36 - set_function CHR_SELF, FUNC_INTRO_0425 - endfunction - -func0422_intro_0425: - if_controller_button_pressed /*goto*/ 0x36 - camera_movement 0x00ff - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - show_object OBJ_JUMPSHIP1 - set_object_flag_bank2 OBJ_JUMPSHIP1, OBJECTFLAG2_00000010 - object_do_animation 0x0100, OBJ_JUMPSHIP1, 0x04ff, 0xff - object_do_animation 0x0102, OBJ_BANNER1, 0x04ff, 0xff - object_do_animation 0x0117, OBJ_BANNER2, 0x04ff, 0xff - - wait_for_camera_finished - - label 0x06 - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - hide_object OBJ_JUMPSHIP1 - hide_object OBJ_BANNER1 - hide_object OBJ_BANNER2 - label 0x36 - set_function CHR_SELF, FUNC_INTRO_0423 - endfunction - -func0422_intro_0426: - if_controller_button_pressed /*goto*/ 0x36 - camera_movement 0x012e - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - show_object OBJ_JUMPSHIP1 - set_object_flag_bank2 OBJ_JUMPSHIP1, OBJECTFLAG2_00000010 - object_do_animation 0x012f, OBJ_JUMPSHIP1, 0x04ff, 0xff - show_object OBJ_BANNER1 - set_object_flag_bank2 OBJ_BANNER1, OBJECTFLAG2_00000010 - object_do_animation 0x0131, OBJ_BANNER1, 0x04ff, 0xff - show_object OBJ_BANNER2 - set_object_flag_bank2 OBJ_BANNER1, OBJECTFLAG2_00000010 - object_do_animation 0x0132, OBJ_BANNER2, 0x04ff, 0xff - - wait_for_camera_finished - - label 0x06 - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - hide_object OBJ_JUMPSHIP1 - hide_object OBJ_BANNER1 - hide_object OBJ_BANNER2 - label 0x36 - set_function CHR_SELF, FUNC_INTRO_0429 - endfunction - -func0422_intro_0427: - if_controller_button_pressed /*goto*/ 0x36 - camera_movement 0x0133 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - show_object OBJ_JUMPSHIP1 - set_object_flag_bank2 OBJ_JUMPSHIP1, OBJECTFLAG2_00000010 - object_do_animation 0x0134, OBJ_JUMPSHIP1, 0x04ff, 0xff - show_object OBJ_ROPE - set_object_flag_bank2 OBJ_ROPE, OBJECTFLAG2_00000010 - object_do_animation 0x0135, OBJ_ROPE, 0x04ff, 0xff - show_object OBJ_BANNER1 - set_object_flag_bank2 OBJ_BANNER1, OBJECTFLAG2_00000010 - object_do_animation 0x0136, OBJ_BANNER1, 0x04ff, 0xff - show_object OBJ_BANNER2 - set_object_flag_bank2 OBJ_BANNER1, OBJECTFLAG2_00000010 - object_do_animation 0x0137, OBJ_BANNER2, 0x04ff, 0xff - - wait_for_camera_finished - - label 0x06 - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - hide_object OBJ_JUMPSHIP1 - hide_object OBJ_ROPE - hide_object OBJ_BANNER1 - hide_object OBJ_BANNER2 - label 0x36 - set_function CHR_SELF, FUNC_INTRO_042A - endfunction - -func0422_intro_0428: - if_controller_button_pressed /*goto*/ 0x36 - camera_movement 0x0103 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - show_object OBJ_JUMPSHIP1 - set_object_flag_bank2 OBJ_JUMPSHIP1, OBJECTFLAG2_00000010 - object_do_animation 0x0104, OBJ_JUMPSHIP1, 0x04ff, 0xff - set_object_flag_bank1 OBJ_HOVERCOP1, OBJECTFLAG1_INVISIBLE - set_object_flag_bank1 OBJ_HOVERCOP2, OBJECTFLAG1_INVISIBLE - set_object_flag_bank1 OBJ_HOVERCAR1, OBJECTFLAG1_INVISIBLE - set_object_flag_bank1 OBJ_HOVERCAR2, OBJECTFLAG1_INVISIBLE - set_object_flag_bank1 OBJ_HOVERMOTO1, OBJECTFLAG1_INVISIBLE - set_object_flag_bank1 OBJ_HOVERMOTO2, OBJECTFLAG1_INVISIBLE - set_object_flag_bank1 OBJ_HOVERTRUCK1, OBJECTFLAG1_INVISIBLE - set_object_flag_bank1 OBJ_HOVERTRUCK2, OBJECTFLAG1_INVISIBLE - set_object_flag_bank1 OBJ_HOVERCAB1, OBJECTFLAG1_INVISIBLE - set_object_flag_bank1 OBJ_HOVERCAB2, OBJECTFLAG1_INVISIBLE - - wait_for_camera_finished - - label 0x06 - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - hide_object OBJ_JUMPSHIP1 - unset_object_flag_bank1 OBJ_HOVERCOP1, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank1 OBJ_HOVERCOP2, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank1 OBJ_HOVERCAR1, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank1 OBJ_HOVERCAR2, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank1 OBJ_HOVERMOTO1, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank1 OBJ_HOVERMOTO2, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank1 OBJ_HOVERTRUCK1, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank1 OBJ_HOVERTRUCK2, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank1 OBJ_HOVERCAB1, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank1 OBJ_HOVERCAB2, OBJECTFLAG1_INVISIBLE - label 0x36 - set_function CHR_SELF, FUNC_INTRO_0424 - endfunction - -func0422_intro_0429: - if_controller_button_pressed /*goto*/ 0x36 - camera_movement 0x0105 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - show_object OBJ_JUMPSHIP1 - set_object_flag_bank2 OBJ_JUMPSHIP1, OBJECTFLAG2_00000010 - object_do_animation 0x0106, OBJ_JUMPSHIP1, 0x04ff, 0xff - set_tinted_glass_enabled TRUE - - wait_for_camera_finished - - label 0x06 - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - hide_object OBJ_JUMPSHIP1 - set_tinted_glass_enabled FALSE - label 0x36 - set_function CHR_SELF, FUNC_INTRO_0427 - endfunction - -func0422_intro_042a: - if_controller_button_pressed /*goto*/ 0x36 - camera_movement 0x0107 - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - show_object OBJ_JUMPSHIP1 - set_object_flag_bank2 OBJ_JUMPSHIP1, OBJECTFLAG2_00000010 - object_do_animation 0x0108, OBJ_JUMPSHIP1, 0x04ff, 0xff - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x0109, -1, -1, 0x0600, CHR_JOANNA, 4 - set_chr_hud_visible CHR_JOANNA, TRUE - show_object OBJ_ROPE - set_object_flag_bank2 OBJ_ROPE, OBJECTFLAG2_00000010 - object_do_animation 0x010a, OBJ_ROPE, 0x04ff, 0xff - - wait_for_camera_finished - - label 0x06 - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - hide_object OBJ_JUMPSHIP1 - hide_object OBJ_ROPE - label 0x36 - set_function CHR_SELF, FUNC_INTRO_042B - endfunction - -func0422_intro_042b: - if_controller_button_pressed /*goto*/ 0x36 - camera_movement 0x010b - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - show_object OBJ_JUMPSHIP1 - set_object_flag_bank2 OBJ_JUMPSHIP1, OBJECTFLAG2_00000010 - object_do_animation 0x010c, OBJ_JUMPSHIP1, 0x04ff, 0xff - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x010d, -1, -1, 0x0600, CHR_JOANNA, 4 - set_chr_hud_visible CHR_JOANNA, TRUE - show_object OBJ_ROPE - set_object_flag_bank2 OBJ_ROPE, OBJECTFLAG2_00000010 - object_do_animation 0x010e, OBJ_ROPE, 0x04ff, 0xff - show_object OBJ_BANNER1 - set_object_flag_bank2 OBJ_BANNER1, OBJECTFLAG2_00000010 - object_do_animation 0x010f, OBJ_BANNER1, 0x04ff, 0xff - show_object OBJ_BANNER2 - set_object_flag_bank2 OBJ_BANNER1, OBJECTFLAG2_00000010 - object_do_animation 0x0118, OBJ_BANNER2, 0x04ff, 0xff - - wait_for_camera_finished - - label 0x06 - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - hide_object OBJ_JUMPSHIP1 - hide_object OBJ_ROPE - hide_object OBJ_BANNER1 - hide_object OBJ_BANNER2 - label 0x36 - set_function CHR_SELF, FUNC_INTRO_042C - endfunction - -func0422_intro_042c: - set_function CHR_SELF, FUNC_INTRO_042D - endfunction - -func0422_intro_042d: - camera_movement 0x0155 - cmd0175 60 - if_controller_button_pressed /*goto*/ 0x36 - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x0156, -1, -1, 0x0600, CHR_JOANNA, 4 - set_chr_hud_visible CHR_JOANNA, FALSE - - wait_for_camera_finished - - label 0x06 - label 0x36 - show_object OBJ_BANNER1 - show_object OBJ_BANNER2 - set_object_flag_bank2 OBJ_BANNER1, OBJECTFLAG2_00000010 - object_do_animation 0x0161, OBJ_BANNER1, 0x08ff, 0xff - - // @bug: Copy/paste error - should be banner 2 - set_object_flag_bank2 OBJ_BANNER1, OBJECTFLAG2_00000010 - object_do_animation 0x0162, OBJ_BANNER2, 0x08ff, 0xff - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x0156, -2, -1, 0x0600, CHR_JOANNA, 2 - set_chr_hud_visible CHR_JOANNA, FALSE - mute_channel CHANNEL_7 - mute_channel CHANNEL_6 - mute_channel CHANNEL_5 - set_function CHR_SECRETARY, FUNC_INIT_SECRETARY - enter_firstperson - set_stage_flag STAGEFLAG_STOP_INTRO - restart_timer - - beginloop 0x09 - if_timer_gt 90, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - restart_default_music - reset_ambience - set_eeprom_flag EEPROMFLAG_CI_TOUR_DONE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0416_outro_from_menu: - set_function CHR_SELF, FUNC_OUTRO - endfunction - -func0416_outro: - camera_movement 0x00f2 - set_music_track MUSIC_DEFECTION_OUTRO - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0xf1, CHRFLAG3_HIDDEN - set_function CHR_P1P2, GFUNC_IDLE - set_chr_flag_bank3 CHR_P1P2, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_P1P2, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_P1P2, CHRFLAG2_00020000 - animation 0x00f3, -1, -1, 0x0600, CHR_P1P2, 4 - restart_timer - unset_stage_flag STAGEFLAG_LAB_ELEVATOR_CLOSED - open_door2 OBJ_LABLIFTDOOR1 - open_door2 OBJ_LABLIFTDOOR2 - restart_timer - set_cutscene_weapon CHR_P1P2, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_P1P2, WEAPON_FALCON2_SILENCER, WEAPON_NONE - show_nonessential_chrs FALSE - - beginloop 0xb6 - if_controller_button_pressed /*goto*/ 0xbd - if_timer_gt 40, /*goto*/ 0x06 - endloop 0xb6 - - label 0x06 - play_sound 0x0165, CHANNEL_10 - - beginloop 0xb7 - if_controller_button_pressed /*goto*/ 0xbd - if_timer_gt 110, /*goto*/ 0x06 - endloop 0xb7 - - label 0x06 - play_sound 0x0167, CHANNEL_10 - - beginloop 0xb8 - if_controller_button_pressed /*goto*/ 0xbd - if_timer_gt 123, /*goto*/ 0x06 - endloop 0xb8 - - label 0x06 - play_sound 0x01dc, CHANNEL_10 - - beginloop 0xb9 - if_controller_button_pressed /*goto*/ 0xbd - if_timer_gt 215, /*goto*/ 0x06 - endloop 0xb9 - - label 0x06 - play_sound 0x01d8, CHANNEL_10 - - beginloop 0xba - if_controller_button_pressed /*goto*/ 0xbd - if_timer_gt 245, /*goto*/ 0x06 - endloop 0xba - - label 0x06 - play_sound 0x01da, CHANNEL_10 - - beginloop 0xbb - if_controller_button_pressed /*goto*/ 0xbd - if_timer_gt 250, /*goto*/ 0x06 - endloop 0xbb - - label 0x06 - play_sound 0x80f6, CHANNEL_10 - - beginloop 0xbc - if_controller_button_pressed /*goto*/ 0xbd - if_timer_gt 285, /*goto*/ 0x06 - endloop 0xbc - - label 0x06 - play_sound 0x01db, CHANNEL_10 - - beginloop 0x08 - if_camera_animating /*goto*/ 0x2c - goto_next 0xbd - - label 0x2c - if_controller_button_pressed /*goto*/ 0xbd - if_stage_flag_eq STAGEFLAG_LAB_ELEVATOR_CLOSED, TRUE, /*goto*/ 0x2c - if_timer_lt 336, /*goto*/ 0x2c - close_door OBJ_LABLIFTDOOR1 - close_door OBJ_LABLIFTDOOR2 - set_stage_flag STAGEFLAG_LAB_ELEVATOR_CLOSED - label 0x2c - endloop 0x08 - - label 0xbd - mute_channel CHANNEL_10 - end_level - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1000_rebuild_groups: - set_function CHR_SELF, GFUNC_REBUILD_GROUPS - endfunction - -func1401_setup_counterop: - noop016c - yield - set_chr_alliance CHR_COUNTEROP, ALLIANCE_ENEMY - set_function CHR_SELF, GFUNC_REBUILD_GROUPS - endfunction - -func100f_check_necklace_collected: - beginloop 0x04 - if_chr_has_object CHR_JOANNA, OBJ_NECKLACE, /*goto*/ 0x2c - if_chr_has_object CHR_VELVET, OBJ_NECKLACE, /*goto*/ 0x2c - endloop 0x04 - - label 0x2c - remove_cass_necklace CHR_CASS - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1003_start_intro: - set_function CHR_SELF, FUNC_INTRO - endfunction - -func1010_start_hub_humms: - yield - play_sound_from_object2 CHANNEL_0, OBJ_SECURITYHUB, 0x8111, 0x0f, 0x02 - yield - play_sound_from_object2 CHANNEL_1, OBJ_EXTCOMMSHUB, 0x8111, 0x0f, 0x02 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1011_check_hubs_activated: - beginloop 0x04 - if_chr_activated_object CHR_F3, OBJ_SECURITYHUB, /*goto*/ 0x08 - if_chr_activated_object CHR_F3, OBJ_EXTCOMMSHUB, /*goto*/ 0x0a - reloop 0x04 - - label 0x08 - message CHR_JOANNA, 0x0250 // "ECM Mine needed to disable security hub." - restart_timer - - beginloop 0x09 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x09 - - label 0x0a - message CHR_JOANNA, 0x0251 // "ECM Mine needed to disable comms hub." - restart_timer - - beginloop 0x0b - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x0b - - label 0x06 - endloop 0x04 - - endfunction - -func1012_trigger_x_music: - // Wait until arriving at bottom floor - beginloop 0x04 - if_camera_animating /*goto*/ 0x2c - if_chr_y CHR_JOANNA, -8000, OPERATOR_LESS_THAN, /*goto*/ 0x06 - if_chr_y CHR_VELVET, -8000, OPERATOR_LESS_THAN, /*goto*/ 0x06 - label 0x2c - endloop 0x04 - - // This stage flag check seems a bit weird, but it makes sense if Rare were - // testing the outro in isolation of the rest of the stage. They obviously - // didn't want the X music playing during the outro while testing. Note that - // the flag is only set during the outro cutscene, not during gameplay. - label 0x06 - if_stage_flag_eq STAGEFLAG_LAB_ELEVATOR_CLOSED, TRUE, /*goto*/ 0x2c - play_x_music CHANNEL_10, 60 - label 0x2c - set_function CHR_SELF, GFUNC_IDLE - endfunction - -.macro init_guard accuracy health - set_chr_dodge_rating 2, 0x14 - set_unarmeddodgerating 0 - set_accuracy \accuracy - set_reaction_speed 0 - set_chr_health CHR_SELF, \health - set_armor 0 - set_recovery_speed 0 - set_shield 0 -.endm - -func0417_init_dd_guard: - init_guard 0 40 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func0418_init_shock_guard: - if_difficulty_gt DIFF_A, /*goto*/ 0x2c - - // Agent - init_guard 10 40 - set_function CHR_SELF, GFUNC_UNALERTED - - // SA and PA - label 0x2c - init_guard 20 40 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func0430_init_falcon_guard: - if_difficulty_gt DIFF_A, /*goto*/ 0x2c - - // Agent - init_guard 20 40 - set_function CHR_SELF, GFUNC_UNALERTED - - // SA and PA - label 0x2c - init_guard 30 60 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func1013_msg_commshubnearby: - if_difficulty_lt DIFF_SA, /*goto*/ 0x0d - - beginloop 0x04 - if_chr_y CHR_JOANNA, -770, OPERATOR_LESS_THAN, /*goto*/ 0x2c - reloop 0x04 - - label 0x2c - if_chr_in_room CHR_JOANNA, 0x00, 0x0039, /*goto*/ 0x2c - endloop 0x04 - - label 0x2c - speak CHR_JOANNA, 0x025d, 0x8170, CHANNEL_6, COLOR_09_BLUE // "We're getting a positive reading - the internal co..." - label 0x0d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1014_msg_officefloor: - if_difficulty_lt DIFF_SA, /*goto*/ 0x0d - - beginloop 0x04 - if_chr_in_room CHR_JOANNA, 0x00, 0x0054, /*goto*/ 0x2c - if_chr_in_room CHR_JOANNA, 0x00, 0x0064, /*goto*/ 0x0d - endloop 0x04 - - label 0x2c - speak CHR_JOANNA, 0x025e, 0x8171, CHANNEL_6, COLOR_09_BLUE // "You're on the same floor as Cassandra's office." - label 0x0d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1015_msg_securityroom: - if_difficulty_lt DIFF_SA, /*goto*/ 0x0d - - beginloop 0x04 - if_chr_in_room CHR_JOANNA, 0x00, 0x0025, /*goto*/ 0x2c - endloop 0x04 - - label 0x2c - speak CHR_JOANNA, 0x025f, 0x73a2, CHANNEL_6, COLOR_09_BLUE // "The other hub has got to be in the Security Room." - label 0x0d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1016_msg_basementelevator: - beginloop 0x04 - if_chr_in_room CHR_JOANNA, 0x00, 0x002c, /*goto*/ 0x2c - endloop 0x04 - - label 0x2c - speak CHR_JOANNA, 0x0260, 0x8172, CHANNEL_6, COLOR_09_BLUE // "The basement elevator must be around there somewhe..." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1017_unlock_basement_door: - if_difficulty_lt DIFF_SA, /*goto*/ 0x2c - set_function CHR_SELF, GFUNC_IDLE - - // Agent only - unlock basement door (SA and PA requires necklace) - label 0x2c - unlock_door OBJ_SECRETDOOR, 0x20 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Rare used stage flags to trigger the intro cutscene to restart. - */ -func0422_intro_speaking: - label 0xbe - if_stage_flag_eq STAGEFLAG_TRIGGER_INTRO, TRUE, /*goto*/ 0xbf - yield - goto_first 0xbe - - label 0xbf - unset_stage_flag STAGEFLAG_TRIGGER_INTRO - restart_timer - - beginloop 0xb6 - if_stage_flag_eq STAGEFLAG_STOP_INTRO, TRUE, /*goto*/ 0x06 - if_timer_gt 700, /*goto*/ 0x2c - endloop 0xb6 - - label 0x2c - speak CHR_JOANNA, 0x0264, 0x73e4, CHANNEL_6, COLOR_09_BLUE // "Why the big hurry?" - - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_STOP_INTRO, TRUE, /*goto*/ 0x06 - if_sound_finished CHANNEL_6, /*goto*/ 0x2c - endloop 0x08 - - label 0x2c - speak CHR_JOANNA, 0x0265, 0x73e5, CHANNEL_6, COLOR_06_WHITE // "If Dr. Caroll is not extracted tonight, dataDyne w..." - - beginloop 0x09 - if_stage_flag_eq STAGEFLAG_STOP_INTRO, TRUE, /*goto*/ 0x06 - if_sound_finished CHANNEL_6, /*goto*/ 0x2c - endloop 0x09 - - label 0x2c - speak CHR_JOANNA, 0x0266, 0x73e6, CHANNEL_6, COLOR_09_BLUE // "Are they all expendable?" - - beginloop 0x0a - if_stage_flag_eq STAGEFLAG_STOP_INTRO, TRUE, /*goto*/ 0x06 - if_sound_finished CHANNEL_6, /*goto*/ 0x2c - endloop 0x0a - - label 0x2c - speak CHR_JOANNA, 0x0267, 0x73e7, CHANNEL_6, COLOR_06_WHITE // "Don't joke! You have to be careful, Joanna. Code k..." - - beginloop 0x0b - if_stage_flag_eq STAGEFLAG_STOP_INTRO, TRUE, /*goto*/ 0x06 - if_sound_finished CHANNEL_6, /*goto*/ 0x2c - endloop 0x0b - - label 0x2c - speak CHR_JOANNA, 0x0268, 0x73e8, CHANNEL_6, COLOR_09_BLUE // "What's the target location?" - - beginloop 0x0c - if_stage_flag_eq STAGEFLAG_STOP_INTRO, TRUE, /*goto*/ 0x06 - if_sound_finished CHANNEL_6, /*goto*/ 0x2c - endloop 0x0c - - label 0x2c - speak CHR_JOANNA, 0x0269, 0x73e9, CHANNEL_6, COLOR_06_WHITE // "Work your way down the building to the ground leve..." - - beginloop 0x0d - if_stage_flag_eq STAGEFLAG_STOP_INTRO, TRUE, /*goto*/ 0x06 - if_sound_finished CHANNEL_6, /*goto*/ 0x2c - endloop 0x0d - - label 0x2c - speak CHR_JOANNA, 0x026a, 0x73ea, CHANNEL_6, COLOR_09_BLUE // "How will I recognize him?" - - beginloop 0x0e - if_stage_flag_eq STAGEFLAG_STOP_INTRO, TRUE, /*goto*/ 0x06 - if_sound_finished CHANNEL_6, /*goto*/ 0x2c - endloop 0x0e - - label 0x2c - speak CHR_JOANNA, 0x026b, 0x73eb, CHANNEL_6, COLOR_06_WHITE // "We don't have an image record, and we can't find a..." - - beginloop 0x0f - if_stage_flag_eq STAGEFLAG_STOP_INTRO, TRUE, /*goto*/ 0x06 - if_sound_finished CHANNEL_6, /*goto*/ 0x2c - endloop 0x0f - - label 0x2c - label 0x06 - mute_channel CHANNEL_6 - goto_first 0xbe - - endfunction - -/** - * Hide guards, then unhide then once you pass below -2000. This is likely the - * first staircase between the light switch room and Cass's office floor. - */ -func1019_toggle_guards: - label 0x2c - hide_chr 0x01 - hide_chr 0x02 - hide_chr 0x0e - hide_chr 0x12 - hide_chr 0x0f - hide_chr 0x10 - hide_chr 0x11 - hide_chr 0x13 - hide_chr 0x03 - hide_chr 0x04 - hide_chr 0x14 - hide_chr 0x15 - hide_chr 0x16 - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_y CHR_P1P2, -2000, OPERATOR_LESS_THAN, /*goto*/ 0x2c - endloop 0x04 - - label 0x2c - show_chr 0x01 - yield - show_chr 0x02 - yield - show_chr 0x0e - yield - show_chr 0x12 - yield - show_chr 0x0f - yield - show_chr 0x10 - yield - show_chr 0x11 - yield - show_chr 0x13 - yield - show_chr 0x03 - yield - show_chr 0x04 - yield - show_chr 0x14 - yield - show_chr 0x15 - yield - show_chr 0x16 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101a_noop: - yield - yield - yield - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func141c_start_lifts: - activate_lift 2, OBJ_LIFT1 - activate_lift 1, OBJ_LIFT2 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101d_disable_cameras: - // Check security hub objective - beginloop 0xc4 - if_objective_complete 0, /*goto*/ 0x2c - endloop 0xc4 - - label 0x2c - set_object_flag_bank0 OBJ_CAMERA1, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 OBJ_CAMERA2, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 OBJ_CAMERA3, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 OBJ_CAMERA4, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 OBJ_CAMERA5, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 OBJ_CAMERA6, OBJECTFLAG0_DEACTIVATED - set_stage_flag STAGEFLAG_SECURITY_DISABLED - restart_timer - - // @bug: If you disable the security (bottom floor), then activate the alarm - // before the 2 minute timer expires (eg. by getting Cass to activate it), - // then the first camera is never reactivated. The if_alarm_active check - // should go to 0x2c instead. - beginloop 0x08 - if_alarm_active /*goto*/ 0x06 - if_timer_gt 7200, /*goto*/ 0x2c - endloop 0x08 - - // 2 minutes elapsed - label 0x2c - if_object_in_good_condition OBJ_CAMERA1, /*goto*/ 0x2c - goto_next 0x06 - label 0x2c - unset_object_flag_bank0 OBJ_CAMERA1, OBJECTFLAG0_DEACTIVATED - - label 0x06 - if_object_in_good_condition OBJ_CAMERA2, /*goto*/ 0x2c - goto_next 0x06 - label 0x2c - unset_object_flag_bank0 OBJ_CAMERA2, OBJECTFLAG0_DEACTIVATED - - label 0x06 - if_object_in_good_condition OBJ_CAMERA3, /*goto*/ 0x2c - goto_next 0x06 - label 0x2c - unset_object_flag_bank0 OBJ_CAMERA3, OBJECTFLAG0_DEACTIVATED - - label 0x06 - if_object_in_good_condition OBJ_CAMERA4, /*goto*/ 0x2c - goto_next 0x06 - label 0x2c - unset_object_flag_bank0 OBJ_CAMERA4, OBJECTFLAG0_DEACTIVATED - - label 0x06 - if_object_in_good_condition OBJ_CAMERA5, /*goto*/ 0x2c - goto_next 0x06 - label 0x2c - unset_object_flag_bank0 OBJ_CAMERA5, OBJECTFLAG0_DEACTIVATED - - label 0x06 - if_object_in_good_condition OBJ_CAMERA6, /*goto*/ 0x2c - goto_next 0x06 - label 0x2c - unset_object_flag_bank0 OBJ_CAMERA6, OBJECTFLAG0_DEACTIVATED - - label 0x06 - message CHR_JOANNA, 0x0261 // "Security system is now back online." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * @unregistered - */ -unregistered_function7: - message CHR_JOANNA, 0x0263 // "2023 AD, 2214 Hours Lucerne Tower - dataDyne HQ" - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101e_lift_door_sounds: - beginloop 0xc4 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, OBJ_LIFT1DOOR1, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, OBJ_LIFT1DOOR2, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, OBJ_LIFT1DOOR3, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, OBJ_LIFT1DOOR4, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, OBJ_LIFT2DOOR1, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, OBJ_LIFT2DOOR2, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, OBJ_LIFT2DOOR3, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, OBJ_LIFT2DOOR4, /*goto*/ 0x2c - reloop 0xc4 - - label 0x2c - play_sound 0x81b0, -1 - restart_timer - - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - endloop 0xc4 - - endfunction - -/** - * @unused - */ -func042e_init_surrendering_guard: - label 0xc4 - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, FUNC_SURRENDERING_GUARD - endfunction - -/** - * @unused - */ -func042f_surrendering_guard: - // Wait for player detection - beginloop 0xc4 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x2c - if_enemy_distance_lt_and_los 500, /*goto*/ 0x2c - if_near_miss /*goto*/ 0x2c - if_shot_near_chr 0x00, /*goto*/ 0x2c - endloop 0xc4 - - // Be surprised - label 0x2c - say_quip CHR_JOANNA, 0x12, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 // "What the?!","Who the?!" - animation ANIM_SURPRISED_0202, 0, -1, 0x0010, CHR_SELF, 2 - - // Wait 1 second - beginloop 0x08 - dprint "S4" - if_timer_gt 60, /*goto*/ 0x2c - endloop 0x08 - - label 0x2c - try_target_chr_in_same_group /*goto*/ 0x54 - goto_next 0x55 - - label 0x54 - try_run_to_chr FOLLOW_CHR, /*goto*/ 0x56 - - beginloop 0x56 - if_chr_distance_gt 300, /*goto*/ 0x06 - if_chr_in_view /*goto*/ 0x28 - label 0x06 - if_chr_death_animation_finished FOLLOW_CHR, /*goto*/ 0x55 - if_chr_unloaded FOLLOW_CHR, /*goto*/ 0x55 - if_detected_chr FOLLOW_CHR, /*goto*/ 0x57 - if_chr_stopped /*goto*/ 0x57 - endloop 0x56 - - // Warn - label 0x57 - dprint "WARN FRIENDS\n" - say_quip CHR_JOANNA, 0x10, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00 // "Intruder alert!","We've got trouble","We've got problems" - set_group_alertness 100 - - // No chr in same group, or follow through from above - // Wait until player in range and then surrender. - beginloop 0x55 - if_chr_distance_gt 300, /*goto*/ 0x06 - if_chr_in_view /*goto*/ 0x28 - label 0x06 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_sees_player /*goto*/ 0x58 - endloop 0x55 - - label 0x58 - restart_timer - retreat 0x02, 0x02 - - beginloop 0x0a - if_chr_distance_gt 300, /*goto*/ 0x06 - if_chr_in_view /*goto*/ 0x28 - label 0x06 - if_timer_gt 600, /*goto*/ 0x2c - endloop 0x0a - - label 0x2c - stop_chr - goto_first 0x55 - - // Surrender - label 0x28 - surrender - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101f_setup_rtracker: - yield - set_object_flag_bank2 OBJ_FALCONSIL1, OBJECTFLAG2_RTRACKED_BLUE - set_object_flag_bank2 OBJ_FALCONSIL2, OBJECTFLAG2_RTRACKED_BLUE - set_object_flag_bank2 OBJ_LAPTOPGUN, OBJECTFLAG2_RTRACKED_BLUE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1420_setup_portals: - yield - set_portal_flag 0x008e, 0x08 - set_portal_flag 0x008f, 0x08 - set_portal_flag 0x0084, 0x08 - set_portal_flag 0x0090, 0x08 - set_portal_flag 0x0091, 0x08 - set_portal_flag 0x0093, 0x08 - set_portal_flag 0x0096, 0x08 - set_portal_flag 0x0095, 0x08 - set_portal_flag 0x0099, 0x08 - set_portal_flag 0x00b6, 0x08 - set_portal_flag 0x00bf, 0x08 - set_portal_flag 0x00be, 0x08 - set_portal_flag 0x00c0, 0x08 - set_portal_flag 0x00c2, 0x08 - set_portal_flag 0x00c4, 0x08 - set_portal_flag 0x00c8, 0x08 - set_portal_flag 0x00c7, 0x08 - set_portal_flag 0x00c9, 0x08 - set_portal_flag 0x00cd, 0x08 - set_portal_flag 0x00ce, 0x08 - set_portal_flag 0x00d2, 0x08 - set_portal_flag 0x00e0, 0x08 - set_portal_flag 0x00dc, 0x08 - set_portal_flag 0x00de, 0x08 - set_portal_flag 0x00e3, 0x08 - set_portal_flag 0x00e5, 0x08 - set_portal_flag 0x00e7, 0x08 - set_portal_flag 0x00fb, 0x08 - set_portal_flag 0x00fa, 0x08 - set_portal_flag 0x00fc, 0x08 - set_portal_flag 0x00ff, 0x08 - set_portal_flag 0x0100, 0x08 - set_portal_flag 0x0103, 0x08 - set_portal_flag 0x0102, 0x08 - set_portal_flag 0x0104, 0x08 - set_portal_flag 0x0109, 0x08 - set_portal_flag 0x010c, 0x08 - set_portal_flag 0x0119, 0x08 - set_portal_flag 0x0112, 0x08 - set_portal_flag 0x0117, 0x08 - set_portal_flag 0x0120, 0x08 - set_portal_flag 0x011e, 0x08 - set_portal_flag 0x011c, 0x08 - set_portal_flag 0x0108, 0x08 - set_portal_flag 0x006f, 0x08 - set_portal_flag 0x007d, 0x08 - set_portal_flag 0x0080, 0x08 - set_portal_flag 0x0081, 0x08 - set_portal_flag 0x0075, 0x08 - set_portal_flag 0x0078, 0x08 - set_portal_flag 0x0079, 0x08 - set_portal_flag 0x0006, 0x08 - set_portal_flag 0x0004, 0x08 - set_portal_flag 0x0008, 0x08 - set_portal_flag 0x000a, 0x08 - set_portal_flag 0x0001, 0x08 - set_portal_flag 0x0005, 0x08 - set_portal_flag 0x0000, 0x08 - set_portal_flag 0x0003, 0x08 - set_portal_flag 0x0007, 0x08 - set_portal_flag 0x0013, 0x08 - set_portal_flag 0x0009, 0x08 - set_portal_flag 0x00b1, 0x08 - set_portal_flag 0x00ef, 0x08 - set_portal_flag 0x00ee, 0x08 - set_portal_flag 0x0121, 0x08 - set_portal_flag 0x00e8, 0x08 - set_portal_flag 0x00e9, 0x08 - set_portal_flag 0x00ea, 0x08 - set_portal_flag 0x00ec, 0x08 - set_portal_flag 0x00eb, 0x08 - set_portal_flag 0x00ed, 0x08 - set_portal_flag 0x009d, 0x08 - set_portal_flag 0x00af, 0x08 - set_portal_flag 0x00a1, 0x08 - set_portal_flag 0x005a, 0x08 - set_portal_flag 0x005c, 0x08 - set_portal_flag 0x005d, 0x08 - set_portal_flag 0x0060, 0x08 - set_portal_flag 0x0034, 0x08 - set_portal_flag 0x0030, 0x08 - set_portal_flag 0x002e, 0x08 - set_portal_flag 0x002b, 0x08 - set_portal_flag 0x0028, 0x08 - set_portal_flag 0x0025, 0x08 - set_portal_flag 0x0036, 0x08 - set_portal_flag 0x0038, 0x08 - set_portal_flag 0x004f, 0x08 - set_portal_flag 0x0051, 0x08 - set_portal_flag 0x0052, 0x08 - set_portal_flag 0x0057, 0x08 - set_portal_flag 0x0058, 0x08 - set_portal_flag 0x0031, 0x08 - set_portal_flag 0x002f, 0x08 - set_portal_flag 0x0023, 0x08 - set_portal_flag 0x00a6, 0x08 - set_portal_flag 0x00a3, 0x08 - set_portal_flag 0x00a2, 0x08 - set_portal_flag 0x00a4, 0x08 - set_portal_flag 0x0087, 0x08 - set_portal_flag 0x00b9, 0x08 - set_portal_flag 0x00b4, 0x08 - set_portal_flag 0x00b2, 0x08 - set_portal_flag 0x00b3, 0x08 - set_portal_flag 0x00bd, 0x08 - set_portal_flag 0x00f4, 0x08 - set_portal_flag 0x00f2, 0x08 - set_portal_flag 0x00f0, 0x08 - set_portal_flag 0x00f8, 0x08 - set_portal_flag 0x00f1, 0x08 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1421_setup_lighting: - yield - set_lighting 0x0000, 0x00, 0x01 - set_lighting 0x0000, 0x01, 0x00 - set_lighting 0x0000, 0x02, 0x00 - set_lighting 0x0000, 0x03, 0x00 - set_lighting 0x0000, 0x04, 0x00 - set_lighting 0x0002, 0x05, 0x01 - set_lighting 0x0002, 0x06, 0x01 - set_lighting 0x0003, 0x05, 0x01 - set_lighting 0x0003, 0x06, 0x01 - set_lighting 0x0004, 0x05, 0x01 - set_lighting 0x0004, 0x06, 0x01 - set_lighting 0x0005, 0x06, 0x01 - set_lighting 0x0006, 0x06, 0x01 - set_lighting 0x0007, 0x06, 0x01 - set_lighting 0x0008, 0x06, 0x01 - set_lighting 0x0009, 0x06, 0x01 - set_lighting 0x000a, 0x06, 0x01 - set_lighting 0x000b, 0x06, 0x01 - set_lighting 0x000c, 0x06, 0x01 - set_lighting 0x000d, 0x06, 0x01 - set_lighting 0x000e, 0x06, 0x01 - set_lighting 0x000f, 0x06, 0x01 - set_lighting 0x0010, 0x06, 0x01 - set_lighting 0x0011, 0x06, 0x01 - set_lighting 0x0012, 0x06, 0x01 - set_lighting 0x0013, 0x06, 0x01 - set_lighting 0x0014, 0x06, 0x01 - set_lighting 0x003a, 0x05, 0x01 - set_lighting 0x00a2, 0x06, 0x01 - set_lighting 0x00a4, 0x06, 0x01 - set_lighting 0x00a5, 0x06, 0x01 - set_lighting 0x00a7, 0x06, 0x01 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -unregistered_function8: - set_function CHR_SELF, GFUNC_IDLE - endfunction - -functions: - register_function func0401_do_some_animation 0x0401 - register_function func0402_guard_with_chrflag 0x0402 - register_function func0403_shielded_guard 0x0403 - register_function func0404_init_hovercar 0x0404 - register_function func0405_start_path26 0x0405 - register_function func0406_start_path27 0x0406 - register_function func0407_start_path28 0x0407 - register_function func0408_start_path29 0x0408 - register_function func0409_start_path30 0x0409 - register_function func040a_start_path31 0x040a - register_function func040b_start_path32 0x040b - register_function func040c_start_path33 0x040c - register_function func040d_start_path34 0x040d - register_function func040e_start_path35 0x040e - register_function func040f_cass 0x040f - register_function func0410_init_cass 0x0410 - register_function func0411_secretary 0x0411 - register_function func0412_init_secretary 0x0412 - register_function func0413_c318 0x0413 - register_function func0414_programmer 0x0414 - register_function func0415_set_idle 0x0415 - register_function func0419_intro_0419 0x0419 - register_function func041a_intro_041a 0x041a - register_function func041b_intro_041b 0x041b - register_function func041c_intro_041c 0x041c - register_function func041d_intro_041d 0x041d - register_function func041e_intro_041e 0x041e - register_function func041f_intro_041f 0x041f - register_function func0420_intro_0420 0x0420 - register_function func0421_intro_0421 0x0421 - register_function func0422_intro 0x0422 - register_function func0422_intro_0423 0x0423 - register_function func0422_intro_0424 0x0424 - register_function func0422_intro_0425 0x0425 - register_function func0422_intro_0426 0x0426 - register_function func0422_intro_0427 0x0427 - register_function func0422_intro_0428 0x0428 - register_function func0422_intro_0429 0x0429 - register_function func0422_intro_042a 0x042a - register_function func0422_intro_042b 0x042b - register_function func0422_intro_042c 0x042c - register_function func0422_intro_042d 0x042d - register_function func042e_init_surrendering_guard 0x042e - register_function func042f_surrendering_guard 0x042f - register_function func0430_init_falcon_guard 0x0430 - register_function func0416_outro 0x0416 - register_function func0417_init_dd_guard 0x0417 - register_function func0418_init_shock_guard 0x0418 - - register_function func1000_rebuild_groups 0x1000 - register_function func1401_setup_counterop 0x1401 - register_function func1002_objectives_failed_msg 0x1002 - register_function func1003_start_intro 0x1003 - register_function func1004_check_lab_lift_located 0x1004 - register_function func1005_give_control 0x1005 - register_function func1006_check_programmer_dead 0x1006 - register_function func1007_uplinking 0x1007 - register_function func1008_doorswitch 0x1008 - register_function func1009_check_civilians_killed 0x1009 - register_function func100a_alarm_guard 0x100a - register_function func100b_lightswitch 0x100b - register_function func100c_noop2 0x100c - register_function func100d_check_objects_destroyed 0x100d - register_function func100e_check_ecm_mines 0x100e - register_function func100f_check_necklace_collected 0x100f - register_function func1010_start_hub_humms 0x1010 - register_function func1011_check_hubs_activated 0x1011 - register_function func1012_trigger_x_music 0x1012 - register_function func1013_msg_commshubnearby 0x1013 - register_function func1014_msg_officefloor 0x1014 - register_function func1015_msg_securityroom 0x1015 - register_function func1016_msg_basementelevator 0x1016 - register_function func1017_unlock_basement_door 0x1017 - register_function func0422_intro_speaking 0x1418 - register_function func1019_toggle_guards 0x1019 - register_function func101a_noop 0x101a - register_function func141c_start_lifts 0x141c - register_function func101d_disable_cameras 0x101d - register_function func101e_lift_door_sounds 0x101e - register_function func101f_setup_rtracker 0x101f - - register_function func1420_setup_portals 0x1420 - register_function func1421_setup_lighting 0x1421 - - register_function func0422_intro 0x0c00 - register_function func0416_outro_from_menu 0x0c01 - endfunctions - -paths: - register_path path00, 0, 0 - register_path path01, 1, 2 - register_path path02, 2, 2 - register_path path03, 3, 2 - register_path path04, 4, 2 - register_path path05, 5, 2 - register_path path06, 6, 2 - register_path path07, 7, 2 - register_path path08, 8, 2 - register_path path09, 9, 2 - register_path path10, 10, 2 - register_path path11, 11, 2 - register_path path12, 12, 2 - register_path path13, 13, 2 - register_path path14, 14, 2 - register_path path15, 15, 2 - register_path path16, 16, 2 - register_path path17, 17, 2 - register_path path18, 18, 2 - register_path path19, 19, 2 - register_path path20, 20, 2 - register_path path21, 21, 2 - register_path path22, 22, 2 - register_path path23, 23, 2 - register_path path24, 24, 2 - register_path path25, 25, 2 - register_path path26, 26, 1 - register_path path27, 27, 0 - register_path path28, 28, 0 - register_path path29, 29, 0 - register_path path30, 30, 1 - register_path path31, 31, 0 - register_path path32, 32, 0 - register_path path33, 33, 0 - register_path path34, 34, 1 - register_path path35, 35, 0 - endpaths - -.align 4 diff --git a/asm/setup/setuparch.s b/asm/setup/setuparch.s deleted file mode 100644 index c8d1b3d15..000000000 --- a/asm/setup/setuparch.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Stage ID 0x18 -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setuparec.s b/asm/setup/setuparec.s deleted file mode 100644 index 3348696bd..000000000 --- a/asm/setup/setuparec.s +++ /dev/null @@ -1,29 +0,0 @@ -# -# Ravine (MP) -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - lift 0x0100, MODEL_RAVINELIFT, 0x00bc, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00bc, 0x00bb, 0x00baffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - endprops - -unregistered_func1: - set_function CHR_SELF, GFUNC_IDLE - endfunction - -unregistered_func2: - set_function CHR_SELF, GFUNC_IDLE - endfunction - -intro: - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupark.s b/asm/setup/setupark.s deleted file mode 100644 index f4f3ab291..000000000 --- a/asm/setup/setupark.s +++ /dev/null @@ -1,3126 +0,0 @@ -# -# Extraction -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -// Characters -.set CHR_DRCAROLL, 0x00 -.set CHR_RLSHOCK, 0x0e -.set CHR_TECH1, 0x0f -.set CHR_TECH2, 0x10 -.set CHR_TOPGUARD1, 0x11 -.set CHR_TOPGUARD2, 0x12 -.set CHR_TOPGUARD3, 0x13 -.set CHR_TOPGUARD4, 0x14 -.set CHR_TOPGUARD5, 0x15 -.set CHR_CASS, 0x1c -.set CHR_MRBLONDE, 0x1d -.set CHR_INTRO_GUARD, 0x1e -.set CHR_OUTRO_GUARD1, 0x1f -.set CHR_OUTRO_GUARD2, 0x20 -.set CHR_SPECIAL_SHOCK, 0x22 // guy who appears if foyer completed perfectly - -// Objects -.set OBJ_TOPROOMDOOR, 0x05 -.set OBJ_LIGHTSWITCH, 0x0a -.set OBJ_HOVERCOPTER, 0x0b -.set OBJ_NIGHTVISION, 0x0e -.set OBJ_JUMPSHIP, 0x10 -.set OBJ_ROCKETAMMO1, 0x14 -.set OBJ_ROCKETAMMO2, 0x15 -.set OBJ_GRENADE, 0x1a -.set OBJ_DRAGON, 0x1b -.set OBJ_DY357, 0x1c -.set OBJ_ROCKETLAUNCHER, 0x1f - -// Stage flags -.set STAGEFLAG_ELEVATOR_PC_DESTROYED, 0x00000001 -.set STAGEFLAG_TRIGGER_CANTLEAVEANY_MSG, 0x00000002 -.set STAGEFLAG_TOP_BODYGUARDS_DEAD, 0x00000004 -.set STAGEFLAG_ACCESSED_FOYER_ELEVATOR, 0x00000100 -.set STAGEFLAG_ELEVATOR_UNLOCKED, 0x00000200 -.set STAGEFLAG_HOVERCOPTER_DESTROYED, 0x00000400 -.set STAGEFLAG_OBJECTIVE_BODYGUARDS_DEAD, 0x00000800 -.set STAGEFLAG_REACHED_HELIPAD, 0x00001000 -.set STAGEFLAG_FOYER_LIGHTS_RESTORED, 0x00002000 -.set STAGEFLAG_DRCAROLL_DEAD, 0x00004000 -.set STAGEFLAG_DRCAROLL_ATTACKED, 0x00008000 -.set STAGEFLAG_DRCAROLL_DAMAGED, 0x00010000 -.set STAGEFLAG_TECHS_RUNNING, 0x00020000 -.set STAGEFLAG_CHOPPER_GO_TO_ROOF, 0x00040000 -.set STAGEFLAG_ENTERING_TOP_ROOM, 0x00080000 -.set STAGEFLAG_TOP_GUARDS_ATTACKING, 0x00200000 -.set STAGEFLAG_TOP_LIGHTS_OFF, 0x00400000 -.set STAGEFLAG_00800000, 0x00800000 // unset in intro, not used elsewhere -.set STAGEFLAG_HOVERCOPTER_ON_ROOF, 0x01000000 -.set STAGEFLAG_CASS_SHIELD_DAMAGED, 0x02000000 -.set STAGEFLAG_FOYER_LIGHTS_OFF, 0x04000000 -.set STAGEFLAG_SAID_SURRENDER_OR_DIE, 0x10000000 -.set STAGEFLAG_SAID_GIVE_UP, 0x20000000 -.set STAGEFLAG_SAID_FINAL_WARNING, 0x40000000 -.set STAGEFLAG_TECHS_FINISHED, 0x80000000 - -// Functions -.set FUNC_DRCAROLL_FOLLOWING, 0x0401 -.set FUNC_INIT_DRCAROLL, 0x0404 -.set FUNC_GENERAL_COMBAT, 0x0406 -.set FUNC_CASS_OUTRO, 0x0407 -.set FUNC_HOVERCOPTER, 0x0408 -.set FUNC_INIT_TECH1, 0x040b -.set FUNC_INIT_TECH2, 0x040c -.set FUNC_CASS, 0x040d -.set FUNC_TOP_GUARD, 0x040f -.set FUNC_INIT_TOP_GUARD, 0x0410 -.set FUNC_TOP_GUARD_BLINDED, 0x0411 -.set FUNC_OUTRO, 0x0412 -.set FUNC_DEFEND_PAD, 0x0413 -.set FUNC_INIT_SHOCK, 0x0414 - -props: - briefing 0, 0x0601 - briefing 1, 0x0600 - briefing 2, 0x0602 - briefing 3, 0x0603 - - beginobjective 0, 0x0609, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Access foyer elevator" - complete_flags STAGEFLAG_ACCESSED_FOYER_ELEVATOR - endobjective - - beginobjective 1, 0x060a, DIFFBIT_PA | DIFFBIT_PD // "Reactivate office elevator" - complete_flags STAGEFLAG_ELEVATOR_UNLOCKED - fail_flags STAGEFLAG_ELEVATOR_PC_DESTROYED - endobjective - - beginobjective 2, 0x060b, DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Destroy dataDyne hovercopter" - complete_flags STAGEFLAG_HOVERCOPTER_DESTROYED - endobjective - - beginobjective 3, 0x060c, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Defeat Cassandra's bodyguards" - complete_flags STAGEFLAG_OBJECTIVE_BODYGUARDS_DEAD - endobjective - - beginobjective 4, 0x060d, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Rendezvous at helipad" - complete_flags STAGEFLAG_REACHED_HELIPAD - fail_flags STAGEFLAG_DRCAROLL_DEAD - endobjective - - vent_fan 0x0100, MODEL_DD_FANROOF, 0x0087, 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_DD_FANROOF, 0x0088, 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_DD_FANROOF, 0x0089, 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_DD_FANROOF, 0x008a, 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_DD_FANWALL, 0x008b, 0x000204e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000222, 0x00000000, 0x00000002, 0x01000000 - tag 0x0b, 1 - armed_vehicle 0x004c, MODEL_DD_HOVERCOPTER, 0x0190, 0x20000008, 0x00000110, 0x00008000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, FUNC_HOVERCOPTER, 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 - tag 0x10, 1 - object 0x0100, MODEL_DDJUMPSHIP, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x0c, 2 - tag 0x0d, 2 - door 0x0100, MODEL_DOOR4A_G5, 0x0224, 0x00000400, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001200, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR4B_G5, 0x0223, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DECODOOR, 0x021e, 0x10000400, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DECODOOR, 0x021f, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x0221, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x0222, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_SECRETDOOR, 0x0220, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x02140000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_SECRETDOOR, 0x00ae, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x02140000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x0092, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x0093, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x0094, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x0095, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x0096, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x0097, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x0098, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x0099, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00a4, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00a5, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x009a, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x009b, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x009c, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x009d, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x009e, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x009f, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00a0, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00a3, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00a1, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x00000005, 0x00000040, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00a2, 0x30000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x00000005, 0x00000040, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_SERVICEDOOR, 0x00a6, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_SERVICEDOOR, 0x00a7, 0x10000400, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x11, 1 - door 0x0100, MODEL_DD_SERVICEDOOR, 0x00a8, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x04, 1 - door 0x0100, MODEL_DD_SERVICEDOOR, 0x00a9, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_SERVICEDOOR, 0x00ad, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x05, 1 - door 0x0100, MODEL_DD_WINDDOOR, 0x00aa, 0x34000000, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_WINDDOOR, 0x00ab, 0x94000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_WINDDOOR, 0x00ac, 0x94000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x20, 6 - tag 0x21, 6 - tag 0x22, 6 - tag 0x23, 6 - tag 0x1d, 1 - lift 0x0100, MODEL_DD_LIFTR, 0x011d, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x011d, 0x0259, 0xffffffff, 0x00000001, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x008c, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x008d, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000002, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x008e, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000002, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x021c, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -4, -5, 0, 0 - link_objects -2, -6, 0, 1 - tag 0x24, 8 - tag 0x25, 8 - tag 0x26, 8 - tag 0x27, 8 - tag 0x02, 4 - tag 0x03, 4 - tag 0x1e, 1 - lift 0x0100, MODEL_DD_LIFTR, 0x011e, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x011e, 0x0120, 0xffffffff, 0x00000001, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x008f, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000001, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x0090, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000001, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x0091, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000002, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x021d, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000002, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -4, -5, 0, 0 - link_objects -4, -6, 0, 1 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00af, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00b0, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00b1, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00b2, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00b3, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00b4, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00b5, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00b6, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00b7, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00b8, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00b9, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00ba, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00bc, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00bd, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00be, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00bf, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00c0, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00c1, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x023a, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x023b, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x023c, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x023d, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x023e, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x023f, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x010f, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0110, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x024d, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x024e, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x024f, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x0250, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x0251, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x0252, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x0253, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x0254, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x0255, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW_FOYER, 0x024b, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW_FOYER, 0x024c, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00d2, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00d3, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00d4, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00d5, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00d6, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00d7, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00d8, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00d9, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00da, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00db, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00dc, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00dd, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00de, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00df, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e0, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e1, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e2, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e3, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e4, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e5, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e6, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e7, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e8, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e9, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00ea, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00eb, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00ec, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00ed, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00ee, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00ef, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f0, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f1, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f2, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f3, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f4, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f6, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f5, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f7, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f8, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f9, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00fa, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00fb, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00fc, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00fd, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00fe, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00ff, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0100, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0101, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0102, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0103, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0104, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0105, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0106, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0107, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x010b, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x010c, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x010d, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x010e, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - object 0x0100, MODEL_DD_REDSOFA, 0x00c4, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDARM, 0x00c5, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDARM, 0x00c2, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDARM, 0x00c7, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDARM, 0x00c8, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDARM, 0x00c9, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDSOFA, 0x00c6, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x00ca, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDSOFA, 0x0256, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDARM, 0x0257, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x01a0, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x019f, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x01, 1 - singlemonitor 0x0100, MODEL_PC1, 0x019e, 0x000004e1, 0x00000001, 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, 0xffffff03 - object 0x0100, MODEL_DD_CHAIR, 0x01a1, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01a2, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - singlemonitor 0x0100, MODEL_PC1, 0x01a3, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff03 - object 0x0100, MODEL_DD_CHAIR, 0x01a4, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01a5, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - singlemonitor 0x0100, MODEL_PC1, 0x01a6, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff03 - object 0x0100, MODEL_DD_CHAIR, 0x01a7, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01a8, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - singlemonitor 0x0100, MODEL_PC1, 0x01a9, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff03 - object 0x0100, MODEL_DD_CHAIR, 0x01ac, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01ab, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - singlemonitor 0x0100, MODEL_PC1, 0x01aa, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff03 - object 0x0100, MODEL_DD_DESK, 0x01ad, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_LIGHTSWITCH2, 0x012e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x01af, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - singlemonitor 0x0100, MODEL_PC1, 0x01b1, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_PC1, 0x01b2, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff03 - object 0x0100, MODEL_DD_REDSOFA, 0x00cb, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x01b3, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01b4, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - singlemonitor 0x0100, MODEL_PC1, 0x01b5, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff03 - object 0x0100, MODEL_DD_REDARM, 0x00cc, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDARM, 0x00cd, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0225, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x0226, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x0228, 0x000005e8, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - singlemonitor 0x0100, MODEL_PC1, 0x022a, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_PC1, 0x022b, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff03 - object 0x0100, MODEL_BLASTSHIELD, 0x0232, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BLASTSHIELD, 0x0233, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BLASTSHIELD, 0x0234, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BLASTSHIELD, 0x0235, 0x000005e8, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BLASTSHIELD, 0x0236, 0x000005e8, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BLASTSHIELD, 0x0237, 0x000005e8, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BLASTSHIELD, 0x0238, 0x000005e8, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BLASTSHIELD, 0x0239, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BLASTSHIELD, 0x01ce, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BLASTSHIELD, 0x01cf, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00e6, MODEL_BLASTSHIELD, 0x01d0, 0x000005e8, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BLASTSHIELD, 0x01d1, 0x000005e8, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x022f, 0x000005e8, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_QUADPOD, 0x01b6, 0x000005e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x1f, 1 - weapon 0x0100, MODEL_CHRDYROCKET, 0x01c4, 0x40420101, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_ROCKETLAUNCHER, 0x00ffffff, 0x00000000 - camera2 0x0000, 0xffff9931, 0xfffea6ce, 0x00003a3e, 0x00410000, 0x00000000, 0x0000001b - tag 0x06, -1 - camera2 0x0000, 0xffffba1e, 0xfffeba56, 0xffff7356, 0x01560000, 0x00000000, 0x0000001b - tag 0x07, -1 - camera2 0x0000, 0xffff5d8a, 0xfffeba56, 0x00000924, 0x01499eb8, 0x00000000, 0x0000001b - tag 0x08, -1 - camera2 0x0000, 0xffff85c6, 0xffff3b3e, 0xffff6672, 0xfffcdbc7, 0x00000000, 0x000001cc - tag 0x09, -1 - tag 0x0e, 1 - object 0x0100, MODEL_CHRNIGHTSIGHT, 0xffff, 0x012405e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - rename_object -1, 0x2d, 0x061b, 0x061c, 0x061d, 0x061e, 0x061f, 0x0000, 0x0000 // "Obtain Night Vision." - tag 0x17, 1 - object 0x0100, MODEL_CHRNIGHTSIGHT, 0xffff, 0x012405e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - rename_object -1, 0x2d, 0x061b, 0x061c, 0x061d, 0x061e, 0x061f, 0x0000, 0x0000 // "Obtain Night Vision." - chr 0x00000400, 0x00, 0x0210, BODY_DRCARROLL, HEAD_RANDOM, FUNC_INIT_DRCAROLL, -1, -1, 1000, 100, 0x00000000, 0x00000000, 0x10, 0x00, -1, 0, 0x00000000 - chr 0x00000200, 0x01, 0x0215, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK, -1, -1, 1000, 7, 0x00014400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x02, 0x021b, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK, -1, -1, 1000, 7, 0x00014400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x03, 0x0214, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK, -1, -1, 1000, 8, 0x00014400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0003, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x04, 0x0213, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK, -1, -1, 1000, 9, 0x00014400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0004, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x05, 0x0216, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK, -1, -1, 1000, 8, 0x00012400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0005, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRDY357, 0x0005, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357MAGNUM, 0x00ffffff, 0x00000000 - tag 0x1c, -1 - chr 0x00000200, 0x06, 0x0211, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK, -1, -1, 1000, 8, 0x00014400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0006, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x07, 0x0212, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK, -1, -1, 1000, 8, 0x00014400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0007, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x08, 0x0217, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK, -1, -1, 1000, 8, 0x00014400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0008, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x09, 0x0218, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK, -1, -1, 1000, 9, 0x00012400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0a, 0x0219, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK, -1, -1, 1000, 9, 0x80012400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0b, 0x01be, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK, -1, -1, 1000, 100, 0x80004400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0c, 0x01bf, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK, -1, -1, 1000, 100, 0x80004400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0d, 0x01c0, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK, -1, -1, 1000, 100, 0x80004400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x0e, 0x01c1, BODY_DDSHOCK, HEAD_DDSHOCK, GFUNC_IDLE, -1, -1, 50, 100, 0x8000a000, 0x00000000, 0x80, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00010400, 0x0f, 0x01c2, BODY_OFFICEWORKER, HEAD_RANDOM, FUNC_INIT_TECH1, -1, -1, 50, 9, 0x00004400, 0x00000000, 0x80, 0x07, -1, 0, 0x00000000 - chr 0x00010400, 0x10, 0x01c3, BODY_OFFICEWORKER, HEAD_RANDOM, FUNC_INIT_TECH2, -1, -1, 50, 9, 0x00004400, 0x00000000, 0x80, 0x07, -1, 0, 0x00000000 - chr 0x00000401, 0x11, 0x01c5, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_TOP_GUARD, -1, -1, 1000, 100, 0x80004400, 0x00000000, 0x80, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x0011, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 - chr 0x00000401, 0x12, 0x01c6, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_TOP_GUARD, -1, -1, 1000, 100, 0x80004400, 0x00000000, 0x80, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x0012, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 - chr 0x00000401, 0x13, 0x01c7, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_TOP_GUARD, -1, -1, 1000, 100, 0x80004400, 0x00000000, 0x80, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x0013, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 - chr 0x00000401, 0x14, 0x01c8, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_TOP_GUARD, -1, -1, 1000, 100, 0x80004400, 0x00000000, 0x80, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 - chr 0x00000401, 0x15, 0x01cc, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_TOP_GUARD, -1, -1, 1000, 100, 0x80002400, 0x00000000, 0x80, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x0015, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 - chr 0x00010400, 0x1c, 0x01c9, BODY_CASSANDRA, HEAD_CASSANDRA, FUNC_CASS, -1, -1, 1000, 100, 0x00004400, 0x00000000, 0x80, 0x01, -1, 0, 0x00000000 - chr 0x00000400, 0x1d, 0x0206, BODY_MRBLONDE, HEAD_MRBLONDE, GFUNC_INVINCIBLE_AND_IDLE, -1, -1, 1000, 100, 0x00004400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - chr 0x00000400, 0x1e, 0x0204, BODY_DDSHOCK, HEAD_DARLING, GFUNC_INVINCIBLE_AND_IDLE, -1, -1, 1000, 100, 0x00000000, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000 - chr 0x00000400, 0x1f, 0x0207, BODY_FEM_GUARD, HEAD_RANDOM, GFUNC_INVINCIBLE_AND_IDLE, -1, -1, 1000, 100, 0x00004400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x001f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 - chr 0x00000400, 0x20, 0x0203, BODY_FEM_GUARD, HEAD_RANDOM, GFUNC_INVINCIBLE_AND_IDLE, -1, -1, 1000, 100, 0x00002400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x0020, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x16, 0x0070, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_DEFEND_PAD, 0x006a, -1, 1000, 100, 0x80004400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x17, 0x0081, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_DEFEND_PAD, 0x006a, -1, 1000, 100, 0x80004400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x0017, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x18, 0x0071, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_GENERAL_COMBAT, 0x006a, -1, 1000, 100, 0x80004400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x19, 0x0048, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_GENERAL_COMBAT, 0x006a, -1, 1000, 100, 0x80004400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x0019, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1a, 0x0047, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_DEFEND_PAD, 0x0044, -1, 1000, 100, 0x80004400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1b, 0x004a, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_DEFEND_PAD, 0x0044, -1, 1000, 100, 0x80004400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x001b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x22, 0x007e, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK, -1, -1, 1000, 9, 0x80012400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0022, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - key 0x0080, MODEL_KEYCARD, 0x0022, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000040 - rename_object -1, 0x4c, 0x0637, 0x0638, 0x0639, 0x063a, 0x063b, 0x0000, 0x0000 // "Obtain alpha key card." - link_scenery 1, 0, 2 - door 0x0100, MODEL_DD_AC_UNEXP, 0x019b, 0x13520d00, 0x20304300, 0x04000000, 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_DD_AC_EXP, 0x019d, 0x031204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - link_scenery 1, 0, 2 - door 0x0100, MODEL_DD_ACBOT_UNEXP, 0x019a, 0x13500d00, 0x20304300, 0x04000000, 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_DD_ACBOT_EXP, 0x019c, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0130, 0x00020101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0131, 0x00020101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0132, 0x00020101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0133, 0x00020101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_STONEDESK, 0x0124, 0x000205e1, 0x00204000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - multimonitor 0x0099, MODEL_COMHUB, 0x012c, 0x00000002, 0x00000000, 0x00000000, 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 0x0a, 1 - object 0x0100, MODEL_LIGHTSWITCH, 0x012d, 0x00000002, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0111, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0112, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0113, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0114, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0119, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x011a, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0117, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0118, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00ce, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00cf, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00d0, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00d1, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tag 0x18, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x0078, 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 0x19, 1 - tag 0x1a, 1 - weapon 0x0100, MODEL_CHRGRENADE, 0x01d2, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_GRENADE, 0x00ffffff, 0x00000000 - tag 0x1b, 1 - weapon 0x0100, MODEL_CHRDRAGON, 0x01d3, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - tag 0x14, 1 - weapon 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0204, 0x00000101, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_ROCKETLAUNCHER, 0x00ffffff, 0x00000000 - tag 0x15, 1 - weapon 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0207, 0x00000101, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_ROCKETLAUNCHER, 0x00ffffff, 0x00000000 - endprops - -intro: - intro_weapon WEAPON_FALCON2_SCOPE, -1 - ammo AMMOTYPE_PISTOL, 50 - ammo AMMOTYPE_RIFLE, 160 - ammo AMMOTYPE_MAGNUM, 2 - ammo AMMOTYPE_ROCKET, 1 - outfit OUTFIT_DEFAULT - spawn 0x025a - endintro - -path00: - pad 0x018f - pad 0x018e - pad 0x0191 - pad 0x0190 - endpath - -path01: - pad 0x0192 - pad 0x0193 - pad 0x0194 - pad 0x0195 - endpath - -path02: - pad 0x0196 - pad 0x0197 - pad 0x0198 - pad 0x0199 - endpath - -paths: - register_path path00, 0, 0 - register_path path01, 1, 0 - register_path path02, 2, 0 - endpaths - -/** - * @unused - */ -func0403_stop_and_idle: - stop_chr - - beginloop 0x00 - endloop 0x00 - - endfunction - -func0404_init_drcaroll: - set_self_flag_bank3 CHRFLAG3_01000000 - set_shield 100 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0402_start_drcaroll: - stop_chr - set_function CHR_SELF, FUNC_DRCAROLL_FOLLOWING - endfunction - -func0401_drcaroll_following: - set_onshot_function FUNC_DRCAROLL_FOLLOWING - set_self_flag_bank3 CHRFLAG3_00040000 - stop_chr - set_target_chr CHR_JOANNA - try_run_to_target_chr_with_hand_up /*goto*/ 0x00 - label 0x00 - yield - set_target_chr CHR_JOANNA - if_chr_dying CHR_SELF, /*goto*/ 0x00 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x00 - if_chr_unloaded CHR_SELF, /*goto*/ 0x00 - goto_next 0x20 - - label 0x00 - set_onshot_function GFUNC_IDLE - restart_timer - - beginloop 0x0b - if_timer_gt 15, /*goto*/ 0x00 - endloop 0x0b - - label 0x00 - say_quip TARGET_CHR, 0x06, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00 - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - set_target_chr CHR_JOANNA - set_shield 100 - set_chr_health CHR_SELF, 100 - label 0x20 - dprint "b4 shield check\n" - try_unset_chr_flag_bank3_02000000 CHR_SELF, /*goto*/ 0x00 - goto_next 0x02 - - label 0x00 - restart_timer - say_quip TARGET_CHR, 0x04, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00 - - beginloop 0x0d - if_num_times_shot_lt 1, /*goto*/ 0x00 - if_timer_lt 20, /*goto*/ 0x00 - label 0x00 - if_chr_stopped /*goto*/ 0x02 - endloop 0x0d - - label 0x02 - stop_chr - restart_timer - - beginloop 0x03 - if_chr_y TARGET_CHR, -1910 OPERATOR_LESS_THAN, /*goto*/ 0x20 - label 0x20 - dprint "target\n" - if_chr_sees_player /*goto*/ 0x00 - goto_next 0x04 - - label 0x00 - if_timer_gt 1250, /*goto*/ 0x20 - if_chr_distance_gt 200, /*goto*/ 0x04 - endloop 0x03 - - label 0x20 - call_rng - if_rand_lt 64, /*goto*/ 0x20 - say_quip TARGET_CHR, 0x02, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00 - goto_first 0x02 - - label 0x20 - say_quip TARGET_CHR, 0x03, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00 - goto_first 0x02 - - label 0x00 - say_quip TARGET_CHR, 0x07, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00 - goto_first 0x02 - - label 0x04 - restart_timer - if_chr_y CHR_DRCAROLL, -2100 OPERATOR_LESS_THAN, /*goto*/ 0x20 - try_run_to_target_chr /*goto*/ 0x05 - label 0x20 - if_chr_distance_lt 200, /*goto*/ 0x20 - try_run_to_target_chr /*goto*/ 0x05 - label 0x20 - try_run_to_target_chr_with_hand_up /*goto*/ 0x05 - - beginloop 0x05 - if_chr_in_room TARGET_CHR, 0x00, 0x0094, /*goto*/ 0x00 - goto_next 0x20 - - label 0x00 - label 0x20 - label 0x00 - if_chr_distance_lt 200, /*goto*/ 0x06 - if_chr_stopped /*goto*/ 0x06 - if_timer_gt 360, /*goto*/ 0x20 - endloop 0x05 - - label 0x20 - say_quip TARGET_CHR, 0x03, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00 - goto_first 0x04 - - label 0x00 - say_quip TARGET_CHR, 0x07, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00 - goto_first 0x04 - - label 0x06 - goto_first 0x02 - - label 0x07 - try_run_to_target_chr /*goto*/ 0x08 - - beginloop 0x08 - endloop 0x08 - - label 0x09 - goto_first 0x02 - - // Unreachable - // Attempts to teleport Dr Caroll up the elevator shaft from foyer - label 0x5c - dprint "DR CHANGELIST\n" - if_chr_death_animation_finished CHR_DRCAROLL, /*goto*/ 0x20 - if_chr_dying CHR_DRCAROLL, /*goto*/ 0x20 - if_chr_unloaded CHR_DRCAROLL, /*goto*/ 0x20 - chr_move_to_pad CHR_DRCAROLL, 0x0079, 0x00, /*goto*/ 0x00 - dprint "TELEPORT FAIL\n" - label 0x00 - goto_first 0x02 - - label 0x20 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Waiting at the door to the top room while you clear it out. - */ -func0405_drcaroll_waiting: - if_chr_dying CHR_DRCAROLL, /*goto*/ 0x20 - if_chr_death_animation_finished CHR_DRCAROLL, /*goto*/ 0x20 - if_chr_unloaded CHR_DRCAROLL, /*goto*/ 0x20 - goto_next 0x00 - - label 0x20 - set_function CHR_SELF, GFUNC_IDLE - - label 0x00 - dprint "DR CHANGELIST\n" - set_chr_flag_bank2 CHR_DRCAROLL, CHRFLAG2_00100000 - chr_move_to_pad CHR_DRCAROLL, 0x01ca, 0x00, /*goto*/ 0x00 - dprint "MOVE FAIL\n" - label 0x00 - stop_chr - - beginloop 0x1f - if_stage_flag_eq STAGEFLAG_TOP_BODYGUARDS_DEAD, TRUE, /*goto*/ 0x00 - endloop 0x1f - - label 0x00 - set_function CHR_SELF, FUNC_DRCAROLL_FOLLOWING - endfunction - -func100c_foyer_lights_timer: - beginloop 0x1f - if_stage_flag_eq STAGEFLAG_FOYER_LIGHTS_OFF, TRUE, /*goto*/ 0x20 - endloop 0x1f - - label 0x20 - if_difficulty_lt DIFF_SA, /*goto*/ 0x2e - if_difficulty_lt DIFF_PA, /*goto*/ 0x2f - - // PA - set_countdown_timer 60 - start_countdown_timer - show_countdown_timer - goto_next 0x0e - - // Agent - label 0x2e - set_function CHR_SELF, GFUNC_IDLE - - // Unreachable - set_countdown_timer 60 - start_countdown_timer - show_countdown_timer - goto_next 0x0e - - // SA - label 0x2f - set_countdown_timer 90 - start_countdown_timer - show_countdown_timer - - beginloop 0x0e - if_countdown_timer_lt 1, /*goto*/ 0x0f - endloop 0x0e - - label 0x0f - set_stage_flag STAGEFLAG_FOYER_LIGHTS_RESTORED - hide_countdown_timer - stop_countdown_timer - set_lights_state 0x0019, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x001a, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x001b, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x001c, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x001d, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x001e, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x001f, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0020, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0021, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0017, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0018, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0016, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0022, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0023, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0024, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0025, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0026, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0027, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0028, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0029, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x002a, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x002b, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x002c, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x002d, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x002e, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x002f, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0030, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0031, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0032, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0033, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0034, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0035, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0036, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0015, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x000f, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x000e, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0010, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0011, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0012, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0013, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0014, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x000d, 0x01, 0x64, 0x00, 0x00 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0410_init_top_guard: - set_onshot_function FUNC_TOP_GUARD - if_difficulty_lt DIFF_SA, /*goto*/ 0x20 - - // SA and PA - set_chr_dodge_rating 2, 0x0a - set_accuracy 80 - set_reaction_speed 10 - set_chr_health CHR_SELF, 10 - set_armor 40 - set_recovery_speed 0 - set_shield 0 - goto_next 0x00 - - // Agent - label 0x20 - set_chr_dodge_rating 2, 0x0a - set_accuracy 12 - set_reaction_speed 10 - set_chr_health CHR_SELF, 10 - set_armor 40 - set_recovery_speed 0 - set_shield 0 - - label 0x00 - beginloop 0x8d - if_stage_flag_eq STAGEFLAG_ENTERING_TOP_ROOM, TRUE, /*goto*/ 0x20 - endloop 0x8d - - label 0x20 - set_function CHR_SELF, FUNC_TOP_GUARD - endfunction - -func040f_top_guard: - if_just_injured CHR_SELF, /*goto*/ 0x20 - goto_next 0x00 - - label 0x20 - set_stage_flag STAGEFLAG_CASS_SHIELD_DAMAGED - - beginloop 0x21 - if_chr_stopped /*goto*/ 0x00 - endloop 0x21 - - label 0x00 - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x1f - - beginloop 0x1f - if_chr_distance_lt 200, /*goto*/ 0x20 - if_stage_flag_eq STAGEFLAG_CASS_SHIELD_DAMAGED, TRUE, /*goto*/ 0x00 - if_stage_flag_eq STAGEFLAG_TOP_GUARDS_ATTACKING, TRUE, /*goto*/ 0x00 - set_target_chr FOLLOW_CHR - endloop 0x1f - - label 0x00 - set_function CHR_SELF, FUNC_GENERAL_COMBAT - - label 0x20 - set_stage_flag STAGEFLAG_CASS_SHIELD_DAMAGED - set_function CHR_SELF, FUNC_GENERAL_COMBAT - endfunction - -func0411_top_guard_blinded: - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x20 - if_chr_dying CHR_SELF, /*goto*/ 0x20 - if_chr_unloaded CHR_SELF, /*goto*/ 0x20 - goto_next 0x00 - - label 0x20 - set_function CHR_SELF, GFUNC_IDLE - - label 0x00 - animation ANIM_BLINDED, 0, -1, 0x1010, CHR_SELF, 2 - say_quip CHR_JOANNA, 0x11, 0x64, 0x02, 0xff, BANK_1, 0x00, 0x00 - - beginloop 0x1f - if_chr_stopped /*goto*/ 0x00 - endloop 0x1f - - label 0x00 - set_function CHR_SELF, FUNC_GENERAL_COMBAT - endfunction - -func0406_general_combat: - set_self_flag_bank3 CHRFLAG3_00000040 - set_onshot_function FUNC_GENERAL_COMBAT - if_has_gun CHR_SELF, /*goto*/ 0x20 - - // No gun - set_onshot_function GFUNC_ALERTED - set_function CHR_SELF, GFUNC_ALERTED - - // Has gun - label 0x20 - if_chr_dying CHR_SELF, /*goto*/ 0x00 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x00 - if_chr_unloaded CHR_SELF, /*goto*/ 0x00 - goto_next 0x20 - - // Dying - wait a few frames then say quip - label 0x00 - set_onshot_function GFUNC_IDLE - restart_timer - - beginloop 0x0b - if_timer_gt 15, /*goto*/ 0x00 - endloop 0x0b - - label 0x00 - say_quip CHR_JOANNA, 0x19, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - // Alive with gun - label 0x20 - if_just_injured CHR_SELF, /*goto*/ 0x00 - goto_next 0x21 - - // Just got injured - label 0x00 - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_PSYCHOSISED - restart_timer - - beginloop 0x0c - if_self_flag_bankx_eq CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x00 - if_num_times_shot_lt 1, /*goto*/ 0x00 - if_timer_lt 20, /*goto*/ 0x00 - say_quip CHR_JOANNA, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00 - say_quip CHR_JOANNA, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00 - set_self_flag_bankx CHRFLAG0_SAID_INJURY_QUIP, BANK_0 - label 0x00 - if_chr_stopped /*goto*/ 0x21 - endloop 0x0c - - // Not injured, or injury recovery finished - label 0x21 - set_self_flag_bank3 CHRFLAG3_00000040 - - label 0x14 - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x00 - label 0x20 - try_chr_kneel_and_shoot_thing 0x0220, 0x0000, /*goto*/ 0x10 - label 0x00 - kneel - - beginloop 0x10 - if_stage_flag_eq STAGEFLAG_FOYER_LIGHTS_RESTORED, TRUE, /*goto*/ 0x00 - goto_next 0x20 - - // Lights restored - label 0x00 - set_view_distance 100 - - label 0x20 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_stage_flag_eq STAGEFLAG_FOYER_LIGHTS_RESTORED, TRUE, /*goto*/ 0x00 - if_target_chr_in_sight /*goto*/ 0x15 - goto_next 0x20 - - label 0x00 - if_chr_sees_player /*goto*/ 0x15 - label 0x20 - if_near_miss /*goto*/ 0x18 - if_stage_flag_eq STAGEFLAG_FOYER_LIGHTS_RESTORED, TRUE, /*goto*/ 0x00 - if_enemy_distance_lt_and_los 500, /*goto*/ 0x20 - goto_next 0x5e - - label 0x00 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x20 - goto_next 0x5e - - label 0x20 - if_chr_lost_track_of_target_maybe /*goto*/ 0x5e - goto_next 0x15 - - label 0x5e - set_target_chr CHR_P1P2 - reloop 0x10 - - label 0x00 - if_target_chr_in_sight /*goto*/ 0x15 - if_stage_flag_eq STAGEFLAG_FOYER_LIGHTS_RESTORED, TRUE, /*goto*/ 0x00 - if_enemy_distance_lt_and_los 500, /*goto*/ 0x20 - goto_next 0x5e - - label 0x00 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x20 - goto_next 0x5e - - label 0x20 - if_chr_lost_track_of_target_maybe /*goto*/ 0x5e - goto_next 0x15 - - label 0x5e - set_target_chr CHR_P1P2 - endloop 0x10 - - label 0x15 - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_PSYCHOSISED - if_self_flag_bankx_eq CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x2a - if_chr_distance_lt 250, /*goto*/ 0x29 - if_self_flag_bankx_eq CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x20 - set_self_flag_bankx CHRFLAG0_00000004, BANK_0 - if_stage_flag_eq STAGEFLAG_FOYER_LIGHTS_RESTORED, TRUE, /*goto*/ 0x00 - say_quip CHR_JOANNA, 0x1b, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00 - goto_next 0x20 - - label 0x00 - say_quip CHR_JOANNA, 0x0b, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00 - label 0x20 - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x17 - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x12 - goto_next 0x13 - - beginloop 0x12 - if_chr_stopped /*goto*/ 0x13 - endloop 0x12 - - label 0x13 - if_chr_injured_target CHR_SELF, /*goto*/ 0x20 - say_quip CHR_JOANNA, 0x16, 0x19, 0x03, 0x00, BANK_0, 0x00, 0x00 - say_quip CHR_JOANNA, 0x17, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00 - goto_next 0x00 - - label 0x20 - say_quip CHR_JOANNA, 0x15, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00 - say_quip CHR_JOANNA, 0x15, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00 - label 0x00 - goto_first 0x14 - - label 0x18 - restart_timer - if_self_flag_bankx_eq CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x1c - set_self_flag_bankx CHRFLAG0_00000004, BANK_0 - if_stage_flag_eq STAGEFLAG_FOYER_LIGHTS_RESTORED, TRUE, /*goto*/ 0x1c - say_quip CHR_JOANNA, 0x12, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 - - beginloop 0x1c - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - call_rng - if_target_chr_in_sight /*goto*/ 0x19 - if_timer_gt 60, /*goto*/ 0x1e - if_rand_lt 4, /*goto*/ 0x1e - endloop 0x1c - - label 0x1e - if_chr_sees_player /*goto*/ 0x19 - goto_first 0x14 - - label 0x19 - goto_first 0x15 - - label 0x1a - restart_timer - - beginloop 0x1b - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_sees_player /*goto*/ 0x19 - if_timer_gt 300, /*goto*/ 0x00 - endloop 0x1b - - label 0x00 - goto_first 0x14 - - label 0x19 - goto_first 0x15 - - label 0x17 - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x16 - label 0x16 - say_quip CHR_JOANNA, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00 - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x00 - goto_next 0x20 - label 0x00 - goto_first 0x12 - - label 0x20 - goto_first 0x13 - - label 0x29 - try_run_to_target_chr_with_hand_up /*goto*/ 0x20 - label 0x20 - dprint "UN ENTRY\n" - set_return_function CHR_SELF, FUNC_GENERAL_COMBAT - set_function CHR_SELF, GFUNC_HAND_COMBAT - - label 0x2a - label 0x20 - if_chr_lost_track_of_target_maybe /*goto*/ 0x20 - 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 - label 0x20 - set_onshot_function GFUNC_ALERTED - set_return_function CHR_SELF, GFUNC_ALERTED - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -func0408_hovercopter: - set_target_chr CHR_JOANNA - cmd0143 - move_object_to_pad OBJ_HOVERCOPTER, 0x0199 - begin_hovercar_path 0x02 - restart_timer - set_chr_health CHR_SELF, 42320 - - beginloop 0x1f - if_timer_gt 120, /*goto*/ 0x42 - endloop 0x1f - - label 0x42 - yield - if_chr_y TARGET_CHR, -1850 OPERATOR_LESS_THAN, /*goto*/ 0x52 - if_chr_y TARGET_CHR, -1200 OPERATOR_LESS_THAN, /*goto*/ 0x53 - goto_next 0x54 - - // Low combat (lowest floor) - label 0x21 - begin_hovercar_path 0x00 - - beginloop 0x22 - dprint "LOW\n" - if_chr_y TARGET_CHR, -1850 OPERATOR_LESS_THAN, /*goto*/ 0x00 - if_chr_y TARGET_CHR, -1200 OPERATOR_LESS_THAN, /*goto*/ 0x53 - if_stage_flag_eq STAGEFLAG_CHOPPER_GO_TO_ROOF, FALSE, /*goto*/ 0x00 - goto_next 0x54 - - label 0x00 - set_target_chr CHR_JOANNA - if_chr_sees_player /*goto*/ 0x43 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x20 - set_target_chr CHR_VELVET - if_chr_sees_player /*goto*/ 0x43 - set_target_chr CHR_JOANNA - label 0x20 - endloop 0x22 - - // Mid combat (second floor and Cass's office floor) - label 0x23 - begin_hovercar_path 0x01 - - beginloop 0x24 - dprint "MID\n" - if_chr_y TARGET_CHR, -1850 OPERATOR_LESS_THAN, /*goto*/ 0x52 - dprint "MID0\n" - if_chr_y TARGET_CHR, -1200 OPERATOR_LESS_THAN, /*goto*/ 0x00 - dprint "MID1\n" - if_stage_flag_eq STAGEFLAG_CHOPPER_GO_TO_ROOF, FALSE, /*goto*/ 0x00 - dprint "MID2\n" - goto_next 0x54 - - label 0x00 - dprint "MID3\n" - set_target_chr CHR_JOANNA - if_chr_sees_player /*goto*/ 0x48 - dprint "NOTVIS\n" - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x20 - set_target_chr CHR_VELVET - - // @bug: This should go to 0x48. Instead it goes to the low code path, - // which doesn't appear to have any side effects except that the - // hovercopter will say the low line ("surrender or die") on the mid - // level if Velvet is the first player it sees. - if_chr_sees_player /*goto*/ 0x43 - set_target_chr CHR_JOANNA - label 0x20 - endloop 0x24 - - // High combat (roof) - label 0x25 - begin_hovercar_path 0x02 - - beginloop 0x26 - set_target_chr CHR_JOANNA - dprint "TOP\n" - if_chr_y TARGET_CHR, -1850 OPERATOR_LESS_THAN, /*goto*/ 0x52 - if_chr_y TARGET_CHR, -1200 OPERATOR_LESS_THAN, /*goto*/ 0x53 - set_target_chr CHR_JOANNA - if_chr_sees_player /*goto*/ 0x4d - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x20 - set_target_chr CHR_VELVET - if_chr_sees_player /*goto*/ 0x4d - label 0x20 - set_target_chr CHR_JOANNA - label 0x00 - endloop 0x26 - - // Change to high - label 0x54 - dprint "CHANGE TO HIGH\n" - label 0x27 - yield - goto_next 0x00 - label 0x00 - if_chr_sees_player /*goto*/ 0x20 - move_object_to_pad OBJ_HOVERCOPTER, 0x0199 - label 0x20 - goto_first 0x25 - - // Change to low - label 0x52 - dprint "CHANGE TO LOW\n" - if_chr_sees_player /*goto*/ 0x20 - move_object_to_pad OBJ_HOVERCOPTER, 0x0190 - label 0x20 - goto_first 0x21 - - // Change to mid - label 0x53 - dprint "CHANGE TO MID\n" - if_chr_sees_player /*goto*/ 0x20 - move_object_to_pad OBJ_HOVERCOPTER, 0x0195 - label 0x20 - goto_first 0x23 - - // Low shooting - label 0x43 - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x44 - goto_first 0x22 - - label 0x44 - yield - if_chr_sees_player /*goto*/ 0x47 - restart_timer - - beginloop 0x45 - if_timer_gt 480, /*goto*/ 0x46 - if_chr_sees_player /*goto*/ 0x47 - endloop 0x45 - - label 0x46 - stop_chr - goto_first 0x22 - - label 0x47 - if_stage_flag_eq STAGEFLAG_SAID_SURRENDER_OR_DIE, TRUE, /*goto*/ 0x20 - play_sound 0x7b0b, -1 - set_stage_flag STAGEFLAG_SAID_SURRENDER_OR_DIE - label 0x20 - goto_first 0x44 - - // Mid shooting - label 0x48 - dprint "SHOOT MID\n" - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x49 - goto_first 0x24 - - label 0x49 - yield - if_chr_sees_player /*goto*/ 0x4c - restart_timer - - beginloop 0x4a - if_timer_gt 180, /*goto*/ 0x4b - if_chr_sees_player /*goto*/ 0x4c - endloop 0x4a - - label 0x4b - stop_chr - goto_first 0x24 - - label 0x4c - if_stage_flag_eq STAGEFLAG_SAID_GIVE_UP, TRUE, /*goto*/ 0x20 - play_sound 0x7b0d, -1 - set_stage_flag STAGEFLAG_SAID_GIVE_UP - label 0x20 - goto_first 0x49 - - // High shooting (roof) - label 0x4d - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x00 - label 0x00 - set_stage_flag STAGEFLAG_HOVERCOPTER_ON_ROOF - if_stage_flag_eq STAGEFLAG_SAID_FINAL_WARNING, TRUE, /*goto*/ 0x20 - play_sound 0x7b0c, -1 - set_stage_flag STAGEFLAG_SAID_FINAL_WARNING - label 0x20 - stop_chr - restart_timer - - beginloop 0x29 - if_timer_gt 180, /*goto*/ 0x00 - endloop 0x29 - - label 0x00 - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x00 - goto_first 0x26 - - label 0x00 - restart_timer - label 0x4e - yield - if_chr_sees_player /*goto*/ 0x51 - restart_timer - - beginloop 0x4f - if_timer_gt 480, /*goto*/ 0x50 - if_chr_sees_player /*goto*/ 0x51 - endloop 0x4f - - label 0x50 - stop_chr - goto_first 0x26 - - label 0x51 - if_difficulty_lt DIFF_SA, /*goto*/ 0x20 - if_timer_gt 500, /*goto*/ 0x27 - label 0x20 - goto_first 0x4e - - label 0x27 - restart_timer - hovercopter_fire_rocket 0 // left side - goto_first 0x4e - - // Unreachable - the hovercopter only fires rockets from the left side - label 0x28 - restart_timer - hovercopter_fire_rocket 1 // right side - goto_first 0x4e - - endfunction - -func1002_check_accessed_foyer_elevator: - beginloop 0x21 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_y TARGET_CHR, -8155 OPERATOR_LESS_THAN, /*goto*/ 0x20 - if_chr_distance_to_pad_lt TARGET_CHR, 300, 0x021a, /*goto*/ 0x00 - label 0x20 - goto_first 0x21 - - label 0x00 - set_stage_flag STAGEFLAG_ACCESSED_FOYER_ELEVATOR - message TARGET_CHR, 0x0621 // "Foyer elevator accessed." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1003_check_end_level: - beginloop 0x21 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_distance_to_pad_lt CHR_P1P2, 200, 0x0002, /*goto*/ 0x00 - reloop 0x21 - - label 0x00 - if_chr_y CHR_P1P2, 30, OPERATOR_LESS_THAN, /*goto*/ 0x20 - goto_next 0x00 - label 0x20 - reloop 0x21 - - label 0x00 - set_stage_flag STAGEFLAG_REACHED_HELIPAD - yield - if_all_objectives_complete /*goto*/ 0x20 - endloop 0x21 - - label 0x20 - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x20 - if_chr_dying CHR_JOANNA, /*goto*/ 0x20 - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x20 - goto_next 0x00 - - label 0x20 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x20 - if_chr_dying CHR_VELVET, /*goto*/ 0x20 - if_chr_unloaded CHR_VELVET, /*goto*/ 0x20 - goto_next 0x00 - - label 0x20 - end_level - set_function CHR_SELF, GFUNC_IDLE - - label 0x00 - set_invincible CHR_JOANNA - set_function CHR_SELF, FUNC_OUTRO - endfunction - -func1004_elevator_unlocking: - yield - if_difficulty_gt DIFF_SA, /*goto*/ 0x1f - unlock_door 0x02, 0x01 - unlock_door 0x03, 0x01 - set_function CHR_SELF, GFUNC_IDLE - - beginloop 0x1f - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_activated_object TARGET_CHR, 0x01, /*goto*/ 0x20 - if_object_in_good_condition 0x01, /*goto*/ 0x00 - goto_next 0x28 - label 0x00 - endloop 0x1f - - // Computer destroyed - label 0x28 - if_stage_flag_eq STAGEFLAG_ELEVATOR_UNLOCKED, TRUE, /*goto*/ 0x00 - set_stage_flag STAGEFLAG_ELEVATOR_PC_DESTROYED - message CHR_JOANNA, 0x062d // "Critical mission object destroyed." - label 0x00 - set_function CHR_SELF, GFUNC_IDLE - - // Computer activated - label 0x20 - message TARGET_CHR, 0x060e // "Accessing elevator controls..." - assign_sound 0x8116, CHANNEL_6 - control_sound_from_object CHANNEL_6, 0x01, TRUE - restart_timer - - beginloop 0x22 - if_timer_gt 15, /*goto*/ 0x00 - endloop 0x22 - - label 0x00 - mute_channel CHANNEL_6 - - beginloop 0x23 - if_timer_gt 40, /*goto*/ 0x00 - endloop 0x23 - - label 0x00 - - beginloop 0x24 - if_timer_gt 60, /*goto*/ 0x00 - endloop 0x24 - - label 0x00 - - beginloop 0x25 - if_timer_gt 80, /*goto*/ 0x00 - endloop 0x25 - - label 0x00 - restart_timer - - beginloop 0x21 - if_timer_gt 120, /*goto*/ 0x00 - endloop 0x21 - - label 0x00 - play_sound 0x81b0, -1 - unlock_door 0x02, 0x01 - unlock_door 0x03, 0x01 - message TARGET_CHR, 0x0622 // "Office elevator door has been unlocked." - set_stage_flag STAGEFLAG_ELEVATOR_UNLOCKED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1005_check_bodyguards_dead: - .macro if_alive_goto_00 chr label - if_chr_death_animation_finished \chr, /*goto*/ \label - if_chr_dying \chr, /*goto*/ \label - if_chr_unloaded \chr, /*goto*/ \label - goto_next 0x00 - label \label - .endm - - beginloop 0x1f - if_alive_goto_00 CHR_TOPGUARD5, 0x21 - if_alive_goto_00 CHR_TOPGUARD4, 0x22 - if_alive_goto_00 CHR_TOPGUARD3, 0x23 - if_alive_goto_00 CHR_TOPGUARD2, 0x24 - if_alive_goto_00 CHR_TOPGUARD1, 0x20 - - set_stage_flag STAGEFLAG_TOP_BODYGUARDS_DEAD - unlock_door OBJ_TOPROOMDOOR, 0x02 - unset_object_flag_bank1 OBJ_TOPROOMDOOR, OBJECTFLAG1_20000000 - if_difficulty_lt DIFF_SA, /*goto*/ 0x26 - - if_alive_goto_00 0x16, 0x20 - if_alive_goto_00 0x17, 0x20 - if_alive_goto_00 0x18, 0x20 - if_alive_goto_00 0x19, 0x20 - if_alive_goto_00 0x1a, 0x20 - - if_chr_death_animation_finished 0x1b, /*goto*/ 0x20 - if_chr_dying 0x1b, /*goto*/ 0x20 - if_chr_unloaded 0x1b, /*goto*/ 0x20 - goto_next 0x00 - - label 0x00 - endloop 0x1f - - label 0x20 - label 0x26 - message CHR_JOANNA, 0x0624 // "Cassandra's bodyguards have been defeated." - set_stage_flag STAGEFLAG_OBJECTIVE_BODYGUARDS_DEAD - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1006_check_hovercopter_destroyed: - if_difficulty_lt DIFF_SA, /*goto*/ 0x26 - - beginloop 0x1f - if_object_in_good_condition OBJ_HOVERCOPTER, /*goto*/ 0x00 - message CHR_JOANNA, 0x0623 // "DataDyne Hovercopter eliminated." - set_stage_flag STAGEFLAG_HOVERCOPTER_DESTROYED - set_function CHR_SELF, GFUNC_IDLE - label 0x00 - endloop 0x1f - - label 0x26 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100e_drcaroll_warnings: - beginloop 0x1f - if_chr_death_animation_finished CHR_DRCAROLL, /*goto*/ 0x21 - if_chr_dying CHR_DRCAROLL, /*goto*/ 0x21 - if_chr_unloaded CHR_DRCAROLL, /*goto*/ 0x21 - if_stage_flag_eq STAGEFLAG_DRCAROLL_ATTACKED, TRUE, /*goto*/ 0x00 - if_chr_shield_lt CHR_DRCAROLL, 100, /*goto*/ 0x30 - - // Attacked message already shown - label 0x00 - if_stage_flag_eq STAGEFLAG_DRCAROLL_DAMAGED, TRUE, /*goto*/ 0x00 - if_just_injured CHR_DRCAROLL, /*goto*/ 0x31 - - label 0x00 - if_chr_death_animation_finished CHR_DRCAROLL, /*goto*/ 0x00 - if_chr_dying CHR_DRCAROLL, /*goto*/ 0x00 - if_chr_unloaded CHR_DRCAROLL, /*goto*/ 0x00 - reloop 0x1f - - // Dead - label 0x21 - label 0x00 - message CHR_JOANNA, 0x0610 // "Dr. Caroll has been killed!" - set_stage_flag STAGEFLAG_DRCAROLL_DEAD - set_function CHR_SELF, GFUNC_IDLE - - // Shield under 100 - label 0x30 - message CHR_JOANNA, 0x0611 // "Dr. Caroll is under attack!" - set_stage_flag STAGEFLAG_DRCAROLL_ATTACKED - reloop 0x1f - - label 0x31 - message CHR_JOANNA, 0x0612 // "Dr. Caroll has been damaged!" - set_stage_flag STAGEFLAG_DRCAROLL_DAMAGED - endloop 0x1f - - endfunction - -func1007_noop: - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1008_trigger_hovercopter_roof: - // Wait until techs running, then wait 7 seconds, then set flag that allows - // the hovercopter to go to the roof. - beginloop 0x1f - if_timer_gt 420, /*goto*/ 0x21 - if_timer_gt 0, /*goto*/ 0x20 - if_stage_flag_eq STAGEFLAG_TECHS_RUNNING, TRUE, /*goto*/ 0x00 - label 0x20 - reloop 0x1f - - label 0x00 - restart_timer - endloop 0x1f - - label 0x21 - set_stage_flag STAGEFLAG_CHOPPER_GO_TO_ROOF - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1009_init_top_room: - set_chr_flag_bank3 CHR_TOPGUARD1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_TOPGUARD2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_TOPGUARD3, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_TOPGUARD4, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_TOPGUARD5, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_CASS, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - - beginloop 0x1f - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0039, /*goto*/ 0x00 - if_chr_activated_object CHR_P1P2, OBJ_TOPROOMDOOR, /*goto*/ 0x00 - endloop 0x1f - - label 0x00 - set_object_flag_bank0 OBJ_TOPROOMDOOR, OBJECTFLAG0_02000000 - set_chr_target_chr CHR_CASS, CHR_P1P2 - set_chr_target_chr CHR_TOPGUARD1, CHR_P1P2 - set_chr_target_chr CHR_TOPGUARD2, CHR_P1P2 - set_chr_target_chr CHR_TOPGUARD3, CHR_P1P2 - set_chr_target_chr CHR_TOPGUARD4, CHR_P1P2 - set_chr_target_chr CHR_TOPGUARD5, CHR_P1P2 - unset_chr_flag_bank3 CHR_TOPGUARD1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 CHR_TOPGUARD2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 CHR_TOPGUARD3, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 CHR_TOPGUARD4, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 CHR_TOPGUARD5, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_alliance CHR_CASS, ALLIANCE_ENEMY - set_chr_alliance CHR_TOPGUARD1, ALLIANCE_ENEMY - set_chr_alliance CHR_TOPGUARD2, ALLIANCE_ENEMY - set_chr_alliance CHR_TOPGUARD3, ALLIANCE_ENEMY - set_chr_alliance CHR_TOPGUARD4, ALLIANCE_ENEMY - set_chr_alliance CHR_TOPGUARD5, ALLIANCE_ENEMY - set_stage_flag STAGEFLAG_ENTERING_TOP_ROOM - restart_timer - - beginloop 0x21 - if_timer_gt 60, /*goto*/ 0x00 - endloop 0x21 - - label 0x00 - beginloop 0x21 - if_chr_shield_lt CHR_CASS, 100, /*goto*/ 0x20 - endloop 0x21 - - label 0x20 - set_stage_flag STAGEFLAG_CASS_SHIELD_DAMAGED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040b_init_tech1: - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, 0x0409 - endfunction - -func0409_tech_conversation: - set_onshot_function GFUNC_IDLE - - beginloop 0x01 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_activated_object TARGET_CHR, 0x11, /*goto*/ 0x00 - if_door_state 0x11, DOORSTATE_OPEN, /*goto*/ 0x00 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x33 - dprint "TECH 1 LOOP\n" - set_chr_flag_bank3 CHR_TECH1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_TECH2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_RLSHOCK, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - endloop 0x01 - - // Player activated door or door is fully open - label 0x00 - set_follow_chr TARGET_CHR - set_chr_alliance CHR_TECH1, ALLIANCE_ENEMY - set_chr_alliance CHR_TECH2, ALLIANCE_ENEMY - set_chr_alliance CHR_RLSHOCK, ALLIANCE_ENEMY - cmd0145_rebuild_groups - cmd0146_rebuild_groups - unset_chr_flag_bank3 CHR_TECH1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 CHR_TECH2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 CHR_RLSHOCK, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function CHR_RLSHOCK, GFUNC_UNALERTED - restart_timer - animation 0x0204, -1, -1, 0x0214, 0x10, 2 - - beginloop 0x28 - if_shot_near_chr 0x00, /*goto*/ 0x33 - if_saw_death 0x00, /*goto*/ 0x33 - if_timer_gt 30, /*goto*/ 0x20 - endloop 0x28 - - label 0x20 - dprint "TECH 2 LOOP\n" - animation ANIM_TALKING_00A0, 0, -1, 0x1014, CHR_SELF, 2 - speak FOLLOW_CHR, 0x0625, 0x811d, CHANNEL_7, COLOR_06_WHITE // "That's not how it goes." - restart_timer - - beginloop 0x21 - if_shot_near_chr 0x00, /*goto*/ 0x33 - if_saw_death 0x00, /*goto*/ 0x33 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x33 - if_target_chr_in_sight /*goto*/ 0x33 - pause_timer - if_sound_finished CHANNEL_7, /*goto*/ 0x20 - reloop 0x21 - - label 0x20 - resume_timer - if_timer_gt 20, /*goto*/ 0x20 - goto_first 0x21 - - label 0x20 - animation ANIM_TWO_GUN_HOLD, 0, -1, 0x1014, CHR_SELF, 2 - animation ANIM_TALKING_00A0, -1, -1, 0x0214, 0x10, 2 - speak FOLLOW_CHR, 0x0626, 0x8120, CHANNEL_7, COLOR_08_RED // "Yes, it is." - - beginloop 0x22 - if_shot_near_chr 0x00, /*goto*/ 0x33 - if_saw_death 0x00, /*goto*/ 0x33 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x33 - if_target_chr_in_sight /*goto*/ 0x33 - pause_timer - if_sound_finished CHANNEL_7, /*goto*/ 0x20 - reloop 0x22 - - label 0x20 - resume_timer - if_timer_gt 40, /*goto*/ 0x20 - endloop 0x22 - - label 0x20 - animation ANIM_TALKING_00A0, 0, -1, 0x1014, CHR_SELF, 2 - animation 0x0205, -1, -1, 0x0214, 0x10, 2 - speak FOLLOW_CHR, 0x0627, 0x811e, CHANNEL_7, COLOR_06_WHITE // "Give it to me - you're doing it wrong." - - beginloop 0x23 - if_shot_near_chr 0x00, /*goto*/ 0x33 - if_saw_death 0x00, /*goto*/ 0x33 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x33 - if_target_chr_in_sight /*goto*/ 0x33 - pause_timer - if_sound_finished CHANNEL_7, /*goto*/ 0x20 - reloop 0x23 - - label 0x20 - resume_timer - if_timer_gt 60, /*goto*/ 0x20 - endloop 0x23 - - label 0x20 - animation ANIM_TWO_GUN_HOLD, 0, -1, 0x1014, CHR_SELF, 2 - animation ANIM_TALKING_00A0, -1, -1, 0x0214, 0x10, 2 - speak FOLLOW_CHR, 0x0628, 0x8121, CHANNEL_7, COLOR_08_RED // "Stop annoying me." - - beginloop 0x24 - if_shot_near_chr 0x00, /*goto*/ 0x33 - if_saw_death 0x00, /*goto*/ 0x33 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x33 - if_target_chr_in_sight /*goto*/ 0x33 - pause_timer - if_sound_finished CHANNEL_7, /*goto*/ 0x20 - reloop 0x24 - - label 0x20 - resume_timer - if_timer_gt 80, /*goto*/ 0x20 - endloop 0x24 - - label 0x20 - animation ANIM_TWO_GUN_HOLD, 0, -1, 0x1014, CHR_SELF, 2 - animation ANIM_TALKING_00A0, -1, -1, 0x0214, CHR_RLSHOCK, 2 - animation 0x0206, -1, -1, 0x0214, 0x10, 2 - speak FOLLOW_CHR, 0x0629, 0x8123, CHANNEL_7, COLOR_09_BLUE // "Will you just hurry up!" - - beginloop 0x25 - if_shot_near_chr 0x00, /*goto*/ 0x33 - if_saw_death 0x00, /*goto*/ 0x33 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x33 - if_target_chr_in_sight /*goto*/ 0x33 - pause_timer - if_sound_finished CHANNEL_7, /*goto*/ 0x20 - reloop 0x25 - - label 0x20 - resume_timer - if_timer_gt 100, /*goto*/ 0x20 - endloop 0x25 - - label 0x20 - set_stage_flag STAGEFLAG_TECHS_FINISHED - stop_chr - - beginloop 0x26 - if_shot_near_chr 0x00, /*goto*/ 0x33 - if_saw_death 0x00, /*goto*/ 0x33 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x33 - if_chr_sees_player /*goto*/ 0x20 - endloop 0x26 - - label 0x20 - label 0x33 - dprint "CHOPPER CAN GO\n" - if_stage_flag_eq STAGEFLAG_TECHS_RUNNING, TRUE, /*goto*/ 0x00 - set_stage_flag STAGEFLAG_TECHS_RUNNING - label 0x00 - set_group_alertness 100 - open_door 0x04 - restart_timer - speak TARGET_CHR, 0x062a, 0x811f, CHANNEL_7, COLOR_06_WHITE // "Oh, no...too late." - animation ANIM_SURRENDER_002E, 0, 193, 0x1810, CHR_SELF, 2 - - beginloop 0x34 - if_timer_gt 60, /*goto*/ 0x35 - endloop 0x34 - - label 0x35 - jog_to_pad 0x01cd - - beginloop 0x36 - if_chr_stopped /*goto*/ 0x37 - endloop 0x36 - - label 0x37 - restart_timer - surrender - set_function CHR_SELF, GFUNC_IDLE - - // Unreachable - animation ANIM_COWER_0229, -1, -1, 0x1010, CHR_SELF, 2 - - beginloop 0x38 - if_chr_idle /*goto*/ 0x5e - goto_next 0x20 - - label 0x5e - reloop 0x38 - - label 0x20 - restart_timer - endloop 0x38 - - label 0x00 - remove_chr CHR_SELF - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040d_cass_necklace: - remove_cass_necklace CHR_CASS - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040c_init_tech2: - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, 0x040a - endfunction - -func040a_tech2: - set_onshot_function GFUNC_IDLE - stop_chr - - beginloop 0x1f - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_stage_flag_eq STAGEFLAG_TECHS_FINISHED, TRUE, /*goto*/ 0x20 - if_target_chr_in_sight /*goto*/ 0x33 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x33 - endloop 0x1f - - label 0x20 - stop_chr - - beginloop 0x21 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_sees_player /*goto*/ 0x00 - reloop 0x21 - - label 0x00 - label 0x33 - dprint "CHOPPER CAN GO\n" - if_stage_flag_eq STAGEFLAG_TECHS_RUNNING, TRUE, /*goto*/ 0x00 - set_stage_flag STAGEFLAG_TECHS_RUNNING - label 0x00 - set_group_alertness 100 - open_door 0x04 - yield - restart_timer - animation 0x0205, 0, -1, 0x180a, CHR_SELF, 2 - - // @bug: Duplicate label. I suspect the goto first 0x21 below is - // supposed to go here. The only possible side effect is the tech may - // restart his animation repeatedly. - label 0x21 - yield - if_sound_finished CHANNEL_7, /*goto*/ 0x20 - endloop 0x21 - - label 0x20 - animation ANIM_SURRENDER_002E, 0, -1, 0x180a, CHR_SELF, 2 - speak TARGET_CHR, 0x062b, 0x8122, CHANNEL_7, COLOR_08_RED // "She's here..." - - beginloop 0x22 - if_sound_finished CHANNEL_7, /*goto*/ 0x35 - endloop 0x22 - - label 0x35 - jog_to_pad 0x002a - - beginloop 0x36 - if_chr_stopped /*goto*/ 0x37 - endloop 0x36 - - label 0x37 - restart_timer - surrender - set_function CHR_SELF, GFUNC_IDLE - - // Unreachable - animation ANIM_COWER_0229, -1, -1, 0x1010, CHR_SELF, 2 - - beginloop 0x38 - if_chr_idle /*goto*/ 0x5e - goto_next 0x20 - - label 0x5e - reloop 0x38 - - label 0x20 - restart_timer - endloop 0x38 - - label 0x00 - remove_chr CHR_SELF - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040d_cass: - set_shield 100 - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_CASS, CHRFLAG3_UNEXPLODABLE - set_target_chr CHR_P1P2 - - beginloop 0x3b - if_stage_flag_eq STAGEFLAG_ENTERING_TOP_ROOM, TRUE, /*goto*/ 0x3a - endloop 0x3b - - label 0x3a - open_door OBJ_TOPROOMDOOR - set_target_chr FOLLOW_CHR - if_num_human_players_lt 2, /*goto*/ 0x20 - goto_next 0x89 - - // 1 player - do force walk (enter room) - label 0x20 - revoke_control CHR_JOANNA, 0 - force_walk CHR_JOANNA, 0x0019, 0x2837, 0x002e - - beginloop 0x23 - open_door OBJ_TOPROOMDOOR - if_force_walk_finished CHR_JOANNA, /*goto*/ 0x24 - endloop 0x23 - - // Second force walk (turn to face Cass) - label 0x24 - force_walk CHR_JOANNA, 0x0018, 0x0041, 0x4100 - open_door OBJ_TOPROOMDOOR - - beginloop 0x25 - if_force_walk_finished CHR_JOANNA, /*goto*/ 0x26 - endloop 0x25 - - label 0x26 - unset_object_flag_bank0 OBJ_TOPROOMDOOR, OBJECTFLAG0_02000000 - grant_control CHR_JOANNA - close_door OBJ_TOPROOMDOOR - if_chr_in_room CHR_JOANNA, 0x00, 0x0045, /*goto*/ 0x20 - lock_door OBJ_TOPROOMDOOR, 0x02 - - // 2 players, or force walk failed - label 0x20 - if_chr_death_animation_finished CHR_DRCAROLL, /*goto*/ 0x20 - if_chr_dying CHR_DRCAROLL, /*goto*/ 0x20 - if_chr_unloaded CHR_DRCAROLL, /*goto*/ 0x20 - set_function CHR_DRCAROLL, 0x0405 - label 0x20 - goto_next 0x00 - - label 0x89 - unset_object_flag_bank0 OBJ_TOPROOMDOOR, OBJECTFLAG0_02000000 - restart_timer - - beginloop 0x8a - if_stage_flag_eq STAGEFLAG_CASS_SHIELD_DAMAGED, TRUE, /*goto*/ 0x5b - if_timer_gt 120, /*goto*/ 0x00 - endloop 0x8a - - label 0x00 - restart_timer - speak TARGET_CHR, 0x0620, 0x80ff, CHANNEL_6, COLOR_04_ORANGE // "We meet again, girl!" - animation ANIM_TALKING_00A0, 0, 193, 0x1010, CHR_SELF, 2 - - beginloop 0x27 - if_stage_flag_eq STAGEFLAG_CASS_SHIELD_DAMAGED, TRUE, /*goto*/ 0x5b - if_sound_finished CHANNEL_6, /*goto*/ 0x00 - endloop 0x27 - - label 0x00 - restart_timer - speak TARGET_CHR, 0x0614, 0x80fe, CHANNEL_6, COLOR_04_ORANGE // "You've become quite an annoyance..." - animation ANIM_TALKING_00A3, 0, 193, 0x1014, CHR_SELF, 2 - - beginloop 0x28 - if_stage_flag_eq STAGEFLAG_CASS_SHIELD_DAMAGED, TRUE, /*goto*/ 0x5b - if_timer_gt 300, /*goto*/ 0x00 - endloop 0x28 - - label 0x5b - restart_timer - - beginloop 0x29 - if_timer_gt 60, /*goto*/ 0x20 - endloop 0x29 - - label 0x20 - speak TARGET_CHR, 0x062c, 0x8101, CHANNEL_6, COLOR_04_ORANGE // "Get her!" - animation ANIM_TALKING_00A3, 0, 193, 0x1010, CHR_SELF, 2 - goto_next 0x20 - - label 0x00 - restart_timer - speak TARGET_CHR, 0x0615, 0x8100, CHANNEL_6, COLOR_04_ORANGE // "Good night, Ms. Dark." - animation ANIM_TALKING_00A0, 0, 193, 0x1010, CHR_SELF, 2 - - beginloop 0x2a - if_timer_gt 150, /*goto*/ 0x20 - endloop 0x2a - - label 0x20 - set_lights_state 0x0044, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x0039, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x003c, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x003d, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x003e, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x003b, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x0042, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x003f, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x003a, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x0041, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x0040, 0x07, 0x00, 0x00, 0x00 - set_stage_flag STAGEFLAG_TOP_LIGHTS_OFF - set_stage_flag STAGEFLAG_TOP_GUARDS_ATTACKING - walk_to_pad 0x000f - restart_timer - - beginloop 0x2b - if_timer_gt 60, /*goto*/ 0x00 - endloop 0x2b - - label 0x00 - play_sound 0x8102, CHANNEL_7 - - beginloop 0x2c - if_timer_gt 120, /*goto*/ 0x00 - endloop 0x2c - - label 0x00 - play_x_music CHANNEL_10, 60 - - beginloop 0x3f - if_timer_gt 180, /*goto*/ 0x00 - endloop 0x3f - - label 0x00 - set_stage_flag STAGEFLAG_TRIGGER_CANTLEAVEANY_MSG - label 0x3d - label 0x00 - label 0x00 - set_stage_flag STAGEFLAG_TOP_GUARDS_ATTACKING - - // Wait until Jo not in top room - beginloop 0x2c - if_chr_in_room CHR_SELF, 0x00, 0x003a, /*goto*/ 0x20 - if_chr_in_room CHR_SELF, 0x00, 0x003b, /*goto*/ 0x20 - goto_next 0x00 - - label 0x20 - reloop 0x2c - - // And not in sight - label 0x00 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_within_units_of_sight 30, /*goto*/ 0x20 - set_target_chr CHR_COUNTEROP - if_within_units_of_sight 30, /*goto*/ 0x20 - goto_next 0x2d - - label 0x20 - endloop 0x2c - - label 0x2d - set_chr_flag_bank2 CHR_CASS, CHRFLAG2_00100000 - remove_cass_necklace CHR_CASS - chr_move_to_pad CHR_CASS, 0x0205, 0x00, /*goto*/ 0x00 - dprint "MOVE FAIL\n" - label 0x00 - dprint "MOVE GOOD\n" - try_face_entity 0x0200, 0x0000, /*goto*/ 0x20 - label 0x20 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101f_unlock_top_door: - beginloop 0x1f - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x003b, /*goto*/ 0x20 - endloop 0x1f - - label 0x20 - unlock_door OBJ_TOPROOMDOOR, 0x02 - unset_object_flag_bank1 OBJ_TOPROOMDOOR, OBJECTFLAG1_20000000 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * @unused - */ -func040e_noop2: - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100a_lightswitch: - beginloop 0x1f - if_chr_activated_object CHR_F3, OBJ_LIGHTSWITCH, /*goto*/ 0x20 - reloop 0x1f - - label 0x20 - play_sound 0x00ba, -1 - if_stage_flag_eq STAGEFLAG_TOP_LIGHTS_OFF, TRUE, /*goto*/ 0x00 - set_lights_state 0x0044, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x0039, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x003c, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x003d, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x003e, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x003b, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x0042, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x003f, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x003a, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x0041, 0x07, 0x00, 0x00, 0x00 - set_lights_state 0x0040, 0x07, 0x00, 0x00, 0x00 - set_stage_flag STAGEFLAG_TOP_LIGHTS_OFF - reloop 0x1f - - label 0x00 - unset_stage_flag STAGEFLAG_TOP_LIGHTS_OFF - set_lights_state 0x0044, 0x06, 0x00, 0x00, 0x00 - set_lights_state 0x0039, 0x06, 0x00, 0x00, 0x00 - set_lights_state 0x003c, 0x06, 0x00, 0x00, 0x00 - set_lights_state 0x003d, 0x06, 0x00, 0x00, 0x00 - set_lights_state 0x003e, 0x06, 0x00, 0x00, 0x00 - set_lights_state 0x003b, 0x06, 0x00, 0x00, 0x00 - set_lights_state 0x0042, 0x06, 0x00, 0x00, 0x00 - set_lights_state 0x003f, 0x06, 0x00, 0x00, 0x00 - set_lights_state 0x003a, 0x06, 0x00, 0x00, 0x00 - set_lights_state 0x0041, 0x06, 0x00, 0x00, 0x00 - set_lights_state 0x0040, 0x06, 0x00, 0x00, 0x00 - endloop 0x1f - - endfunction - -func100b_check_top_lights_on: - beginloop 0x1f - if_stage_flag_eq STAGEFLAG_TOP_GUARDS_ATTACKING, TRUE, /*goto*/ 0x00 - endloop 0x1f - - label 0x00 - if_stage_flag_eq STAGEFLAG_TOP_LIGHTS_OFF, TRUE, /*goto*/ 0x00 - goto_next 0x20 - - label 0x00 - endloop 0x1f - - label 0x20 - set_stage_flag STAGEFLAG_CASS_SHIELD_DAMAGED - set_function CHR_TOPGUARD1, FUNC_TOP_GUARD_BLINDED - set_function CHR_TOPGUARD2, FUNC_TOP_GUARD_BLINDED - set_function CHR_TOPGUARD3, FUNC_TOP_GUARD_BLINDED - set_function CHR_TOPGUARD4, FUNC_TOP_GUARD_BLINDED - set_function CHR_TOPGUARD5, FUNC_TOP_GUARD_BLINDED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100c_foyer_lights: - restart_timer - beginloop 0x21 - if_stage_flag_eq STAGEFLAG_FOYER_LIGHTS_OFF, TRUE, /*goto*/ 0x00 - if_timer_gt 980, /*goto*/ 0x00 - endloop 0x21 - - label 0x00 - set_lights_state 0x0019, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x001a, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x001b, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x001c, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x001d, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x001e, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x001f, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x0020, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x0021, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x0017, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x0018, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x0016, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x0022, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x0023, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x0024, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x0025, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x0026, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x0027, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x0028, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x0029, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x002a, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x002b, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x002c, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x002d, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x002e, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x002f, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x0030, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x0031, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x0032, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x0033, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x0034, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x0035, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x0036, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x0015, 0x03, 0x64, 0x02, 0x78 - set_lights_state 0x000f, 0x03, 0x64, 0x02, 0xf0 - set_lights_state 0x000e, 0x03, 0x64, 0x02, 0xf0 - set_lights_state 0x0010, 0x03, 0x64, 0x02, 0xf0 - set_lights_state 0x0011, 0x03, 0x64, 0x02, 0xf0 - set_lights_state 0x0012, 0x03, 0x64, 0x02, 0xf0 - set_lights_state 0x0013, 0x03, 0x64, 0x02, 0xf0 - set_lights_state 0x0014, 0x03, 0x64, 0x02, 0xf0 - set_lights_state 0x000d, 0x03, 0x64, 0x02, 0xf0 - restart_timer - - beginloop 0x22 - if_timer_gt 240, /*goto*/ 0x00 - endloop 0x22 - - label 0x00 - set_lights_state 0x0019, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x001a, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x001b, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x001c, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x001d, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x001e, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x001f, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x0020, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x0021, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x0017, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x0018, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x0016, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x0022, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x0023, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x0024, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x0025, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x0026, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x0027, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x0028, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x0029, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x002a, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x002b, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x002c, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x002d, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x002e, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x002f, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x0030, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x0031, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x0032, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x0033, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x0034, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x0035, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x0036, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x0015, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x000f, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x000e, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x0010, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x0011, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x0012, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x0013, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x0014, 0x01, 0x02, 0x00, 0x00 - set_lights_state 0x000d, 0x01, 0x02, 0x00, 0x00 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1400_setup_counterop: - yield - set_chr_alliance CHR_COUNTEROP, ALLIANCE_ENEMY - give_object_to_chr OBJ_NIGHTVISION, CHR_JOANNA - give_object_to_chr OBJ_NIGHTVISION, CHR_VELVET - set_function CHR_SELF, GFUNC_REBUILD_GROUPS - endfunction - -func100d_intro: - set_music_track MUSIC_EXTRACTION_INTRO - camera_movement 0x0138 - cmd0175 60 - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x0139, -1, -1, 0x0600, CHR_JOANNA, 4 - set_chr_flag_bank3 0x00, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 0x00, CHRFLAG2_00020000 - animation 0x013d, -1, -1, 0x0600, CHR_DRCAROLL, 4 - set_chr_flag_bank3 CHR_INTRO_GUARD, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_INTRO_GUARD, CHRFLAG2_00020000 - animation 0x013a, -1, -1, 0x0600, CHR_INTRO_GUARD, 4 - unset_stage_flag STAGEFLAG_00800000 - restart_timer - fade_to_color 0x000000ff, 0 - fade_to_color 0x00000000, 110 - yield - set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_JOANNA, WEAPON_FALCON2_SCOPE, WEAPON_NONE - if_controller_button_pressed /*goto*/ 0x00 - - .macro wait_until time loopid - beginloop \loopid - if_controller_button_pressed /*goto*/ 0x5d - if_timer_gt \time, /*goto*/ 0x00 - endloop \loopid - label 0x00 - .endm - - wait_until 20, 0x61 - open_door 0x0c - - wait_until 120, 0x60 - play_sound 0x0161, -1 - - wait_until 350, 0x62 - play_sound 0x042f, -1 - - wait_until 450, 0x63 - play_sound 0x0427, -1 - - wait_until 540, 0x64 - speak CHR_JOANNA, 0x063c, 0x7bf3, CHANNEL_7, COLOR_06_WHITE // "Sound the alarm - she's here!" - - wait_until 640, 0x65 - speak CHR_JOANNA, 0x063d, 0x73f4, CHANNEL_7, COLOR_09_BLUE // "Lights out!" - - wait_until 690, 0x66 - play_sound 0x0428, -1 - - wait_until 720, 0x67 - play_sound 0x0250, 10 - - wait_until 850, 0x68 - play_sound 0x0430, -1 - - wait_until 880, 0x69 - play_sound 0x0429, -1 - - wait_until 890, 0x6a - close_door 0x0c - - wait_until 1000, 0x6b - speak CHR_JOANNA, 0x063e, 0x73f5, CHANNEL_7, COLOR_09_BLUE // "What the...?" - - beginloop 0x21 - if_camera_animating /*goto*/ 0x20 - goto_next 0x5d - - label 0x20 - endloop 0x21 - - label 0x5d - set_stage_flag STAGEFLAG_FOYER_LIGHTS_OFF - mute_channel CHANNEL_10 - mute_channel CHANNEL_7 - - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x0139, -2, -1, 0x0600, CHR_JOANNA, 2 - - unset_chr_flag_bank3 CHR_DRCAROLL, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_DRCAROLL, CHRFLAG2_00020000 - animation 0x013d, -2, -1, 0x0600, CHR_DRCAROLL, 2 - - unset_chr_flag_bank3 CHR_INTRO_GUARD, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank3 CHR_INTRO_GUARD, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank2 CHR_INTRO_GUARD, CHRFLAG2_00020000 - set_chr_flag_bank3 CHR_INTRO_GUARD, CHRFLAG3_00010000 - animation 0x013a, -2, -1, 0x0600, CHR_INTRO_GUARD, 2 - - restart_default_music - reset_ambience - enter_firstperson - yield - animation 0x020c, -1, -1, 0x0600, CHR_INTRO_GUARD, 2 - set_function CHR_DRCAROLL, 0x0402 - yield - kill CHR_INTRO_GUARD - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0412_outro: - set_music_track MUSIC_EXTRACTION_OUTRO - set_sfx_track MUSIC_EXTRACTION_OUTRO_SFX - camera_movement 0x0157 - set_object_flag_bank1 OBJ_HOVERCOPTER, OBJECTFLAG1_INVISIBLE - hide_object OBJ_HOVERCOPTER - set_function CHR_P1P2, GFUNC_IDLE - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0xf1, CHRFLAG3_HIDDEN - dprint "cut scene 2" - set_chr_flag_bank3 CHR_P1P2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_CASS, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - remove_cass_necklace CHR_CASS - set_chr_flag_bank3 CHR_MRBLONDE, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_OUTRO_GUARD1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_OUTRO_GUARD2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_DRCAROLL, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - - set_function CHR_DRCAROLL, GFUNC_IDLE - set_chr_flag_bank3 CHR_DRCAROLL, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_DRCAROLL, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_DRCAROLL, CHRFLAG2_00020000 - animation 0x015d, -1, -1, 0x0600, CHR_DRCAROLL, 4 - - set_function CHR_CASS, FUNC_CASS_OUTRO - set_chr_flag_bank3 CHR_CASS, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_CASS, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_CASS, CHRFLAG2_00020000 - animation 0x0159, -1, -1, 0x0600, CHR_CASS, 4 - - set_function CHR_MRBLONDE, GFUNC_IDLE - set_chr_flag_bank3 CHR_MRBLONDE, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_MRBLONDE, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_MRBLONDE, CHRFLAG2_00020000 - animation 0x015a, -1, -1, 0x0600, CHR_MRBLONDE, 4 - - set_function CHR_OUTRO_GUARD1, GFUNC_IDLE - set_chr_flag_bank3 CHR_OUTRO_GUARD1, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_OUTRO_GUARD1, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_OUTRO_GUARD1, CHRFLAG2_00020000 - animation 0x015b, -1, -1, 0x0600, CHR_OUTRO_GUARD1, 4 - - set_function CHR_OUTRO_GUARD2, GFUNC_IDLE - set_chr_flag_bank3 CHR_OUTRO_GUARD2, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_OUTRO_GUARD2, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_OUTRO_GUARD2, CHRFLAG2_00020000 - animation 0x015c, -1, -1, 0x0600, CHR_OUTRO_GUARD2, 4 - - show_object OBJ_JUMPSHIP - set_object_flag_bank2 OBJ_JUMPSHIP, OBJECTFLAG2_00000010 - set_object_flag_bank1 OBJ_JUMPSHIP, OBJECTFLAG1_04000000 - object_do_animation 0x015e, OBJ_JUMPSHIP, 0x04ff, 0xff - set_function CHR_P1P2, GFUNC_IDLE - set_chr_flag_bank3 CHR_P1P2, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_P1P2, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_P1P2, CHRFLAG2_00020000 - animation 0x0158, -1, -1, 0x0600, CHR_P1P2, 4 - show_nonessential_chrs FALSE - restart_timer - set_cutscene_weapon CHR_P1P2, -1, -1 - yield - set_cutscene_weapon CHR_P1P2, -1, WEAPON_FALCON2_SCOPE - - .macro outro_wait_until time loopid - beginloop \loopid - if_controller_button_pressed /*goto*/ 0x5d - if_timer_gt \time, /*goto*/ 0x00 - endloop \loopid - label 0x00 - .endm - - outro_wait_until 0, 0x5f - outro_wait_until 20, 0x5f - outro_wait_until 47, 0x7e - outro_wait_until 90, 0x7f - - outro_wait_until 120, 0x60 - speak CHR_P1P2, 0x063f, 0x73f6, CHANNEL_7, COLOR_04_ORANGE // "Going somewhere?" - - outro_wait_until 188, 0x61 - play_sound 0x01d9, -1 - - outro_wait_until 350, 0x62 - speak CHR_P1P2, 0x0640, 0x73f7, CHANNEL_7, COLOR_09_BLUE // "Something I can do for you, old woman?" - - outro_wait_until 500, 0x63 - speak CHR_P1P2, 0x0641, 0x73f8, CHANNEL_7, COLOR_04_ORANGE // "Return our sapient immediately! You don't know wha..." - - outro_wait_until 720, 0x64 - play_sound 0x0424, -1 - - outro_wait_until 740, 0x65 - speak CHR_P1P2, 0x0642, 0x73f9, CHANNEL_7, COLOR_09_BLUE // "Yes I do. I'm leaving." - - outro_wait_until 858, 0x73 - - outro_wait_until 980, 0x66 - speak CHR_P1P2, 0x0643, 0x73fa, CHANNEL_7, COLOR_04_ORANGE // "One more chance! Give it back, and you could come ..." - - outro_wait_until 990, 0x68 - play_sound 0x804f, -1 - - outro_wait_until 1220, 0x69 - - outro_wait_until 1240, 0x6a - - outro_wait_until 1348, 0x6b - play_sound 0x80c8, -1 - - outro_wait_until 1380, 0x80 - play_sound 0x80c9, -1 - - outro_wait_until 1400, 0x81 - set_chr_shooting_in_cutscene CHR_OUTRO_GUARD1, TRUE - - yield - yield - set_chr_shooting_in_cutscene CHR_OUTRO_GUARD1, FALSE - - outro_wait_until 1420, 0x82 - set_chr_shooting_in_cutscene CHR_OUTRO_GUARD2, TRUE - - yield - yield - set_chr_shooting_in_cutscene CHR_OUTRO_GUARD2, FALSE - - outro_wait_until 1425, 0x6c - speak CHR_P1P2, 0x0644, 0x73fb, CHANNEL_7, COLOR_09_BLUE // "Sorry! Gotta shoot." - - outro_wait_until 1447, 0x6d - play_sound 0x80ca, -1 - - outro_wait_until 1486, 0x83 - play_sound 0x80cb, -1 - - outro_wait_until 1505, 0x6e - play_sound 0x8055, CHANNEL_10 - - outro_wait_until 1520, 0x6f - play_sound 0x8055, CHANNEL_10 - - outro_wait_until 1526, 0x70 - set_chr_shooting_in_cutscene CHR_JOANNA, TRUE - - yield - yield - set_chr_shooting_in_cutscene CHR_JOANNA, FALSE - - outro_wait_until 1538, 0x84 - set_chr_shooting_in_cutscene CHR_JOANNA, TRUE - - yield - yield - set_chr_shooting_in_cutscene CHR_JOANNA, FALSE - - outro_wait_until 1554, 0x71 - play_sound 0x000d, CHANNEL_10 - - outro_wait_until 1600, 0x74 - play_sound 0x000e, CHANNEL_10 - - outro_wait_until 1734, 0x72 - play_sound 0x808d, CHANNEL_10 - - outro_wait_until 1890, 0x75 - play_sound 0x0425, -1 - - outro_wait_until 1940, 0x77 - speak CHR_P1P2, 0x0645, 0x73fc, CHANNEL_7, COLOR_03_RED // "You must get the sapient back. We cannot proceed w..." - - outro_wait_until 1944, 0x76 - play_sound 0x80c4, -1 - - outro_wait_until 1970, 0x85 - play_sound 0x80c5, -1 - - outro_wait_until 2008, 0x86 - play_sound 0x80c6, -1 - - outro_wait_until 2190, 0x78 - speak CHR_P1P2, 0x0646, 0x73fd, CHANNEL_7, COLOR_04_ORANGE // "I know that!" - - outro_wait_until 2300, 0x79 - play_sound 0x80c7, -1 - - outro_wait_until 2317, 0x87 - play_sound 0x042e, -1 - - outro_wait_until 2324, 0x88 - play_sound 0x80c4, -1 - - outro_wait_until 2340, 0x7a - play_sound 0x80c7, -1 - - outro_wait_until 2344, 0x7b - - outro_wait_until 2393, 0x7c - speak CHR_P1P2, 0x0647, 0x73fe, CHANNEL_7, COLOR_04_ORANGE // "I also know who to talk to... Mr. Carrington." - - outro_wait_until 2497, 0x7d - - beginloop 0x21 - if_camera_animating /*goto*/ 0x20 - goto_next 0x5d - label 0x20 - if_controller_button_pressed /*goto*/ 0x5d - endloop 0x21 - - label 0x5d - hide_object OBJ_JUMPSHIP - end_level - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0413_defend_pad: - set_chr_dodge_rating 2, 0x0a - set_accuracy 12 - set_reaction_speed 10 - set_chr_health CHR_SELF, 10 - set_armor 40 - set_recovery_speed 0 - set_shield 0 - set_onshot_function FUNC_GENERAL_COMBAT - - beginloop 0x1f - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_sees_player /*goto*/ 0x21 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x21 - if_distance_to_pad_gt2 200, TARGET_PAD, /*goto*/ 0x22 - endloop 0x1f - - label 0x21 - set_function CHR_SELF, FUNC_GENERAL_COMBAT - - label 0x22 - go_to_target_pad SPEED_RUN - - beginloop 0x23 - if_chr_stopped /*goto*/ 0x00 - if_chr_sees_player /*goto*/ 0x00 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x00 - endloop 0x23 - - label 0x00 - set_function CHR_SELF, FUNC_GENERAL_COMBAT - endfunction - -func100f_move_rocket_ammo: - if_difficulty_lt DIFF_SA, /*goto*/ 0x00 - set_function CHR_SELF, GFUNC_IDLE - - // Agent only - label 0x00 - move_object_to_pad OBJ_ROCKETAMMO1, 0x000f - move_object_to_pad OBJ_ROCKETAMMO2, 0x000d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040d_cass_outro: - set_shield 0 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1001_objectives_failed_msg: - yield - set_chr_flag_bank3 CHR_TECH1, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_TECH2, CHRFLAG3_04000000 - set_function CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG - endfunction - -func0414_init_shock: - set_chr_dodge_rating 2, 0x0a - set_accuracy 12 - set_reaction_speed 10 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 10 - set_shield 0 - set_function CHR_SELF, FUNC_GENERAL_COMBAT - endfunction - -/** - * @unused - */ -func0415_init_10hp: - set_chr_dodge_rating 2, 0x0a - set_accuracy 12 - set_reaction_speed 10 - set_chr_health CHR_SELF, 10 - set_armor 40 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, FUNC_GENERAL_COMBAT - endfunction - -func1012_msg_lockeddown: - beginloop 0x1f - if_chr_in_room CHR_JOANNA, 0x00, 0x0023, /*goto*/ 0x20 - endloop 0x1f - - label 0x20 - speak CHR_JOANNA, 0x0633, 0x8176, CHANNEL_6, COLOR_09_BLUE // "They've locked down the ground floor - get to the ..." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1013_msg_thatcopter: - if_difficulty_lt DIFF_SA, /*goto*/ 0x26 - - beginloop 0x1f - if_stage_flag_eq STAGEFLAG_SAID_SURRENDER_OR_DIE, TRUE, /*goto*/ 0x20 - endloop 0x1f - - label 0x20 - restart_timer - - beginloop 0x21 - if_timer_gt 300, /*goto*/ 0x20 - endloop 0x21 - - label 0x20 - speak CHR_JOANNA, 0x0634, 0x8177, CHANNEL_6, COLOR_09_BLUE // "That copter needs to be taken out, or the jumpship..." - - label 0x26 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1014_msg_cantleaveany: - beginloop 0x1f - if_stage_flag_eq STAGEFLAG_TRIGGER_CANTLEAVEANY_MSG, TRUE, /*goto*/ 0x20 - endloop 0x1f - - label 0x20 - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x26 - if_chr_dying CHR_JOANNA, /*goto*/ 0x26 - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x26 - restart_timer - - beginloop 0x21 - if_timer_gt 120, /*goto*/ 0x20 - endloop 0x21 - - label 0x20 - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x26 - if_chr_dying CHR_JOANNA, /*goto*/ 0x26 - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x26 - speak CHR_JOANNA, 0x0635, 0x73aa, CHANNEL_6, COLOR_09_BLUE // "I can't leave any bodyguards standing." - - label 0x26 - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x27 - if_chr_dying CHR_JOANNA, /*goto*/ 0x27 - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x27 - - beginloop 0x5f - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x27 - if_chr_dying CHR_JOANNA, /*goto*/ 0x27 - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x27 - if_sound_finished CHANNEL_6, /*goto*/ 0x20 - endloop 0x5f - - label 0x20 - set_function CHR_SELF, GFUNC_IDLE - - label 0x27 - mute_channel CHANNEL_6 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1015_msg_jumpshipwaiting: - beginloop 0x1f - if_objective_failed 0, /*goto*/ 0x00 - if_objective_failed 1, /*goto*/ 0x00 - if_objective_failed 2, /*goto*/ 0x00 - if_objective_failed 3, /*goto*/ 0x00 - if_objective_failed 4, /*goto*/ 0x00 - if_chr_in_room CHR_JOANNA, 0x00, 0x0002, /*goto*/ 0x20 - endloop 0x1f - - label 0x20 - speak CHR_JOANNA, 0x0636, 0x8178, CHANNEL_6, COLOR_09_BLUE // "Don't keep the jumpship waiting - get back to the ..." - - label 0x00 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1016_msg_make_foyer_guards_alerted: - beginloop 0x1f - if_stage_flag_eq STAGEFLAG_ACCESSED_FOYER_ELEVATOR, TRUE, /*goto*/ 0x20 - endloop 0x1f - - .macro if_alive_set_alerted chr - if_chr_death_animation_finished \chr, /*goto*/ 0x20 - if_chr_dying \chr, /*goto*/ 0x20 - if_chr_unloaded \chr, /*goto*/ 0x20 - set_function \chr, GFUNC_ALERTED - increase_chr_alertness 100, \chr - label 0x20 - .endm - - label 0x20 - if_alive_set_alerted 0x01 - if_alive_set_alerted 0x02 - if_alive_set_alerted 0x03 - if_alive_set_alerted 0x04 - if_alive_set_alerted 0x05 - if_alive_set_alerted 0x06 - if_alive_set_alerted 0x07 - if_alive_set_alerted 0x08 - if_alive_set_alerted 0x09 - if_alive_set_alerted 0x0a - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1017_remove_special_shock: - beginloop 0x1f - if_stage_flag_eq STAGEFLAG_DRCAROLL_ATTACKED, TRUE, /*goto*/ 0x00 - if_stage_flag_eq STAGEFLAG_FOYER_LIGHTS_RESTORED, TRUE, /*goto*/ 0x00 - - if_chr_death_animation_finished 0x01, /*goto*/ 0x20 - if_chr_dying 0x01, /*goto*/ 0x20 - if_chr_unloaded 0x01, /*goto*/ 0x20 - reloop 0x1f - label 0x20 - - if_chr_death_animation_finished 0x02, /*goto*/ 0x20 - if_chr_dying 0x02, /*goto*/ 0x20 - if_chr_unloaded 0x02, /*goto*/ 0x20 - reloop 0x1f - label 0x20 - - if_chr_death_animation_finished 0x03, /*goto*/ 0x20 - if_chr_dying 0x03, /*goto*/ 0x20 - if_chr_unloaded 0x03, /*goto*/ 0x20 - reloop 0x1f - label 0x20 - - if_chr_death_animation_finished 0x04, /*goto*/ 0x20 - if_chr_dying 0x04, /*goto*/ 0x20 - if_chr_unloaded 0x04, /*goto*/ 0x20 - reloop 0x1f - label 0x20 - - if_chr_death_animation_finished 0x05, /*goto*/ 0x20 - if_chr_dying 0x05, /*goto*/ 0x20 - if_chr_unloaded 0x05, /*goto*/ 0x20 - reloop 0x1f - label 0x20 - - if_chr_death_animation_finished 0x06, /*goto*/ 0x20 - if_chr_dying 0x06, /*goto*/ 0x20 - if_chr_unloaded 0x06, /*goto*/ 0x20 - reloop 0x1f - label 0x20 - - if_chr_death_animation_finished 0x07, /*goto*/ 0x20 - if_chr_dying 0x07, /*goto*/ 0x20 - if_chr_unloaded 0x07, /*goto*/ 0x20 - reloop 0x1f - label 0x20 - - if_chr_death_animation_finished 0x08, /*goto*/ 0x20 - if_chr_dying 0x08, /*goto*/ 0x20 - if_chr_unloaded 0x08, /*goto*/ 0x20 - reloop 0x1f - label 0x20 - - if_chr_death_animation_finished 0x09, /*goto*/ 0x20 - if_chr_dying 0x09, /*goto*/ 0x20 - if_chr_unloaded 0x09, /*goto*/ 0x20 - reloop 0x1f - label 0x20 - - if_chr_death_animation_finished 0x0a, /*goto*/ 0x20 - if_chr_dying 0x0a, /*goto*/ 0x20 - if_chr_unloaded 0x0a, /*goto*/ 0x20 - endloop 0x1f - - label 0x20 - set_function CHR_SELF, GFUNC_IDLE - - label 0x00 - remove_chr CHR_SPECIAL_SHOCK - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1018_give_magnum: - beginloop 0x1f - if_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_PSYCHOSISED, /*goto*/ 0x00 - endloop 0x1f - - // This seems wrong. The magnum is actually given to the special shock... - label 0x00 - give_object_to_chr OBJ_DY357, CHR_MRBLONDE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1419_start_lifts: - activate_lift 2, 0x1d - activate_lift 1, 0x1e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101a_set_rocketlauncher_flag: - yield - if_difficulty_lt DIFF_SA, /*goto*/ 0x20 - - // SA and PA - set_object_flag_bank1 OBJ_ROCKETLAUNCHER, OBJECTFLAG1_20000000 - - label 0x20 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101b_lift_door_sounds: - beginloop 0x8d - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, 0x23, /*goto*/ 0x20 - if_chr_activated_object CHR_P1P2, 0x27, /*goto*/ 0x5e - if_chr_activated_object CHR_P1P2, 0x20, /*goto*/ 0x20 - if_chr_activated_object CHR_P1P2, 0x24, /*goto*/ 0x25 - if_chr_activated_object CHR_P1P2, 0x21, /*goto*/ 0x5e - if_chr_activated_object CHR_P1P2, 0x25, /*goto*/ 0x26 - if_chr_activated_object CHR_P1P2, 0x22, /*goto*/ 0x5e - if_chr_activated_object CHR_P1P2, 0x26, /*goto*/ 0x5e - reloop 0x8d - - label 0x25 - if_door_locked 0x24, 0x01, /*goto*/ 0x5e - goto_next 0x20 - - label 0x26 - if_door_locked 0x25, 0x01, /*goto*/ 0x5e - goto_next 0x20 - - label 0x20 - play_sound 0x81b0, -1 - goto_next 0x00 - - label 0x5e - play_sound 0x05dd, -1 - label 0x00 - restart_timer - - beginloop 0x21 - if_timer_gt 120, /*goto*/ 0x00 - endloop 0x21 - - label 0x00 - endloop 0x8d - - endfunction - -func141c_setup_portals: - yield - set_portal_flag 0x008e, 0x08 - set_portal_flag 0x008f, 0x08 - set_portal_flag 0x0084, 0x08 - set_portal_flag 0x0090, 0x08 - set_portal_flag 0x0091, 0x08 - set_portal_flag 0x0093, 0x08 - set_portal_flag 0x0096, 0x08 - set_portal_flag 0x0095, 0x08 - set_portal_flag 0x0099, 0x08 - set_portal_flag 0x00b6, 0x08 - set_portal_flag 0x00bf, 0x08 - set_portal_flag 0x00be, 0x08 - set_portal_flag 0x00c0, 0x08 - set_portal_flag 0x00c2, 0x08 - set_portal_flag 0x00c4, 0x08 - set_portal_flag 0x00c8, 0x08 - set_portal_flag 0x00c7, 0x08 - set_portal_flag 0x00c9, 0x08 - set_portal_flag 0x00cd, 0x08 - set_portal_flag 0x00ce, 0x08 - set_portal_flag 0x00d2, 0x08 - set_portal_flag 0x00e0, 0x08 - set_portal_flag 0x00dc, 0x08 - set_portal_flag 0x00de, 0x08 - set_portal_flag 0x00e3, 0x08 - set_portal_flag 0x00e5, 0x08 - set_portal_flag 0x00e7, 0x08 - set_portal_flag 0x00fb, 0x08 - set_portal_flag 0x00fa, 0x08 - set_portal_flag 0x00fc, 0x08 - set_portal_flag 0x00ff, 0x08 - set_portal_flag 0x0100, 0x08 - set_portal_flag 0x0103, 0x08 - set_portal_flag 0x0102, 0x08 - set_portal_flag 0x0104, 0x08 - set_portal_flag 0x0109, 0x08 - set_portal_flag 0x010c, 0x08 - set_portal_flag 0x0119, 0x08 - set_portal_flag 0x0112, 0x08 - set_portal_flag 0x0117, 0x08 - set_portal_flag 0x0120, 0x08 - set_portal_flag 0x011e, 0x08 - set_portal_flag 0x011c, 0x08 - set_portal_flag 0x0108, 0x08 - set_portal_flag 0x006f, 0x08 - set_portal_flag 0x007d, 0x08 - set_portal_flag 0x0080, 0x08 - set_portal_flag 0x0081, 0x08 - set_portal_flag 0x0075, 0x08 - set_portal_flag 0x0078, 0x08 - set_portal_flag 0x0079, 0x08 - set_portal_flag 0x0006, 0x08 - set_portal_flag 0x0004, 0x08 - set_portal_flag 0x0008, 0x08 - set_portal_flag 0x000a, 0x08 - set_portal_flag 0x0001, 0x08 - set_portal_flag 0x0005, 0x08 - set_portal_flag 0x0000, 0x08 - set_portal_flag 0x0003, 0x08 - set_portal_flag 0x0007, 0x08 - set_portal_flag 0x0013, 0x08 - set_portal_flag 0x0009, 0x08 - set_portal_flag 0x00b1, 0x08 - set_portal_flag 0x00ef, 0x08 - set_portal_flag 0x00ee, 0x08 - set_portal_flag 0x0121, 0x08 - set_portal_flag 0x00e8, 0x08 - set_portal_flag 0x00e9, 0x08 - set_portal_flag 0x00ea, 0x08 - set_portal_flag 0x00ec, 0x08 - set_portal_flag 0x00eb, 0x08 - set_portal_flag 0x00ed, 0x08 - set_portal_flag 0x009d, 0x08 - set_portal_flag 0x00af, 0x08 - set_portal_flag 0x00a1, 0x08 - set_portal_flag 0x005a, 0x08 - set_portal_flag 0x005c, 0x08 - set_portal_flag 0x005d, 0x08 - set_portal_flag 0x0060, 0x08 - set_portal_flag 0x0034, 0x08 - set_portal_flag 0x0030, 0x08 - set_portal_flag 0x002e, 0x08 - set_portal_flag 0x002b, 0x08 - set_portal_flag 0x0028, 0x08 - set_portal_flag 0x0025, 0x08 - set_portal_flag 0x0036, 0x08 - set_portal_flag 0x0038, 0x08 - set_portal_flag 0x004f, 0x08 - set_portal_flag 0x0051, 0x08 - set_portal_flag 0x0052, 0x08 - set_portal_flag 0x0057, 0x08 - set_portal_flag 0x0058, 0x08 - set_portal_flag 0x0031, 0x08 - set_portal_flag 0x002f, 0x08 - set_portal_flag 0x0023, 0x08 - set_portal_flag 0x00a6, 0x08 - set_portal_flag 0x00a3, 0x08 - set_portal_flag 0x00a2, 0x08 - set_portal_flag 0x00a4, 0x08 - set_portal_flag 0x0087, 0x08 - set_portal_flag 0x00b9, 0x08 - set_portal_flag 0x00b4, 0x08 - set_portal_flag 0x00b2, 0x08 - set_portal_flag 0x00b3, 0x08 - set_portal_flag 0x00bd, 0x08 - set_portal_flag 0x00f4, 0x08 - set_portal_flag 0x00f2, 0x08 - set_portal_flag 0x00f0, 0x08 - set_portal_flag 0x00f8, 0x08 - set_portal_flag 0x00f1, 0x08 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func141e_setup_lighting: - yield - set_lighting 0x0000, 0x00, 0x00 - set_lighting 0x0000, 0x01, 0x00 - set_lighting 0x0000, 0x02, 0x01 - set_lighting 0x0000, 0x03, 0x00 - set_lighting 0x0000, 0x04, 0x00 - set_lighting 0x0002, 0x05, 0x01 - set_lighting 0x0002, 0x06, 0x01 - set_lighting 0x0003, 0x05, 0x01 - set_lighting 0x0003, 0x06, 0x01 - set_lighting 0x0004, 0x05, 0x01 - set_lighting 0x0004, 0x06, 0x01 - set_lighting 0x0005, 0x06, 0x01 - set_lighting 0x0006, 0x06, 0x01 - set_lighting 0x0007, 0x06, 0x01 - set_lighting 0x0008, 0x06, 0x01 - set_lighting 0x0009, 0x06, 0x01 - set_lighting 0x000a, 0x06, 0x01 - set_lighting 0x000b, 0x06, 0x01 - set_lighting 0x000c, 0x06, 0x01 - set_lighting 0x000d, 0x06, 0x01 - set_lighting 0x000e, 0x06, 0x01 - set_lighting 0x000f, 0x06, 0x01 - set_lighting 0x0010, 0x06, 0x01 - set_lighting 0x0011, 0x06, 0x01 - set_lighting 0x0012, 0x06, 0x01 - set_lighting 0x0013, 0x06, 0x01 - set_lighting 0x0014, 0x06, 0x01 - set_lighting 0x003a, 0x05, 0x01 - set_lighting 0x00a2, 0x06, 0x01 - set_lighting 0x00a4, 0x06, 0x01 - set_lighting 0x00a5, 0x06, 0x01 - set_lighting 0x00a7, 0x06, 0x01 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101d_setup_rtracker: - yield - set_object_flag_bank2 OBJ_GRENADE, OBJECTFLAG2_RTRACKED_BLUE - set_object_flag_bank2 OBJ_DRAGON, OBJECTFLAG2_RTRACKED_BLUE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -functions: - register_function func0401_drcaroll_following 0x0401 - register_function func0402_start_drcaroll 0x0402 - register_function func0403_stop_and_idle 0x0403 - register_function func0404_init_drcaroll 0x0404 - register_function func0409_tech_conversation 0x0409 - register_function func040a_tech2 0x040a - register_function func040b_init_tech1 0x040b - register_function func040c_init_tech2 0x040c - register_function func040d_cass 0x040d - register_function func040e_noop2 0x040e - register_function func0405_drcaroll_waiting 0x0405 - register_function func0411_top_guard_blinded 0x0411 - register_function func0412_outro 0x0412 - register_function func0414_init_shock 0x0414 - register_function func0415_init_10hp 0x0415 - - register_function func1400_setup_counterop 0x1400 - register_function func1001_objectives_failed_msg 0x1001 - register_function func1002_check_accessed_foyer_elevator 0x1002 - register_function func1003_check_end_level 0x1003 - register_function func1004_elevator_unlocking 0x1004 - register_function func1005_check_bodyguards_dead 0x1005 - register_function func1006_check_hovercopter_destroyed 0x1006 - register_function func1007_noop 0x1007 - register_function func1008_trigger_hovercopter_roof 0x1008 - register_function func1009_init_top_room 0x1009 - register_function func100a_lightswitch 0x100a - register_function func100b_check_top_lights_on 0x100b - register_function func100c_foyer_lights 0x100c - register_function func100d_intro 0x100d - register_function func100e_drcaroll_warnings 0x100e - register_function func100f_move_rocket_ammo 0x100f - register_function func100c_foyer_lights_timer 0x1010 - register_function func040d_cass_necklace 0x1011 - register_function func1012_msg_lockeddown 0x1012 - register_function func1013_msg_thatcopter 0x1013 - register_function func1014_msg_cantleaveany 0x1014 - register_function func1015_msg_jumpshipwaiting 0x1015 - register_function func1016_msg_make_foyer_guards_alerted 0x1016 - register_function func1017_remove_special_shock 0x1017 - register_function func1018_give_magnum 0x1018 - register_function func1419_start_lifts 0x1419 - register_function func101a_set_rocketlauncher_flag 0x101a - register_function func101b_lift_door_sounds 0x101b - register_function func141c_setup_portals 0x141c - register_function func101d_setup_rtracker 0x101d - register_function func141e_setup_lighting 0x141e - register_function func101f_unlock_top_door 0x101f - - register_function func040d_cass_outro 0x0407 - register_function func0406_general_combat 0x0406 - register_function func040f_top_guard 0x040f - register_function func0410_init_top_guard 0x0410 - register_function func0413_defend_pad 0x0413 - register_function func0408_hovercopter 0x0408 - - register_function func100d_intro 0x0c00 - register_function func0412_outro 0x0c01 - endfunctions - -.align 4 diff --git a/asm/setup/setupash.s b/asm/setup/setupash.s deleted file mode 100644 index 7c926b381..000000000 --- a/asm/setup/setupash.s +++ /dev/null @@ -1,26 +0,0 @@ -# -# Stage ID 0x2e -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - endintro - -path00: - endpath - -paths: - endpaths - -func0000_0034: - endfunction - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupate.s b/asm/setup/setupate.s deleted file mode 100644 index 9f2b7805d..000000000 --- a/asm/setup/setupate.s +++ /dev/null @@ -1,553 +0,0 @@ -# -# Duel -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -// Characters -.set CHR_GUARD, 0x00 -.set CHR_JONATHAN, 0x01 -.set CHR_TRENT, 0x02 - -// Stage flags -.set STAGEFLAG_GUARD_DEAD, 0x00000100 -.set STAGEFLAG_JONATHAN_DEAD, 0x00000200 -.set STAGEFLAG_TRENT_DEAD, 0x00000400 -.set STAGEFLAG_SA_WALK_TRIGGER, 0x00000800 -.set STAGEFLAG_PA_WALK_TRIGGER, 0x00001000 - -// Functions -.set FUNC_MOVE_TO_PAD, 0x0401 -.set FUNC_GUARD_COMBAT, 0x0402 -.set FUNC_JON_COMBAT, 0x0403 -.set FUNC_TRENT_COMBAT, 0x0404 -.set FUNC_GUARD_INIT, 0x0405 -.set FUNC_JON_INIT, 0x0406 -.set FUNC_TRENT_INIT, 0x0407 - -props: - briefing 0, 0x5e01 - briefing 1, 0x5e00 - briefing 2, 0x5e02 - briefing 3, 0x5e03 - - beginobjective 0, 0x5e04, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Defeat dataDyne guard" - complete_flags STAGEFLAG_GUARD_DEAD - endobjective - - beginobjective 1, 0x5e05, DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Defeat Jonathan Dark" - complete_flags STAGEFLAG_JONATHAN_DEAD - endobjective - - beginobjective 2, 0x5e06, DIFFBIT_PA | DIFFBIT_PD // "Defeat Trent Easton" - complete_flags STAGEFLAG_TRENT_DEAD - endobjective - - chr 0x00000200, 0x00, 0x0279, BODY_DDSHOCK, HEAD_RANDOM, FUNC_GUARD_INIT, -1, -1, 100, 100, 0x4c080800, 0x02000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRFALCON2, CHR_GUARD, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SCOPE, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x01, 0x0023, BODY_CISOLDIER, HEAD_JONATHAN, FUNC_JON_INIT, -1, -1, 100, 100, 0x4c080800, 0x02000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDY357, CHR_JONATHAN, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357MAGNUM, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x02, 0x0024, BODY_TRENT, HEAD_TRENT, FUNC_TRENT_INIT, -1, -1, 100, 100, 0x4c080800, 0x02000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDY357TRENT, CHR_TRENT, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357LX, 0x00ffffff, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x0158, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x0159, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - endprops - -intro: - outfit OUTFIT_DEFAULT - spawn 0x027a - intro_weapon WEAPON_FALCON2_SCOPE, -1 - ammo AMMOTYPE_PISTOL, 8 - endintro - -paths: - endpaths - -func1000_counterop_setup: - yield - set_chr_alliance CHR_COUNTEROP, ALLIANCE_ENEMY - set_function CHR_SELF, GFUNC_REBUILD_GROUPS - endfunction - -func1001_objectives_failed: - yield - set_function CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG - endfunction - -func1002_first_walk: - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - camera_movement 0x0488 - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - display_text 0x00, COLOR_02_WHITE, 0x5e07 // "THE DUEL" - animation ANIM_RELOAD, -1, -1, 0x0600, CHR_GUARD, 2 - label 0x2d - message CHR_JOANNA, 0x5e0c // "Opponent skill level: AGENT" - - // Wait for camera to stop animating - restart_timer - - beginloop 0x08 - if_camera_animating /*goto*/ 0x2d - goto_next 0x06 - label 0x2d - endloop 0x08 - - // Start walking - label 0x06 - remove_displayed_text - revoke_control CHR_JOANNA, 0 - enter_firstperson - force_walk CHR_JOANNA, 0x0275, 0x2805, 0x0064 - chr_move_to_pad CHR_GUARD, 0x0274, 0x01, /*goto*/ 0x0b - - // Wait for walk to finish - beginloop 0x0b - if_force_walk_finished CHR_JOANNA, /*goto*/ 0x0c - endloop 0x0b - - label 0x0c - grant_control CHR_JOANNA - set_function CHR_GUARD, FUNC_GUARD_COMBAT - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1007_second_walk: - // Wait until SA walk trigger - beginloop 0x58 - if_chr_dying CHR_JOANNA, /*goto*/ 0x2d - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x2d - if_stage_flag_eq STAGEFLAG_SA_WALK_TRIGGER, TRUE, /*goto*/ 0x06 - endloop 0x58 - - // Begin cutscene - label 0x2d - set_function CHR_SELF, GFUNC_IDLE - label 0x06 - revoke_control CHR_JOANNA, 0 - camera_movement 0x0488 - - // Place chrs - label 0x8f - set_function CHR_P1P2, FUNC_MOVE_TO_PAD - chr_move_to_pad CHR_JONATHAN, 0x0279, 0x01, /*goto*/ 0x2d - yield - goto_first 0x8f - - label 0x2d - unset_chr_flag_bank3 CHR_JONATHAN, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_JONATHAN, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 CHR_JONATHAN, CHRFLAG3_UNEXPLODABLE - yield - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation ANIM_GRAB_CROTCH, -1, -1, 0x0600, CHR_JONATHAN, 2 - - label 0x2d - message CHR_JOANNA, 0x5e0d // "Opponent skill level: SPECIAL AGENT" - restart_timer - - beginloop 0x08 - if_camera_animating /*goto*/ 0x2d - goto_next 0x06 - label 0x2d - endloop 0x08 - - // Start force walk - label 0x06 - label 0x2d - remove_displayed_text - revoke_control CHR_JOANNA, 0 - enter_firstperson - yield - force_walk CHR_JOANNA, 0x0275, 0x2805, 0x0064 - - // Place Jon - call_rng - if_rand_lt 128, /*goto*/ 0x8f - chr_move_to_pad CHR_JONATHAN, 0x0271, 0x01, /*goto*/ 0x0b - label 0x8f - chr_move_to_pad CHR_JONATHAN, 0x0270, 0x01, /*goto*/ 0x0b - - // Wait for force walk to finish - beginloop 0x0b - if_force_walk_finished CHR_JOANNA, /*goto*/ 0x0c - endloop 0x0b - - // Give control back to Jo - label 0x0c - grant_control CHR_JOANNA - set_function CHR_JONATHAN, FUNC_JON_COMBAT - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0401_move_to_pad: - chr_move_to_pad CHR_SELF, 0x027a, 0x01, /*goto*/ 0x06 - label 0x06 - yield - stop_chr - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1008_third_walk: - // Wait for flag or Jo dying - beginloop 0x58 - if_chr_dying CHR_JOANNA, /*goto*/ 0x2d - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x2d - if_stage_flag_eq STAGEFLAG_PA_WALK_TRIGGER, TRUE, /*goto*/ 0x06 - endloop 0x58 - - // Jo dead - label 0x2d - set_function CHR_SELF, GFUNC_IDLE - - // Do cutscene - label 0x06 - revoke_control CHR_JOANNA, 0 - camera_movement 0x0488 - - label 0x8f - set_function CHR_P1P2, FUNC_MOVE_TO_PAD - chr_move_to_pad CHR_TRENT, 0x0279, 0x01, /*goto*/ 0x2d - yield - goto_first 0x8f - - label 0x2d - unset_chr_flag_bank3 CHR_TRENT, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_TRENT, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 CHR_TRENT, CHRFLAG3_UNEXPLODABLE - yield - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation ANIM_HEAD_ROLL, -1, -1, 0x0600, CHR_TRENT, 2 - label 0x2d - message CHR_JOANNA, 0x5e0e // "Opponent skill level: PERFECT AGENT" - - // Wait for cutscene to finish - restart_timer - - beginloop 0x08 - if_camera_animating /*goto*/ 0x2d - goto_next 0x06 - label 0x2d - endloop 0x08 - - // Begin force walk - label 0x06 - remove_displayed_text - revoke_control CHR_JOANNA, 0 - enter_firstperson - force_walk CHR_JOANNA, 0x0275, 0x2805, 0x0064 - chr_move_to_pad CHR_TRENT, 0x0272, 0x01, /*goto*/ 0x0b - - beginloop 0x0b - if_force_walk_finished CHR_JOANNA, /*goto*/ 0x0c - endloop 0x0b - - label 0x0c - set_function CHR_TRENT, FUNC_TRENT_COMBAT - grant_control CHR_JOANNA - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1004_revoke_control: - yield - revoke_control CHR_JOANNA, 0 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1005_main: - // Wait until guard dead - beginloop 0x04 - if_chr_death_animation_finished CHR_GUARD, /*goto*/ 0x2d - if_chr_dying CHR_GUARD, /*goto*/ 0x2d - if_chr_unloaded CHR_GUARD, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - message CHR_JOANNA, 0x5e09 // "Well done! You were too quick for him!" - set_stage_flag STAGEFLAG_GUARD_DEAD - restart_timer - - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x2d - endloop 0x08 - - // If Agent, return - label 0x2d - if_difficulty_lt DIFF_SA, /*goto*/ 0x2d - goto_next 0x06 - - label 0x2d - set_function CHR_SELF, GFUNC_IDLE - - label 0x06 - set_stage_flag STAGEFLAG_SA_WALK_TRIGGER - - // Wait until Jonathan dead - beginloop 0x09 - if_chr_death_animation_finished CHR_JONATHAN, /*goto*/ 0x2d - if_chr_dying CHR_JONATHAN, /*goto*/ 0x2d - if_chr_unloaded CHR_JONATHAN, /*goto*/ 0x2d - endloop 0x09 - - label 0x2d - message CHR_JOANNA, 0x5e0a // "Well done! You were too quick for him!" - set_stage_flag STAGEFLAG_JONATHAN_DEAD - restart_timer - - beginloop 0x0b - if_timer_gt 120, /*goto*/ 0x2d - endloop 0x0b - - // If Special Agent, return - label 0x2d - if_difficulty_lt DIFF_PA, /*goto*/ 0x2d - goto_next 0x06 - - label 0x2d - set_function CHR_SELF, GFUNC_IDLE - - label 0x06 - set_stage_flag STAGEFLAG_PA_WALK_TRIGGER - - // Wait until Trent dead - beginloop 0x0c - if_chr_death_animation_finished CHR_TRENT, /*goto*/ 0x2d - if_chr_dying CHR_TRENT, /*goto*/ 0x2d - if_chr_unloaded CHR_TRENT, /*goto*/ 0x2d - endloop 0x0c - - label 0x2d - message CHR_JOANNA, 0x5e0b // "Well done! You were too quick for him!" - set_stage_flag STAGEFLAG_TRENT_DEAD - restart_timer - - beginloop 0x0d - if_timer_gt 120, /*goto*/ 0x2d - endloop 0x0d - - label 0x2d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1003_init_audio: - restart_default_music - reset_ambience - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1006_check_objectives_complete: - // Wait for all objectives complete - beginloop 0x04 - if_all_objectives_complete /*goto*/ 0x2d - endloop 0x04 - - // Wait 3 seconds - label 0x2d - restart_timer - - beginloop 0x08 - if_timer_gt 180, /*goto*/ 0x2d - endloop 0x08 - - // End level - label 0x2d - end_level - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0402_guard_combat: - set_onshot_function FUNC_GUARD_COMBAT - if_just_injured CHR_SELF, /*goto*/ 0x03 - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_00008000 - - // Wait 2 seconds or for guard to come into view - restart_timer - - beginloop 0x04 - if_timer_gt 120, /*goto*/ 0x06 - if_chr_in_view /*goto*/ 0x2d - endloop 0x04 - - // Guard has come into view. Jump sideways. - label 0x2d - try_jump_sideways /*goto*/ 0x08 - - beginloop 0x08 - if_chr_distance_lt 250, /*goto*/ 0x0e - if_chr_stopped /*goto*/ 0x03 - endloop 0x08 - - // Guard has been shot, or finished jump - beginloop 0x03 - if_chr_distance_lt 250, /*goto*/ 0x0e - if_chr_sees_player /*goto*/ 0x06 - reloop 0x03 - - // 2 seconds have passed without seeing guard, or guard has been shot - label 0x06 - if_chr_dying TARGET_CHR, /*goto*/ 0x2e - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x2d - label 0x2d - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x0c - - beginloop 0x0c - if_chr_stopped /*goto*/ 0x06 - endloop 0x0c - - // Finished shooting - label 0x06 - endloop 0x03 - - // Dying - label 0x2e - set_function CHR_SELF, GFUNC_IDLE - - // Hand combat - label 0x0e - set_return_function CHR_SELF, FUNC_TRENT_COMBAT - set_function CHR_SELF, GFUNC_HAND_COMBAT - endfunction - -func0403_jon_combat: - set_onshot_function FUNC_JON_COMBAT - if_just_injured CHR_SELF, /*goto*/ 0x58 - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_00008000 - restart_timer - - beginloop 0x04 - if_timer_gt 240, /*goto*/ 0x58 - if_within_units_of_sight 30, /*goto*/ 0x58 - endloop 0x04 - - label 0x58 - try_run_to_target_chr /*goto*/ 0x08 - - beginloop 0x08 - if_chr_distance_lt 250, /*goto*/ 0x0e - if_in_disarm_range /*goto*/ 0x06 - reloop 0x08 - - label 0x06 - try_chr_kneel_and_shoot_thing 0x0220, 0x0000, /*goto*/ 0x2d - label 0x2d - try_roll_and_shoot /*goto*/ 0x0c - try_chr_kneel_and_shoot_thing 0x0200, 0x0000, /*goto*/ 0x0c - - beginloop 0x0c - if_chr_stopped /*goto*/ 0x06 - endloop 0x0c - - label 0x06 - endloop 0x58 - - label 0x0e - set_return_function CHR_SELF, FUNC_JON_COMBAT - set_function CHR_SELF, GFUNC_HAND_COMBAT - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0404_trent_combat: - set_onshot_function FUNC_TRENT_COMBAT - if_just_injured CHR_SELF, /*goto*/ 0x03 - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_00008000 - restart_timer - - beginloop 0x04 - if_timer_gt 120, /*goto*/ 0x03 - if_chr_in_view /*goto*/ 0x03 - endloop 0x04 - - // Wait until player in sight or in close range - beginloop 0x03 - if_chr_distance_lt 250, /*goto*/ 0x0e - if_chr_sees_player /*goto*/ 0x06 - reloop 0x03 - - // Attack - label 0x06 - if_chr_dying TARGET_CHR, /*goto*/ 0x2e - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x2d - label 0x2d - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x0c - - beginloop 0x0c - if_chr_stopped /*goto*/ 0x06 - endloop 0x0c - - label 0x06 - endloop 0x03 - - // Hand combat - label 0x0e - set_return_function CHR_SELF, FUNC_TRENT_COMBAT - set_function CHR_SELF, GFUNC_HAND_COMBAT - label 0x2e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0405_guard_init: - set_self_flag_bank3 CHRFLAG3_NOAUTOAIM - set_accuracy 200 - set_reaction_speed 50 - set_chr_health CHR_SELF, 20 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0406_jon_init: - set_self_flag_bank3 CHRFLAG3_NOAUTOAIM - set_accuracy 200 - 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_HIDDEN - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_UNEXPLODABLE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0407_trent_init: - set_self_flag_bank3 CHRFLAG3_NOAUTOAIM - set_accuracy 200 - 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_HIDDEN - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_UNEXPLODABLE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -functions: - register_function func1000_counterop_setup 0x1000 - register_function func1001_objectives_failed 0x1001 - register_function func1002_first_walk 0x1002 - register_function func1003_init_audio 0x1003 - register_function func1004_revoke_control 0x1004 - register_function func1005_main 0x1005 - register_function func1006_check_objectives_complete 0x1006 - register_function func1007_second_walk 0x1007 - register_function func1008_third_walk 0x1008 - register_function func0401_move_to_pad 0x0401 - register_function func0402_guard_combat 0x0402 - register_function func0403_jon_combat 0x0403 - register_function func0404_trent_combat 0x0404 - register_function func0405_guard_init 0x0405 - register_function func0406_jon_init 0x0406 - register_function func0407_trent_init 0x0407 - endfunctions - -.align 4 diff --git a/asm/setup/setupazt.s b/asm/setup/setupazt.s deleted file mode 100644 index 00a34c329..000000000 --- a/asm/setup/setupazt.s +++ /dev/null @@ -1,2020 +0,0 @@ -# -# Crash Site -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -// Characters -.set CHR_ELVIS, 0x00 -.set CHR_TRENT, 0x02 -.set CHR_MRBLONDE, 0x03 -.set CHR_SKEDAR, 0x04 -.set CHR_PRESIDENT, 0x05 -.set CHR_PRESIDENT_OUTRO, 0x06 -.set CHR_PRES_CLONE, 0x08 -.set CHR_ROBOT1, 0x26 -.set CHR_ROBOT2, 0x27 -.set CHR_ROBOT3, 0x28 -.set CHR_ROBOT4, 0x29 -.set CHR_ELVIS_OUTRO, 0x38 - -// Objects -.set OBJ_CRATE, 0x00 -.set OBJ_ESCAPEPOD, 0x01 -.set OBJ_MEDICALSCANNER, 0x02 -.set OBJ_SKEDAR_SHUTTLE, 0x03 -.set OBJ_PROXYMINE, 0x08 -.set OBJ_HOVERBIKE, 0x09 - -// Stage flags -.set STAGEFLAG_BEACON_ACTIVATED, 0x00000100 -.set STAGEFLAG_ESCAPEPOD_DESTROYED, 0x00000200 -.set STAGEFLAG_SKEDAR_SHUTTLE_DESTROYED, 0x00000400 -.set STAGEFLAG_PRESIDENT_DEAD, 0x00000800 -.set STAGEFLAG_PRESIDENT_RESCUED, 0x00001000 -.set STAGEFLAG_CLONE_DEAD, 0x00002000 -.set STAGEFLAG_TRIGGER_PRESIDENT_RUNNING, 0x00004000 -.set STAGEFLAG_TRENT_RUNNING, 0x00008000 -.set STAGEFLAG_ELVIS_GAVE_PROXYMINE, 0x00010000 -.set STAGEFLAG_OUTRO_STARTED, 0x00020000 - -// Functions -.set FUNC_OUTRO, 0x0402 -.set FUNC_INIT_ELVIS, 0x0403 -.set FUNC_ELVIS, 0x0404 -.set FUNC_INIT_STRIPES, 0x0406 -.set FUNC_INIT_BLONDE, 0x0407 -.set FUNC_SPAWNER, 0x0414 -.set FUNC_SPAWNED_GUARD, 0x0416 -.set FUNC_INIT_ROBOT, 0x0417 -.set FUNC_ROBOT, 0x0418 -.set FUNC_INIT_PRESIDENT, 0x041b -.set FUNC_PRESIDENT_WAITING, 0x041c -.set FUNC_PRESIDENT_RUNNING, 0x041d -.set FUNC_TRENT_WAITING, 0x041e -.set FUNC_TRENT_SHOOTING, 0x041f -.set FUNC_TRENT_RUNNING, 0x0420 -.set FUNC_STARTING_AREA_GUARD, 0x0421 -.set FUNC_HIDE, 0x0422 - -props: - briefing 0, 0x0a01 - briefing 1, 0x0a00 - briefing 2, 0x0a02 - briefing 3, 0x0a03 - - beginobjective 0, 0x0a05, DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Retrieve Presidential medical scanner" - require_object_collected OBJ_MEDICALSCANNER - endobjective - - beginobjective 1, 0x0a06, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Activate distress beacon" - complete_flags STAGEFLAG_BEACON_ACTIVATED - fail_flags STAGEFLAG_ESCAPEPOD_DESTROYED - endobjective - - beginobjective 2, 0x0a07, DIFFBIT_PA | DIFFBIT_PD // "Shut down enemy jamming device" - complete_flags STAGEFLAG_SKEDAR_SHUTTLE_DESTROYED - endobjective - - beginobjective 3, 0x0a08, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Retire Presidential clone" - complete_flags STAGEFLAG_CLONE_DEAD - endobjective - - beginobjective 4, 0x0a09, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Locate and rescue President" - complete_flags STAGEFLAG_PRESIDENT_RESCUED - fail_flags STAGEFLAG_PRESIDENT_DEAD - endobjective - - tag 0x09, 1 - hoverbike 0x0100, MODEL_HOVBIKE, 0x0000, 0x05120101, 0x00304300, 0x02000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x01010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - chr 0x00010400, 0x00, 0x0106, BODY_THEKING, HEAD_ELVIS, FUNC_INIT_ELVIS, -1, -1, 1000, 200, 0x00002000, 0x00300000, 0x10, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAIANPISTOL, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PHOENIX, 0x00ffffff, 0x00000000 - chr 0x00010400, 0x38, 0x011f, BODY_THEKING, HEAD_ELVIS, FUNC_HIDE, -1, -1, 1000, 200, 0x00002000, 0x00300000, 0x80, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAIANPISTOL, 0x0038, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PHOENIX, 0x00ffffff, 0x00000000 - chr 0x00010400, 0x06, 0x0110, BODY_PRESIDENT, HEAD_PRESIDENT, FUNC_HIDE, -1, -1, 1000, 200, 0x00002000, 0x00300000, 0x80, 0x01, -1, 0, 0x00000000 - chr 0x00000400, 0x02, 0x010e, BODY_TRENT, HEAD_TRENT, FUNC_HIDE, -1, -1, 1000, 200, 0x80002000, 0x00300000, 0x80, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDY357TRENT, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357LX, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x09, 0x005a, BODY_STRIPES, HEAD_RANDOM, 0x0408, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0a, 0x0059, BODY_STRIPES, HEAD_RANDOM, 0x0408, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x000a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0b, 0x0058, BODY_MRBLONDE, HEAD_MRBLONDE, 0x0408, -1, -1, 100, 13, 0xc0082000, 0x00000040, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSNIPERRIFLE, 0x000b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0c, 0x00d1, BODY_STRIPES, HEAD_RANDOM, 0x0409, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0d, 0x00d4, BODY_STRIPES, HEAD_RANDOM, 0x0409, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0e, 0x00d5, BODY_MRBLONDE, HEAD_MRBLONDE, 0x0409, -1, -1, 100, 13, 0xc0082000, 0x00000040, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSNIPERRIFLE, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x13, 0x004c, BODY_STRIPES, HEAD_RANDOM, 0x040a, -1, -1, 100, 13, 0xe0082000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0013, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x14, 0x005f, BODY_STRIPES, HEAD_RANDOM, 0x040b, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x15, 0x004d, BODY_STRIPES, HEAD_RANDOM, 0x040c, -1, -1, 100, 13, 0xe0082000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0015, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x16, 0x0055, BODY_STRIPES, HEAD_RANDOM, 0x040d, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x17, 0x0081, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 100, 13, 0xe0082000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0017, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x18, 0x0079, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x19, 0x007b, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 100, 13, 0xe0082000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0019, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1a, 0x007c, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1b, 0x016b, BODY_STRIPES, HEAD_RANDOM, 0x040e, -1, -1, 100, 13, 0xe0082000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x001b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1c, 0x016c, BODY_STRIPES, HEAD_RANDOM, 0x040f, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x001c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1d, 0x0048, BODY_STRIPES, HEAD_RANDOM, 0x0410, -1, -1, 100, 13, 0xe0082000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x001d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1e, 0x017e, BODY_STRIPES, HEAD_RANDOM, 0x0411, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x001e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1f, 0x0177, BODY_STRIPES, HEAD_RANDOM, 0x0412, -1, -1, 100, 13, 0xe0082000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x001f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x20, 0x0189, BODY_STRIPES, HEAD_RANDOM, 0x0413, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0020, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x26, 0x01bb, BODY_CHICROB, 0x00, FUNC_INIT_ROBOT, -1, -1, 1000, 50, 0x00080000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000 - chr 0x00000000, 0x27, 0x01bc, BODY_CHICROB, 0x00, FUNC_INIT_ROBOT, -1, -1, 1000, 50, 0x00080000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000 - chr 0x00000000, 0x28, 0x01bd, BODY_CHICROB, 0x00, FUNC_INIT_ROBOT, -1, -1, 1000, 50, 0x00080000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000 - chr 0x00000000, 0x29, 0x01be, BODY_CHICROB, 0x00, FUNC_INIT_ROBOT, -1, -1, 1000, 50, 0x00080000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000 - chr 0x00000400, 0x01, 0x01b5, BODY_TRENT, HEAD_TRENT, FUNC_TRENT_WAITING, -1, -1, 1000, 200, 0x80002000, 0x00300000, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDY357TRENT, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357LX, 0x00ffffff, 0x00000000 - chr 0x00018400, 0x05, 0x01b6, BODY_PRESIDENT, HEAD_PRESIDENT, FUNC_INIT_PRESIDENT, -1, -1, 1000, 200, 0x00002000, 0x00300000, 0x10, 0x01, -1, 0, 0x00000000 - chr 0x00008400, 0x08, 0x0086, BODY_PRESIDENT_CLONE, HEAD_PRESIDENT, 0x041a, -1, -1, 1000, 20, 0x00002000, 0x00300000, 0x02, 0x09, -1, 0, 0x02001400 - chr 0x00000200, 0x2a, 0x0088, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_INIT_BLONDE, -1, -1, 1000, 100, 0x80004608, 0x00008080, 0x02, 0x09, -1, 0, 0x02001400 - weapon 0x0100, MODEL_CHRAVENGER, 0x002a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x2b, 0x0087, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_INIT_BLONDE, -1, -1, 1000, 100, 0x80004608, 0x00008080, 0x02, 0x09, -1, 0, 0x02001400 - weapon 0x0100, MODEL_CHRAVENGER, 0x002b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x2c, 0x0085, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_INIT_BLONDE, -1, -1, 1000, 100, 0x80004608, 0x00008080, 0x02, 0x09, -1, 0, 0x02001400 - weapon 0x0100, MODEL_CHRAVENGER, 0x002c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x2d, 0x019e, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_INIT_BLONDE, -1, -1, 1000, 100, 0x80004608, 0x00008080, 0x02, 0x0a, -1, 0, 0x02001400 - weapon 0x0100, MODEL_CHRAVENGER, 0x002d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x2e, 0x018e, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_INIT_BLONDE, -1, -1, 1000, 100, 0x80004608, 0x00008080, 0x02, 0x0a, -1, 0, 0x02001400 - weapon 0x0100, MODEL_CHRAVENGER, 0x002e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x2f, 0x01a7, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_INIT_BLONDE, -1, -1, 1000, 100, 0x80004608, 0x00008080, 0x02, 0x0a, -1, 0, 0x02001400 - weapon 0x0100, MODEL_CHRAVENGER, 0x002f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x30, 0x002d, BODY_STRIPES, HEAD_RANDOM, FUNC_SPAWNER, -1, -1, 100, 13, 0xe0082000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0030, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x31, 0x0029, BODY_STRIPES, HEAD_RANDOM, FUNC_SPAWNER, -1, -1, 100, 13, 0xe0082000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0031, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x32, 0x009a, BODY_STRIPES, HEAD_RANDOM, FUNC_STARTING_AREA_GUARD, -1, -1, 100, 13, 0xc0082000, 0x10000000, 0x02, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0032, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x33, 0x009b, BODY_STRIPES, HEAD_RANDOM, FUNC_STARTING_AREA_GUARD, -1, -1, 100, 13, 0xc0082000, 0x10000000, 0x02, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0033, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x34, 0x01b7, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_STARTING_AREA_GUARD, -1, -1, 100, 13, 0xc0082000, 0x10000000, 0x02, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSNIPERRIFLE, 0x0034, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x35, 0x0004, BODY_STRIPES, HEAD_RANDOM, FUNC_STARTING_AREA_GUARD, -1, -1, 100, 13, 0x80082000, 0x10000000, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0035, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x36, 0x01b9, BODY_STRIPES, HEAD_RANDOM, FUNC_STARTING_AREA_GUARD, -1, -1, 100, 13, 0x80082101, 0x10000000, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0036, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x37, 0x0012, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_STARTING_AREA_GUARD, -1, -1, 100, 13, 0x80082000, 0x10000000, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSNIPERRIFLE, 0x0037, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x03, 0x0121, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_HIDE, -1, -1, 1000, 200, 0x00002000, 0x00300000, 0x02, 0x01, -1, 0, 0x00000000 - chr 0x00004000, 0x04, 0x012f, BODY_SKEDAR, 0x00, FUNC_HIDE, -1, -1, 1000, 200, 0x00002000, 0x00300000, 0x02, 0x01, -1, 0, 0x00000000 - tag 0x00, 1 - object 0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x01, 1 - object 0x0100, MODEL_PRESCAPSULE, 0x01d8, 0x000001e1, 0x00000101, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00002ee0, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x03, 1 - object 0x0100, MODEL_SK_SHUTTLE, 0xffff, 0x000001e1, 0x00002100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000030d4, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x02, 1 - weapon 0x0180, MODEL_CHRBRIEFCASE, 0x000c, 0x00000001, 0x00000001, 0x00400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PRESIDENTSCANNER, 0x00ffffff, 0x00000000 - autogun 0x0100, MODEL_GROUNDGUN, 0x0043, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000fa0, 0x00000000, 0x00000000, 0x0fff0000, 0x003d0000, 0x00000000, 0x00020000, 0xfffe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000016c, 0x001e0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - autogun 0x0100, MODEL_GROUNDGUN, 0x003b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000fa0, 0x00000000, 0x00000000, 0x0fff0000, 0x00380000, 0x00000000, 0x00020000, 0xfffe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000016c, 0x001e0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x06, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x0106, 0x00000001, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000 - tag 0x07, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x0090, 0x00000001, 0x000000c0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000 - tag 0x08, 1 - weapon 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0106, 0x00120001, 0x00080001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PROXIMITYMINE, 0x00ffffff, 0x00000000 - pad_effect PADEFFECT_SPARKS, 0x000001db - pad_effect PADEFFECT_SMOKE, 0x000001dc - pad_effect PADEFFECT_SPARKS, 0x000001dd - pad_effect PADEFFECT_SPARKS, 0x000001de - endprops - -intro: - outfit OUTFIT_SNOW - intro_weapon WEAPON_FALCON2_SCOPE, -1 - ammo AMMOTYPE_PISTOL, 50 - ammo AMMOTYPE_RIFLE, 100 - intro_weapon WEAPON_REMOTEMINE, -1 - ammo AMMOTYPE_REMOTE_MINE, 3 - intro_weapon WEAPON_NIGHTVISION, -1 - intro_weapon WEAPON_HORIZONSCANNER, -1 - spawn 0x00b8 - endintro - -path00: - pad 0x0059 - pad 0x0096 - pad 0x0095 - pad 0x0094 - pad 0x00be - pad 0x00bd - pad 0x009e - endpath - -path01: - pad 0x00d1 - pad 0x00d2 - pad 0x00d3 - pad 0x00b1 - pad 0x00cd - pad 0x00a6 - pad 0x00b3 - pad 0x00c3 - endpath - -path02: - pad 0x004c - pad 0x0057 - pad 0x005e - pad 0x005d - pad 0x005b - pad 0x005f - endpath - -path03: - pad 0x005f - pad 0x005b - pad 0x005c - pad 0x005d - pad 0x0066 - pad 0x005d - pad 0x005c - pad 0x005b - endpath - -path04: - pad 0x004d - pad 0x0051 - pad 0x0050 - pad 0x0053 - pad 0x0054 - pad 0x0056 - pad 0x006e - endpath - -path05: - pad 0x0055 - pad 0x0052 - pad 0x0054 - pad 0x0056 - pad 0x006e - endpath - -path06: - pad 0x0030 - pad 0x002f - pad 0x0167 - pad 0x0166 - pad 0x0165 - pad 0x0164 - pad 0x016a - pad 0x0169 - pad 0x016b - endpath - -path07: - pad 0x016c - pad 0x016d - pad 0x016e - pad 0x016f - pad 0x0170 - pad 0x0171 - pad 0x0172 - pad 0x0173 - endpath - -path08: - pad 0x0048 - pad 0x0049 - pad 0x004a - pad 0x0182 - pad 0x0183 - pad 0x0180 - pad 0x0181 - endpath - -path09: - pad 0x017e - pad 0x017f - pad 0x017b - pad 0x017c - pad 0x017d - pad 0x0034 - endpath - -path10: - pad 0x0177 - pad 0x0175 - pad 0x0176 - pad 0x0189 - endpath - -path11: - pad 0x0189 - pad 0x0188 - pad 0x0187 - pad 0x0186 - pad 0x0185 - pad 0x0184 - endpath - -path12: - pad 0x0106 - pad 0x0107 - pad 0x00f6 - pad 0x0104 - endpath - -paths: - register_path path00, 0, 0 - register_path path01, 1, 0 - register_path path02, 2, 0 - register_path path03, 3, 0 - register_path path04, 4, 0 - register_path path05, 5, 0 - register_path path06, 6, 0 - register_path path07, 7, 0 - register_path path08, 8, 0 - register_path path09, 9, 0 - register_path path10, 10, 0 - register_path path11, 11, 0 - register_path path12, 12, 0 - endpaths - -func1001_objectives_failed_msg: - yield - set_chr_flag_bank3 CHR_PRES_CLONE, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_PRESIDENT, CHRFLAG3_04000000 - set_function CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG - endfunction - -func1400_setup_counterop: - yield - set_chr_alliance CHR_COUNTEROP, ALLIANCE_ENEMY - set_function CHR_SELF, GFUNC_REBUILD_GROUPS - endfunction - -func1011_setup_snow: - enable_snow TRUE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1002_intro: - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_music_track MUSIC_CRASHSITE_INTRO - camera_movement 0x01b5 - cmd0175 60 - - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x01b6, -1, -1, 0x0600, CHR_JOANNA, 4 - set_chr_hud_visible CHR_JOANNA, TRUE - - restart_timer - fade_to_color 0x000000ff, 0 - fade_to_color 0x00000000, 300 - set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE - - .macro wait_until time loopid - beginloop \loopid - if_controller_button_pressed /*goto*/ 0x65 - if_timer_gt \time, /*goto*/ 0x08 - endloop \loopid - label 0x08 - .endm - - wait_until 724, 0x69 - speak CHR_JOANNA, 0x0a20, 0x7759, CHANNEL_10, COLOR_09_BLUE // "Ahhh... uuhhhh..." - - wait_until 830, 0x6a - speak CHR_JOANNA, 0x0a22, 0x7457, CHANNEL_10, COLOR_06_WHITE // "Agent Dark! Please report!" - - wait_until 980, 0x6b - speak CHR_JOANNA, 0x0a21, 0x775a, CHANNEL_10, COLOR_09_BLUE // "Ahhh... uhh... owww..." - - wait_until 1030, 0x6c - speak CHR_JOANNA, 0x0a23, 0x7458, CHANNEL_10, COLOR_06_WHITE // "Perfect Dark, come in!" - - wait_until 1152, 0x6e - speak CHR_JOANNA, 0x0a24, 0x7459, CHANNEL_10, COLOR_09_BLUE // "A-agent Dark reporting in..." - - wait_until 1372, 0x6f - speak CHR_JOANNA, 0x0a25, 0x745a, CHANNEL_10, COLOR_06_WHITE // "Agent Dark! Please reply!" - - wait_until 1610, 0x6d - speak CHR_JOANNA, 0x0a26, 0x745b, CHANNEL_10, COLOR_09_BLUE // "Something's jamming my transmissions... It's comin..." - - wait_until 1875, 0x70 - speak CHR_JOANNA, -1, 0x8189, CHANNEL_10, COLOR_00_GREEN - - wait_until 1900, 0x71 - speak CHR_JOANNA, -1, 0x818a, CHANNEL_10, COLOR_00_GREEN - - wait_until 1926, 0x72 - speak CHR_JOANNA, -1, 0x8188, CHANNEL_7, COLOR_00_GREEN - - wait_until 1958, 0x73 - speak CHR_JOANNA, -1, 0x8189, CHANNEL_10, COLOR_00_GREEN - - wait_until 2000, 0x74 - speak CHR_JOANNA, 0x0a27, 0x745c, CHANNEL_10, COLOR_09_BLUE // "I'd better find the jamming device and check that ..." - - wait_until 2116, 0x75 - speak CHR_JOANNA, -1, 0x8188, CHANNEL_7, COLOR_00_GREEN - - wait_until 2168, 0x76 - speak CHR_JOANNA, -1, 0x8187, CHANNEL_6, COLOR_00_GREEN - - wait_until 2224, 0x78 - set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_JOANNA, WEAPON_FALCON2_SCOPE, WEAPON_NONE - - wait_until 2305, 0x79 - speak CHR_JOANNA, -1, 0x01db, CHANNEL_5, COLOR_00_GREEN - - wait_until 2392, 0x7a - speak CHR_JOANNA, -1, 0x8189, CHANNEL_7, COLOR_00_GREEN - - wait_until 2412, 0x7b - speak CHR_JOANNA, -1, 0x8187, CHANNEL_6, COLOR_00_GREEN - - wait_until 2460, 0x7c - speak CHR_JOANNA, -1, 0x8188, CHANNEL_7, COLOR_00_GREEN - - wait_until 2513, 0x7d - speak CHR_JOANNA, -1, 0x8189, CHANNEL_6, COLOR_00_GREEN - - wait_until 2685, 0x7e - speak CHR_JOANNA, -1, 0x818a, CHANNEL_7, COLOR_00_GREEN - - beginloop 0x0a - if_camera_animating /*goto*/ 0x31 - goto_next 0x65 - - label 0x31 - if_controller_button_pressed /*goto*/ 0x65 - label 0x31 - endloop 0x0a - - label 0x65 - set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_JOANNA, WEAPON_FALCON2_SCOPE, WEAPON_NONE - mute_channel CHANNEL_7 - mute_channel CHANNEL_6 - mute_channel CHANNEL_5 - mute_channel CHANNEL_10 - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x01b6, -2, -1, 0x0600, CHR_JOANNA, 2 - restart_default_music - reset_ambience - set_chr_hud_visible CHR_JOANNA, FALSE - enter_firstperson - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0402_outro_from_menu: - set_function 0x06, GFUNC_IDLE - set_function 0x03, GFUNC_IDLE - set_function CHR_SKEDAR, GFUNC_IDLE - set_function CHR_ELVIS_OUTRO, GFUNC_IDLE - set_function CHR_TRENT, GFUNC_IDLE - hide_chr CHR_ROBOT1 - hide_chr CHR_ROBOT2 - hide_chr CHR_ROBOT3 - hide_chr CHR_ROBOT4 - set_function CHR_SELF, FUNC_OUTRO - endfunction - -func0402_outro: - set_stage_flag STAGEFLAG_OUTRO_STARTED - hide_object OBJ_HOVERBIKE - set_function CHR_PRESIDENT, GFUNC_IDLE - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x31 - set_target_chr CHR_JOANNA - goto_next 0x08 - label 0x31 - set_target_chr CHR_VELVET - label 0x08 - camera_movement 0x01d9 - set_music_track MUSIC_CRASHSITE_OUTRO - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0xf1, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_P1P2, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 TARGET_CHR, CHRFLAG3_HIDDEN - set_function TARGET_CHR, GFUNC_IDLE - - remove_chr CHR_ELVIS - set_function CHR_ELVIS, GFUNC_IDLE - - set_chr_flag_bank3 CHR_PRESIDENT, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_PRESIDENT, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function CHR_PRESIDENT, GFUNC_IDLE - - set_chr_flag_bank3 TARGET_CHR, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 TARGET_CHR, CHRFLAG3_HIDDEN - set_chr_flag_bank2 TARGET_CHR, CHRFLAG2_00020000 - animation 0x01df, -1, -1, 0x0600, TARGET_CHR, 4 - - set_chr_flag_bank3 CHR_SKEDAR, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_SKEDAR, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_SKEDAR, CHRFLAG2_00020000 - animation 0x01da, -1, -1, 0x0600, CHR_SKEDAR, 4 - - set_chr_flag_bank3 CHR_ELVIS_OUTRO, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_ELVIS_OUTRO, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_ELVIS_OUTRO, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_ELVIS_OUTRO, CHRFLAG2_00020000 - animation 0x01db, -1, -1, 0x0600, CHR_ELVIS_OUTRO, 4 - - set_chr_flag_bank3 CHR_TRENT, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_TRENT, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_TRENT, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_TRENT, CHRFLAG2_00020000 - animation 0x01dc, -1, -1, 0x0600, CHR_TRENT, 4 - - set_chr_flag_bank3 CHR_MRBLONDE, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_MRBLONDE, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_MRBLONDE, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_MRBLONDE, CHRFLAG2_00020000 - animation 0x01dd, -1, -1, 0x0600, CHR_MRBLONDE, 4 - - set_chr_flag_bank3 CHR_PRESIDENT_OUTRO, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_PRESIDENT_OUTRO, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_PRESIDENT_OUTRO, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_PRESIDENT_OUTRO, CHRFLAG2_00020000 - animation 0x01de, -1, -1, 0x0600, CHR_PRESIDENT_OUTRO, 4 - - show_object 0x00 - set_object_flag_bank1 OBJ_CRATE, OBJECTFLAG1_04000000 - set_object_flag_bank2 OBJ_CRATE, OBJECTFLAG2_00000010 - object_do_animation 0x01e0, OBJ_CRATE, 0x04ff, 0xff - restart_timer - set_cutscene_weapon TARGET_CHR, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon TARGET_CHR, WEAPON_NONE, WEAPON_NONE - set_cutscene_weapon CHR_ELVIS_OUTRO, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_ELVIS_OUTRO, WEAPON_HAMMER, WEAPON_NONE - show_nonessential_chrs FALSE - - wait_until 146, 0x69 - play_sound 0x0594, CHANNEL_7 - - wait_until 200, 0x6a - play_sound 0x0595, CHANNEL_6 - - wait_until 248, 0x6b - speak CHR_JOANNA, 0x0a28, 0x745d, CHANNEL_10, COLOR_09_BLUE // "How are you feeling, Mr. President?" - - wait_until 414, 0x6c - speak CHR_JOANNA, 0x0a29, 0x745e, CHANNEL_10, COLOR_08_RED // "Better now, young lady. Today, I think, will take ..." - - wait_until 490, 0x6e - play_sound 0x0596, CHANNEL_5 - - wait_until 526, 0x6f - play_sound 0x0597, CHANNEL_7 - - wait_until 578, 0x6d - play_sound 0x0427, CHANNEL_6 - - wait_until 1078, 0x71 - play_sound 0x0596, CHANNEL_5 - - wait_until 1116, 0x72 - play_sound 0x0597, CHANNEL_7 - - wait_until 1200, 0x70 - speak CHR_JOANNA, 0x0a2a, 0x745f, CHANNEL_10, COLOR_09_BLUE // "Just one thing, sir? What is the Pelagic II that T..." - - wait_until 1474, 0x74 - play_sound 0x0525, CHANNEL_5 - play_sound 0x00f8, CHANNEL_10 - - wait_until 1490, 0x75 - play_sound 0x0596, CHANNEL_7 - - wait_until 1492, 0x76 - play_sound 0x0594, CHANNEL_6 - - wait_until 1556, 0x77 - play_sound 0x00f8, CHANNEL_10 - - wait_until 1626, 0x73 - speak CHR_JOANNA, 0x0a2b, 0x7460, CHANNEL_10, COLOR_08_RED // "It's a U.S. government deep sea research vessel, o..." - - wait_until 1807, 0x79 - play_sound 0x0595, CHANNEL_7 - - wait_until 1850, 0x7a - play_sound 0x0597, CHANNEL_6 - - wait_until 1872, 0x7c - play_sound 0x0595, CHANNEL_7 - - wait_until 2074, 0x7d - play_sound 0x0594, CHANNEL_6 - - wait_until 2270, 0x7e - play_sound 0x0596, CHANNEL_5 - - wait_until 2286, 0x7f - play_sound 0x818a, CHANNEL_7 - - wait_until 2296, 0x80 - play_sound 0x8189, CHANNEL_6 - - wait_until 2316, 0x81 - play_sound 0x8187, CHANNEL_5 - - wait_until 2335, 0x82 - play_sound 0x8188, CHANNEL_7 - - wait_until 2450, 0x7b - speak CHR_JOANNA, 0x0a2c, 0x7461, CHANNEL_10, COLOR_09_BLUE // "Trent has a lot to answer for, but I don't think w..." - - wait_until 3150, 0x83 - speak CHR_JOANNA, 0x0a2d, 0x7462, CHANNEL_10, COLOR_03_RED // "You have failed, Easton. You are a flawed device, ..." - - wait_until 3380, 0x88 - play_sound 0x818a, CHANNEL_7 - - wait_until 3580, 0x87 - speak CHR_JOANNA, 0x0a2e, 0x7463, CHANNEL_10, COLOR_05_GREEN // "Just try it, you Scandinavian freak!" - - wait_until 3747, 0x84 - play_sound 0x8189, CHANNEL_5 - - wait_until 3875, 0x85 - play_sound 0x8188, CHANNEL_7 - - wait_until 4054, 0x86 - play_sound 0x05a0, CHANNEL_5 - play_sound 0x005c, CHANNEL_10 - set_chr_flag_bank2 CHR_MRBLONDE, CHRFLAG2_CLOAKED - set_chr_flag_bank2 CHR_SKEDAR, CHRFLAG2_CLOAKED - - wait_until 4100, 0x95 - unset_chr_flag_bank2 CHR_SKEDAR, CHRFLAG2_CLOAKED - play_sound 0x052a, CHANNEL_10 - - wait_until 4200, 0x78 - speak CHR_JOANNA, 0x0a2f, 0x7464, CHANNEL_10, COLOR_05_GREEN // "Noooooooo!!!" - - wait_until 4240, 0x93 - play_sound 0x05c0, CHANNEL_10 - - wait_until 4296, 0x89 - play_sound 0x007d, CHANNEL_6 - - wait_until 4444, 0x8a - play_sound 0x05a0, CHANNEL_5 - play_sound 0x0530, CHANNEL_10 - - wait_until 4506, 0x8b - play_sound 0x05a1, CHANNEL_7 - - wait_until 4544, 0x96 - set_chr_flag_bank2 CHR_SKEDAR, CHRFLAG2_CLOAKED - - wait_until 4566, 0x8c - play_sound 0x005b, CHANNEL_10 - unset_chr_flag_bank2 CHR_MRBLONDE, CHRFLAG2_CLOAKED - - wait_until 4576, 0x8d - - wait_until 4622, 0x8e - play_sound 0x8187, CHANNEL_7 - - wait_until 4678, 0x8f - play_sound 0x8188, CHANNEL_7 - - wait_until 4752, 0x90 - play_sound 0x8189, CHANNEL_7 - - beginloop 0x0a - if_camera_animating /*goto*/ 0x31 - goto_next 0x65 - - label 0x31 - if_controller_button_pressed /*goto*/ 0x65 - label 0x31 - endloop 0x0a - - label 0x65 - end_level - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0407_init_blonde: - set_accuracy 20 - set_reaction_speed 55 - set_chr_health CHR_SELF, 40 - set_armor 60 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func0406_init_stripes: - set_chr_dodge_rating 2, 0x0a - set_accuracy 16 - set_reaction_speed 55 - set_chr_health CHR_SELF, 60 - set_armor 0 - set_recovery_speed 30 - set_shield 0 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func1003_msg_therestheescapepod: - beginloop 0x06 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_distance_to_pad_lt CHR_P1P2, 1000, 0x01d8, /*goto*/ 0x31 - endloop 0x06 - - label 0x31 - speak CHR_P1P2, 0x0a0a, 0x73cc, CHANNEL_6, COLOR_09_BLUE // "There's the escape pod." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1004_msg_maybetheresabeacon: - restart_timer - beginloop 0x06 - endloop 0x06 - - // Unreachable - label 0x31 - speak CHR_JOANNA, 0x0a0b, 0x73cd, CHANNEL_6, COLOR_09_BLUE // "Maybe there's a beacon in there." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1005_msg_thejamming: - if_difficulty_lt DIFF_PA, /*goto*/ 0x0f - - beginloop 0x06 - consider_coop_for_p1p2_chr CHR_SELF - if_objective_complete 2, /*goto*/ 0x0f - if_chr_in_room CHR_P1P2, 0x00, 0x0029, /*goto*/ 0x31 - endloop 0x06 - - label 0x31 - speak CHR_P1P2, 0x0a0c, 0x73ce, CHANNEL_6, COLOR_09_BLUE // "The jamming... It's coming from that ship." - label 0x0f - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1006_msg_elvisbeable: - beginloop 0x06 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_distance_to_pad_lt CHR_P1P2, 1000, 0x0105, /*goto*/ 0x31 - endloop 0x06 - - label 0x31 - speak CHR_P1P2, 0x0a0d, 0x73cf, CHANNEL_6, COLOR_09_BLUE // "Elvis... He'll be able to protect the President." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -.macro init_path pathid function - set_chr_dodge_rating 2, 0x0a - set_accuracy 16 - set_reaction_speed 55 - set_chr_health CHR_SELF, 60 - set_armor 0 - set_recovery_speed 30 - set_shield 0 - set_return_function CHR_SELF, \function - assign_path \pathid - start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 -.endm - -func0408_start_path00: - init_path 0, 0x0408 - endfunction - -func0409_start_path01: - init_path 1, 0x0409 - endfunction - -func040a_start_path02: - init_path 2, 0x040a - endfunction - -func040b_start_path03: - init_path 3, 0x040b - endfunction - -func040c_start_path04: - init_path 4, 0x040c - endfunction - -func040d_start_path05: - init_path 5, 0x040d - endfunction - -func040e_start_path06: - init_path 6, 0x040e - endfunction - -func040f_start_path07: - init_path 7, 0x040f - endfunction - -func0410_start_path08: - init_path 8, 0x0410 - endfunction - -func0411_start_path09: - init_path 9, 0x0411 - endfunction - -func0412_start_path10: - init_path 10, 0x0412 - endfunction - -func0413_start_path11: - init_path 11, 0x0413 - endfunction - -/** - * This function is unfinished. Target labels don't exist. - * - * Looks like it was intended to be a spawning function. - */ -unregistered_function1: - label 0x66 - restart_timer - - beginloop 0x67 - dprint "TIME\n" - if_timer_lt 1800, /*goto*/ 0x98 - label 0x31 - dprint "SQUAD\n" - if_num_chrs_in_group_gt 1, 0x0f, /*goto*/ 0x98 - call_rng - if_rand_gt 64, /*goto*/ 0x69 - if_rand_gt 128, /*goto*/ 0x6a - if_rand_gt 196, /*goto*/ 0x6b - label 0x98 - endloop 0x67 - - label 0x68 - yield - cmd0145_rebuild_groups - cmd0146_rebuild_groups - goto_first 0x66 - - endfunction - -func0415_unused: - set_chr_dodge_rating 2, 0x0a - set_accuracy 16 - set_reaction_speed 55 - set_chr_health CHR_SELF, 60 - set_armor 0 - set_recovery_speed 30 - set_shield 0 - try_draw_weapon MODEL_CHRAVENGER, WEAPON_K7AVENGER, 0x00000000, /*goto*/ 0x08 - label 0x08 - set_chr_alliance CHR_SELF, ALLIANCE_ENEMY - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - set_group 0x0f - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_SEARCH_FOR_PLAYER - endfunction - -func100c_spawn_dd_guards: - label 0x66 - restart_timer - - beginloop 0x67 - if_stage_flag_eq STAGEFLAG_OUTRO_STARTED, TRUE, /*goto*/ 0x0f - if_stage_flag_eq STAGEFLAG_ELVIS_GAVE_PROXYMINE, TRUE, /*goto*/ 0x31 - if_objective_complete 0, /*goto*/ 0x31 - if_objective_complete 1, /*goto*/ 0x31 - if_objective_complete 2, /*goto*/ 0x31 - if_objective_complete 3, /*goto*/ 0x31 - if_objective_complete 4, /*goto*/ 0x31 - endloop 0x67 - - label 0x31 - dprint "TIME\n" - if_timer_lt 3600, /*goto*/ 0x98 - label 0x31 - dprint "SQUAD\n" - if_num_chrs_in_group_gt 1, 0x0e, /*goto*/ 0x98 - call_rng - if_rand_gt 64, /*goto*/ 0x69 - if_rand_gt 128, /*goto*/ 0x6a - if_rand_gt 196, /*goto*/ 0x6b - - // 1 - if_stage_flag_eq STAGEFLAG_OUTRO_STARTED, TRUE, /*goto*/ 0x0f - try_spawn_chr BODY_DD_GUARD, HEAD_RANDOM, 0x0126, FUNC_SPAWNED_GUARD, 0x00000200, /*goto*/ 0x68 - goto_next 0x98 - - // 2 - label 0x69 - if_stage_flag_eq STAGEFLAG_OUTRO_STARTED, TRUE, /*goto*/ 0x0f - try_spawn_chr BODY_DD_GUARD, HEAD_RANDOM, 0x00e5, FUNC_SPAWNED_GUARD, 0x00000200, /*goto*/ 0x68 - goto_next 0x98 - - // 3 - label 0x6a - if_stage_flag_eq STAGEFLAG_OUTRO_STARTED, TRUE, /*goto*/ 0x0f - try_spawn_chr BODY_DD_GUARD, HEAD_RANDOM, 0x0130, FUNC_SPAWNED_GUARD, 0x00000200, /*goto*/ 0x68 - goto_next 0x98 - - // 4 - label 0x6b - if_stage_flag_eq STAGEFLAG_OUTRO_STARTED, TRUE, /*goto*/ 0x0f - try_spawn_chr BODY_DD_GUARD, HEAD_RANDOM, 0x00fd, FUNC_SPAWNED_GUARD, 0x00000200, /*goto*/ 0x68 - goto_next 0x98 - - // Spawn failed - label 0x98 - goto_first 0x67 - - // Spawn worked - label 0x68 - if_stage_flag_eq STAGEFLAG_OUTRO_STARTED, TRUE, /*goto*/ 0x0f - yield - cmd0145_rebuild_groups - cmd0146_rebuild_groups - goto_first 0x66 - - label 0x0f - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0416_spawned_guard: - set_chr_dodge_rating 2, 0x0a - set_accuracy 16 - set_reaction_speed 55 - set_chr_health CHR_SELF, 60 - set_armor 0 - set_recovery_speed 30 - set_shield 0 - try_draw_weapon MODEL_CHRAVENGER, WEAPON_K7AVENGER, 0x00000000, /*goto*/ 0x08 - label 0x08 - set_chr_alliance CHR_SELF, ALLIANCE_ENEMY - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - set_self_flag_bankx CHRFLAG0_AIVSAI, BANK_0 - set_group 0x0e - cmd0145_rebuild_groups - cmd0146_rebuild_groups - // Pad is next to UFO - run_to_pad 0x0105 - set_return_function CHR_SELF, GFUNC_UNALERTED - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func1008_escapepod: - beginloop 0x06 - consider_coop_for_p1p2_chr CHR_SELF - if_object_in_good_condition OBJ_ESCAPEPOD, /*goto*/ 0x31 - - // Pod destroyed - mute_channel CHANNEL_0 - message CHR_JOANNA, 0x0a0f // "Critical mission object has been destroyed." - set_stage_flag STAGEFLAG_ESCAPEPOD_DESTROYED - set_function CHR_SELF, GFUNC_IDLE - - // Pod healthy - label 0x31 - if_stage_flag_eq STAGEFLAG_BEACON_ACTIVATED, TRUE, /*goto*/ 0x08 - if_chr_activated_object CHR_P1P2, OBJ_ESCAPEPOD, /*goto*/ 0x31 - label 0x08 - reloop 0x06 - - label 0x31 - assign_sound 0x8115, CHANNEL_0 - play_sound_from_object CHANNEL_0, OBJ_ESCAPEPOD, 0x0320, 0x0640 - message CHR_P1P2, 0x0a0e // "Distress beacon has been activated." - set_stage_flag STAGEFLAG_BEACON_ACTIVATED - endloop 0x06 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1009_check_shuttle_destroyed: - yield - yield - yield - yield - yield - - beginloop 0x06 - if_object_in_good_condition OBJ_SKEDAR_SHUTTLE, /*goto*/ 0x31 - message CHR_JOANNA, 0x0a15 // "Jamming device has been shut down." - set_stage_flag STAGEFLAG_SKEDAR_SHUTTLE_DESTROYED - set_function CHR_SELF, GFUNC_IDLE - label 0x31 - endloop 0x06 - - endfunction - -func100a_check_president_dead: - beginloop 0x06 - if_chr_death_animation_finished CHR_PRESIDENT, /*goto*/ 0x31 - if_chr_dying CHR_PRESIDENT, /*goto*/ 0x31 - if_chr_unloaded CHR_PRESIDENT, /*goto*/ 0x31 - endloop 0x06 - - label 0x31 - message CHR_JOANNA, 0x0a16 // "President has been killed." - set_stage_flag STAGEFLAG_PRESIDENT_DEAD - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100b_check_clone_dead: - beginloop 0x06 - if_chr_death_animation_finished CHR_PRES_CLONE, /*goto*/ 0x31 - if_chr_dying CHR_PRES_CLONE, /*goto*/ 0x31 - if_chr_unloaded CHR_PRES_CLONE, /*goto*/ 0x31 - endloop 0x06 - - label 0x31 - message CHR_JOANNA, 0x0a17 // "Presidential clone has been eliminated." - set_stage_flag STAGEFLAG_CLONE_DEAD - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0403_init_elvis: - set_shield 100 - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_10000000 - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_accuracy 100 - set_reaction_speed 100 - set_armor 1000 - set_chr_health CHR_SELF, 1000 - set_self_flag_bank3 CHRFLAG3_00080000 - assign_path 12 - start_path - set_function CHR_SELF, FUNC_ELVIS - endfunction - -func0404_elvis: - set_onshot_function FUNC_ELVIS - label 0x04 - restart_timer - - beginloop 0x06 - if_chr_idle /*goto*/ 0x31 - if_path_started /*goto*/ 0x31 - restart_timer - start_path - label 0x31 - dprint "GO TO PAD\n" - set_target_chr CHR_JOANNA - set_follow_chr CHR_JOANNA - if_stage_flag_eq STAGEFLAG_ELVIS_GAVE_PROXYMINE, TRUE, /*goto*/ 0x31 - if_objective_complete 0, /*goto*/ 0x31 - if_objective_complete 1, /*goto*/ 0x31 - if_objective_complete 2, /*goto*/ 0x31 - if_objective_complete 3, /*goto*/ 0x31 - if_objective_complete 4, /*goto*/ 0x31 - if_chr_sees_player /*goto*/ 0xa5 - set_target_chr CHR_VELVET - set_follow_chr CHR_VELVET - if_chr_sees_player /*goto*/ 0xa5 - label 0x31 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x0a - if_timer_gt 600, /*goto*/ 0x0b - endloop 0x06 - - // 10 seconds passed - label 0x0b - call_rng - if_rand_gt 128, /*goto*/ 0x31 - - // 50% chance of doing look around animation - call_rng - if_rand_lt 64, /*goto*/ 0x99 - if_rand_lt 128, /*goto*/ 0x9a - if_rand_lt 196, /*goto*/ 0x9b - - set_self_flag_bankx CHRFLAG1_DONE_SEARCH_ANIM, BANK_1 - animation ANIM_LOOK_AROUND_025B, 0, -1, 0x100a, CHR_SELF, 2 - goto_next 0x31 - - label 0x99 - animation ANIM_LOOK_AROUND_025C, 0, -1, 0x100a, CHR_SELF, 2 - goto_next 0x31 - - label 0x9a - animation ANIM_LOOK_AROUND_025D, 0, -1, 0x100a, CHR_SELF, 2 - goto_next 0x31 - - label 0x9b - animation ANIM_LOOK_AROUND_025E, 0, -1, 0x100a, CHR_SELF, 2 - - label 0x31 - goto_first 0x04 - - // Detected enemy - label 0x0a - dprint "DETECTED\n" - set_return_function CHR_SELF, FUNC_INIT_ELVIS - set_onshot_function FUNC_INIT_ELVIS - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - - // Sees player - label 0xa5 - set_target_chr FOLLOW_CHR - try_run_to_target_chr /*goto*/ 0x12 - - beginloop 0x12 - dprint "GO TOWARDS\n" - if_chr_distance_lt 300, /*goto*/ 0x13 - if_timer_gt 180, /*goto*/ 0x08 - endloop 0x12 - - // Running towards player for 3 seconds - check if can still see player - label 0x08 - if_chr_sees_player /*goto*/ 0x31 - goto_first 0x04 - - label 0x31 - goto_first 0xa5 - - // Close to player - label 0x13 - do_special_animation -1 - speak TARGET_CHR, 0x0a1f, 0x12e2, CHANNEL_6, COLOR_04_ORANGE // "Take this; you should find it useful!" - give_object_to_chr OBJ_PROXYMINE, TARGET_CHR - - beginloop 0x14 - if_sound_finished CHANNEL_6, /*goto*/ 0x31 - endloop 0x14 - - label 0x31 - stop_chr - set_stage_flag STAGEFLAG_ELVIS_GAVE_PROXYMINE - goto_first 0x04 - - endfunction - -func0405_unused: - jog_to_pad 0x0107 - beginloop 0x06 - endloop 0x06 - - endfunction - -func0417_init_robot: - set_accuracy 40 - set_self_flag_bank3 CHRFLAG3_00020000 - set_chr_health CHR_SELF, 250 - set_function CHR_SELF, FUNC_ROBOT - endfunction - -func0418_robot: - set_onshot_function FUNC_ROBOT - label 0x66 - set_self_flag_bank3 CHRFLAG3_00040000 - if_chr_dying CHR_SELF, /*goto*/ 0x11 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x11 - if_chr_unloaded CHR_SELF, /*goto*/ 0x08 - goto_next 0x04 - label 0x08 - yield - damage_chr CHR_SELF, 18 - goto_first 0x66 - - beginloop 0x04 - dprint "PART 1\n" - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x0d - if_target_chr_in_sight /*goto*/ 0x0d - call_rng - if_rand_gt 5, /*goto*/ 0x31 - if_sound_finished CHANNEL_5, /*goto*/ 0x08 - goto_next 0x31 - - // Make random noise - label 0x08 - call_rng - if_rand_lt 86, /*goto*/ 0x0b - if_rand_lt 172, /*goto*/ 0x0c - assign_sound 0x046a, CHANNEL_5 - play_sound_from_entity CHANNEL_5, CHR_SELF, 0x0bb8, 0x1770, 0x01 - goto_next 0x31 - label 0x0b - assign_sound 0x046b, CHANNEL_5 - play_sound_from_entity CHANNEL_5, CHR_SELF, 0x0bb8, 0x1770, 0x01 - goto_next 0x31 - label 0x0c - assign_sound 0x046c, CHANNEL_5 - play_sound_from_entity CHANNEL_5, CHR_SELF, 0x0bb8, 0x1770, 0x01 - label 0x31 - endloop 0x04 - - // Alerted - label 0x0d - set_group_alertness 100 - restart_timer - if_chr_distance_lt 300, /*goto*/ 0x31 - if_chr_distance_gt 1000, /*goto*/ 0x15 - if_target_chr_in_sight /*goto*/ 0x13 - - // Distance > 1000 or not in sight - label 0x15 - try_run_to_target_chr_with_hand_up /*goto*/ 0x08 - - // Distance < 300 - label 0x31 - stop_chr - - label 0x08 - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x0a - say_quip CHR_JOANNA, 0x1f, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00 - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - - beginloop 0x0a - dprint "PART 2\n" - if_timer_gt 180, /*goto*/ 0x08 - if_chr_distance_gt 1000, /*goto*/ 0x15 - dprint "PART 2\n" - if_target_chr_in_sight /*goto*/ 0x13 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x13 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - label 0x15 - endloop 0x0a - - // Player in sight - label 0x13 - set_target_chr CHR_P1P2 - restart_timer - dprint "PART 3a\n" - try_aim_and_shoot_thing1 0x0200, 0x0000, /*goto*/ 0x0e - goto_first 0x04 - - beginloop 0x0e - if_chr_stopped /*goto*/ 0x08 - endloop 0x0e - - label 0x08 - goto_first 0x0d - - label 0x11 - assign_sound 0x1aec, CHANNEL_6 - play_sound_from_entity CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Assigned to two stripes guards. - */ -func0414_spawner: - set_self_flag_bank3 CHRFLAG3_00000002 - - beginloop 0x06 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_sees_player /*goto*/ 0x0a - // Room 0x0029 is the skedar shuttle area - if_chr_in_room CHR_P1P2, 0x00, 0x0029, /*goto*/ 0x0a - reloop 0x06 - - label 0x0a - dprint "HEARSPAWN\n" - label 0x31 - if_never_been_onscreen /*goto*/ 0x52 - dprint "NEVER VISFAIL\n" - if_chr_sees_player /*goto*/ 0x0a - endloop 0x06 - - label 0x0a - set_function CHR_SELF, GFUNC_ALERTED - - label 0x52 - dprint "CHECK DUPE\n" - if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x52 - set_function CHR_SELF, FUNC_SPAWNER - - label 0x52 - dprint "CREATE SPAWN\n" - try_spawn_clone2 CHR_SELF, GFUNC_ALERTED, 0x00000000, /*goto*/ 0x31 - dprint "CREATE FAIL\n" - set_function CHR_SELF, FUNC_SPAWNER - - label 0x31 - yield - set_function CHR_SELF, FUNC_SPAWNER - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0419_unused: - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0422_hide: - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_UNEXPLODABLE - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func041a_pres_clone: - set_self_flag_bank3 CHRFLAG3_00020000 - set_self_flag_bank3 CHRFLAG3_00080000 - - beginloop 0x06 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x31 - if_player_looking_at_something_maybe 0x00, 0x00, 0x01, /*goto*/ 0x08 - if_target_chr_in_sight /*goto*/ 0x31 - label 0x08 - endloop 0x06 - - // Alert, or player in sight and looking at clone - label 0x31 - run_to_pad 0x002c - - beginloop 0x0a - if_chr_stopped /*goto*/ 0x31 - endloop 0x0a - - label 0x31 - stop_chr - - label 0xa5 - animation ANIM_COWER_0229, -1, -1, 0x100a, CHR_SELF, 2 - - beginloop 0x10 - if_chr_stopped /*goto*/ 0x31 - endloop 0x10 - - label 0x31 - goto_first 0xa5 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func041b_init_president: - set_self_flag_bank3 CHRFLAG3_00080000 - set_chr_health CHR_SELF, 300 - set_shield 0 - set_function CHR_SELF, FUNC_PRESIDENT_WAITING - endfunction - -func041c_president_waiting: - set_onshot_function FUNC_PRESIDENT_WAITING - if_chr_dying CHR_SELF, /*goto*/ 0x08 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x08 - if_chr_unloaded CHR_SELF, /*goto*/ 0x08 - goto_next 0x31 - - // Dying - label 0x08 - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - label 0x31 - stop_chr - yield - - // Wait until trigger and can see player - beginloop 0x06 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_stage_flag_eq STAGEFLAG_TRIGGER_PRESIDENT_RUNNING, TRUE, /*goto*/ 0x31 - goto_first 0x06 - - label 0x31 - if_chr_sees_player /*goto*/ 0x31 - endloop 0x06 - - label 0x31 - set_onshot_function FUNC_PRESIDENT_RUNNING - set_function CHR_SELF, FUNC_PRESIDENT_RUNNING - endfunction - -func041d_president_running: - set_self_flag_bank3 CHRFLAG3_01000000 - set_alertness 100 - set_onshot_function FUNC_PRESIDENT_RUNNING - dprint "RESTART\n" - yield - if_chr_dying CHR_SELF, /*goto*/ 0x08 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x08 - if_chr_unloaded CHR_SELF, /*goto*/ 0x08 - goto_next 0x31 - - // Dying - label 0x08 - set_onshot_function GFUNC_IDLE - restart_timer - - beginloop 0x9c - dprint "KILLED\n" - if_timer_gt 15, /*goto*/ 0x08 - endloop 0x9c - - label 0x08 - assign_sound 0x1abf, CHANNEL_6 - play_sound_from_entity CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01 - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x31 - dprint "b4 shield check\n" - if_just_injured CHR_SELF, /*goto*/ 0x08 - goto_next 0x9d - - // Injured - label 0x08 - restart_timer - assign_sound 0x1ac2, CHANNEL_6 - play_sound_from_entity CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01 - - beginloop 0x9e - dprint "INJURED\n" - if_num_times_shot_lt 1, /*goto*/ 0x08 - if_timer_lt 20, /*goto*/ 0x08 - label 0x08 - if_chr_stopped /*goto*/ 0x9d - endloop 0x9e - - // Main logic - label 0x9d - stop_chr - restart_timer - - beginloop 0x9f - dprint "WAIT\n" - // Room 0x0014 = UFO area - // Yes, checking this 5 times is unnecessary - if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5 - if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5 - if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5 - if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5 - if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5 - dprint "target\n" - if_chr_sees_player /*goto*/ 0x08 - goto_next 0xa0 - - label 0x08 - if_timer_gt 1250, /*goto*/ 0x31 - if_chr_distance_gt 200, /*goto*/ 0xa0 - endloop 0x9f - - // 20.8 seconds passed - // Pointless RNG check - label 0x31 - call_rng - if_rand_lt 64, /*goto*/ 0x31 - goto_first 0x9d - label 0x31 - goto_first 0x9d - - // Sees player - label 0x08 - goto_first 0x9d - - // Can't see player, or distance > 200 - label 0xa0 - restart_timer - label 0x31 - if_chr_distance_gt 300, /*goto*/ 0x31 - try_run_to_target_chr_with_hand_up /*goto*/ 0xa1 - label 0x31 - try_run_to_target_chr /*goto*/ 0xa1 - - beginloop 0xa1 - dprint "FOLLOW\n" - if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5 - if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5 - if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5 - if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5 - if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5 - if_chr_distance_lt 100, /*goto*/ 0xa2 - if_chr_stopped /*goto*/ 0xa2 - if_timer_gt 360, /*goto*/ 0x31 - endloop 0xa1 - - // 6 seconds passed while running - label 0x31 - goto_first 0xa0 - - // Unreachable - label 0x08 - goto_first 0xa0 - - // Next to player - label 0xa2 - goto_first 0x9d - - // Unreachable - label 0xa3 - try_run_to_target_chr /*goto*/ 0xa4 - - // Unreachable - beginloop 0xa4 - dprint "RUNNFO\n" - if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5 - if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5 - if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5 - if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5 - if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5 - endloop 0xa4 - - // Unreachable - label 0xa6 - goto_first 0x9d - - // Jo is near UFO - label 0xa5 - run_to_pad 0x0105 - - beginloop 0x0b - if_chr_stopped /*goto*/ 0x08 - endloop 0x0b - - label 0x08 - stop_chr - set_chr_alliance CHR_SELF, 0x80 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - if_stage_flag_eq STAGEFLAG_PRESIDENT_RESCUED, TRUE, /*goto*/ 0x31 - message TARGET_CHR, 0x0a19 // "President has been rescued." - set_stage_flag STAGEFLAG_PRESIDENT_RESCUED - label 0x31 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100e_check_robots_left: - beginloop 0x06 - if_chr_death_animation_finished CHR_ROBOT1, /*goto*/ 0x31 - if_chr_dying CHR_ROBOT1, /*goto*/ 0x31 - if_chr_unloaded CHR_ROBOT1, /*goto*/ 0x31 - if_chr_in_room CHR_ROBOT1, 0x00, 0x004a, /*goto*/ 0x08 - if_chr_in_room CHR_ROBOT1, 0x00, 0x004b, /*goto*/ 0x08 - if_chr_in_room CHR_ROBOT1, 0x00, 0x004c, /*goto*/ 0x08 - if_chr_in_room CHR_ROBOT1, 0x00, 0x004d, /*goto*/ 0x08 - goto_next 0x31 - label 0x08 - reloop 0x06 - - label 0x31 - if_chr_death_animation_finished CHR_ROBOT2, /*goto*/ 0x31 - if_chr_dying CHR_ROBOT2, /*goto*/ 0x31 - if_chr_unloaded CHR_ROBOT2, /*goto*/ 0x31 - if_chr_in_room CHR_ROBOT2, 0x00, 0x004a, /*goto*/ 0x08 - if_chr_in_room CHR_ROBOT2, 0x00, 0x004b, /*goto*/ 0x08 - if_chr_in_room CHR_ROBOT2, 0x00, 0x004c, /*goto*/ 0x08 - if_chr_in_room CHR_ROBOT2, 0x00, 0x004d, /*goto*/ 0x08 - goto_next 0x31 - label 0x08 - reloop 0x06 - - label 0x31 - if_chr_death_animation_finished CHR_ROBOT3, /*goto*/ 0x31 - if_chr_dying CHR_ROBOT3, /*goto*/ 0x31 - if_chr_unloaded CHR_ROBOT3, /*goto*/ 0x31 - if_chr_in_room CHR_ROBOT3, 0x00, 0x004a, /*goto*/ 0x08 - if_chr_in_room CHR_ROBOT3, 0x00, 0x004b, /*goto*/ 0x08 - if_chr_in_room CHR_ROBOT3, 0x00, 0x004c, /*goto*/ 0x08 - if_chr_in_room CHR_ROBOT3, 0x00, 0x004d, /*goto*/ 0x08 - goto_next 0x31 - label 0x08 - reloop 0x06 - - label 0x31 - if_chr_death_animation_finished CHR_ROBOT4, /*goto*/ 0x31 - if_chr_dying CHR_ROBOT4, /*goto*/ 0x31 - if_chr_unloaded CHR_ROBOT4, /*goto*/ 0x31 - if_chr_in_room CHR_ROBOT4, 0x00, 0x004a, /*goto*/ 0x08 - if_chr_in_room CHR_ROBOT4, 0x00, 0x004b, /*goto*/ 0x08 - if_chr_in_room CHR_ROBOT4, 0x00, 0x004c, /*goto*/ 0x08 - if_chr_in_room CHR_ROBOT4, 0x00, 0x004d, /*goto*/ 0x08 - goto_next 0x31 - label 0x08 - reloop 0x06 - - label 0x31 - if_stage_flag_eq STAGEFLAG_TRENT_RUNNING, TRUE, /*goto*/ 0x31 - goto_first 0x06 - - label 0x31 - set_stage_flag STAGEFLAG_TRIGGER_PRESIDENT_RUNNING - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func041e_trent_waiting: - set_accuracy 0 - set_self_flag_bank3 CHRFLAG3_00000040 - set_shield 100 - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_10000000 - - beginloop 0x06 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_sees_player /*goto*/ 0x08 - endloop 0x06 - - label 0x08 - restart_timer - speak CHR_P1P2, 0x0a18, 0x12ca, CHANNEL_6, COLOR_05_GREEN // "You'll never save him now!" - animation ANIM_TALKING_0231, 0, -1, 0x1010, CHR_SELF, 2 - - beginloop 0x0a - if_timer_gt 120, /*goto*/ 0x08 - endloop 0x0a - - label 0x08 - set_function CHR_SELF, FUNC_TRENT_SHOOTING - endfunction - -func041f_trent_shooting: - label 0x04 - stop_chr - - beginloop 0x06 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - try_unset_chr_flag_bank3_02000000 CHR_SELF, /*goto*/ 0x31 - if_target_chr_in_sight /*goto*/ 0x08 - endloop 0x06 - - label 0x31 - set_function CHR_SELF, FUNC_TRENT_RUNNING - - label 0x08 - label 0xa8 - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0xa7 - label 0xa7 - say_quip CHR_JOANNA, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00 - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x0a - goto_next 0x31 - - // Shoot worked - beginloop 0x0a - if_chr_stopped /*goto*/ 0x08 - endloop 0x0a - - label 0x08 - goto_next 0x0b - - // Unreachable - if_chr_dying TARGET_CHR, /*goto*/ 0x0b - goto_first 0x04 - - // Shoot failed - label 0x31 - goto_first 0x04 - - label 0x0b - restart_timer - animation ANIM_TALKING_0231, 0, -1, 0x1010, CHR_SELF, 2 - - beginloop 0x0c - if_timer_gt 120, /*goto*/ 0x08 - endloop 0x0c - - label 0x08 - set_function CHR_SELF, FUNC_TRENT_RUNNING - endfunction - -func0420_trent_running: - set_self_flag_bank3 CHRFLAG3_00080000 - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_stage_flag STAGEFLAG_TRENT_RUNNING - restart_timer - run_to_pad 0x0027 - - beginloop 0x0a - if_timer_gt 300, /*goto*/ 0x31 - endloop 0x0a - - label 0x31 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_sees_player /*goto*/ 0x31 - goto_next 0x08 - - label 0x31 - if_chr_stopped /*goto*/ 0x08 - goto_first 0x0a - - // Player not in sight - label 0x08 - if_within_units_of_sight 30, /*goto*/ 0x31 - goto_next 0x08 - - label 0x31 - goto_first 0x0a - - // Player definitely not in sight - label 0x08 - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100f_check_end_level: - beginloop 0x0a - if_all_objectives_complete /*goto*/ 0x08 - endloop 0x0a - - label 0x08 - restart_timer - - beginloop 0x0b - if_timer_gt 120, /*goto*/ 0x31 - endloop 0x0b - - label 0x31 - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x31 - if_chr_dying CHR_JOANNA, /*goto*/ 0x31 - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x31 - goto_next 0x08 - - label 0x31 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x31 - if_chr_dying CHR_VELVET, /*goto*/ 0x31 - if_chr_unloaded CHR_VELVET, /*goto*/ 0x31 - - // Jo or Velvet alive - label 0x08 - if_chr_death_animation_finished CHR_PRESIDENT, /*goto*/ 0x32 - if_chr_dying CHR_PRESIDENT, /*goto*/ 0x32 - if_chr_unloaded CHR_PRESIDENT, /*goto*/ 0x32 - set_function CHR_PRESIDENT, GFUNC_STOP_AND_IDLE - - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x31 - if_chr_dying CHR_JOANNA, /*goto*/ 0x31 - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x31 - goto_next 0x08 - - // Both players dead - label 0x31 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x31 - if_chr_dying CHR_VELVET, /*goto*/ 0x31 - if_chr_unloaded CHR_VELVET, /*goto*/ 0x31 - goto_next 0x08 - - label 0x31 - end_level - set_function CHR_SELF, GFUNC_IDLE - - // Mission complete - label 0x08 - set_invincible CHR_JOANNA - set_function CHR_SELF, FUNC_OUTRO - - // President dead - label 0x32 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Assigned to 4 stripes and 2 blondes near the starting area. - */ -func0421_starting_area_guard: - label 0x0a - set_return_function CHR_SELF, GFUNC_UNALERTED - set_function CHR_SELF, GFUNC_SEARCH_FOR_PLAYER - endfunction - -func1010_set_cave_lights: - yield - set_lights_state 0x0064, 0x01, 0x06, 0x00, 0x00 - set_lights_state 0x0063, 0x01, 0x06, 0x00, 0x00 - set_lights_state 0x0062, 0x01, 0x06, 0x00, 0x00 - set_lights_state 0x0061, 0x01, 0x06, 0x00, 0x00 - set_lights_state 0x0060, 0x01, 0x06, 0x00, 0x00 - set_lights_state 0x005f, 0x01, 0x06, 0x00, 0x00 - set_lights_state 0x005e, 0x01, 0x06, 0x00, 0x00 - set_lights_state 0x005d, 0x01, 0x06, 0x00, 0x00 - set_lights_state 0x005c, 0x01, 0x06, 0x00, 0x00 - set_lights_state 0x005b, 0x01, 0x06, 0x00, 0x00 - set_lights_state 0x005a, 0x01, 0x06, 0x00, 0x00 - set_lights_state 0x0059, 0x01, 0x06, 0x00, 0x00 - set_lights_state 0x0053, 0x01, 0x06, 0x00, 0x00 - set_lights_state 0x0058, 0x01, 0x06, 0x00, 0x00 - set_lights_state 0x0056, 0x01, 0x06, 0x00, 0x00 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1012_give_medicalscanner: - yield - if_difficulty_gt DIFF_A, /*goto*/ 0x31 - give_object_to_chr OBJ_MEDICALSCANNER, CHR_JOANNA - label 0x31 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1013_setup_rtracker: - yield - set_object_flag_bank2 OBJ_PROXYMINE, OBJECTFLAG2_RTRACKED_BLUE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1016_hide_hoverbike: - yield - if_eeprom_flag_is_set EEPROMFLAG_CRASHSITE_BIKE, /*goto*/ 0x08 - hide_object OBJ_HOVERBIKE - label 0x08 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1014_setup_skedar_shuttle: - yield - show_object OBJ_SKEDAR_SHUTTLE - set_object_flag_bank2 OBJ_SKEDAR_SHUTTLE, OBJECTFLAG2_00000010 - set_object_part_visible OBJ_SKEDAR_SHUTTLE, FALSE - object_do_animation 0x0486, OBJ_SKEDAR_SHUTTLE, 0x01ff, 0xff - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1415_setup_lighting: - yield - set_lighting 0x0001, 0x05, 0x01 - set_lighting 0x0001, 0x06, 0x01 - set_lighting 0x0002, 0x05, 0x01 - set_lighting 0x0002, 0x06, 0x01 - set_lighting 0x0003, 0x06, 0x01 - set_lighting 0x0004, 0x06, 0x01 - set_lighting 0x0005, 0x06, 0x01 - set_lighting 0x0006, 0x05, 0x01 - set_lighting 0x0006, 0x06, 0x01 - set_lighting 0x0008, 0x06, 0x01 - set_lighting 0x0009, 0x05, 0x01 - set_lighting 0x0009, 0x06, 0x01 - set_lighting 0x000a, 0x05, 0x01 - set_lighting 0x000a, 0x06, 0x01 - set_lighting 0x000b, 0x05, 0x01 - set_lighting 0x000b, 0x06, 0x01 - set_lighting 0x000c, 0x05, 0x01 - set_lighting 0x000c, 0x06, 0x01 - set_lighting 0x000d, 0x05, 0x01 - set_lighting 0x000d, 0x06, 0x01 - set_lighting 0x000e, 0x05, 0x01 - set_lighting 0x000e, 0x06, 0x01 - set_lighting 0x000f, 0x05, 0x01 - set_lighting 0x000f, 0x06, 0x01 - set_lighting 0x0010, 0x05, 0x01 - set_lighting 0x0010, 0x06, 0x01 - set_lighting 0x0011, 0x05, 0x01 - set_lighting 0x0011, 0x06, 0x01 - set_lighting 0x0012, 0x05, 0x01 - set_lighting 0x0012, 0x06, 0x01 - set_lighting 0x0013, 0x05, 0x01 - set_lighting 0x0013, 0x06, 0x01 - set_lighting 0x0014, 0x05, 0x01 - set_lighting 0x0014, 0x06, 0x01 - set_lighting 0x0015, 0x05, 0x01 - set_lighting 0x0015, 0x06, 0x01 - set_lighting 0x0016, 0x05, 0x01 - set_lighting 0x0016, 0x06, 0x01 - set_lighting 0x0018, 0x05, 0x01 - set_lighting 0x0018, 0x06, 0x01 - set_lighting 0x0019, 0x05, 0x01 - set_lighting 0x0019, 0x06, 0x01 - set_lighting 0x001a, 0x06, 0x01 - set_lighting 0x001b, 0x05, 0x01 - set_lighting 0x001b, 0x06, 0x01 - set_lighting 0x001c, 0x05, 0x01 - set_lighting 0x001c, 0x06, 0x01 - set_lighting 0x001d, 0x06, 0x01 - set_lighting 0x001e, 0x05, 0x01 - set_lighting 0x001e, 0x06, 0x01 - set_lighting 0x0025, 0x05, 0x01 - set_lighting 0x0025, 0x06, 0x01 - set_lighting 0x0026, 0x05, 0x01 - set_lighting 0x0026, 0x06, 0x01 - set_lighting 0x0027, 0x05, 0x01 - set_lighting 0x0027, 0x06, 0x01 - set_lighting 0x0028, 0x05, 0x01 - set_lighting 0x0028, 0x06, 0x01 - set_lighting 0x0029, 0x05, 0x01 - set_lighting 0x0029, 0x06, 0x01 - set_lighting 0x002a, 0x05, 0x01 - set_lighting 0x002a, 0x06, 0x01 - set_lighting 0x002b, 0x05, 0x01 - set_lighting 0x002b, 0x06, 0x01 - set_lighting 0x002c, 0x05, 0x01 - set_lighting 0x002c, 0x06, 0x01 - set_lighting 0x002e, 0x05, 0x01 - set_lighting 0x002e, 0x06, 0x01 - set_lighting 0x002f, 0x05, 0x01 - set_lighting 0x002f, 0x06, 0x01 - set_lighting 0x0030, 0x05, 0x01 - set_lighting 0x0030, 0x06, 0x01 - set_lighting 0x0031, 0x05, 0x01 - set_lighting 0x0031, 0x06, 0x01 - set_lighting 0x0032, 0x05, 0x01 - set_lighting 0x0032, 0x06, 0x01 - set_lighting 0x0033, 0x05, 0x01 - set_lighting 0x0033, 0x06, 0x01 - set_lighting 0x0035, 0x05, 0x01 - set_lighting 0x0035, 0x06, 0x01 - set_lighting 0x0036, 0x05, 0x01 - set_lighting 0x0036, 0x06, 0x01 - set_lighting 0x0038, 0x05, 0x01 - set_lighting 0x0038, 0x06, 0x01 - set_lighting 0x003a, 0x05, 0x01 - set_lighting 0x003a, 0x06, 0x01 - set_lighting 0x003b, 0x05, 0x01 - set_lighting 0x003b, 0x06, 0x01 - set_lighting 0x003c, 0x05, 0x01 - set_lighting 0x003c, 0x06, 0x01 - set_lighting 0x003d, 0x05, 0x01 - set_lighting 0x003d, 0x06, 0x01 - set_lighting 0x003e, 0x06, 0x01 - set_lighting 0x003f, 0x05, 0x01 - set_lighting 0x0045, 0x05, 0x01 - set_lighting 0x0065, 0x05, 0x01 - set_lighting 0x0065, 0x06, 0x01 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -functions: - register_function func1400_setup_counterop 0x1400 - register_function func1001_objectives_failed_msg 0x1001 - register_function func1002_intro 0x1002 - register_function func1003_msg_therestheescapepod 0x1003 - register_function func1004_msg_maybetheresabeacon 0x1004 - register_function func1005_msg_thejamming 0x1005 - register_function func1006_msg_elvisbeable 0x1006 - register_function func1008_escapepod 0x1008 - register_function func1009_check_shuttle_destroyed 0x1009 - register_function func100a_check_president_dead 0x100a - register_function func100b_check_clone_dead 0x100b - register_function func100c_spawn_dd_guards 0x100c - register_function func100e_check_robots_left 0x100e - register_function func100f_check_end_level 0x100f - register_function func1010_set_cave_lights 0x1010 - register_function func1011_setup_snow 0x1011 - register_function func1012_give_medicalscanner 0x1012 - register_function func1013_setup_rtracker 0x1013 - register_function func1014_setup_skedar_shuttle 0x1014 - register_function func1415_setup_lighting 0x1415 - register_function func1016_hide_hoverbike 0x1016 - - register_function func1002_intro 0x0401 - register_function func0402_outro 0x0402 - register_function func0403_init_elvis 0x0403 - register_function func0404_elvis 0x0404 - register_function func0405_unused 0x0405 - - register_function func1002_intro 0x0c00 - register_function func0402_outro_from_menu 0x0c01 - - register_function func0406_init_stripes 0x0406 - register_function func0407_init_blonde 0x0407 - register_function func0408_start_path00 0x0408 - register_function func0409_start_path01 0x0409 - register_function func040a_start_path02 0x040a - register_function func040b_start_path03 0x040b - register_function func040c_start_path04 0x040c - register_function func040d_start_path05 0x040d - register_function func040e_start_path06 0x040e - register_function func040f_start_path07 0x040f - register_function func0410_start_path08 0x0410 - register_function func0411_start_path09 0x0411 - register_function func0412_start_path10 0x0412 - register_function func0413_start_path11 0x0413 - register_function func0414_spawner 0x0414 - register_function func0415_unused 0x0415 - register_function func0416_spawned_guard 0x0416 - register_function func0417_init_robot 0x0417 - register_function func0418_robot 0x0418 - register_function func0419_unused 0x0419 - register_function func041a_pres_clone 0x041a - register_function func041c_president_waiting 0x041c - register_function func041b_init_president 0x041b - register_function func041d_president_running 0x041d - register_function func041e_trent_waiting 0x041e - register_function func041f_trent_shooting 0x041f - register_function func0420_trent_running 0x0420 - register_function func0421_starting_area_guard 0x0421 - register_function func0422_hide 0x0422 - endfunctions - -.align 4 diff --git a/asm/setup/setupcat.s b/asm/setup/setupcat.s deleted file mode 100644 index d4e184ab0..000000000 --- a/asm/setup/setupcat.s +++ /dev/null @@ -1,20 +0,0 @@ -# -# Stage ID 0x28 -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupcave.s b/asm/setup/setupcave.s deleted file mode 100644 index 7575644fc..000000000 --- a/asm/setup/setupcave.s +++ /dev/null @@ -1,4315 +0,0 @@ -# -# Air Base -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -// Characters -.set CHR_STEWARDESS, 0x38 -.set CHR_SECRETARY, 0x39 -.set CHR_OFFICE1, 0x3c -.set CHR_OFFICE2, 0x3d -.set CHR_TRENT, 0x47 -.set CHR_OUTRO_NSA, 0x49 - -// Objects -.set OBJ_BRIEFCASE1, 0x00 -.set OBJ_CONSOLE, 0x01 -.set OBJ_UNIFORM, 0x02 -.set OBJ_FLIGHTPLANS, 0x03 -.set OBJ_BAGGAGE_CARRIER, 0x04 -.set OBJ_LASER_PANEL, 0x05 -.set OBJ_BRIEFCASE2, 0x06 -.set OBJ_ALARM, 0x19 -.set OBJ_SAFE_SWITCH, 0x1a -.set OBJ_SAFE_SWITCH_COVER, 0x1f -.set OBJ_VERTICAL_LIFT, 0x21 // the one leading to the plane (not briefcase office) -.set OBJ_REMOTEMINE, 0x2b -.set OBJ_SAFEDOOR, 0x2d -.set OBJ_PLANE, 0x2e -.set OBJ_DIAGONAL_LIFT, 0x36 - -// Stage flags -.set STAGEFLAG_SECURITY_SHUT_DOWN, 0x00000100 -.set STAGEFLAG_STEWARDESS_ENTERED_BASE, 0x00000200 -.set STAGEFLAG_CIVILIANS_KILLED, 0x00000400 -.set STAGEFLAG_DISGUISE_UNCOVERED, 0x00000800 -.set STAGEFLAG_DISGUISED, 0x00001000 -.set STAGEFLAG_RECEPTIONIST_CALLED_SECURITY, 0x00002000 -.set STAGEFLAG_SUITCASE_DEPOSITED, 0x00004000 -.set STAGEFLAG_WEAPONS_DETECTED, 0x00008000 -.set STAGEFLAG_SUITCASE_SCANNED, 0x00010000 -.set STAGEFLAG_BOARDED_PLANE, 0x00020000 -.set STAGEFLAG_LASERS_OVERLOADED, 0x00040000 -.set STAGEFLAG_TOO_MANY_NEUTRALS_KILLED, 0x00080000 -.set STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE, 0x00100000 -.set STAGEFLAG_OFFICE1_DEAD, 0x00200000 -.set STAGEFLAG_OFFICE2_DEAD, 0x00400000 -.set STAGEFLAG_DISGUISED2, 0x00800000 -.set STAGEFLAG_SECRETARY_DEAD, 0x01000000 -.set STAGEFLAG_CONSOLE_DESTROYED, 0x02000000 -.set STAGEFLAG_ENTERED_BASE, 0x04000000 -.set STAGEFLAG_TROLLEY_SHUT_DOWN_WITHOUT_BRIEFCASE, 0x08000000 -.set STAGEFLAG_CONSOLE_ACTIVATED, 0x10000000 - -// Functions -.set FUNC_INIT_STRIPES, 0x0402 -.set FUNC_BECOME_UNALERTED, 0x0406 -.set FUNC_STEWARDESS, 0x0407 -.set FUNC_SECRETARY, 0x0408 -.set FUNC_OFFICE1, 0x0409 -.set FUNC_OFFICE2, 0x040a -.set FUNC_INIT_SECRETARY, 0x040c -.set FUNC_INIT_OFFICE1, 0x040d -.set FUNC_INIT_OFFICE2, 0x040e -.set FUNC_NSA, 0x040f -.set FUNC_TAKEOVER_LACKEY, 0x0411 -.set FUNC_INIT_TAKEOVER_LACKEY, 0x0412 -.set FUNC_ALASKAN_CONSOLE_GUARD, 0x0413 -.set FUNC_OFFICEWORKER, 0x0414 -.set FUNC_ALASKAN_MOUNTAINLIFT_GUARD, 0x0415 -.set FUNC_REMOVE_OR_UNALERT, 0x0417 -.set FUNC_REMOVE_OR_COWER, 0x0418 -.set FUNC_DRAW_MAGNUM, 0x041a -.set FUNC_INIT_ALASKAN_GUARD, 0x0426 -.set FUNC_INIT_POSTTAKEOVER_GUARD, 0x0427 -.set FUNC_POSTTAKEOVER_GUARD, 0x0428 -.set FUNC_FOYER_SPAWNER, 0x042a -.set FUNC_INIT_FOYER_CLONE, 0x042b -.set FUNC_FOYER_CLONE, 0x042c - -props: - briefing 0, 0x0e01 - briefing 1, 0x0e00 - briefing 2, 0x0e02 - briefing 3, 0x0e03 - - beginobjective 0, 0x0e05, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Obtain disguise and enter base" - complete_flags STAGEFLAG_DISGUISED2 - complete_flags STAGEFLAG_ENTERED_BASE - fail_flags STAGEFLAG_CIVILIANS_KILLED - fail_flags STAGEFLAG_DISGUISE_UNCOVERED - fail_flags STAGEFLAG_STEWARDESS_ENTERED_BASE - fail_flags STAGEFLAG_RECEPTIONIST_CALLED_SECURITY - fail_flags STAGEFLAG_TOO_MANY_NEUTRALS_KILLED - fail_flags STAGEFLAG_SECRETARY_DEAD - endobjective - - beginobjective 1, 0x0e06, DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Check in equipment" - complete_flags STAGEFLAG_SUITCASE_DEPOSITED - fail_flags STAGEFLAG_WEAPONS_DETECTED - fail_flags STAGEFLAG_TROLLEY_SHUT_DOWN_WITHOUT_BRIEFCASE - endobjective - - beginobjective 2, 0x0e07, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Subvert security monitoring system" - complete_flags STAGEFLAG_SECURITY_SHUT_DOWN - fail_flags STAGEFLAG_SUITCASE_SCANNED - fail_flags STAGEFLAG_CONSOLE_DESTROYED - endobjective - - beginobjective 3, 0x0e08, DIFFBIT_PA | DIFFBIT_PD // "Obtain flight plans from safe" - require_object_collected OBJ_FLIGHTPLANS - endobjective - - beginobjective 4, 0x0e09, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Board Air Force One" - complete_flags STAGEFLAG_BOARDED_PLANE - endobjective - - chr 0x00000e80, 0x00, 0x00c8, BODY_ALASKAN_GUARD, HEAD_RANDOM, GFUNC_IDLE, 0x0135, -1, 20, 20, 0x80882408, 0x00000000, 0x02, 0x00, -1, 3, 0x00000700 - weapon 0x0100, MODEL_CHRDRAGON, 0x0000, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000e00, 0x01, 0x00d0, BODY_ALASKAN_GUARD, HEAD_RANDOM, GFUNC_IDLE, 0x0135, -1, 20, 20, 0x80882008, 0x00000000, 0x02, 0x00, -1, 0, 0x00000700 - weapon 0x0100, MODEL_CHRDRAGON, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00010c01, 0x38, 0x00d1, BODY_STEWARDESS_COAT, HEAD_ANKA, GFUNC_IDLE, -1, -1, 200, 10, 0x00880408, 0x00000000, 0x02, 0x01, -1, 0, 0x02000700 - chr 0x00000e00, 0x02, 0x00d3, BODY_ALASKAN_GUARD, HEAD_RANDOM, FUNC_ALASKAN_MOUNTAINLIFT_GUARD, 0x0135, -1, 200, 20, 0x80802400, 0x00000000, 0x02, 0x00, -1, 0, 0x02000700 - weapon 0x0100, MODEL_CHRDRAGON, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000e00, 0x03, 0x0012, BODY_ALASKAN_GUARD, HEAD_RANDOM, 0x041b, 0x0135, -1, 200, 15, 0x80882008, 0x00000000, 0x02, 0x03, -1, 0, 0x02000500 - weapon 0x0100, MODEL_CHRDRAGON, 0x0003, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000ec0, 0x04, 0x00ca, BODY_ALASKAN_GUARD, HEAD_RANDOM, FUNC_INIT_ALASKAN_GUARD, 0x0135, -1, 200, 100, 0x80802609, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0004, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000ec0, 0x05, 0x00cb, BODY_ALASKAN_GUARD, HEAD_RANDOM, FUNC_INIT_ALASKAN_GUARD, 0x0135, -1, 200, 100, 0x80842408, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0005, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x07, 0x00c7, BODY_ALASKAN_GUARD, HEAD_RANDOM, FUNC_INIT_ALASKAN_GUARD, -1, -1, 200, 14, 0x80882000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0007, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x06, 0x00e8, BODY_ALASKAN_GUARD, HEAD_RANDOM, FUNC_INIT_ALASKAN_GUARD, -1, -1, 200, 14, 0x80882000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0006, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00010400, 0x39, 0x00c9, BODY_SECRETARY, HEAD_SECRETARY, FUNC_INIT_SECRETARY, -1, -1, 200, 14, 0x80882000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - chr 0x00014400, 0x3c, 0x00c6, BODY_OFFICEWORKER, HEAD_RANDOM, FUNC_INIT_OFFICE1, -1, -1, 200, 8, 0x80082000, 0x00000100, 0x02, 0x05, 0x24, 0, 0x00010000 - chr 0x00014400, 0x3d, 0x00c5, BODY_OFFICEWORKER, HEAD_RANDOM, FUNC_INIT_OFFICE2, -1, -1, 200, 8, 0x80082000, 0x00000100, 0x02, 0x05, 0x25, 0, 0x00010000 - chr 0x00000600, 0x08, 0x00c3, BODY_ALASKAN_GUARD, HEAD_RANDOM, FUNC_INIT_ALASKAN_GUARD, -1, -1, 200, 100, 0xa0882000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0008, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x09, 0x0031, BODY_ALASKAN_GUARD, HEAD_RANDOM, 0x041c, -1, -1, 200, 100, 0x80082000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x10, 0x003a, BODY_NSA_LACKEY, HEAD_RANDOM, FUNC_NSA, 0x003a, -1, 200, 100, 0x80082080, 0x00000881, 0x02, 0x04, -1, 0, 0x00000000 - chr 0x00000600, 0x0a, 0x003d, BODY_ALASKAN_GUARD, HEAD_RANDOM, 0x041d, -1, -1, 200, 100, 0xa0882000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x000a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x0b, 0x005b, BODY_ALASKAN_GUARD, HEAD_RANDOM, 0x041e, -1, -1, 200, 100, 0x80082000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x000b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x11, 0x0072, BODY_NSA_LACKEY, HEAD_RANDOM, FUNC_NSA, 0x0072, -1, 200, 100, 0x80082000, 0x00000881, 0x02, 0x05, -1, 0, 0x01000000 - chr 0x00004600, 0x0c, 0x00c2, BODY_ALASKAN_GUARD, HEAD_RANDOM, FUNC_ALASKAN_CONSOLE_GUARD, 0x0156, -1, 200, 100, 0xc0082000, 0x20000100, 0x02, 0x08, -1, 0, 0x00050000 - chr 0x00000200, 0x12, 0x00c1, BODY_NSA_LACKEY, HEAD_RANDOM, FUNC_INIT_TAKEOVER_LACKEY, -1, -1, 200, 100, 0x80080000, 0x00000800, 0x02, 0x06, -1, 0, 0x02000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0012, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - tag 0x30, 2 - tag 0x31, 2 - weapon 0x0100, MODEL_CHRDY357, 0x0012, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357MAGNUM, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRDY357, 0x0012, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357MAGNUM, 0x00ffffff, 0x00000000 - link_collectibles -1, -2 - chr 0x00000600, 0x0d, 0x00c0, BODY_ALASKAN_GUARD, HEAD_RANDOM, 0x041f, -1, -1, 200, 100, 0xa0882000, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x0e, 0x00bf, BODY_ALASKAN_GUARD, HEAD_RANDOM, FUNC_INIT_ALASKAN_GUARD, -1, -1, 200, 100, 0x80082000, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000400, 0x3a, 0x00be, BODY_OFFICEWORKER, HEAD_RANDOM, FUNC_OFFICEWORKER, -1, -1, 200, 4, 0x80082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - chr 0x00000600, 0x0f, 0x00bc, BODY_ALASKAN_GUARD, HEAD_RANDOM, FUNC_INIT_ALASKAN_GUARD, -1, -1, 200, 100, 0x80082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x000f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x13, 0x00ba, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc4082000, 0x04000a00, 0x02, 0x09, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0013, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x14, 0x0123, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x84082000, 0x04000a00, 0x02, 0x09, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000700, 0x16, 0x0124, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc4080000, 0x04000a00, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000700, 0x18, 0x0125, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xcc080000, 0x04000a00, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1a, 0x0126, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0088000, 0x04000a00, 0x02, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1c, 0x0127, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xe008a000, 0x04000a00, 0x02, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x001c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1b, 0x0090, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc008a000, 0x04000a00, 0x02, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x001b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x19, 0x008e, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0088000, 0x04000a00, 0x02, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0019, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1d, 0x0096, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc008a000, 0x04000a00, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x001d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1e, 0x0128, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc008a000, 0x04000a00, 0x02, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x001e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x20, 0x0129, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xe008a000, 0x04000a00, 0x02, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0020, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x21, 0x00b4, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0082000, 0x04000a00, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0021, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x22, 0x012a, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0082000, 0x04000a00, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0022, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x23, 0x00b2, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0082000, 0x04000a00, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0023, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x24, 0x012b, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0082000, 0x04000a00, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0024, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x25, 0x0026, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc4082000, 0x04000a00, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0025, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x26, 0x012c, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc4082000, 0x04000a00, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0026, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x27, 0x002c, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc4082000, 0x04000a00, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0027, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x28, 0x012d, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xa4082000, 0x04000a00, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0028, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x2a, 0x00d9, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc4082000, 0x04000a00, 0x02, 0x0f, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x002a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x2b, 0x012e, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc4082000, 0x04000a00, 0x02, 0x0f, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x002b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x2c, 0x00da, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc4082000, 0x04000a00, 0x02, 0x0f, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x002c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x2d, 0x012f, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc4082000, 0x04000a00, 0x02, 0x0f, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x002d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x2e, 0x00d8, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x8008a000, 0x04000a00, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x002e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x2f, 0x0130, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x8008a000, 0x04000a00, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x002f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x30, 0x00b1, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x8008a000, 0x04000a00, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0030, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x31, 0x0131, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x8008a000, 0x04000a00, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0031, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x32, 0x00dc, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xa4082000, 0x04000a00, 0x02, 0x0b, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0032, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x33, 0x0132, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc4082000, 0x04000a00, 0x02, 0x0b, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0033, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x34, 0x00b0, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0002000, 0x04000a00, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0034, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x35, 0x0133, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0002000, 0x04000a00, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0035, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00004600, 0x36, 0x00db, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0002000, 0x00000b00, 0x02, 0x08, -1, 0, 0x00010000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0036, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x37, 0x0134, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0002000, 0x04000a00, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0037, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00010400, 0x44, 0x0132, BODY_CIAGUY, HEAD_RANDOM, 0x0419, 0x0132, -1, 1000, 6, 0x80000004, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000 - chr 0x00010400, 0x45, 0x00b1, BODY_STEWARDESS, HEAD_RANDOM, 0x0419, 0x00b1, -1, 1000, 9, 0x80000000, 0x00000000, 0x02, 0x00, -1, 0, 0x02000000 - chr 0x00010400, 0x46, 0x00e6, BODY_STEWARD, HEAD_RANDOM, 0x0419, 0x00e6, -1, 1000, 10, 0x80000000, 0x00000000, 0x02, 0x00, -1, 0, 0x01000000 - chr 0x00000000, 0x42, 0x0136, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80082000, 0x00000a00, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0042, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x43, 0x0137, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80082000, 0x00000a00, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0043, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x47, 0x0138, BODY_TRENT, HEAD_TRENT, GFUNC_IDLE, 0x0135, -1, 20, 20, 0x80882408, 0x00000000, 0x02, 0x00, -1, 3, 0x00000700 - chr 0x00000001, 0x48, 0x0139, BODY_STEWARDESS_COAT, HEAD_ANKA, GFUNC_IDLE, 0x0135, -1, 20, 20, 0x80882408, 0x00000000, 0x02, 0x00, -1, 3, 0x00000700 - chr 0x00000000, 0x49, 0x013a, BODY_NSA_LACKEY, HEAD_RANDOM, GFUNC_INVINCIBLE_AND_IDLE, 0x0135, -1, 20, 20, 0x80882408, 0x00000000, 0x02, 0x00, -1, 3, 0x00000700 - weapon 0x0100, MODEL_CHRAVENGER, 0x0049, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x4a, 0x013b, BODY_NSA_LACKEY, HEAD_RANDOM, GFUNC_IDLE, 0x0135, -1, 20, 20, 0x80882408, 0x00000000, 0x02, 0x00, -1, 3, 0x00000700 - weapon 0x0100, MODEL_CHRAVENGER, 0x004a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x4b, 0x013c, BODY_ALASKAN_GUARD, HEAD_RANDOM, GFUNC_IDLE, 0x0135, -1, 20, 20, 0x80882408, 0x00000000, 0x02, 0x00, -1, 3, 0x00000700 - weapon 0x0100, MODEL_CHRDRAGON, 0x004b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x4c, 0x013d, BODY_ALASKAN_GUARD, HEAD_RANDOM, GFUNC_IDLE, 0x0135, -1, 20, 20, 0x80882408, 0x00000000, 0x02, 0x00, -1, 3, 0x00000700 - weapon 0x0100, MODEL_CHRDRAGON, 0x004c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - tag 0x00, 1 - weapon 0x0180, MODEL_CHRBRIEFCASE, 0x0113, 0x00420001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUITCASE, 0x00ffffff, 0x00000000 - rename_object -1, 0x4d, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x0000, 0x0000 // "Obtain suitcase." - tag 0x01, 1 - multimonitor 0x0099, MODEL_PD_CONSOLE, 0x0156, 0x000001a1, 0x00000001, 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, 0x03030000 - tag 0x02, 1 - weapon 0x0080, MODEL_STEWARDESS_TROLLEY, 0x00b6, 0x00000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DISGUISE41, 0x00ffffff, 0x00000000 - rename_object -1, 0x41, 0x0e0f, 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0000, 0x0000 // "Obtain air stewardess uniform." - tag 0x06, 1 - object 0x0100, MODEL_CHRBRIEFCASE, 0x00c4, 0x014204e1, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x42, 6 - tag 0x43, 6 - tag 0x48, 6 - tag 0x49, 6 - tag 0x20, 1 - lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x013f, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x013f, 0x013e, 0xffffffff, 0x00000001, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x15000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2A_G5, 0x019a, 0x10000400, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2A_G5, 0x019b, 0x10000400, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2A_G5, 0x0198, 0x10000400, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2A_G5, 0x0199, 0x10000400, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -4, -5, 0, 0 - link_objects -4, -6, 0, 0 - link_objects -4, -7, 0, 1 - link_objects -4, -8, 0, 1 - tag 0x04, 1 - lift 0x0100, MODEL_BAGGAGECARRIER, 0x0144, 0x015204e8, 0x00304300, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0144, 0x0145, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x3b, 6 - tag 0x37, 3 - tag 0x36, 1 - lift 0x0100, MODEL_AIRBASE_LIFT_ANGLE, 0x0146, 0x235204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0146, 0x0147, 0xffffffff, 0x00000001, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000aaa, 0x00320000, 0x15000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2A_G5, 0x0184, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2A_G5, 0x0185, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2A_G5, 0x019d, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2A_G5, 0x019e, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -4, -5, 0, 0 - link_objects -4, -6, 0, 0 - link_objects -4, -7, 0, 1 - link_objects -4, -8, 0, 1 - tag 0x3c, 10 - tag 0x3d, 10 - tag 0x3e, 10 - tag 0x3f, 10 - tag 0x40, 10 - tag 0x41, 10 - tag 0x38, 10 - tag 0x39, 10 - tag 0x21, 1 - lift 0x0100, MODEL_AIRBASE_LIFT_ENCLOSED, 0x0140, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0140, 0x0141, 0x01420143, 0x00000001, 0x00000003, 0x00000005, 0x00000007, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2A_G5, 0x0196, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2A_G5, 0x0197, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2A_G5, 0x0194, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2A_G5, 0x0195, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2A_G5, 0x0192, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2A_G5, 0x0193, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2A_G5, 0x0190, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2A_G5, 0x0191, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -8, -9, 0, 0 - link_objects -8, -10, 0, 0 - link_objects -8, -11, 0, 1 - link_objects -8, -12, 0, 1 - link_objects -8, -13, 0, 2 - link_objects -8, -14, 0, 2 - link_objects -8, -15, 0, 3 - link_objects -8, -16, 0, 3 - tag 0x05, 1 - multimonitor 0x0099, MODEL_COMHUB, 0x0153, 0x00000102, 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 0x07, 17 - tag 0x08, 17 - tag 0x09, 17 - tag 0x0a, 17 - tag 0x0b, 17 - tag 0x0c, 17 - tag 0x0d, 17 - tag 0x0e, 17 - tag 0x0f, 17 - tag 0x10, 17 - tag 0x11, 17 - tag 0x12, 17 - tag 0x13, 17 - tag 0x14, 17 - tag 0x15, 17 - tag 0x16, 17 - tag 0x17, 17 - door 0x0100, MODEL_LASDOOR, 0x0168, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x0169, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x016a, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x016b, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x016c, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x016d, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x016e, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x016f, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x0170, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x0177, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x0171, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x0172, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x0173, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x0176, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x0174, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x0175, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x017a, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x017b, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x017c, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x0178, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x0179, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - object 0x00e6, MODEL_A51_CRATE2, 0x0157, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00e6, MODEL_A51_CRATE2, 0x0158, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00e6, MODEL_A51_CRATE2, 0x0159, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00e6, MODEL_A51_CRATE2, 0x015a, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00e6, MODEL_A51_CRATE2, 0x015b, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00e6, MODEL_A51_CRATE2, 0x015c, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00e6, MODEL_A51_CRATE2, 0x015d, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00e6, MODEL_A51_CRATE2, 0x015e, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00e6, MODEL_A51_CRATE2, 0x015f, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00e6, MODEL_A51_CRATE2, 0x0160, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00e6, MODEL_A51_CRATE2, 0x0161, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00e6, MODEL_A51_CRATE2, 0x0162, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00e6, MODEL_A51_CRATE2, 0x0163, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00e6, MODEL_A51_CRATE2, 0x0164, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00e6, MODEL_A51_CRATE2, 0x0165, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00e6, MODEL_A51_CRATE2, 0x0166, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00e6, MODEL_A51_CRATE2, 0x0167, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x0180, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x017f, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - escalator 0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x18, 1 - door 0x0100, MODEL_AF1_INNERDOOR, 0x0183, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2A_G5, 0x0186, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x35, 1 - door 0x0100, MODEL_AF1_INNERDOOR, 0x0187, 0x10000400, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000080, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x27, 1 - door 0x0100, MODEL_AF1_INNERDOOR, 0x018a, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x29, 1 - object 0x0100, MODEL_AF1_INNERDOOR, 0x01a0, 0x800201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x28, 1 - door 0x0100, MODEL_AF1_INNERDOOR, 0x018e, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x2a, 1 - object 0x0100, MODEL_AF1_INNERDOOR, 0x01a4, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - door 0x0100, MODEL_AF1_INNERDOOR, 0x018b, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x2d, 1 - door 0x0100, MODEL_AIRBASE_SAFEDOOR, 0x018c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x00000005, 0x00000080, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AF1_INNERDOOR, 0x018d, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AF1_INNERDOOR, 0x018f, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x19, 1 - multimonitor 0x0099, MODEL_COMHUB, 0x0154, 0x00000102, 0x00000001, 0x00000000, 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 - hover_vehicle 0x0080, MODEL_TESTERBOT, 0x01ba, 0xe0000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, 0x0000042e, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - hover_vehicle 0x0080, MODEL_HOOVERBOT, 0x01ba, 0xe0000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, 0x0000042f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - hover_vehicle 0x0080, MODEL_HOOVERBOT, 0x01c3, 0xe0000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, 0x00000431, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - hover_vehicle 0x004c, MODEL_TESTERBOT, 0x01c3, 0xe0000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, 0x00000432, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x03, 1 - weapon 0x0040, MODEL_SAFEITEM, 0x00d6, 0x00000008, 0x00000000, 0x00400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FLIGHTPLANS, 0x00ffffff, 0x00000000 - rename_object -1, 0x42, 0x0e14, 0x0e15, 0x0e16, 0x0e17, 0x0e18, 0x0000, 0x0000 // "Obtain flight plans from safe." - tag 0x1f, 1 - lift 0x0100, MODEL_DD_LIFTDOOR, 0x0151, 0x035204e8, 0x00304300, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0151, 0x0150, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x01000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x1a, 1 - object 0x0100, MODEL_LIGHTSWITCH2, 0x0155, 0x00420008, 0x00000800, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01ce, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01cf, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01d0, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01d1, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01d2, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x01d4, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x01d5, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x01d6, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x01d7, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x24, 1 - object 0x0100, MODEL_DD_CHAIR, 0x01d9, 0x000205e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x25, 1 - object 0x0100, MODEL_DD_CHAIR, 0x01dc, 0x000205e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x01da, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x01db, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x26, 1 - object 0x0100, MODEL_DD_CHAIR, 0x01dd, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01d3, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_PLANTRUBBER, 0x01de, 0x04000001, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_PLANTSPIDER, 0x01df, 0x04000001, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_PLANTSPIKE, 0x01e0, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_PLANTRUBBER, 0x01e1, 0x04000001, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_PLANTSPIDER, 0x01e2, 0x04000001, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_PLANTSPIKE, 0x01e3, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_PLANTRUBBER, 0x01e4, 0x04000001, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_PLANTSPIKE, 0x01e7, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01e8, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01e9, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01ea, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x23, 1 - door 0x0100, MODEL_DOOR2A_G5, 0x019c, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00000000, 0x00000002, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x22, 1 - object 0x0100, MODEL_CABLE_CAR, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x2f, 1 - object 0x0100, MODEL_BINOCULARS, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x01ec, 0x10000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640190, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x01ed, 0x10000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640190, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x01ee, 0x10000b62, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640190, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x01ef, 0x14000b62, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640190, 0x0000ffff, 0x00000000 - tag 0x46, 2 - tag 0x47, 2 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x01f0, 0x14000b62, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640190, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x01f1, 0x14000b62, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640190, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x01f2, 0x14000b62, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640190, 0x0000ffff, 0x00000000 - tag 0x2b, 1 - weapon 0x0100, MODEL_CHRREMOTEMINE, 0x0111, 0x003004e8, 0x000a2001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REMOTEMINE, 0x00ffffff, 0x00000000 - tag 0x2e, 1 - object 0x0100, MODEL_AIRFORCE1, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x45, 1 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x01eb, 0x14000b62, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00c80320, 0x0000ffff, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01f3, 0x04000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01f4, 0x04000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01f5, 0x04000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01f6, 0x04000262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01f7, 0x04000262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01f8, 0x04000262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01f9, 0x04000262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - door 0x0100, MODEL_SHUTTLEDOOR, 0x01a2, 0x10000000, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x0000f333, 0x0002c71c, 0x0002c71c, 0x00000888, 0x00140000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SHUTTLEDOOR, 0x01a3, 0x10000000, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x0000f333, 0x0002c71c, 0x0002c71c, 0x00000888, 0x000c0000, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x33, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x0011, 0x00004001, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000 - tag 0x34, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x00d6, 0x00100001, 0x000800c0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000 - tag 0x44, 1 - weapon 0x0080, MODEL_MULTI_AMMO_CRATE, 0x00b5, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PROXIMITYMINE, 0x00ffffff, 0x00000000 - endprops - -intro: - spawn 0x011e - intro_weapon WEAPON_CROSSBOW, -1 - intro_weapon WEAPON_HORIZONSCANNER, -1 - ammo AMMOTYPE_CROSSBOW, 12 - ammo AMMOTYPE_PROXY_MINE, 3 - ammo AMMOTYPE_RIFLE, 30 - intro_weapon WEAPON_CAMSPY, -1 - outfit OUTFIT_SNOW - endintro - -path06: - pad 0x000e - pad 0x000d - pad 0x000d - pad 0x000e - pad 0x0012 - endpath - -path07: - pad 0x002d - pad 0x0031 - pad 0x002e - pad 0x002f - pad 0x0030 - pad 0x0031 - endpath - -path08: - pad 0x004d - pad 0x004f - pad 0x004d - pad 0x004c - pad 0x003d - pad 0x003e - pad 0x003c - pad 0x003e - pad 0x003d - pad 0x004c - endpath - -path09: - pad 0x005b - pad 0x0053 - pad 0x0051 - pad 0x0052 - pad 0x0054 - pad 0x0053 - endpath - -path10: - pad 0x0041 - pad 0x0042 - pad 0x0043 - pad 0x0044 - pad 0x0045 - pad 0x0044 - pad 0x0043 - pad 0x0042 - endpath - -path11: - pad 0x008e - pad 0x008d - pad 0x008c - pad 0x008d - endpath - -path12: - pad 0x0095 - pad 0x0090 - pad 0x008f - pad 0x008e - pad 0x008f - pad 0x0090 - endpath - -path13: - pad 0x0099 - pad 0x0098 - pad 0x0097 - pad 0x0096 - pad 0x0095 - pad 0x0096 - pad 0x0097 - pad 0x0098 - endpath - -path14: - pad 0x0030 - pad 0x002c - pad 0x0039 - pad 0x002c - endpath - -path15: - pad 0x0019 - pad 0x0012 - endpath - -path00: - pad 0x01ba - pad 0x01bb - pad 0x01bc - pad 0x01bd - pad 0x01bd - endpath - -path01: - pad 0x01ba - pad 0x01be - pad 0x01bf - pad 0x01c0 - pad 0x01ba - endpath - -path02: - pad 0x01ba - pad 0x01c1 - pad 0x01c2 - pad 0x01be - pad 0x01ba - endpath - -path03: - pad 0x01c3 - pad 0x01c4 - pad 0x01c5 - pad 0x01c6 - pad 0x01c3 - endpath - -path04: - pad 0x01c3 - pad 0x01c7 - pad 0x01c8 - pad 0x01c9 - pad 0x01c3 - endpath - -path05: - pad 0x01c3 - pad 0x01ca - pad 0x01cb - pad 0x01cc - pad 0x01c3 - endpath - pad 0x003b - pad 0x003e - pad 0x003d - pad 0x004c - pad 0x004d - pad 0x004f - pad 0x0050 - pad 0x004e - pad 0x004d - pad 0x004c - pad 0x003d - pad 0x003e - pad 0x003b - pad 0x003b - endpath - -paths: - register_path path06, 6, 0 - register_path path07, 7, 0 - register_path path08, 8, 0 - register_path path09, 9, 0 - register_path path10, 10, 0 - register_path path11, 11, 0 - register_path path12, 12, 0 - register_path path13, 13, 0 - register_path path14, 14, 0 - register_path path15, 15, 0 - register_path path00, 0, 0 - register_path path01, 1, 0 - register_path path02, 2, 0 - register_path path03, 3, 0 - register_path path04, 4, 0 - register_path path05, 5, 0 - endpaths - -func1002_objectives_failed_msg: - yield - give_object_to_chr OBJ_UNIFORM, CHR_STEWARDESS - set_chr_flag_bank3 0x00, CHRFLAG3_04000000 - set_chr_flag_bank3 0x01, CHRFLAG3_04000000 - set_chr_flag_bank3 0x02, CHRFLAG3_04000000 - set_chr_flag_bank3 0x03, CHRFLAG3_04000000 - set_chr_flag_bank3 0x04, CHRFLAG3_04000000 - set_chr_flag_bank3 0x05, CHRFLAG3_04000000 - set_chr_flag_bank3 0x06, CHRFLAG3_04000000 - set_chr_flag_bank3 0x07, CHRFLAG3_04000000 - set_chr_flag_bank3 0x08, CHRFLAG3_04000000 - set_chr_flag_bank3 0x09, CHRFLAG3_04000000 - set_chr_flag_bank3 0x0a, CHRFLAG3_04000000 - set_chr_flag_bank3 0x0b, CHRFLAG3_04000000 - set_chr_flag_bank3 0x0c, CHRFLAG3_04000000 - set_chr_flag_bank3 0x0d, CHRFLAG3_04000000 - set_chr_flag_bank3 0x0e, CHRFLAG3_04000000 - set_chr_flag_bank3 0x0f, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_STEWARDESS, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_SECRETARY, CHRFLAG3_04000000 - set_chr_flag_bank3 0x3a, CHRFLAG3_04000000 - set_chr_flag_bank3 0x3b, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_OFFICE1, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_OFFICE2, CHRFLAG3_04000000 - set_chr_flag_bank3 0x44, CHRFLAG3_04000000 - set_chr_flag_bank3 0x45, CHRFLAG3_04000000 - set_chr_flag_bank3 0x46, CHRFLAG3_04000000 - set_function CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG - endfunction - -func1000_rebuild_groups: - set_function CHR_SELF, GFUNC_REBUILD_GROUPS - endfunction - -func1401_setup_counterop: - yield - set_chr_alliance CHR_COUNTEROP, 0x04 - set_function CHR_SELF, GFUNC_REBUILD_GROUPS - endfunction - -unregistered_function1: - set_return_function CHR_SELF, GFUNC_END_CINEMA - set_function CHR_SELF, 0x0401 - endfunction - -/** - * @unused - */ -func0401_unused_cutscene: - chr_draw_weapon_in_cutscene CHR_JOANNA, WEAPON_FALCON2 - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_music_track MUSIC_AIRBASE_OUTRO_LONG - camera_movement 0x016b - cmd0175 60 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x0170, -1, -1, 0x0600, CHR_JOANNA, 4 - set_chr_hud_visible CHR_JOANNA, TRUE - set_chr_flag_bank3 0x00, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x00, CHRFLAG3_HIDDEN - set_chr_flag_bank2 0x00, CHRFLAG2_00020000 - animation 0x016c, -1, -1, 0x0600, 0x00, 4 - set_chr_flag_bank3 0x01, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x01, CHRFLAG3_HIDDEN - set_chr_flag_bank2 0x01, CHRFLAG2_00020000 - animation 0x016d, -1, -1, 0x0600, 0x01, 4 - set_chr_flag_bank3 0x02, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x02, CHRFLAG3_HIDDEN - set_chr_flag_bank2 0x02, CHRFLAG2_00020000 - animation 0x016e, -1, -1, 0x0600, 0x02, 4 - set_chr_flag_bank3 CHR_STEWARDESS, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_STEWARDESS, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_STEWARDESS, CHRFLAG2_00020000 - animation 0x016f, -1, -1, 0x0600, CHR_STEWARDESS, 4 - fade_to_color 0x000000ff, 0 - fade_to_color 0x00000000, 90 - set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE - - beginloop 0x04 - if_camera_animating /*goto*/ 0x31 - goto_next 0x48 - - label 0x31 - if_controller_button_pressed /*goto*/ 0x48 - label 0x31 - endloop 0x04 - - label 0x48 - label 0x02 - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_function 0x00, 0x0405 - set_function 0x01, 0x0405 - remove_chr 0x02 - set_function CHR_STEWARDESS, 0x040b - restart_default_music - reset_ambience - set_function CHR_SELF, GFUNC_END_CINEMA - endfunction - -func0425_outro: - fade_to_color 0x000000ff, 0 - fade_to_color 0x00000000, 110 - camera_movement 0x031a - set_music_track MUSIC_AIRBASE_OUTRO - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0xf1, CHRFLAG3_HIDDEN - set_function CHR_P1P2, GFUNC_IDLE - unset_chr_flag_bank3 CHR_P1P2, CHRFLAG3_HIDDEN - - set_chr_flag_bank3 CHR_OUTRO_NSA, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_OUTRO_NSA, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_OUTRO_NSA, CHRFLAG2_00020000 - animation 0x031b, -1, -1, 0x0600, CHR_OUTRO_NSA, 4 - - show_object OBJ_PLANE - set_object_flag_bank1 OBJ_PLANE, OBJECTFLAG1_04000000 - set_object_flag_bank2 OBJ_PLANE, OBJECTFLAG2_00000010 - object_do_animation 0x031c, OBJ_PLANE, 0x04ff, 0xff - - set_cutscene_weapon CHR_P1P2, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_P1P2, WEAPON_NONE, WEAPON_NONE - show_nonessential_chrs FALSE - restart_timer - - .macro wait_until time loopid - beginloop \loopid - if_controller_button_pressed /*goto*/ 0x48 - if_timer_gt \time, /*goto*/ 0x02 - endloop \loopid - label 0x02 - .endm - - wait_until 38, 0x92 - play_sound 0x80c4, CHANNEL_10 - - wait_until 84, 0x93 - play_sound 0x80c5, CHANNEL_10 - - wait_until 130, 0x94 - play_sound 0x80c6, CHANNEL_10 - - wait_until 176, 0x95 - play_sound 0x80c7, CHANNEL_10 - - wait_until 220, 0x96 - play_sound 0x80c4, CHANNEL_10 - - wait_until 274, 0x97 - play_sound 0x80c5, CHANNEL_10 - - wait_until 320, 0x98 - play_sound 0x80c6, CHANNEL_10 - - wait_until 365, 0x99 - play_sound 0x80c7, CHANNEL_10 - - beginloop 0x04 - if_camera_animating /*goto*/ 0x31 - goto_next 0x48 - - label 0x31 - if_controller_button_pressed /*goto*/ 0x48 - label 0x31 - endloop 0x04 - - label 0x48 - mute_channel CHANNEL_10 - label 0x02 - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - hide_object OBJ_PLANE - end_level - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0402_init_stripes: - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_HIDDEN - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1004_guard_activation: - set_object_flag_bank0 0x29, OBJECTFLAG0_INVINCIBLE - set_object_flag_bank1 0x29, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank0 0x29, OBJECTFLAG0_00000100 - set_object_flag_bank0 0x2a, OBJECTFLAG0_INVINCIBLE - set_object_flag_bank1 0x2a, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank0 0x2a, OBJECTFLAG0_00000100 - set_object_flag_bank1 OBJ_REMOTEMINE, OBJECTFLAG1_00020000 - set_object_flag_bank0 OBJ_REMOTEMINE, OBJECTFLAG0_INVINCIBLE - set_object_flag_bank1 OBJ_REMOTEMINE, OBJECTFLAG1_INVISIBLE - yield - yield - hide_chr 0x13 - hide_chr 0x15 - hide_chr 0x17 - hide_chr 0x19 - hide_chr 0x1b - hide_chr 0x1d - hide_chr 0x1f - hide_chr 0x21 - hide_chr 0x23 - hide_chr 0x25 - hide_chr 0x27 - hide_chr 0x2a - hide_chr 0x2c - hide_chr 0x2e - hide_chr 0x30 - hide_chr 0x32 - hide_chr 0x34 - hide_chr 0x36 - hide_chr 0x42 - hide_chr 0x43 - hide_chr 0x14 - hide_chr 0x16 - hide_chr 0x18 - hide_chr 0x1a - hide_chr 0x1c - hide_chr 0x1e - hide_chr 0x20 - hide_chr 0x22 - hide_chr 0x24 - hide_chr 0x26 - hide_chr 0x28 - hide_chr 0x2b - hide_chr 0x2d - hide_chr 0x2f - hide_chr 0x31 - hide_chr 0x33 - hide_chr 0x35 - hide_chr 0x37 - - beginloop 0x00 - if_stage_flag_eq STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x02 - endloop 0x00 - - label 0x02 - hide_object 0x27 - hide_object 0x28 - unset_object_flag_bank0 0x29, OBJECTFLAG0_INVINCIBLE - unset_object_flag_bank1 0x29, OBJECTFLAG1_INVISIBLE - set_object_flag_bank0 0x29, OBJECTFLAG0_00000100 - unset_object_flag_bank0 0x2a, OBJECTFLAG0_INVINCIBLE - unset_object_flag_bank1 0x2a, OBJECTFLAG1_INVISIBLE - set_object_flag_bank0 0x2a, OBJECTFLAG0_00000100 - - .macro remove_alaskan_guard chr - set_chr_flag_bankx \chr, CHRFLAG1_WARNED, BANK_1 - set_function \chr, FUNC_REMOVE_OR_UNALERT - set_chr_flag_bankx \chr, CHRFLAG0_AIVSAI, BANK_0 - yield - .endm - - remove_alaskan_guard 0x00 - remove_alaskan_guard 0x01 - remove_alaskan_guard 0x02 - remove_alaskan_guard 0x03 - remove_alaskan_guard 0x04 - remove_alaskan_guard 0x05 - remove_alaskan_guard 0x06 - remove_alaskan_guard 0x07 - remove_alaskan_guard 0x08 - remove_alaskan_guard 0x09 - remove_alaskan_guard 0x0a - remove_alaskan_guard 0x0b - remove_alaskan_guard 0x0d - remove_alaskan_guard 0x0e - remove_alaskan_guard 0x0f - - set_function CHR_SECRETARY, FUNC_REMOVE_OR_COWER - set_function CHR_STEWARDESS, FUNC_REMOVE_OR_COWER - set_function CHR_OFFICE1, FUNC_REMOVE_OR_COWER - set_function CHR_OFFICE2, FUNC_REMOVE_OR_COWER - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - set_function 0x10, FUNC_INIT_POSTTAKEOVER_GUARD - set_function 0x11, FUNC_INIT_POSTTAKEOVER_GUARD - - .macro enable_takeover_guard2 chr function - show_chr \chr - set_function \chr, \function - unset_chr_flag_bank2 \chr, CHRFLAG2_40000000 - unset_chr_flag_bank3 \chr, CHRFLAG3_HIDDEN - yield - .endm - - enable_takeover_guard2 0x15, FUNC_INIT_POSTTAKEOVER_GUARD - enable_takeover_guard2 0x17, FUNC_INIT_POSTTAKEOVER_GUARD - enable_takeover_guard2 0x21, FUNC_INIT_POSTTAKEOVER_GUARD - enable_takeover_guard2 0x23, FUNC_INIT_POSTTAKEOVER_GUARD - enable_takeover_guard2 0x25, FUNC_INIT_POSTTAKEOVER_GUARD - enable_takeover_guard2 0x27, 0x0423 - enable_takeover_guard2 0x2a, FUNC_INIT_POSTTAKEOVER_GUARD - enable_takeover_guard2 0x2c, FUNC_INIT_POSTTAKEOVER_GUARD - enable_takeover_guard2 0x2e, FUNC_INIT_POSTTAKEOVER_GUARD - enable_takeover_guard2 0x30, FUNC_INIT_POSTTAKEOVER_GUARD - enable_takeover_guard2 0x32, FUNC_INIT_POSTTAKEOVER_GUARD - enable_takeover_guard2 0x34, FUNC_INIT_POSTTAKEOVER_GUARD - enable_takeover_guard2 0x36, FUNC_INIT_POSTTAKEOVER_GUARD - - show_chr 0x42 - set_function 0x42, FUNC_FOYER_SPAWNER - yield - - show_chr 0x43 - set_function 0x43, FUNC_FOYER_SPAWNER - yield - - enable_takeover_guard2 0x22, FUNC_INIT_POSTTAKEOVER_GUARD - enable_takeover_guard2 0x24, FUNC_INIT_POSTTAKEOVER_GUARD - enable_takeover_guard2 0x26, FUNC_INIT_POSTTAKEOVER_GUARD - enable_takeover_guard2 0x28, FUNC_INIT_POSTTAKEOVER_GUARD - enable_takeover_guard2 0x2b, FUNC_INIT_POSTTAKEOVER_GUARD - enable_takeover_guard2 0x2d, FUNC_INIT_POSTTAKEOVER_GUARD - enable_takeover_guard2 0x2f, FUNC_INIT_POSTTAKEOVER_GUARD - enable_takeover_guard2 0x31, FUNC_INIT_POSTTAKEOVER_GUARD - enable_takeover_guard2 0x33, FUNC_INIT_POSTTAKEOVER_GUARD - enable_takeover_guard2 0x35, FUNC_INIT_POSTTAKEOVER_GUARD - enable_takeover_guard2 0x37, FUNC_INIT_POSTTAKEOVER_GUARD - - set_function 0x10, FUNC_DRAW_MAGNUM - set_function 0x11, FUNC_DRAW_MAGNUM - unset_object_flag_bank0 0x2b, OBJECTFLAG0_INVINCIBLE - unset_object_flag_bank1 0x2b, OBJECTFLAG1_INVISIBLE - - beginloop 0x6d - if_chr_y CHR_P1P2, -2000 OPERATOR_LESS_THAN, /*goto*/ 0x02 - endloop 0x6d - - .macro enable_bottom_guard chr - show_chr \chr - set_function \chr, FUNC_INIT_POSTTAKEOVER_GUARD - unset_chr_flag_bank2 \chr, CHRFLAG2_40000000 - unset_chr_flag_bank3 \chr, CHRFLAG3_HIDDEN - yield - .endm - - label 0x02 - enable_bottom_guard 0x13 - enable_bottom_guard 0x14 - enable_bottom_guard 0x16 - enable_bottom_guard 0x18 - enable_bottom_guard 0x1a - enable_bottom_guard 0x1c - enable_bottom_guard 0x1f - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0405_start_path15: - set_chr_dodge_rating 2, 0x0a - set_accuracy 12 - set_reaction_speed 70 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - restart_timer - - beginloop 0x05 - if_timer_gt 120, /*goto*/ 0x02 - endloop 0x05 - - label 0x02 - assign_path 15 - start_path - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -/** - * Assigned to the stewardess from another unused function. - */ -func040b_unused: - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, 0x040b - endfunction - -func0407_stewardess: - set_onshot_function FUNC_STEWARDESS - if_chr_dying CHR_SELF, /*goto*/ 0x02 - if_chr_dying CHR_SELF, /*goto*/ 0x02 - if_chr_unloaded CHR_SELF, /*goto*/ 0x02 - goto_next 0x31 - - label 0x02 - set_function CHR_SELF, GFUNC_IDLE - - label 0x31 - if_just_injured CHR_SELF, /*goto*/ 0x02 - goto_next 0x4c - - // Injured - label 0x02 - restart_timer - - beginloop 0x4d - if_stage_flag_eq STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE, TRUE, /*goto*/ 0x75 - if_chr_distance_gt 200, /*goto*/ 0x75 - set_stage_flag STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE - label 0x75 - if_self_flag_bankx_eq CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x02 - if_num_times_shot_lt 1, /*goto*/ 0x02 - if_timer_lt 20, /*goto*/ 0x02 - say_quip CHR_JOANNA, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00 - say_quip CHR_JOANNA, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00 - set_self_flag_bankx CHRFLAG0_SAID_INJURY_QUIP, BANK_0 - label 0x02 - if_chr_stopped /*goto*/ 0x4c - endloop 0x4d - - // Not injured, or recovered - label 0x4c - if_chr_unloaded CHR_SELF, /*goto*/ 0x02 - goto_next 0x16 - - label 0x02 - set_function CHR_SELF, GFUNC_IDLE - - restart_timer - - beginloop 0x11 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_stage_flag_eq STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE, TRUE, /*goto*/ 0x75 - if_chr_distance_gt 200, /*goto*/ 0x75 - set_stage_flag STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE - label 0x75 - if_self_flag_bankx_eq CHRFLAG0_CAN_EXAMINE_BODY, FALSE, BANK_0, /*goto*/ 0x31 - if_saw_death 0x00, /*goto*/ 0x0f - label 0x31 - if_chr_distance_gt 500, /*goto*/ 0x31 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x04 - label 0x31 - if_player_looking_at_something_maybe 0x00, 0x00, 0x01, /*goto*/ 0x02 - if_target_chr_in_sight /*goto*/ 0x04 - label 0x02 - if_timer_gt 120, /*goto*/ 0x16 - endloop 0x11 - - // Loaded - label 0x16 - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x31 - walk_to_pad 0x0012 // outside front door - goto_next 0x00 - - label 0x31 - walk_to_pad 0x0026 // top of escalators - - // Walking - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_stage_flag_eq STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE, TRUE, /*goto*/ 0x75 - if_chr_distance_gt 200, /*goto*/ 0x75 - set_stage_flag STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE - label 0x75 - if_self_flag_bankx_eq CHRFLAG0_CAN_EXAMINE_BODY, FALSE, BANK_0, /*goto*/ 0x31 - if_saw_death 0x00, /*goto*/ 0x0f - label 0x31 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x04 - if_player_looking_at_something_maybe 0x00, 0x00, 0x01, /*goto*/ 0x02 - if_target_chr_in_sight /*goto*/ 0x04 - label 0x02 - if_chr_stopped /*goto*/ 0x0b - endloop 0x00 - - // Saw player - label 0x04 - restart_timer - try_face_entity 0x0200, 0x0000, /*goto*/ 0x05 - - beginloop 0x05 - if_angle_to_target_chr_lt 10, /*goto*/ 0x02 - if_timer_gt 60, /*goto*/ 0x02 - endloop 0x05 - - label 0x02 - speak TARGET_CHR, 0x0e19, 0x1adc, CHANNEL_4, COLOR_07_RED // "Look out - it's an intruder..." - set_group_alertness 100 - animation ANIM_SURRENDER_002E, 0, 193, 0x1010, CHR_SELF, 2 - - beginloop 0x06 - if_chr_stopped /*goto*/ 0x02 - endloop 0x06 - - label 0x02 - jog_to_pad 0x001d // alcove in foyer - - beginloop 0x07 - if_chr_stopped /*goto*/ 0x0b - endloop 0x07 - - label 0x0b - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x31 - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - animation ANIM_SNEEZE, 0, -1, 0x1010, CHR_SELF, 2 - - beginloop 0x69 - if_chr_stopped /*goto*/ 0x02 - endloop 0x69 - - label 0x02 - goto_first 0x16 - - label 0x31 - set_stage_flag STAGEFLAG_STEWARDESS_ENTERED_BASE - - label 0x62 - set_stage_flag STAGEFLAG_DISGUISE_UNCOVERED - animation ANIM_COWER_0229, -1, 190, 0x100a, CHR_SELF, 2 - - beginloop 0x63 - if_chr_stopped /*goto*/ 0x31 - endloop 0x63 - - label 0x31 - goto_first 0x62 - - label 0x0f - chr_try_run_to_target_chr_with_hand_up 0xfb, /*goto*/ 0x49 - dprint "WALKFAIL\n" - - beginloop 0x49 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_stage_flag_eq STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE, TRUE, /*goto*/ 0x75 - if_chr_distance_gt 200, /*goto*/ 0x75 - set_stage_flag STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE - label 0x75 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x4e - dprint "WALKING\n" - if_player_looking_at_something_maybe 0x00, 0x00, 0x01, /*goto*/ 0x31 - if_target_chr_in_sight /*goto*/ 0x02 - label 0x31 - if_self_distance_to_chr_lt 200, 0xfb, /*goto*/ 0x4a - if_chr_stopped /*goto*/ 0x4a - endloop 0x49 - - label 0x4a - unset_self_flag_bankx CHRFLAG0_CAN_EXAMINE_BODY, BANK_0 - speak TARGET_CHR, 0x0e1b, 0x1add, CHANNEL_4, COLOR_07_RED // "Is he OK?" - stop_chr - restart_timer - - beginloop 0x4b - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_stage_flag_eq STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE, TRUE, /*goto*/ 0x75 - if_chr_distance_gt 200, /*goto*/ 0x75 - set_stage_flag STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE - label 0x75 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x4e - if_timer_gt 240, /*goto*/ 0x02 - endloop 0x4b - - label 0x02 - speak TARGET_CHR, 0x0e1c, 0x1ade, CHANNEL_4, COLOR_07_RED // "I'll go and get some help." - restart_timer - stop_chr - - beginloop 0x10 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_stage_flag_eq STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE, TRUE, /*goto*/ 0x75 - if_chr_distance_gt 200, /*goto*/ 0x75 - set_stage_flag STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE - label 0x75 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x4e - if_timer_gt 120, /*goto*/ 0x02 - endloop 0x10 - - label 0x02 - unset_self_flag_bankx CHRFLAG0_CAN_EXAMINE_BODY, BANK_0 - jog_to_pad 0x0026 - goto_first 0x00 - - label 0x4e - goto_first 0x04 - - endfunction - -func0406_become_unalerted: - set_self_flag_bank3 CHRFLAG3_00000040 - label 0x00 - yield - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x02 - set_function CHR_SELF, GFUNC_UNALERTED - - label 0x02 - if_chr_lost_track_of_target_maybe /*goto*/ 0x02 - if_chr_dying TARGET_CHR, /*goto*/ 0x02 - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x02 - if_chr_unloaded TARGET_CHR, /*goto*/ 0x02 - set_onshot_function FUNC_BECOME_UNALERTED - set_return_function CHR_SELF, FUNC_BECOME_UNALERTED - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - - label 0x02 - set_function CHR_SELF, GFUNC_UNALERTED - set_return_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func1005_check_civilians_killed: - beginloop 0x00 - if_stage_flag_eq STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x02 - if_chr_dying CHR_STEWARDESS, /*goto*/ 0x31 - if_chr_dying CHR_SECRETARY, /*goto*/ 0x31 - if_chr_dying CHR_OFFICE1, /*goto*/ 0x31 - if_chr_dying CHR_OFFICE2, /*goto*/ 0x31 - endloop 0x00 - - label 0x31 - message CHR_JOANNA, 0x0e1a // "Innocent civilians have been killed." - set_stage_flag STAGEFLAG_CIVILIANS_KILLED - set_function CHR_SELF, GFUNC_IDLE - - label 0x02 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -.macro init_path reaction health armor recovery pathid - set_accuracy 12 - set_reaction_speed \reaction - set_chr_health CHR_SELF, \health - set_armor \armor - set_recovery_speed \recovery - set_shield 0 - assign_path \pathid - start_path - set_function CHR_SELF, GFUNC_UNALERTED -.endm - -func041b_start_path06: - init_path 70, 40, 0, 0, 0x06 - endfunction - -func041c_start_path07: - init_path 70, 40, 0, 0, 0x07 - endfunction - -func041d_start_path08: - init_path 70, 40, 0, 0, 0x08 - endfunction - -func041e_start_path09: - init_path 70, 40, 0, 0, 0x09 - endfunction - -func041f_start_path10: - init_path 70, 40, 0, 0, 0x0a - endfunction - -func0420_start_path11: - init_path 45, 60, 40, 30, 0x0b - endfunction - -func0421_start_path12: - init_path 45, 60, 40, 30, 0x0c - endfunction - -/** - * Assigned to a stripes guard near the plane. - */ -func0422_start_path13: - set_chr_alliance CHR_SELF, 0x04 - set_accuracy 12 - set_reaction_speed 45 - set_chr_health CHR_SELF, 60 - set_armor 40 - set_recovery_speed 30 - set_shield 0 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - assign_path 13 - start_path - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func0423_start_path14: - set_chr_alliance CHR_SELF, 0x04 - set_accuracy 12 - set_reaction_speed 45 - set_chr_health CHR_SELF, 60 - set_armor 40 - set_recovery_speed 30 - set_shield 0 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - assign_path 14 - start_path - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func0424_start_path15_unused: - set_accuracy 12 - set_reaction_speed 45 - set_chr_health CHR_SELF, 60 - set_armor 40 - set_recovery_speed 30 - set_shield 0 - assign_path 15 - start_path - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func040c_init_secretary: - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, FUNC_SECRETARY - endfunction - -/** - * The secretary uses var_a to track things. - * - * 0 = Not done anything - * 1 = Not used - * 2 = Said "good afternoon" - * 3 = Said "you'll have to check that weapon" - * 4 = Said "weapons are not allowed" - */ -func0408_secretary: - set_onshot_function FUNC_SECRETARY - set_var_a 0 - if_chr_dying CHR_SELF, /*goto*/ 0x02 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x02 - if_chr_unloaded CHR_SELF, /*goto*/ 0x02 - goto_next 0x00 - - label 0x02 - set_function CHR_SELF, GFUNC_IDLE - - .set LABEL_MAIN_LOOP, 0x00 - .set LABEL_BECOME_ALERT1, 0x66 - .set LABEL_BECOME_ALERT2, 0x68 - - # - # MAIN LOOP - # - beginloop LABEL_MAIN_LOOP - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - set_view_distance 100 - if_shot_near_chr 0x00, /*goto*/ LABEL_BECOME_ALERT1 - if_saw_death 0x00, /*goto*/ LABEL_BECOME_ALERT1 - set_view_distance 14 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ LABEL_BECOME_ALERT1 - if_target_chr_in_sight /*goto*/ 0x02 - if_alarm_active2 /*goto*/ 0x67 - endloop LABEL_MAIN_LOOP - - // Joanna within 14 units (?) of distance - label 0x02 - restart_timer - try_face_entity 0x0200, 0x0000, /*goto*/ 0x05 - - beginloop 0x05 - if_angle_to_target_chr_lt 10, /*goto*/ 0x02 - if_timer_gt 60, /*goto*/ 0x02 - endloop 0x05 - - label 0x02 - if_stage_flag_eq STAGEFLAG_DISGUISED, TRUE, /*goto*/ 0x07 - - # - # BECOMING ALERT - # - label LABEL_BECOME_ALERT1 - mute_channel CHANNEL_4 - yield - label 0x02 - speak TARGET_CHR, 0x0e20, 0x8162, CHANNEL_4, COLOR_06_WHITE // "Oh, my God!" - - label 0x67 - set_group_alertness 100 - restart_timer - animation ANIM_SURRENDER_002E, 0, 193, 0x1810, CHR_SELF, 2 - - beginloop 0x06 - if_chr_stopped /*goto*/ 0x4f - endloop 0x06 - - label 0x4f - set_stage_flag STAGEFLAG_DISGUISE_UNCOVERED - animation ANIM_COWER_0229, -1, -1, 0x100a, CHR_SELF, 2 - - beginloop 0x0f - if_chr_stopped /*goto*/ 0x31 - endloop 0x0f - - label 0x31 - if_stage_flag_eq STAGEFLAG_RECEPTIONIST_CALLED_SECURITY, TRUE, /*goto*/ 0x31 - goto_next 0x77 - - label 0x31 - goto_first 0x4f - - // Unreachable - set_function CHR_SELF, GFUNC_IDLE - - // Seen Jo while disguised - label 0x07 - if_var_a_lt 2, /*goto*/ 0x32 - goto_next 0x02 - - # - # FIRST TALK - # - label 0x32 - speak TARGET_CHR, 0x0e1d, 0x8161, CHANNEL_4, COLOR_06_WHITE // "Good afternoon." - animation ANIM_TALKING_0231, 0, 193, 0x1810, CHR_SELF, 2 - restart_timer - set_var_a 2 - - beginloop 0x08 - if_shot_near_chr 0x00, /*goto*/ LABEL_BECOME_ALERT2 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ LABEL_BECOME_ALERT2 - if_timer_gt 60, /*goto*/ 0x02 - if_chr_sees_player /*goto*/ 0x31 - goto_first LABEL_MAIN_LOOP - - label 0x31 - endloop 0x08 - - # - # SECOND TALK/WEAPON CHECK - # - label 0x02 - if_chr_weapon_equipped TARGET_CHR, WEAPON_NONE, /*goto*/ 0x0c - if_chr_weapon_equipped TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x0c - if_chr_weapon_equipped TARGET_CHR, WEAPON_HORIZONSCANNER, /*goto*/ 0x0c - if_chr_weapon_equipped TARGET_CHR, WEAPON_SUITCASE, /*goto*/ 0x0c - if_var_a_lt 3, /*goto*/ 0x32 - goto_next 0x02 - - # - # WEAPON TALK 1 - # - label 0x32 - speak TARGET_CHR, 0x0e1f, 0x1273, CHANNEL_4, COLOR_06_WHITE // "You'll have to check that weapon in here." - restart_timer - animation ANIM_TALKING_0232, 0, 193, 0x1810, CHR_SELF, 2 - set_var_a 3 - - beginloop 0x09 - if_shot_near_chr 0x00, /*goto*/ LABEL_BECOME_ALERT2 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ LABEL_BECOME_ALERT2 - if_timer_gt 400, /*goto*/ 0x02 - if_chr_sees_player /*goto*/ 0x31 - goto_first LABEL_MAIN_LOOP - - label 0x31 - endloop 0x09 - - // 6.66 seconds since weapon talk - label 0x02 - if_chr_weapon_equipped TARGET_CHR, WEAPON_NONE, /*goto*/ 0x31 - if_chr_weapon_equipped TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x31 - if_chr_weapon_equipped TARGET_CHR, WEAPON_HORIZONSCANNER, /*goto*/ 0x31 - if_chr_weapon_equipped TARGET_CHR, WEAPON_SUITCASE, /*goto*/ 0x31 - if_var_a_lt 4, /*goto*/ 0x32 - goto_next 0x02 - - label 0x32 - speak TARGET_CHR, 0x0e21, 0x1274, CHANNEL_4, COLOR_06_WHITE // "Weapons are not allowed in the base." - restart_timer - animation ANIM_TALKING_0233, 0, 193, 0x1810, CHR_SELF, 2 - set_var_a 4 - - beginloop 0x0a - if_shot_near_chr 0x00, /*goto*/ LABEL_BECOME_ALERT2 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ LABEL_BECOME_ALERT2 - if_timer_gt 400, /*goto*/ 0x0c - if_chr_sees_player /*goto*/ 0x31 - goto_first LABEL_MAIN_LOOP - - label 0x31 - endloop 0x0a - - // Wait 1.5 seconds, check weapon equipped and call security if so - label 0x0c - restart_timer - - beginloop 0x0d - if_timer_gt 90, /*goto*/ 0x31 - endloop 0x0d - - label 0x31 - if_chr_weapon_equipped TARGET_CHR, WEAPON_NONE, /*goto*/ 0x31 - if_chr_weapon_equipped TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x31 - if_chr_weapon_equipped TARGET_CHR, WEAPON_HORIZONSCANNER, /*goto*/ 0x31 - if_chr_weapon_equipped TARGET_CHR, WEAPON_SUITCASE, /*goto*/ 0x31 - - // Calling security - label 0x77 - speak TARGET_CHR, 0x0e22, 0x1276, CHANNEL_4, COLOR_06_WHITE // "Right, I'm calling security." - set_stage_flag STAGEFLAG_RECEPTIONIST_CALLED_SECURITY - activate_alarm - restart_timer - animation ANIM_SURRENDER_002E, 0, 193, 0x1810, CHR_SELF, 2 - - beginloop 0x0b - if_timer_gt 180, /*goto*/ 0x02 - endloop 0x0b - - label 0x02 - goto_first 0x4f - - // Unreachable - set_function CHR_SELF, GFUNC_IDLE - - # - # TALK 2 - # - label 0x31 - speak TARGET_CHR, 0x0e1e, 0x1272, CHANNEL_4, COLOR_06_WHITE // "OK, you know the way from here." - animation 0x0232, 0, 193, 0x1810, CHR_SELF, 2 - unlock_door 0x18, 0x02 - - beginloop 0x0e - if_shot_near_chr 0x00, /*goto*/ LABEL_BECOME_ALERT2 - if_saw_death 0x00, /*goto*/ LABEL_BECOME_ALERT2 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ LABEL_BECOME_ALERT2 - endloop 0x0e - - label 0x02 - set_function CHR_SELF, GFUNC_IDLE - - label LABEL_BECOME_ALERT2 - goto_first LABEL_BECOME_ALERT1 - - endfunction - -unregistered_function2: - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_flag_bank2 CHR_P1P2, CHRFLAG2_DISGUISED, /*goto*/ 0x02 - endloop 0x00 - - label 0x02 - if_stage_flag_eq STAGEFLAG_DISGUISE_UNCOVERED, TRUE, /*goto*/ 0x02 - if_stage_flag_eq STAGEFLAG_RECEPTIONIST_CALLED_SECURITY, TRUE, /*goto*/ 0x02 - set_stage_flag STAGEFLAG_DISGUISED - - label 0x02 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1007_console_activation: - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - if_object_in_good_condition OBJ_CONSOLE, /*goto*/ 0x31 - goto_next 0x0c - - label 0x31 - if_chr_activated_object CHR_P1P2, OBJ_CONSOLE, /*goto*/ 0x02 - endloop 0x00 - - label 0x02 - set_stage_flag STAGEFLAG_CONSOLE_ACTIVATED - set_object_image OBJ_CONSOLE, 0x00, 0x0f - set_object_image OBJ_CONSOLE, 0x01, 0x0f - set_chr_flag_bankx 0x12, CHRFLAG0_00002000, BANK_0 - message CHR_P1P2, 0x0e23 // "System shutdown initiated..." - mute_channel CHANNEL_1 - assign_sound 0x01b9, CHANNEL_1 - control_sound_from_object CHANNEL_1, OBJ_CONSOLE, TRUE - restart_timer - - beginloop 0x04 - if_object_in_good_condition OBJ_CONSOLE, /*goto*/ 0x31 - goto_next 0x0c - - label 0x31 - if_timer_gt 120, /*goto*/ 0x02 - endloop 0x04 - - label 0x02 - set_object_image OBJ_CONSOLE, 0x00, 0x14 - mute_channel CHANNEL_1 - assign_sound 0x0479, CHANNEL_1 - control_sound_from_object CHANNEL_1, OBJ_CONSOLE, TRUE - message CHR_P1P2, 0x0e24 // "Security systems have been shut down." - set_stage_flag STAGEFLAG_SECURITY_SHUT_DOWN - unset_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_DISGUISED - restart_timer - - beginloop 0x05 - if_timer_gt 120, /*goto*/ 0x31 - endloop 0x05 - - label 0x31 - set_object_image OBJ_CONSOLE, 0x01, 0x14 - play_x_music 0x58, 88 // @bug? Invalid channel - - beginloop 0x06 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_y CHR_P1P2, -2000 OPERATOR_LESS_THAN, /*goto*/ 0x02 - endloop 0x06 - - label 0x02 - stop_music_channel CHANNEL_1 - - label 0x0c - mute_channel CHANNEL_1 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -.macro weapon_detection_logic chr - if_difficulty_lt DIFF_SA, /*goto*/ 0x08 - - label 0x00 - yield - mute_channel CHANNEL_6 - set_lights_state 0x0039, 0x03, 0x78, 0xff, 0x3c - set_lights_state 0x003a, 0x03, 0x78, 0xff, 0x3c - set_lights_state 0x003b, 0x03, 0x78, 0xff, 0x3c - set_lights_state 0x0041, 0x03, 0x78, 0xff, 0x3c - set_lights_state 0x0042, 0x03, 0x78, 0xff, 0x3c - set_lights_state 0x0043, 0x03, 0x78, 0xff, 0x3c - - beginloop 0x65 - if_stage_flag_eq STAGEFLAG_SUITCASE_DEPOSITED, TRUE, /*goto*/ 0x08 - if_chr_in_room \chr, 0x00, 0x0039, /*goto*/ 0x31 - if_chr_in_room \chr, 0x00, 0x003a, /*goto*/ 0x31 - if_chr_in_room \chr, 0x00, 0x003b, /*goto*/ 0x31 - if_chr_in_room \chr, 0x00, 0x0041, /*goto*/ 0x31 - if_chr_in_room \chr, 0x00, 0x0042, /*goto*/ 0x31 - if_chr_in_room \chr, 0x00, 0x0043, /*goto*/ 0x31 - endloop 0x65 - - // In hallway with weapons - label 0x31 - set_lights_state 0x0039, 0x04, 0x00, 0xff, 0x3c - set_lights_state 0x003a, 0x04, 0x00, 0xff, 0x3c - set_lights_state 0x003b, 0x04, 0x00, 0xff, 0x3c - set_lights_state 0x0041, 0x04, 0x00, 0xff, 0x3c - set_lights_state 0x0042, 0x04, 0x00, 0xff, 0x3c - set_lights_state 0x0043, 0x04, 0x00, 0xff, 0x3c - play_sound 0x04ac, CHANNEL_6 - restart_timer - - beginloop 0x04 - if_timer_gt 60, /*goto*/ 0x02 - if_chr_in_room \chr, 0x00, 0x0039, /*goto*/ 0x31 - if_chr_in_room \chr, 0x00, 0x003a, /*goto*/ 0x31 - if_chr_in_room \chr, 0x00, 0x003b, /*goto*/ 0x31 - if_chr_in_room \chr, 0x00, 0x0041, /*goto*/ 0x31 - if_chr_in_room \chr, 0x00, 0x0042, /*goto*/ 0x31 - if_chr_in_room \chr, 0x00, 0x0043, /*goto*/ 0x31 - goto_first 0x00 - - label 0x31 - endloop 0x04 - - // In hallway with weapons for over 60 frames - label 0x02 - restart_timer - set_lights_state 0x0039, 0x04, 0x00, 0xff, 0x32 - set_lights_state 0x003a, 0x04, 0x00, 0xff, 0x32 - set_lights_state 0x003b, 0x04, 0x00, 0xff, 0x32 - set_lights_state 0x0041, 0x04, 0x00, 0xff, 0x32 - set_lights_state 0x0042, 0x04, 0x00, 0xff, 0x32 - set_lights_state 0x0043, 0x04, 0x00, 0xff, 0x32 - - beginloop 0x05 - if_timer_gt 40, /*goto*/ 0x02 - if_chr_in_room \chr, 0x00, 0x0039, /*goto*/ 0x31 - if_chr_in_room \chr, 0x00, 0x003a, /*goto*/ 0x31 - if_chr_in_room \chr, 0x00, 0x003b, /*goto*/ 0x31 - if_chr_in_room \chr, 0x00, 0x0041, /*goto*/ 0x31 - if_chr_in_room \chr, 0x00, 0x0042, /*goto*/ 0x31 - if_chr_in_room \chr, 0x00, 0x0043, /*goto*/ 0x31 - goto_first 0x00 - - label 0x31 - endloop 0x05 - - // In hallway with weapons for over 100 frames - label 0x02 - restart_timer - set_lights_state 0x0039, 0x04, 0x00, 0xff, 0x28 - set_lights_state 0x003a, 0x04, 0x00, 0xff, 0x28 - set_lights_state 0x003b, 0x04, 0x00, 0xff, 0x28 - set_lights_state 0x0041, 0x04, 0x00, 0xff, 0x28 - set_lights_state 0x0042, 0x04, 0x00, 0xff, 0x28 - set_lights_state 0x0043, 0x04, 0x00, 0xff, 0x28 - - beginloop 0x06 - if_timer_gt 1, /*goto*/ 0x02 - if_chr_in_room \chr, 0x00, 0x0039, /*goto*/ 0x31 - if_chr_in_room \chr, 0x00, 0x003a, /*goto*/ 0x31 - if_chr_in_room \chr, 0x00, 0x003b, /*goto*/ 0x31 - if_chr_in_room \chr, 0x00, 0x0041, /*goto*/ 0x31 - if_chr_in_room \chr, 0x00, 0x0042, /*goto*/ 0x31 - if_chr_in_room \chr, 0x00, 0x0043, /*goto*/ 0x31 - goto_first 0x00 - - label 0x31 - endloop 0x06 - - // In hallway with weapons for over 101 frames - label 0x02 - restart_timer - set_lights_state 0x0039, 0x04, 0x00, 0xff, 0x1e - set_lights_state 0x003a, 0x04, 0x00, 0xff, 0x1e - set_lights_state 0x003b, 0x04, 0x00, 0xff, 0x1e - set_lights_state 0x0041, 0x04, 0x00, 0xff, 0x1e - set_lights_state 0x0042, 0x04, 0x00, 0xff, 0x1e - set_lights_state 0x0043, 0x04, 0x00, 0xff, 0x1e - - beginloop 0x07 - yield - yield - yield - yield - yield - yield - yield - yield - yield - if_timer_gt 30, /*goto*/ 0x02 - if_chr_in_room \chr, 0x00, 0x0039, /*goto*/ 0x31 - if_chr_in_room \chr, 0x00, 0x003a, /*goto*/ 0x31 - if_chr_in_room \chr, 0x00, 0x003b, /*goto*/ 0x31 - if_chr_in_room \chr, 0x00, 0x0041, /*goto*/ 0x31 - if_chr_in_room \chr, 0x00, 0x0042, /*goto*/ 0x31 - if_chr_in_room \chr, 0x00, 0x0043, /*goto*/ 0x31 - goto_first 0x00 - - label 0x31 - endloop 0x07 - - label 0x02 - message \chr, 0x0e25 // "Weapons have been detected." - set_stage_flag STAGEFLAG_WEAPONS_DETECTED - label 0x31 - mute_channel CHANNEL_6 - yield - activate_alarm - set_function CHR_SELF, GFUNC_IDLE - - // Agent, or suitcase deposited - label 0x08 - set_function CHR_SELF, GFUNC_IDLE -.endm - -func1020_weapon_scanning_joanna: - yield - weapon_detection_logic CHR_JOANNA - endfunction - -func1021_weapon_scanning_velvet: - yield - set_target_chr CHR_VELVET - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x31 - goto_next 0x02 - - label 0x31 - set_function CHR_SELF, GFUNC_IDLE - - label 0x02 - weapon_detection_logic CHR_VELVET - endfunction - -func1009_carousel_activation: - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, OBJ_BAGGAGE_CARRIER, /*goto*/ 0x02 - if_stage_flag_eq STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x31 - reloop 0x00 - - // Shut down without depositing - label 0x31 - if_difficulty_lt DIFF_SA, /*goto*/ 0x09 - message CHR_JOANNA, 0x0e42 // "Hover trolley has been shut down." - set_stage_flag STAGEFLAG_TROLLEY_SHUT_DOWN_WITHOUT_BRIEFCASE - yield - message CHR_JOANNA, 0x0e43 // "Equipment cannot be checked in." - label 0x09 - set_function CHR_SELF, GFUNC_IDLE - - // Carrier activated - label 0x02 - if_chr_weapon_equipped CHR_P1P2, WEAPON_SUITCASE, /*goto*/ 0x02 - endloop 0x00 - - label 0x02 - message CHR_P1P2, 0x0e26 // "Suitcase has been deposited." - chr_draw_weapon_in_cutscene CHR_P1P2, WEAPON_UNARMED - set_stage_flag STAGEFLAG_SUITCASE_DEPOSITED - play_sound 0x80aa, CHANNEL_7 - unset_object_flag_bank1 OBJ_BRIEFCASE2, OBJECTFLAG1_INVISIBLE - move_object_to_pad OBJ_BRIEFCASE2, 0x00de - yield - restart_timer - - beginloop 0x05 - if_timer_gt 120, /*goto*/ 0x02 - endloop 0x05 - - label 0x02 - clear_inventory CHR_JOANNA - unset_object_flag_bank0 OBJ_BAGGAGE_CARRIER, OBJECTFLAG0_DEACTIVATED - open_door 0x23 - restart_timer - - beginloop 0x04 - if_timer_gt 400, /*goto*/ 0x02 - endloop 0x04 - - label 0x02 - set_object_flag_bank0 OBJ_BAGGAGE_CARRIER, OBJECTFLAG0_DEACTIVATED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100b_suitcase_scanning: - beginloop 0x00 - if_stage_flag_eq STAGEFLAG_SUITCASE_DEPOSITED, TRUE, /*goto*/ 0x02 - endloop 0x00 - - label 0x02 - restart_timer - if_difficulty_lt DIFF_SA, /*goto*/ 0x07 - if_difficulty_lt DIFF_PA, /*goto*/ 0xb7 - - // PA - set_countdown_timer 30 - show_countdown_timer - start_countdown_timer - - beginloop 0x06 - if_stage_flag_eq STAGEFLAG_CONSOLE_ACTIVATED, TRUE, /*goto*/ 0x07 - if_stage_flag_eq STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x07 - if_countdown_timer_lt 1, /*goto*/ 0x02 - endloop 0x06 - - // SA - label 0xb7 - set_countdown_timer 45 - show_countdown_timer - start_countdown_timer - - beginloop 0x05 - if_stage_flag_eq STAGEFLAG_CONSOLE_ACTIVATED, TRUE, /*goto*/ 0x07 - if_stage_flag_eq STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x07 - if_countdown_timer_lt 1, /*goto*/ 0x02 - endloop 0x05 - - // Scanned - label 0x02 - message CHR_JOANNA, 0x0e27 // "Suitcase has been scanned." - set_stage_flag STAGEFLAG_SUITCASE_SCANNED - - // Agent - label 0x07 - stop_countdown_timer - hide_countdown_timer - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040d_init_office1: - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, FUNC_OFFICE1 - endfunction - -func0409_office1: - .set LABEL_RUN_TO_FOYER, 0x4f - - set_self_flag_bank3 CHRFLAG3_00040000 - set_var_a 0 - set_onshot_function FUNC_OFFICE1 - if_chr_dying CHR_SELF, /*goto*/ 0x02 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x02 - if_chr_unloaded CHR_SELF, /*goto*/ 0x02 - goto_next 0x42 - - label 0x02 - set_function CHR_SELF, GFUNC_IDLE - - label 0x42 - animation ANIM_SITTING_DORMANT, 0, -1, 0x1410, CHR_SELF, 2 - - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x02 - if_shot_near_chr 0x00, /*goto*/ LABEL_RUN_TO_FOYER - if_stage_flag_eq STAGEFLAG_OFFICE2_DEAD, TRUE, /*goto*/ LABEL_RUN_TO_FOYER - if_object_in_good_condition 0x45, /*goto*/ 0x33 - goto_next LABEL_RUN_TO_FOYER - - label 0x33 - if_chr_idle /*goto*/ 0x31 - goto_first 0x42 - - label 0x31 - endloop 0x00 - - // Jo in sight - label 0x02 - if_stage_flag_eq STAGEFLAG_DISGUISED, FALSE, /*goto*/ 0x07 - - // Disguised - if_chr_weapon_equipped TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x31 - if_chr_weapon_equipped TARGET_CHR, WEAPON_HORIZONSCANNER, /*goto*/ 0x31 - if_chr_weapon_equipped TARGET_CHR, WEAPON_SUITCASE, /*goto*/ 0x31 - goto_next 0x07 - - // Disguised and unarmed-ish - label 0x31 - animation ANIM_SITTING_0265, 0, -1, 0x1410, CHR_SELF, 2 - speak TARGET_CHR, 0x0e29, 0x1ae6, CHANNEL_4, COLOR_08_RED // "Are you new around here?" - - beginloop 0x09 - if_shot_near_chr 0x00, /*goto*/ LABEL_RUN_TO_FOYER - if_stage_flag_eq STAGEFLAG_OFFICE2_DEAD, TRUE, /*goto*/ LABEL_RUN_TO_FOYER - if_chr_has_object TARGET_CHR, OBJ_BRIEFCASE1, /*goto*/ 0x02 - if_chr_weapon_equipped TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x31 - if_chr_weapon_equipped TARGET_CHR, WEAPON_HORIZONSCANNER, /*goto*/ 0x31 - if_chr_weapon_equipped TARGET_CHR, WEAPON_SUITCASE, /*goto*/ 0x31 - goto_next 0x07 - - label 0x31 - if_chr_idle /*goto*/ 0x31 - goto_next 0x7b - - label 0x31 - reloop 0x09 - - label 0x7b - animation ANIM_SITTING_DORMANT, 0, -1, 0x1400, CHR_SELF, 2 - endloop 0x09 - - // Picked up briefcase - label 0x02 - restart_timer - try_face_entity 0x0200, 0x0000, /*goto*/ 0x0b - - beginloop 0x0b - if_sound_finished CHANNEL_4, /*goto*/ 0x31 - reloop 0x0b - - label 0x31 - if_angle_to_target_chr_lt 10, /*goto*/ 0x02 - if_timer_gt 60, /*goto*/ 0x02 - endloop 0x0b - - label 0x02 - speak TARGET_CHR, 0x0e2a, 0x1ae7, CHANNEL_4, COLOR_08_RED // "Hey - give me back my case." - restart_timer - set_group_alertness 100 - - beginloop 0x0a - if_timer_gt 120, /*goto*/ 0x02 - endloop 0x0a - - label 0x02 - goto_next LABEL_RUN_TO_FOYER - - // Not disguised, or disguised with weapon equipped - label 0x07 - object_do_animation 0x025a, 0xff, 0x02ff, 0xff - restart_timer - try_face_entity 0x0200, 0x0000, /*goto*/ 0x05 - - beginloop 0x05 - if_angle_to_target_chr_lt 10, /*goto*/ 0x02 - if_timer_gt 60, /*goto*/ 0x02 - endloop 0x05 - - label 0x72 - label 0x02 - speak TARGET_CHR, 0x0e28, 0x1ae5, CHANNEL_4, COLOR_08_RED // "Hey, you - this is a restricted area." - set_group_alertness 100 - restart_timer - animation ANIM_WALK_BACKWARDS, -1, -1, 0x1010, CHR_SELF, 2 - - beginloop 0x06 - if_timer_gt 180, /*goto*/ LABEL_RUN_TO_FOYER - endloop 0x06 - - // Run to foyer - label LABEL_RUN_TO_FOYER - jog_to_pad 0x001b - - beginloop 0x08 - if_chr_stopped /*goto*/ 0x02 - endloop 0x08 - - label 0x02 - speak TARGET_CHR, 0x0e2c, 0x1ae8, CHANNEL_4, COLOR_08_RED // "Upstairs...there's an intruder." - set_group_alertness 100 - set_stage_flag STAGEFLAG_DISGUISE_UNCOVERED - activate_alarm - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040e_init_office2: - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, FUNC_OFFICE2 - endfunction - -func040a_office2: - set_self_flag_bank3 CHRFLAG3_00040000 - set_var_a 0 - set_onshot_function FUNC_OFFICE2 - if_chr_dying CHR_SELF, /*goto*/ 0x02 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x02 - if_chr_unloaded CHR_SELF, /*goto*/ 0x02 - goto_next 0x42 - - label 0x02 - set_function CHR_SELF, GFUNC_IDLE - - label 0x42 - animation ANIM_SITTING_DORMANT, 0, -1, 0x1410, CHR_SELF, 2 - - beginloop 0x00 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x02 - if_shot_near_chr 0x00, /*goto*/ 0x72 - if_stage_flag_eq STAGEFLAG_OFFICE1_DEAD, TRUE, /*goto*/ 0x72 - if_chr_idle /*goto*/ 0x31 - goto_first 0x42 - - label 0x31 - endloop 0x00 - - // Alert - label 0x02 - - beginloop 0x09 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_sees_player /*goto*/ 0x02 - if_shot_near_chr 0x00, /*goto*/ 0x02 - if_stage_flag_eq STAGEFLAG_OFFICE1_DEAD, TRUE, /*goto*/ 0x72 - endloop 0x09 - - label 0x72 - label 0x02 - object_do_animation 0x025a, 0xff, 0x02ff, 0xff - restart_timer - try_face_entity 0x0200, 0x0000, /*goto*/ 0x05 - - // Wait for other guy to finish talking - beginloop 0x05 - if_sound_finished CHANNEL_4, /*goto*/ 0x31 - reloop 0x05 - - label 0x31 - yield - yield - yield - yield - yield - if_sound_finished CHANNEL_4, /*goto*/ 0x31 - reloop 0x05 - - label 0x31 - if_angle_to_target_chr_lt 10, /*goto*/ 0x02 - if_timer_gt 60, /*goto*/ 0x02 - endloop 0x05 - - label 0x02 - if_chr_dying CHR_OFFICE1, /*goto*/ 0x02 - if_chr_death_animation_finished CHR_OFFICE1, /*goto*/ 0x02 - if_chr_unloaded CHR_OFFICE1, /*goto*/ 0x02 - speak TARGET_CHR, 0x0e2b, 0x1ae9, CHANNEL_4, COLOR_09_BLUE // "You get security - I'll deal with her..." - set_group_alertness 100 - restart_timer - - beginloop 0x06 - if_chr_stopped /*goto*/ 0x02 - if_timer_gt 120, /*goto*/ 0x02 - endloop 0x06 - - // Attack player - label 0x02 - set_self_flag_bankx CHRFLAG1_00000001, BANK_1 - set_function CHR_SELF, GFUNC_ALERTED - - // Unreachable - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100c_check_end_level: - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - if_objective_complete 0, /*goto*/ 0x31 - goto_first 0x00 - - label 0x31 - if_difficulty_lt DIFF_SA, /*goto*/ 0x31 - if_objective_complete 1, /*goto*/ 0x31 - goto_first 0x00 - - label 0x31 - if_objective_complete 2, /*goto*/ 0x31 - goto_first 0x00 - - label 0x31 - if_difficulty_lt DIFF_PA, /*goto*/ 0x31 - if_objective_complete 3, /*goto*/ 0x31 - goto_first 0x00 - - label 0x31 - if_chr_distance_to_pad_lt CHR_P1P2, 200, 0x00e9, /*goto*/ 0x04 - if_chr_distance_to_pad_lt CHR_P1P2, 200, 0x00d5, /*goto*/ 0x05 - endloop 0x00 - - // Pad 0x00e9 - label 0x04 - set_stage_flag STAGEFLAG_BOARDED_PLANE - unset_eeprom_flag EEPROMFLAG_AF1_ENTRY - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x31 - if_chr_dying CHR_JOANNA, /*goto*/ 0x31 - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x31 - goto_next 0x02 - - label 0x31 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x31 - if_chr_dying CHR_VELVET, /*goto*/ 0x31 - if_chr_unloaded CHR_VELVET, /*goto*/ 0x31 - goto_next 0x02 - - // Both players dead - label 0x31 - end_level - set_function CHR_SELF, GFUNC_IDLE - - // Mission complete - label 0x02 - set_invincible CHR_JOANNA - set_function CHR_SELF, 0x0425 - - // Pad 0x00d5 - label 0x05 - set_stage_flag STAGEFLAG_BOARDED_PLANE - set_eeprom_flag EEPROMFLAG_AF1_ENTRY - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x31 - if_chr_dying CHR_JOANNA, /*goto*/ 0x31 - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x31 - goto_next 0x02 - - label 0x31 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x31 - if_chr_dying CHR_VELVET, /*goto*/ 0x31 - if_chr_unloaded CHR_VELVET, /*goto*/ 0x31 - goto_next 0x02 - - // Both players dead - label 0x31 - end_level - set_function CHR_SELF, GFUNC_IDLE - - // Mission complete - label 0x02 - set_invincible CHR_JOANNA - set_function CHR_SELF, 0x0425 - endfunction - -func100d_laser_panel: - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, OBJ_LASER_PANEL, /*goto*/ 0x04 - if_object_in_good_condition OBJ_LASER_PANEL, /*goto*/ 0x02 - goto_next 0x05 - - label 0x02 - reloop 0x00 - - label 0x04 - assign_sound 0x043a, CHANNEL_7 - control_sound_from_object CHANNEL_7, OBJ_LASER_PANEL, TRUE - message CHR_P1P2, 0x0e2d // "Laser grid access denied." - endloop 0x00 - - label 0x05 - set_stage_flag STAGEFLAG_LASERS_OVERLOADED - message CHR_P1P2, 0x0e2e // "Laser grid system has been overloaded." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100e_check_alaskans_killed: - set_chr_flag_bank3 0x00, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x01, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x02, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x03, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x04, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x05, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x06, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x07, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x08, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x09, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x0a, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x0b, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x0c, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x0d, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x0e, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x0f, CHRFLAG3_KILLCOUNTABLE - - beginloop 0x00 - if_stage_flag_eq STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x02 - if_kill_count_gt 2, /*goto*/ 0x31 - endloop 0x00 - - label 0x31 - message CHR_JOANNA, 0x0e2f // "Too many neutral casualties inflicted." - set_stage_flag STAGEFLAG_TOO_MANY_NEUTRALS_KILLED - label 0x02 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * @unused - */ -func0410_unused: - set_chr_dodge_rating 2, 0x0a - set_accuracy 22 - set_reaction_speed 80 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_self_flag_bank3 CHRFLAG3_00000040 - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_00040000 - set_function CHR_SELF, FUNC_NSA - endfunction - -func040f_nsa: - set_onshot_function FUNC_NSA - if_chr_dying CHR_SELF, /*goto*/ 0x02 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x02 - if_chr_unloaded CHR_SELF, /*goto*/ 0x02 - goto_next 0x44 - - label 0x02 - set_function CHR_SELF, GFUNC_IDLE - - label 0x44 - if_chr_distance_to_pad_lt CHR_SELF, 70, TARGET_PAD, /*goto*/ 0x02 - - // Return to pad - walk_to_pad TARGET_PAD - - beginloop 0x06 - dprint "GO FOR PAD\n" - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_distance_lt 250, /*goto*/ 0x64 - if_self_flag_bankx_eq CHRFLAG0_00000080, TRUE, BANK_0, /*goto*/ 0x33 - if_chr_in_room TARGET_CHR, 0x00, 0x006b, /*goto*/ 0x31 - if_chr_in_room TARGET_CHR, 0x00, 0x006c, /*goto*/ 0x31 - if_chr_in_room TARGET_CHR, 0x00, 0x006d, /*goto*/ 0x31 - goto_first 0x00 - - label 0x33 - if_chr_in_room TARGET_CHR, 0x00, 0x003c, /*goto*/ 0x31 - if_chr_in_room TARGET_CHR, 0x00, 0x003d, /*goto*/ 0x31 - if_chr_in_room TARGET_CHR, 0x00, 0x003e, /*goto*/ 0x31 - if_chr_y TARGET_CHR, -257, OPERATOR_LESS_THAN, /*goto*/ 0x6d // gone down an escalator - goto_next 0x76 - - label 0x6d - if_chr_in_room TARGET_CHR, 0x00, 0x003f, /*goto*/ 0x31 - label 0x76 - goto_first 0x00 - - label 0x31 - if_chr_sees_player /*goto*/ 0x04 - if_chr_distance_to_pad_lt CHR_SELF, 70, TARGET_PAD, /*goto*/ 0x02 - endloop 0x06 - - // At pad - label 0x02 - stop_chr - - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - dprint "WAIT FOR CHR\n" - set_target_chr CHR_P1P2 - if_stage_flag_eq STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x0b - if_chr_sees_player /*goto*/ 0x31 - endloop 0x00 - - // Seen player - label 0x31 - dprint "CHR\n" - if_chr_y TARGET_CHR, -330 OPERATOR_LESS_THAN, /*goto*/ 0x02 - goto_first 0x00 - - // Seen player down escalator - label 0x02 - if_self_flag_bankx_eq CHRFLAG0_00000080, TRUE, BANK_0, /*goto*/ 0x33 - if_chr_in_room TARGET_CHR, 0x00, 0x006b, /*goto*/ 0x04 - if_chr_in_room TARGET_CHR, 0x00, 0x006c, /*goto*/ 0x04 - if_chr_in_room TARGET_CHR, 0x00, 0x006d, /*goto*/ 0x04 - goto_first 0x00 - - label 0x33 - if_chr_in_room TARGET_CHR, 0x00, 0x003c, /*goto*/ 0x04 - if_chr_in_room TARGET_CHR, 0x00, 0x003d, /*goto*/ 0x04 - if_chr_in_room TARGET_CHR, 0x00, 0x003e, /*goto*/ 0x04 - if_chr_y TARGET_CHR, -257, OPERATOR_LESS_THAN, /*goto*/ 0x6d - goto_next 0x76 - - // Seen player down escalator but not in security hall - label 0x6d - if_chr_in_room TARGET_CHR, 0x00, 0x003f, /*goto*/ 0x04 // escalator room - label 0x76 - goto_first 0x00 - - // Seen player in security hall or escalator room - label 0x04 - restart_timer - restart_timer - try_face_entity 0x0200, 0x0000, /*goto*/ 0x09 - - beginloop 0x09 - if_angle_to_target_chr_lt 10, /*goto*/ 0x02 - cmd004f 245, /*goto*/ 0x02 - if_timer_gt 60, /*goto*/ 0x02 - endloop 0x09 - - label 0x02 - animation ANIM_TALKING_0098, 0, 90, 0x0010, CHR_SELF, 2 - say_quip CHR_JOANNA, 0x1c, 0xff, 0x02, 0xff, 0x81, 0x00, 0x00 - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - - beginloop 0x0a - if_chr_stopped /*goto*/ 0x02 - endloop 0x0a - - label 0x02 - set_return_function CHR_SELF, GFUNC_ALERTED - set_function CHR_SELF, GFUNC_ALERTED - - // Unreachable - restart_timer - set_target_chr CHR_P1P2 - try_walk_to_target_chr /*goto*/ 0x05 - - // Also unreachable - label 0x31 - dprint "RUN START\n" - restart_timer - set_target_chr CHR_JOANNA - try_run_to_target_chr /*goto*/ 0x05 - - beginloop 0x05 - set_return_function CHR_SELF, GFUNC_ALERTED - set_function CHR_SELF, GFUNC_ALERTED - dprint "GO FOR CHR\n" - if_chr_stopped /*goto*/ 0x32 - if_timer_gt 30, /*goto*/ 0x32 - if_chr_y TARGET_CHR, -330, OPERATOR_LESS_THAN, /*goto*/ 0x02 - goto_next 0x07 - - label 0x02 - if_self_flag_bankx_eq CHRFLAG0_00000080, TRUE, BANK_0, /*goto*/ 0x33 - if_chr_in_room TARGET_CHR, 0x00, 0x006b, /*goto*/ 0x31 - if_chr_in_room TARGET_CHR, 0x00, 0x006c, /*goto*/ 0x31 - if_chr_in_room TARGET_CHR, 0x00, 0x006d, /*goto*/ 0x31 - goto_next 0x07 - - label 0x33 - if_chr_in_room TARGET_CHR, 0x00, 0x003c, /*goto*/ 0x31 - if_chr_in_room TARGET_CHR, 0x00, 0x003d, /*goto*/ 0x31 - if_chr_in_room TARGET_CHR, 0x00, 0x003e, /*goto*/ 0x31 - if_chr_in_room TARGET_CHR, 0x00, 0x003f, /*goto*/ 0x31 - goto_next 0x07 - - label 0x31 - if_chr_distance_lt 250, /*goto*/ 0x02 - endloop 0x05 - - label 0x32 - goto_first 0x04 - - label 0x64 - label 0x02 - set_self_flag_bankx CHRFLAG1_00000001, BANK_1 - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - set_return_function CHR_SELF, FUNC_NSA - set_function CHR_SELF, GFUNC_HAND_COMBAT - - label 0x07 - animation ANIM_TALKING_0098, 0, 90, 0x0010, CHR_SELF, 2 - say_quip CHR_JOANNA, 0x1d, 0xff, 0x02, 0xff, 0x81, 0x00, 0x00 - label 0x08 - yield - if_chr_stopped /*goto*/ 0x02 - goto_first 0x08 - - label 0x02 - goto_first 0x44 - - label 0x0b - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func0412_init_takeover_lackey: - set_onshot_function GFUNC_ALERTED - set_self_flag_bank3 CHRFLAG3_00000040 - set_chr_dodge_rating 2, 0x0a - set_accuracy 60 - set_reaction_speed 80 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, FUNC_TAKEOVER_LACKEY - endfunction - -func0411_takeover_lackey: - set_onshot_function GFUNC_ALERTED - if_chr_dying CHR_SELF, /*goto*/ 0x02 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x02 - if_chr_unloaded CHR_SELF, /*goto*/ 0x02 - goto_next 0x00 - - label 0x02 - set_function CHR_SELF, GFUNC_IDLE - - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_dying 0x0c, /*goto*/ 0x7b - if_chr_death_animation_finished 0x0c, /*goto*/ 0x7b - if_chr_unloaded 0x0c, /*goto*/ 0x7b - if_target_chr_in_sight /*goto*/ 0x31 - goto_next 0x02 - - label 0x31 - try_face_entity 0x0200, 0x0000, /*goto*/ 0x02 - label 0x02 - if_self_flag_bankx_eq CHRFLAG0_00002000, FALSE, BANK_0, /*goto*/ 0x31 - if_target_chr_in_sight /*goto*/ 0x02 - label 0x31 - endloop 0x00 - - // Alaskan guard is dead - label 0x7b - label 0x02 - set_chr_alliance CHR_SELF, 0x04 - if_chr_dying 0x0c, /*goto*/ 0x02 - if_chr_death_animation_finished 0x0c, /*goto*/ 0x02 - if_chr_unloaded 0x0c, /*goto*/ 0x02 - set_target_chr 0x0c - try_chr_kneel_and_shoot_thing 0x0220, 0x0000, /*goto*/ 0x31 - label 0x31 - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x04 - - beginloop 0x04 - if_chr_stopped /*goto*/ 0x02 - endloop 0x04 - - label 0x02 - speak TARGET_CHR, 0x0e41, 0x05bf, CHANNEL_6, COLOR_08_RED // "We're taking over!!" - - beginloop 0x09 - if_chr_stopped /*goto*/ 0x02 - endloop 0x09 - - label 0x02 - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_DISGUISE_UNCOVERED - set_chr_flag_bank2 CHR_VELVET, CHRFLAG2_DISGUISE_UNCOVERED - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -func0413_alaskan_console_guard: - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -unregistered_function3: - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, FUNC_OFFICEWORKER - endfunction - -func0414_officeworker: - set_var_a 0 - if_chr_dying CHR_SELF, /*goto*/ 0x02 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x02 - if_chr_unloaded CHR_SELF, /*goto*/ 0x02 - goto_next 0x00 - - label 0x02 - set_function CHR_SELF, GFUNC_IDLE - - label 0x44 - animation ANIM_SITTING_DORMANT, -1, 60, 0x1400, CHR_SELF, 2 - - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_stage_flag_eq STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x07 - if_chr_idle /*goto*/ 0x02 - goto_next 0x08 - - label 0x02 - if_target_chr_in_sight /*goto*/ 0x02 - label 0x33 - endloop 0x00 - - label 0x02 - animation ANIM_SITTING_0265, 0, 120, 0x1410, CHR_SELF, 2 - say_quip CHR_JOANNA, 0x20, 0xff, 0x0a, 0xff, BANK_1, 0x00, 0x00 - restart_timer - - beginloop 0x09 - if_stage_flag_eq STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x07 - if_chr_idle /*goto*/ 0x02 - goto_next 0x08 - - label 0x02 - if_timer_gt 180, /*goto*/ 0x02 - endloop 0x09 - - label 0x02 - goto_first 0x00 - - label 0x08 - goto_first 0x44 - - // After takeover - label 0x07 - if_difficulty_lt DIFF_PA, /*goto*/ 0x6d - set_chr_flag_bank2 0x3a, CHRFLAG2_00100000 - chr_move_to_pad 0x3a, 0x00d7, 0x00, /*goto*/ 0x31 - - label 0x31 - animation ANIM_SITTING_DORMANT, -1, 60, 0x1400, CHR_SELF, 2 - - label 0x77 - animation ANIM_COWER_0229, -1, 60, 0x140a, CHR_SELF, 2 - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x02 - if_chr_idle /*goto*/ 0x31 - goto_first 0x77 - - label 0x31 - endloop 0x04 - - label 0x02 - restart_timer - try_face_entity 0x0200, 0x0000, /*goto*/ 0x78 - - beginloop 0x78 - if_angle_to_target_chr_lt 10, /*goto*/ 0x02 - if_timer_gt 40, /*goto*/ 0x02 - endloop 0x78 - - label 0x02 - do_special_animation 7 - speak TARGET_CHR, 0x0e36, 0x1b38, CHANNEL_4, COLOR_08_RED // "Stop them - they're breaking into the safe..." - - beginloop 0x05 - if_sound_finished CHANNEL_4, /*goto*/ 0x79 - endloop 0x05 - - label 0x79 - animation 0x0229, -1, 60, 0x140a, CHR_SELF, 2 - - beginloop 0x06 - if_chr_idle /*goto*/ 0x02 - goto_first 0x79 - - label 0x02 - endloop 0x06 - - label 0x02 - set_function CHR_SELF, GFUNC_IDLE - - beginloop 0x6d - damage_chr CHR_SELF, 18 - if_chr_dying CHR_SELF, /*goto*/ 0x31 - endloop 0x6d - - label 0x31 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0415_alaskan_mountainlift_guard: - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func1010_setup_baggage_carrier: - set_object_flag_bank0 OBJ_BAGGAGE_CARRIER, OBJECTFLAG0_DEACTIVATED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -.macro laser_overloaded_logic laser1 laser2 time - beginloop 0x00 - if_stage_flag_eq STAGEFLAG_LASERS_OVERLOADED, TRUE, /*goto*/ 0x04 - endloop 0x00 - - label 0x04 - restart_timer - open_door \laser1 - open_door \laser2 - - beginloop 0x05 - if_timer_gt \time, /*goto*/ 0x02 - endloop 0x05 - - label 0x02 - close_door \laser1 - close_door \laser2 - - beginloop 0x05 - if_timer_gt \time, /*goto*/ 0x02 - endloop 0x05 - - label 0x02 - goto_first 0x04 - - set_function CHR_SELF, GFUNC_IDLE -.endm - -func1011_lasers1: - laser_overloaded_logic 0x07, 0x0c, 120 - endfunction - -func1012_lasers2: - laser_overloaded_logic 0x0e, 0x10, 180 - endfunction - -func1013_lasers3: - laser_overloaded_logic 0x0b, 0x12, 90 - endfunction - -func1014_lasers4: - beginloop 0x00 - if_stage_flag_eq STAGEFLAG_LASERS_OVERLOADED, TRUE, /*goto*/ 0x04 - endloop 0x00 - - label 0x04 - restart_timer - open_door 0x11 - - beginloop 0x05 - if_timer_gt 180, /*goto*/ 0x02 - endloop 0x05 - - label 0x02 - close_door 0x11 - - beginloop 0x05 - if_timer_gt 180, /*goto*/ 0x02 - endloop 0x05 - - label 0x02 - goto_first 0x04 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * This is the first laser, which gets disabled permanently. - */ -func1017_laser5: - beginloop 0x00 - if_stage_flag_eq STAGEFLAG_LASERS_OVERLOADED, TRUE, /*goto*/ 0x04 - endloop 0x00 - - label 0x04 - restart_timer - hide_object 0x13 - set_function CHR_SELF, GFUNC_IDLE - - // Unreachable - open_door 0x13 - - beginloop 0x05 - if_door_state 0x13, DOORSTATE_CLOSED | DOORSTATE_CLOSING, /*goto*/ 0x31 - endloop 0x05 - - label 0x31 - goto_first 0x04 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0403_unused: - set_chr_dodge_rating 2, 0x0a - set_accuracy 12 - set_reaction_speed 45 - set_chr_health CHR_SELF, 60 - set_armor 40 - set_recovery_speed 30 - set_shield 0 - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_HIDDEN - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1015_unhide_laser_guards: - // These are all invalid chrs. They must have been removed. - // They would have appeared when the lasers were overloaded. - hide_chr 0x3e - hide_chr 0x3f - hide_chr 0x40 - hide_chr 0x41 - set_chr_flag_bank3 0x3e, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0x3f, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0x40, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0x41, CHRFLAG3_HIDDEN - set_function CHR_SELF, GFUNC_IDLE - - // Unreachable - beginloop 0x00 - if_stage_flag_eq STAGEFLAG_LASERS_OVERLOADED, TRUE, /*goto*/ 0x02 - endloop 0x00 - - label 0x02 - unset_chr_flag_bank3 0x3e, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x3f, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x40, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x41, CHRFLAG3_HIDDEN - show_chr 0x3e - set_function 0x3e, 0x0404 - show_chr 0x3f - set_function 0x3f, GFUNC_ALERTED - show_chr 0x40 - set_function 0x40, GFUNC_ALERTED - show_chr 0x41 - set_function 0x41, GFUNC_ALERTED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * After overloading the lasers, some guards would have been unhidden who will - * chase you down. This function would have been assigned to one of them. - * - * @unused - */ -func0404_laser_guard: - set_onshot_function GFUNC_UNALERTED - run_to_pad 0x0002 - label 0x04 - yield - label 0x02 - set_function CHR_SELF, GFUNC_UNALERTED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1016_console_noises: - yield - assign_sound 0x8141, CHANNEL_0 - play_sound_from_object CHANNEL_0, 0x04, 0x0258, 0x0320 - yield - assign_sound 0x8143, CHANNEL_2 - play_sound_from_object CHANNEL_2, 0x05, 0x01f4, 0x03e8 - yield - play_sound_from_pad 0x0114, 0x81a7 - yield - play_sound_from_pad 0x0115, 0x81a7 - yield - play_sound_from_pad 0x01ac, 0x811b - - label 0x42 - restart_timer - - beginloop 0x00 - if_object_in_good_condition OBJ_CONSOLE, /*goto*/ 0x31 - goto_next 0x09 - - label 0x31 - if_timer_gt 180, /*goto*/ 0x31 - endloop 0x00 - - label 0x31 - yield - if_object_in_good_condition 0x01, /*goto*/ 0x31 - goto_next 0x09 - - label 0x31 - if_stage_flag_eq STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x09 - call_rng - if_rand_lt 100, /*goto*/ 0x76 - if_rand_lt 150, /*goto*/ 0x77 - if_rand_lt 200, /*goto*/ 0x78 - goto_first 0x42 - - // Rand 1 - label 0x76 - if_object_in_good_condition OBJ_CONSOLE, /*goto*/ 0x31 - goto_next 0x09 - - label 0x31 - mute_channel CHANNEL_1 - yield - yield - yield - yield - yield - assign_sound 0x8112, CHANNEL_1 - play_sound_from_object CHANNEL_1, OBJ_CONSOLE, 0x0258, 0x0320 - goto_first 0x42 - - // Rand 2 - label 0x77 - if_object_in_good_condition OBJ_CONSOLE, /*goto*/ 0x31 - goto_next 0x09 - - label 0x31 - mute_channel CHANNEL_1 - yield - yield - yield - yield - yield - assign_sound 0x813f, CHANNEL_1 - play_sound_from_object CHANNEL_1, OBJ_CONSOLE, 0x0258, 0x0320 - goto_first 0x42 - - // Rand 3 - label 0x78 - if_object_in_good_condition OBJ_CONSOLE, /*goto*/ 0x31 - goto_next 0x09 - - label 0x31 - mute_channel CHANNEL_1 - yield - yield - yield - yield - yield - assign_sound 0x8140, CHANNEL_1 - play_sound_from_object CHANNEL_1, OBJ_CONSOLE, 0x0258, 0x0320 - goto_first 0x42 - - label 0x09 - mute_channel CHANNEL_1 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0426_init_alaskan_guard: - set_chr_dodge_rating 2, 0x0a - set_accuracy 12 - set_reaction_speed 70 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -/** - * Assigned to stripes guards and NSA lackeys during takeover. - */ -func0427_init_posttakeover_guard: - set_self_flag_bank3 CHRFLAG3_00040000 - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_chr_alliance CHR_SELF, 0x04 - set_chr_dodge_rating 2, 0x0a - set_accuracy 12 - set_reaction_speed 45 - set_chr_health CHR_SELF, 60 - set_armor 40 - set_recovery_speed 30 - set_shield 0 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, FUNC_POSTTAKEOVER_GUARD - endfunction - -/** - * Wait until not in sight by any human player, - * then assign FUNC_BECOME_UNALERTED. - */ -func0428_posttakeover_guard: - beginloop 0x00 - set_target_chr CHR_JOANNA - if_within_units_of_sight 30, /*goto*/ 0x31 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x02 - set_target_chr CHR_VELVET - if_within_units_of_sight 30, /*goto*/ 0x31 - - label 0x02 - if_chr_death_animation_finished CHR_COUNTEROP, /*goto*/ 0x02 - set_target_chr CHR_COUNTEROP - if_within_units_of_sight 30, /*goto*/ 0x31 - - label 0x02 - unset_self_flag_bank3 CHRFLAG3_HIDDEN - unset_self_flag_bank3 CHRFLAG3_00040000 - set_function CHR_SELF, FUNC_BECOME_UNALERTED - - label 0x31 - restart_timer - - beginloop 0x6d - if_timer_gt 300, /*goto*/ 0x02 - endloop 0x6d - - label 0x02 - endloop 0x00 - - endfunction - -/** - * @unused - */ -func0429_unused: - set_chr_dodge_rating 2, 0x0a - set_accuracy 22 - set_reaction_speed 80 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -/** - * Assigned to two stripes guards in the foyer during takeover. - */ -func042a_foyer_spawner: - set_chr_dodge_rating 2, 0x0a - set_accuracy 12 - set_reaction_speed 45 - set_chr_health CHR_SELF, 60 - set_armor 40 - set_recovery_speed 30 - set_shield 0 - set_self_flag_bank3 CHRFLAG3_00000002 - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_self_flag_bank3 CHRFLAG3_00040000 - - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_stage_flag_eq STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x02 - if_chr_y TARGET_CHR, -4800 OPERATOR_LESS_THAN, /*goto*/ 0x09 - reloop 0x00 - - // Security shut down - label 0x02 - set_chr_alliance CHR_SELF, 0x04 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - dprint "OBJECTIVE DONE\n" - if_never_been_onscreen /*goto*/ 0x6a - if_chr_sees_player /*goto*/ 0x04 - reloop 0x00 - - label 0x04 - set_function CHR_SELF, FUNC_FOYER_CLONE - - label 0x6a - unset_self_flag_bank3 CHRFLAG3_HIDDEN - if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x6a - reloop 0x00 - - label 0x6a - try_spawn_clone2 CHR_SELF, FUNC_INIT_FOYER_CLONE, 0x00000000, /*goto*/ 0x31 - label 0x31 - yield - endloop 0x00 - - // Player has gone to bottom without disabling security - label 0x09 - set_function CHR_SELF, GFUNC_SEARCH_FOR_PLAYER - endfunction - -func042b_init_foyer_clone: - set_self_flag_bankx CHRFLAG1_00080000, BANK_1 - label 0x00 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - try_inherit_properties 0x42, /*goto*/ 0x02 - label 0x02 - set_function CHR_SELF, FUNC_FOYER_CLONE - endfunction - -func042c_foyer_clone: - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -.macro hoverbot_do_paths path1 path2 path3 - // Path 1 - label 0x44 - begin_hovercar_path \path1 - label 0x31 - set_vehicle_speed 512, 120 - - beginloop 0x04 - if_hoverbot_path_finished 0x01, 0x03, /*goto*/ 0x02 - endloop 0x04 - - // Path 2 - label 0x02 - begin_hovercar_path \path2 - label 0x31 - set_vehicle_speed 512, 120 - - beginloop 0x05 - if_hoverbot_path_finished 0x01, 0x03, /*goto*/ 0x02 - endloop 0x05 - - // Path 3 - label 0x02 - begin_hovercar_path \path3 - label 0x31 - set_vehicle_speed 512, 120 - - beginloop 0x06 - if_hoverbot_path_finished 0x01, 0x03, /*goto*/ 0x02 - endloop 0x06 - - label 0x02 - goto_first 0x44 - - set_function CHR_SELF, GFUNC_IDLE -.endm - -func042d_hoverbot1: - hoverbot_do_paths 0 1 2 - endfunction - -func042e_hoverbot2: - hoverbot_do_paths 1 2 0 - endfunction - -func042f_hoverbot3: - hoverbot_do_paths 2 0 1 - endfunction - -func0430_hoverbot4: - hoverbot_do_paths 3 4 5 - endfunction - -func0431_hoverbot5: - hoverbot_do_paths 4 5 3 - endfunction - -func0432_hoverbot6: - hoverbot_do_paths 5 3 4 - endfunction - -/** - * This looks to be copied from Chicago? But is assigned to an chr called - * steward. - */ -func0419_ba8c: - set_alertness 255 - set_return_function CHR_SELF, 0x0419 - set_onshot_function 0x0419 - if_chr_dying CHR_SELF, /*goto*/ 0x02 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x02 - if_chr_unloaded CHR_SELF, /*goto*/ 0x02 - goto_next 0x31 - - label 0x02 - set_function CHR_SELF, GFUNC_IDLE - - label 0x31 - if_chr_idle /*goto*/ 0x6b - if_num_times_shot_lt 1, /*goto*/ 0x00 - - beginloop 0x0c - if_chr_stopped /*goto*/ 0x02 - endloop 0x0c - - label 0x02 - goto_next 0x0b - - // Unreachable - restart_timer - - beginloop 0x6b - if_saw_death 0x00, /*goto*/ 0x4f - if_shot_near_chr 0x00, /*goto*/ 0x0f - dprint "DURINGTALK\n" - if_timer_gt 180, /*goto*/ 0x02 - endloop 0x6b - - label 0x02 - if_self_flag_bankx_eq CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x33 - dprint "NOT A PATROLLER\n" - stop_chr - goto_next 0x00 - - label 0x33 - dprint "PAT RET\n" - start_path - label 0x00 - yield - if_self_flag_bankx_eq CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x6c - call_rng - if_rand_gt 128, /*goto*/ 0x6c - label 0x6d - restart_timer - label 0x07 - stop_chr - if_self_flag_bankx_eq CHRFLAG1_DONE_SEARCH_ANIM, TRUE, BANK_1, /*goto*/ 0x31 - call_rng - if_rand_gt 128, /*goto*/ 0x31 - call_rng - if_rand_lt 64, /*goto*/ 0x6e - if_rand_lt 128, /*goto*/ 0x6f - if_rand_lt 196, /*goto*/ 0x70 - set_self_flag_bankx CHRFLAG1_DONE_SEARCH_ANIM, BANK_1 - animation ANIM_SMOKE_CIGARETTE, 0, -1, 0x100a, CHR_SELF, 2 - goto_next 0x72 - - label 0x6e - animation ANIM_SCRATCH_HEAD, 0, -1, 0x100a, CHR_SELF, 2 - goto_next 0x72 - - label 0x6f - animation ANIM_YAWN, 0, -1, 0x100a, CHR_SELF, 2 - goto_next 0x72 - - label 0x70 - animation ANIM_GRAB_CROTCH, 0, -1, 0x100a, CHR_SELF, 2 - goto_next 0x72 - - label 0x71 - animation ANIM_TWO_GUN_HOLD, 0, 100, 0x100a, CHR_SELF, 2 - goto_next 0x72 - - label 0x31 - unset_self_flag_bankx CHRFLAG1_DONE_SEARCH_ANIM, BANK_1 - if_chr_distance_to_pad_lt CHR_SELF, 100, TARGET_PAD, /*goto*/ 0x02 - goto_next 0x31 - - label 0x02 - call_rng - if_rand_lt 64, /*goto*/ 0x6e - if_rand_lt 128, /*goto*/ 0x6f - if_rand_lt 196, /*goto*/ 0x70 - try_set_target_pad_to_something 0x08, /*goto*/ 0x31 - label 0x6e - try_set_target_pad_to_something 0x02, /*goto*/ 0x31 - label 0x6f - try_set_target_pad_to_something 0x04, /*goto*/ 0x31 - label 0x70 - try_set_target_pad_to_something 0x08, /*goto*/ 0x31 - goto_next 0x72 - label 0x31 - go_to_target_pad SPEED_WALK - restart_timer - label 0x72 - yield - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_saw_death 0x00, /*goto*/ 0x4f - if_shot_near_chr 0x00, /*goto*/ 0x0f - if_target_chr_in_sight /*goto*/ 0x02 - if_chr_stopped /*goto*/ 0x73 - if_chr_idle /*goto*/ 0x31 - if_timer_gt 180, /*goto*/ 0x73 - label 0x31 - goto_first 0x72 - - label 0x73 - goto_first 0x00 - - label 0x6c - if_saw_death 0x00, /*goto*/ 0x4f - if_shot_near_chr 0x00, /*goto*/ 0x0f - if_target_chr_in_sight /*goto*/ 0x02 - goto_first 0x00 - - label 0x02 - restart_timer - label 0x04 - yield - if_saw_death 0x00, /*goto*/ 0x4f - if_shot_near_chr 0x00, /*goto*/ 0x0f - if_chr_weapon_equipped TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x31 - goto_next 0x02 - label 0x31 - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x31 - if_chr_distance_gt 450, /*goto*/ 0x31 - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - set_return_function CHR_SELF, 0x0419 - set_function CHR_SELF, GFUNC_CIVILIAN_SAY_COMMENT - label 0x31 - if_timer_lt 600, /*goto*/ 0x31 - unset_self_flag_bankx CHRFLAG0_00002000, BANK_0 - label 0x31 - dprint "LIMO READY TO GO\n" - goto_first 0x00 - - label 0x0f - restart_timer - try_face_entity 0x0200, 0x0000, /*goto*/ 0x08 - label 0x08 - yield - if_angle_to_target_chr_lt 10, /*goto*/ 0x02 - if_timer_gt 40, /*goto*/ 0x02 - goto_first 0x08 - - label 0x4f - restart_timer - animation 0x025f, 0, 193, 0x1010, CHR_SELF, 2 - label 0x0f - yield - if_timer_gt 90, /*goto*/ 0x0b - goto_first 0x0f - - label 0x02 - say_quip CHR_JOANNA, 0x24, 0xff, 0x00, 0xff, 0x81, 0x00, 0x00 - animation 0x002e, 0, 193, 0x1010, CHR_SELF, 2 - label 0x09 - yield - if_timer_gt 120, /*goto*/ 0x0b - goto_first 0x09 - - label 0x0b - try_target_chr_in_same_group /*goto*/ 0x02 - goto_next 0x0e - label 0x31 - goto_first 0x04 - - label 0x02 - try_run_to_chr FOLLOW_CHR, /*goto*/ 0x05 - label 0x05 - yield - if_detected_chr FOLLOW_CHR, /*goto*/ 0x02 - goto_first 0x05 - - label 0x02 - set_group_alertness 100 - say_quip CHR_JOANNA, 0x25, 0xff, 0x00, 0xff, 0x81, 0x00, 0x00 - label 0x0e - animation 0x0229, -1, -1, 0x1014, CHR_SELF, 2 - label 0x0a - yield - if_chr_stopped /*goto*/ 0x31 - goto_first 0x0a - - label 0x31 - goto_first 0x0e - - endfunction - -func041a_draw_magnum: - set_chr_alliance CHR_SELF, 0x04 - try_draw_weapon MODEL_CHRDY357, WEAPON_DY357MAGNUM, 0x10000000, /*goto*/ 0x00 - label 0x00 - unset_self_flag_bankx CHRFLAG1_00000001, BANK_1 - set_self_flag_bankx CHRFLAG0_AIVSAI, BANK_0 - set_self_flag_bankx CHRFLAG1_WARNED, BANK_1 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func141b_setup_lifts: - activate_lift 1, 0x20 - activate_lift 2, 0x21 - activate_lift 9, 0x36 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1018_safe_switch: - set_object_flag_bank1 OBJ_FLIGHTPLANS, OBJECTFLAG1_INVISIBLE - set_object_flag_bank0 OBJ_SAFE_SWITCH_COVER, OBJECTFLAG0_DEACTIVATED - - // Wait for player to activate switch - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, OBJ_SAFE_SWITCH, /*goto*/ 0x31 - endloop 0x00 - - // Raise switch cover - label 0x31 - unset_object_flag_bank0 OBJ_SAFE_SWITCH_COVER, OBJECTFLAG0_DEACTIVATED - - beginloop 0x05 - if_lift_stationary OBJ_SAFE_SWITCH_COVER, /*goto*/ 0x31 - endloop 0x05 - - label 0x31 - set_object_flag_bank0 OBJ_SAFE_SWITCH_COVER, OBJECTFLAG0_DEACTIVATED - - // Wait for player to press button again - beginloop 0x06 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, OBJ_SAFE_SWITCH, /*goto*/ 0x31 - endloop 0x06 - - // Open safe - label 0x31 - play_sound 0x00ba, -1 - yield - yield - yield - yield - yield - open_door OBJ_SAFEDOOR - yield - set_object_flag_bank0 OBJ_SAFEDOOR, OBJECTFLAG0_40000000 - - unset_object_flag_bank1 OBJ_FLIGHTPLANS, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank0 OBJ_FLIGHTPLANS, OBJECTFLAG0_00100000 - set_object_flag_bank0 OBJ_FLIGHTPLANS, OBJECTFLAG0_COLLECTABLE - set_object_flag_bank1 OBJ_FLIGHTPLANS, OBJECTFLAG1_00001000 - - // 0x32 = a shield - set_object_flag_bank1 0x34, OBJECTFLAG1_00001000 - unset_object_flag_bank0 0x34, OBJECTFLAG0_00100000 - - // 0x32 = invalid object - unset_object_flag_bank1 0x32, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank0 0x32, OBJECTFLAG0_00100000 - - label 0x31 - - beginloop 0x08 - if_door_state OBJ_SAFEDOOR, DOORSTATE_CLOSING, /*goto*/ 0x31 - reloop 0x08 - - label 0x31 - open_door OBJ_SAFEDOOR - endloop 0x08 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1018_safe_switch_cover: - set_object_flag_bank0 OBJ_SAFE_SWITCH_COVER, OBJECTFLAG0_DEACTIVATED - - beginloop 0x00 - if_chr_activated_object CHR_F3, OBJ_SAFE_SWITCH_COVER, /*goto*/ 0x31 - endloop 0x00 - - label 0x31 - unset_object_flag_bank0 OBJ_SAFE_SWITCH_COVER, OBJECTFLAG0_DEACTIVATED - yield - yield - - beginloop 0x04 - if_lift_stationary OBJ_SAFE_SWITCH_COVER, /*goto*/ 0x31 - endloop 0x04 - - label 0x31 - set_object_flag_bank0 OBJ_SAFE_SWITCH_COVER, OBJECTFLAG0_02000000 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101a_check_disguise_used: - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_flag_bank2 CHR_P1P2, CHRFLAG2_DISGUISED, /*goto*/ 0x31 - endloop 0x00 - - label 0x31 - message CHR_P1P2, 0x0e31 // "Disguise worn." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1003_intro: - label 0x31 - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_music_track MUSIC_AIRBASE_INTRO - camera_movement 0x01e5 - cmd0175 60 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x01e6, -1, -1, 0x0600, CHR_JOANNA, 4 - set_chr_hud_visible CHR_JOANNA, TRUE - set_chr_flag_bank3 CHR_TRENT, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_TRENT, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_TRENT, CHRFLAG2_00020000 - animation 0x01e7, -1, -1, 0x0600, CHR_TRENT, 4 - set_chr_flag_bank3 0x48, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x48, CHRFLAG3_HIDDEN - set_chr_flag_bank2 0x48, CHRFLAG2_00020000 - animation 0x01e8, -1, -1, 0x0600, 0x48, 4 - set_chr_flag_bank3 0x49, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x49, CHRFLAG3_HIDDEN - set_chr_flag_bank2 0x49, CHRFLAG2_00020000 - animation 0x01e9, -1, -1, 0x0600, 0x49, 4 - set_chr_flag_bank3 0x4a, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x4a, CHRFLAG3_HIDDEN - set_chr_flag_bank2 0x4a, CHRFLAG2_00020000 - animation 0x01ea, -1, -1, 0x0600, 0x4a, 4 - set_chr_flag_bank3 0x4b, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x4b, CHRFLAG3_HIDDEN - set_chr_flag_bank2 0x4b, CHRFLAG2_00020000 - animation 0x01eb, -1, -1, 0x0600, 0x4b, 4 - set_chr_flag_bank3 0x4c, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x4c, CHRFLAG3_HIDDEN - set_chr_flag_bank2 0x4c, CHRFLAG2_00020000 - animation 0x01ec, -1, -1, 0x0600, 0x4c, 4 - show_object 0x22 - set_object_flag_bank1 0x22, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x22, OBJECTFLAG2_00000010 - object_do_animation 0x01ed, 0x22, 0x04ff, 0xff - show_object 0x2f - set_object_flag_bank1 0x2f, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x2f, OBJECTFLAG2_00000010 - object_do_animation 0x01ee, 0x2f, 0x04ff, 0xff - restart_timer - fade_to_color 0x000000ff, 0x0000 - fade_to_color 0x00000000, 0x006e - set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE - - wait_until 30, 0x6d - speak CHR_JOANNA, 0x0e37, 0x7447, CHANNEL_7, COLOR_09_BLUE // "Agent Dark in position. I can see the main entranc..." - - wait_until 312, 0x89 - play_sound 0x0594, CHANNEL_10 - - wait_until 346, 0x8a - play_sound 0x0595, CHANNEL_10 - - wait_until 580, 0x76 - speak CHR_JOANNA, 0x0e38, 0x7448, CHANNEL_10, COLOR_06_WHITE // "Excellent, Joanna. That cable car is your way in....." - - wait_until 968, 0x8b - play_sound 0x0596, CHANNEL_10 - - wait_until 1315, 0x77 - speak CHR_JOANNA, 0x0e39, 0x77db, CHANNEL_10, COLOR_09_BLUE // "That they're probably innocent of any involvement ..." - - wait_until 1411, 0x8e - play_sound 0x04af, CHANNEL_0 - - wait_until 1735, 0x85 - mute_channel CHANNEL_0 - play_sound 0x04ea, CHANNEL_10 - - wait_until 1800, 0x86 - play_sound 0x04eb, CHANNEL_10 - - wait_until 1890, 0x87 - play_sound 0x04ec, CHANNEL_10 - - wait_until 1900, 0x78 - speak CHR_JOANNA, 0x0e3a, 0x7449, CHANNEL_5, COLOR_06_WHITE // "I don't know how far the conspiracy has spread thr..." - - wait_until 1970, 0x8c - play_sound 0x0171, CHANNEL_10 - - wait_until 1980, 0x88 - - wait_until 2013, 0x8d - play_sound 0x0172, CHANNEL_10 - - wait_until 2048, 0x8f - play_sound 0x0596, CHANNEL_10 - - wait_until 2076, 0x92 - play_sound 0x0161, CHANNEL_10 - - wait_until 2088, 0x93 - play_sound 0x0162, CHANNEL_10 - - wait_until 2116, 0x94 - play_sound 0x0163, CHANNEL_10 - - wait_until 2140, 0x95 - play_sound 0x0164, CHANNEL_10 - - wait_until 2154, 0x96 - play_sound 0x0165, CHANNEL_10 - - wait_until 2184, 0x97 - play_sound 0x0166, CHANNEL_10 - - wait_until 2202, 0x98 - play_sound 0x0167, CHANNEL_10 - - wait_until 2246, 0x99 - play_sound 0x0168, CHANNEL_10 - - wait_until 2296, 0x9a - play_sound 0x0161, CHANNEL_10 - - wait_until 2332, 0x9b - play_sound 0x0162, CHANNEL_10 - - wait_until 2376, 0x9c - play_sound 0x0165, CHANNEL_10 - - wait_until 2418, 0x9d - play_sound 0x0163, CHANNEL_10 - - wait_until 2446, 0x9e - play_sound 0x0164, CHANNEL_10 - - wait_until 2486, 0x9f - play_sound 0x0168, CHANNEL_10 - - wait_until 2526, 0xa0 - play_sound 0x0166, CHANNEL_10 - - wait_until 2558, 0xa1 - play_sound 0x0167, CHANNEL_10 - - wait_until 2674, 0xa2 - play_sound 0x0168, CHANNEL_10 - - wait_until 2700, 0x79 - speak CHR_JOANNA, 0x0e3b, 0x744a, CHANNEL_7, COLOR_09_BLUE // "Yes, and protect him from his abductors. Do you ha..." - - wait_until 2704, 0xa3 - play_sound 0x0161, CHANNEL_10 - - wait_until 2720, 0xa4 - play_sound 0x0163, CHANNEL_10 - - wait_until 2770, 0xa5 - play_sound 0x0164, CHANNEL_10 - - wait_until 2796, 0xa6 - play_sound 0x0167, CHANNEL_10 - - wait_until 2812, 0xa7 - play_sound 0x0168, CHANNEL_10 - - wait_until 2830, 0xa8 - play_sound 0x0162, CHANNEL_10 - - wait_until 2846, 0xa9 - play_sound 0x0164, CHANNEL_10 - - wait_until 2856, 0xaa - play_sound 0x0165, CHANNEL_10 - - wait_until 2890, 0xab - play_sound 0x0166, CHANNEL_10 - - wait_until 2946, 0xac - play_sound 0x0163, CHANNEL_10 - - wait_until 2976, 0xad - play_sound 0x0164, CHANNEL_10 - - wait_until 3008, 0xae - play_sound 0x0167, CHANNEL_10 - - wait_until 3116, 0xaf - play_sound 0x0164, CHANNEL_10 - - wait_until 3154, 0xb0 - play_sound 0x0165, CHANNEL_10 - - wait_until 3188, 0xb1 - play_sound 0x0163, CHANNEL_10 - - wait_until 3230, 0xb2 - play_sound 0x0164, CHANNEL_10 - - wait_until 3250, 0x7a - speak CHR_JOANNA, 0x0e3c, 0x744b, CHANNEL_5, COLOR_06_WHITE // "Only vague suspicions, and I won't distract you wi..." - - wait_until 3387, 0xb3 - play_sound 0x0166, CHANNEL_10 - - wait_until 3427, 0xb4 - play_sound 0x0167, CHANNEL_10 - - wait_until 3448, 0xb5 - play_sound 0x0168, CHANNEL_10 - - wait_until 3656, 0xb6 - play_sound 0x0163, CHANNEL_10 - - wait_until 3723, 0x90 - - wait_until 3796, 0x91 - play_sound 0x04fc, CHANNEL_10 - - beginloop 0x04 - if_camera_animating /*goto*/ 0x31 - goto_next 0x48 - - label 0x31 - if_controller_button_pressed /*goto*/ 0x48 - label 0x31 - endloop 0x04 - - label 0x48 - mute_channel CHANNEL_7 - mute_channel CHANNEL_6 - mute_channel CHANNEL_5 - mute_channel CHANNEL_4 - mute_channel CHANNEL_0 - mute_channel CHANNEL_10 - hide_object 0x22 - hide_object 0x2f - label 0x02 - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_TRENT, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x48, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x49, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x4a, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x4b, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x4c, CHRFLAG3_UNPLAYABLE - remove_chr CHR_TRENT - remove_chr 0x48 - remove_chr 0x4a - remove_chr 0x4b - remove_chr 0x4c - set_chr_flag_bank3 0x49, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 0x49, CHRFLAG3_HIDDEN - set_chr_flag_bank2 0x49, CHRFLAG2_00020000 - animation 0x01e9, -2, -1, 0x0600, 0x49, 2 - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x01e6, -2, -1, 0x0600, CHR_JOANNA, 2 - set_chr_hud_visible CHR_JOANNA, FALSE - unset_object_flag_bank1 0x22, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x22, OBJECTFLAG2_00000010 - object_do_animation 0x01ed, 0x22, 0x01ff, 0xfe - set_function 0x00, 0x0405 - set_function 0x01, 0x0405 - set_function CHR_STEWARDESS, FUNC_STEWARDESS - restart_default_music - reset_ambience - enter_firstperson - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101c_msg_nowsyourchance: - beginloop 0x00 - if_stage_flag_eq STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE, TRUE, /*goto*/ 0x31 - endloop 0x00 - - label 0x31 - speak CHR_JOANNA, 0x0e32, 0x8182, CHANNEL_6, COLOR_09_BLUE // "Now's your chance! Grab the stewardess's bag and g..." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101d_msg_usethatcase: - if_difficulty_lt DIFF_SA, /*goto*/ 0x09 - - restart_timer - - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_has_object CHR_P1P2, OBJ_BRIEFCASE1, /*goto*/ 0x31 - endloop 0x00 - - label 0x31 - restart_timer - - beginloop 0x04 - if_timer_gt 600, /*goto*/ 0x31 - reloop 0x04 - - label 0x31 - if_sound_finished CHANNEL_4, /*goto*/ 0x31 - endloop 0x04 - - label 0x31 - speak CHR_P1P2, 0x0e33, 0x8183, CHANNEL_4, COLOR_09_BLUE // "Use that case to conceal your equipment." - - label 0x09 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101e_msg_casewillgetstopped: - beginloop 0x00 - if_objective_complete 1, /*goto*/ 0x31 - endloop 0x00 - - label 0x31 - restart_timer - - beginloop 0x04 - if_timer_gt 120, /*goto*/ 0x31 - endloop 0x04 - - label 0x31 - speak CHR_JOANNA, 0x0e34, 0x8184, CHANNEL_6, COLOR_09_BLUE // "The case will get stopped unless you do something." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101f_msg_smallerthanithought: - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0025, /*goto*/ 0x31 - if_chr_in_room CHR_P1P2, 0x00, 0x001c, /*goto*/ 0x31 - endloop 0x00 - - label 0x31 - speak CHR_P1P2, 0x0e35, 0x73c7, CHANNEL_6, COLOR_09_BLUE // "So that's Air Force One? ... Huh, smaller than I t..." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1022_check_office1_dead: - beginloop 0x00 - if_chr_dying CHR_OFFICE1, /*goto*/ 0x31 - if_chr_death_animation_finished CHR_OFFICE1, /*goto*/ 0x31 - if_chr_unloaded CHR_OFFICE1, /*goto*/ 0x31 - endloop 0x00 - - label 0x31 - set_stage_flag STAGEFLAG_OFFICE1_DEAD - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1023_check_office2_dead: - beginloop 0x00 - if_chr_dying CHR_OFFICE2, /*goto*/ 0x31 - if_chr_death_animation_finished CHR_OFFICE2, /*goto*/ 0x31 - if_chr_unloaded CHR_OFFICE2, /*goto*/ 0x31 - endloop 0x00 - - label 0x31 - set_stage_flag STAGEFLAG_OFFICE2_DEAD - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1024_double_dy357: - set_object_flag_bank0 0x30, OBJECTFLAG0_00100000 - set_object_flag_bank1 0x30, OBJECTFLAG1_INVISIBLE - set_object_flag_bank0 0x31, OBJECTFLAG0_00100000 - set_object_flag_bank1 0x31, OBJECTFLAG1_INVISIBLE - - beginloop 0x00 - if_chr_unloaded 0x10, /*goto*/ 0x31 - reloop 0x00 - - label 0x31 - if_chr_unloaded 0x11, /*goto*/ 0x31 - endloop 0x00 - - label 0x31 - unset_object_flag_bank0 0x30, OBJECTFLAG0_00100000 - unset_object_flag_bank1 0x30, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank0 0x31, OBJECTFLAG0_00100000 - unset_object_flag_bank1 0x31, OBJECTFLAG1_INVISIBLE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * @unused - */ -func0416_watch_flag: - beginloop 0x00 - if_chr_flag_bank2 CHR_SELF, CHRFLAG2_40000000, /*goto*/ 0x31 - dprint "FLAG NOT SET\n" - reloop 0x00 - - label 0x31 - dprint "FLAG SET\n" - endloop 0x00 - - endfunction - -func101a_check_disguise_used2: - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_has_object CHR_P1P2, OBJ_UNIFORM, /*goto*/ 0x02 - endloop 0x00 - - label 0x02 - dprint "DISGUISED UP\n" - - beginloop 0x04 - if_chr_flag_bank2 CHR_P1P2, CHRFLAG2_DISGUISED, /*goto*/ 0x31 - endloop 0x04 - - label 0x31 - if_stage_flag_eq STAGEFLAG_DISGUISE_UNCOVERED, TRUE, /*goto*/ 0x02 - if_stage_flag_eq STAGEFLAG_RECEPTIONIST_CALLED_SECURITY, TRUE, /*goto*/ 0x02 - set_stage_flag STAGEFLAG_DISGUISED - set_stage_flag STAGEFLAG_DISGUISED2 - label 0x02 - set_function CHR_SELF, GFUNC_IDLE - - label 0x00 - endfunction - -func1026_check_alarm_destroyed: - beginloop 0x00 - if_object_in_good_condition OBJ_ALARM, /*goto*/ 0x31 - activate_alarm - set_function CHR_SELF, GFUNC_IDLE - label 0x31 - endloop 0x00 - - endfunction - -func0417_remove_or_unalert: - set_self_flag_bank3 CHRFLAG3_00040000 - - label 0x00 - yield - set_target_chr CHR_JOANNA - if_within_units_of_sight 30, /*goto*/ 0x02 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x31 - set_target_chr CHR_VELVET - if_within_units_of_sight 30, /*goto*/ 0x02 - label 0x31 - if_chr_death_animation_finished CHR_COUNTEROP, /*goto*/ 0x04 - set_target_chr CHR_COUNTEROP - if_within_units_of_sight 30, /*goto*/ 0x02 - label 0x04 - yield - chr_drop_weapon CHR_SELF - remove_chr CHR_SELF - label 0x31 - set_function CHR_SELF, GFUNC_IDLE - - label 0x02 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func0418_remove_or_cower: - set_self_flag_bank3 CHRFLAG3_00040000 - label 0x00 - yield - set_target_chr CHR_JOANNA - if_within_units_of_sight 30, /*goto*/ 0x02 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x31 - set_target_chr CHR_VELVET - if_within_units_of_sight 30, /*goto*/ 0x02 - label 0x31 - if_chr_death_animation_finished CHR_COUNTEROP, /*goto*/ 0x04 - set_target_chr CHR_COUNTEROP - if_within_units_of_sight 30, /*goto*/ 0x02 - label 0x04 - yield - remove_chr CHR_SELF - label 0x31 - set_function CHR_SELF, GFUNC_IDLE - label 0x02 - label 0x62 - animation ANIM_COWER_0229, -1, -1, 0x140a, CHR_SELF, 2 - - beginloop 0x63 - if_chr_stopped /*goto*/ 0x31 - endloop 0x63 - - label 0x31 - goto_first 0x62 - - endfunction - -func102a_setup_snow: - enable_snow TRUE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1027_remotemine: - beginloop 0x00 - if_object_in_good_condition OBJ_REMOTEMINE, /*goto*/ 0x31 - goto_next 0x02 - - label 0x31 - reloop 0x00 - - label 0x02 - destroy_object OBJ_REMOTEMINE - yield - destroy_object 0x46 - yield - destroy_object 0x47 - set_function CHR_SELF, GFUNC_IDLE - label 0x31 - endloop 0x00 - - endfunction - -func141b_setup_lifts_and_doors: - if_difficulty_lt DIFF_SA, /*goto*/ 0x31 - - // SA and PA - unlock_door 0x35, 0x80 - goto_next 0x02 - - // Agent - label 0x31 - hide_object 0x09 - label 0x02 - set_object_flag_bank0 OBJ_DIAGONAL_LIFT, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 OBJ_VERTICAL_LIFT, OBJECTFLAG0_DEACTIVATED - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x02 - endloop 0x04 - - label 0x02 - unset_object_flag_bank0 OBJ_DIAGONAL_LIFT, OBJECTFLAG0_DEACTIVATED - unset_object_flag_bank0 OBJ_VERTICAL_LIFT, OBJECTFLAG0_DEACTIVATED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1029_lift_doors: - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, 0x37, /*goto*/ 0x31 - if_chr_activated_object CHR_P1P2, 0x38, /*goto*/ 0x31 - if_chr_activated_object CHR_P1P2, 0x39, /*goto*/ 0x31 - if_chr_activated_object CHR_P1P2, 0x42, /*goto*/ 0x05 - if_chr_activated_object CHR_P1P2, 0x43, /*goto*/ 0x05 - if_chr_activated_object CHR_P1P2, 0x48, /*goto*/ 0x05 - if_chr_activated_object CHR_P1P2, 0x49, /*goto*/ 0x05 - if_chr_activated_object CHR_P1P2, 0x3b, /*goto*/ 0x05 - if_chr_activated_object CHR_P1P2, 0x3c, /*goto*/ 0x05 - if_chr_activated_object CHR_P1P2, 0x3d, /*goto*/ 0x05 - if_chr_activated_object CHR_P1P2, 0x3e, /*goto*/ 0x05 - if_chr_activated_object CHR_P1P2, 0x3f, /*goto*/ 0x05 - if_chr_activated_object CHR_P1P2, 0x40, /*goto*/ 0x05 - if_chr_activated_object CHR_P1P2, 0x41, /*goto*/ 0x05 - reloop 0x00 - - label 0x31 - if_stage_flag_eq STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x05 - message CHR_P1P2, 0x0e3d // "Lift inoperative - security system is active." - restart_timer - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x05 - if_timer_gt 120, /*goto*/ 0x31 - endloop 0x04 - - label 0x31 - reloop 0x00 - - label 0x05 - play_sound 0x81b0, -1 - restart_timer - - beginloop 0x06 - if_timer_gt 120, /*goto*/ 0x02 - endloop 0x06 - - label 0x02 - endloop 0x00 - - endfunction - -func102b_check_secretary_dead: - beginloop 0x00 - if_stage_flag_eq STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x09 - if_chr_death_animation_finished CHR_SECRETARY, /*goto*/ 0x31 - if_chr_dying CHR_SECRETARY, /*goto*/ 0x31 - if_chr_unloaded CHR_SECRETARY, /*goto*/ 0x31 - endloop 0x00 - - label 0x31 - if_door_locked 0x18, 0x02, /*goto*/ 0x31 - set_function CHR_SELF, GFUNC_IDLE - - label 0x31 - message CHR_JOANNA, 0x0e3e // "Critical mission personnel disabled." - set_stage_flag STAGEFLAG_SECRETARY_DEAD - label 0x09 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func102c_lock_door_on_alarm: - beginloop 0x00 - if_alarm_active /*goto*/ 0x31 - endloop 0x00 - - label 0x31 - lock_door 0x18, 0x04 - close_door 0x18 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func102d_check_console_destroyed: - beginloop 0x00 - if_object_in_good_condition OBJ_CONSOLE, /*goto*/ 0x31 - goto_next 0x02 - - label 0x31 - endloop 0x00 - - label 0x02 - mute_channel CHANNEL_1 - if_stage_flag_eq STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x31 - set_stage_flag STAGEFLAG_CONSOLE_DESTROYED - message CHR_JOANNA, 0x0e3f // "Critical mission object destroyed." - label 0x31 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func102e_check_base_entered: - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x002e, /*goto*/ 0x31 - endloop 0x00 - - label 0x31 - message CHR_JOANNA, 0x0e40 // "Entrance to base secured." - set_stage_flag STAGEFLAG_ENTERED_BASE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func102f_undisguise_on_alarm: - beginloop 0x00 - if_alarm_active /*goto*/ 0x31 - endloop 0x00 - - label 0x31 - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_DISGUISE_UNCOVERED - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x31 - set_chr_flag_bank2 CHR_VELVET, CHRFLAG2_DISGUISE_UNCOVERED - label 0x31 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1030_setup_rtracker: - yield - set_object_flag_bank2 0x30, OBJECTFLAG2_RTRACKED_BLUE - set_object_flag_bank2 0x31, OBJECTFLAG2_RTRACKED_BLUE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1031_setup_lighting: - yield - set_lighting 0x0000, 0x00, 0x00 - set_lighting 0x0000, 0x01, 0x00 - set_lighting 0x0000, 0x02, 0x00 - set_lighting 0x0000, 0x03, 0x00 - set_lighting 0x0000, 0x04, 0x00 - set_lighting 0x007b, 0x05, 0x01 - set_lighting 0x007b, 0x06, 0x01 - set_lighting 0x007c, 0x05, 0x01 - set_lighting 0x007c, 0x06, 0x01 - set_lighting 0x007d, 0x05, 0x01 - set_lighting 0x007d, 0x06, 0x01 - set_lighting 0x007f, 0x05, 0x01 - set_lighting 0x007f, 0x06, 0x01 - set_lighting 0x0080, 0x06, 0x01 - set_lighting 0x0081, 0x05, 0x01 - set_lighting 0x0081, 0x06, 0x01 - set_lighting 0x0082, 0x05, 0x01 - set_lighting 0x0082, 0x06, 0x01 - set_lighting 0x0083, 0x05, 0x01 - set_lighting 0x0083, 0x06, 0x01 - set_lighting 0x0084, 0x06, 0x01 - set_lighting 0x0085, 0x06, 0x01 - set_lighting 0x0086, 0x05, 0x01 - set_lighting 0x0086, 0x06, 0x01 - set_lighting 0x0087, 0x05, 0x01 - set_lighting 0x0087, 0x06, 0x01 - set_lighting 0x0088, 0x05, 0x01 - set_lighting 0x0088, 0x06, 0x01 - set_lighting 0x0089, 0x05, 0x01 - set_lighting 0x008f, 0x05, 0x01 - set_lighting 0x0090, 0x06, 0x01 - set_lighting 0x0091, 0x06, 0x01 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1032_unhide_guards_near_plane: - // Wait until player is in a room near the plane. If you ride the vertical - // elevator all the way to the bottom, then come out and turn left, you'll - // walk through these rooms before reaching the stairs. - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0016, /*goto*/ 0x31 - if_chr_in_room CHR_P1P2, 0x00, 0x0017, /*goto*/ 0x31 - endloop 0x00 - - label 0x31 - show_chr 0x1b - set_function 0x1b, 0x0422 - unset_chr_flag_bank2 0x1b, CHRFLAG2_40000000 - unset_chr_flag_bank3 0x1b, CHRFLAG3_HIDDEN - yield - show_chr 0x19 - set_function 0x19, FUNC_INIT_POSTTAKEOVER_GUARD - unset_chr_flag_bank2 0x19, CHRFLAG2_40000000 - unset_chr_flag_bank3 0x19, CHRFLAG3_HIDDEN - yield - show_chr 0x1d - set_function 0x1d, FUNC_INIT_POSTTAKEOVER_GUARD - unset_chr_flag_bank2 0x1d, CHRFLAG2_40000000 - unset_chr_flag_bank3 0x1d, CHRFLAG3_HIDDEN - yield - show_chr 0x1e - set_function 0x1e, FUNC_INIT_POSTTAKEOVER_GUARD - unset_chr_flag_bank2 0x1e, CHRFLAG2_40000000 - unset_chr_flag_bank3 0x1e, CHRFLAG3_HIDDEN - yield - show_chr 0x20 - set_function 0x20, FUNC_INIT_POSTTAKEOVER_GUARD - unset_chr_flag_bank2 0x20, CHRFLAG2_40000000 - unset_chr_flag_bank3 0x20, CHRFLAG3_HIDDEN - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1420_setup_portals: - yield - configure_room_portals 0x0080 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -functions: - register_function func1000_rebuild_groups 0x1000 - register_function func1401_setup_counterop 0x1401 - register_function func1002_objectives_failed_msg 0x1002 - register_function func1003_intro 0x1003 - register_function func1004_guard_activation 0x1004 - register_function func1005_check_civilians_killed 0x1005 - register_function func1007_console_activation 0x1007 - register_function func1009_carousel_activation 0x1009 - register_function func100b_suitcase_scanning 0x100b - register_function func100c_check_end_level 0x100c - register_function func100d_laser_panel 0x100d - register_function func100e_check_alaskans_killed 0x100e - register_function func1010_setup_baggage_carrier 0x1010 - register_function func1011_lasers1 0x1011 - register_function func1012_lasers2 0x1012 - register_function func1013_lasers3 0x1013 - register_function func1014_lasers4 0x1014 - register_function func1015_unhide_laser_guards 0x1015 - register_function func1016_console_noises 0x1016 - register_function func1017_laser5 0x1017 - register_function func1018_safe_switch 0x1018 - register_function func1018_safe_switch_cover 0x1019 - register_function func101a_check_disguise_used 0x101a - register_function func141b_setup_lifts 0x141b - register_function func101c_msg_nowsyourchance 0x101c - register_function func101d_msg_usethatcase 0x101d - register_function func101e_msg_casewillgetstopped 0x101e - register_function func101f_msg_smallerthanithought 0x101f - register_function func1020_weapon_scanning_joanna 0x1020 - register_function func1021_weapon_scanning_velvet 0x1021 - register_function func1022_check_office1_dead 0x1022 - register_function func1023_check_office2_dead 0x1023 - register_function func1024_double_dy357 0x1024 - register_function func101a_check_disguise_used2 0x1025 - register_function func1026_check_alarm_destroyed 0x1026 - register_function func1027_remotemine 0x1027 - register_function func141b_setup_lifts_and_doors 0x1028 - register_function func1029_lift_doors 0x1029 - register_function func102a_setup_snow 0x102a - register_function func102b_check_secretary_dead 0x102b - register_function func102c_lock_door_on_alarm 0x102c - register_function func102d_check_console_destroyed 0x102d - register_function func102e_check_base_entered 0x102e - register_function func102f_undisguise_on_alarm 0x102f - register_function func1030_setup_rtracker 0x1030 - register_function func1031_setup_lighting 0x1031 - register_function func1032_unhide_guards_near_plane 0x1032 - register_function func1420_setup_portals 0x1420 - - register_function func0404_laser_guard 0x0404 - register_function func0403_unused 0x0403 - register_function func0402_init_stripes 0x0402 - register_function func0401_unused_cutscene 0x0401 - register_function func0405_start_path15 0x0405 - register_function func0406_become_unalerted 0x0406 - register_function func041b_start_path06 0x041b - register_function func041c_start_path07 0x041c - register_function func041d_start_path08 0x041d - register_function func041e_start_path09 0x041e - register_function func041f_start_path10 0x041f - register_function func0420_start_path11 0x0420 - register_function func0421_start_path12 0x0421 - register_function func0422_start_path13 0x0422 - register_function func0423_start_path14 0x0423 - register_function func0424_start_path15_unused 0x0424 - register_function func0407_stewardess 0x0407 - register_function func0408_secretary 0x0408 - register_function func0409_office1 0x0409 - register_function func040a_office2 0x040a - register_function func040b_unused 0x040b - register_function func040c_init_secretary 0x040c - register_function func040d_init_office1 0x040d - register_function func040e_init_office2 0x040e - register_function func040f_nsa 0x040f - register_function func0410_unused 0x0410 - register_function func0411_takeover_lackey 0x0411 - register_function func0412_init_takeover_lackey 0x0412 - register_function func0413_alaskan_console_guard 0x0413 - register_function func0414_officeworker 0x0414 - register_function func0415_alaskan_mountainlift_guard 0x0415 - register_function func0416_watch_flag 0x0416 - register_function func0417_remove_or_unalert 0x0417 - register_function func0418_remove_or_cower 0x0418 - register_function func0419_ba8c 0x0419 - register_function func041a_draw_magnum 0x041a - register_function func0425_outro 0x0425 - register_function func0426_init_alaskan_guard 0x0426 - register_function func0427_init_posttakeover_guard 0x0427 - register_function func0428_posttakeover_guard 0x0428 - register_function func0429_unused 0x0429 - register_function func042a_foyer_spawner 0x042a - register_function func042b_init_foyer_clone 0x042b - register_function func042c_foyer_clone 0x042c - register_function func042d_hoverbot1 0x042d - register_function func042e_hoverbot2 0x042e - register_function func042f_hoverbot3 0x042f - register_function func0430_hoverbot4 0x0430 - register_function func0431_hoverbot5 0x0431 - register_function func0432_hoverbot6 0x0432 - - register_function func1003_intro 0x0c00 - register_function func0425_outro 0x0c01 - endfunctions - -.align 4 diff --git a/asm/setup/setupcrad.s b/asm/setup/setupcrad.s deleted file mode 100644 index f7b04904d..000000000 --- a/asm/setup/setupcrad.s +++ /dev/null @@ -1,22 +0,0 @@ -# -# Pipes (MP) -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - intro_weapon WEAPON_FALCON2, -1 - ammo AMMOTYPE_PISTOL, 100 - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupcryp.s b/asm/setup/setupcryp.s deleted file mode 100644 index 5ecedfc6f..000000000 --- a/asm/setup/setupcryp.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# G5 Building (MP) -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - intro_weapon WEAPON_FALCON2, -1 - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupdam.s b/asm/setup/setupdam.s deleted file mode 100644 index 28f572df4..000000000 --- a/asm/setup/setupdam.s +++ /dev/null @@ -1,2796 +0,0 @@ -# -# Pelagic II -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -// Characters -.set CHR_ELVIS, 0x00 -.set CHR_INTRO_GUARD, 0x02 -.set CHR_PILOT1, 0x3c -.set CHR_PILOT2, 0x3e -.set CHR_PILOT3, 0x3f -.set CHR_LABTECH1, 0x4e -.set CHR_LABTECH3, 0x4f -.set CHR_LABTECH2, 0x50 -.set CHR_ANGRY_PILOT, 0x60 - -// Objects -.set OBJ_BADHATCHSWITCH1, 0x08 -.set OBJ_BADHATCHSWITCH2, 0x09 -.set OBJ_BADHATCHSWITCH3, 0x0a -.set OBJ_BADHATCHSWITCH4, 0x0b -.set OBJ_HATCHSWITCH1, 0x0c -.set OBJ_HATCHSWITCH2, 0x0d -.set OBJ_HATCHSWITCH3, 0x0e -.set OBJ_HATCHSWITCH4, 0x0f -.set OBJ_REACTOR_SWITCH, 0x13 -.set OBJ_RESEARCHDATA1, 0x14 -.set OBJ_RESEARCHDATA2, 0x15 -.set OBJ_RESEARCHDATA3, 0x16 -.set OBJ_LIFT_SWITCH, 0x17 -.set OBJ_MOONPOOL_SWITCH, 0x1a -.set OBJ_OUTRO_SUBMARINE, 0x1b -.set OBJ_OUTRO_GRATE, 0x1c -.set OBJ_OUTRO_CRATE1, 0x1d -.set OBJ_OUTRO_CRATE2, 0x1e -.set OBJ_REACTOR_HATCH, 0x26 - -// Stage flags -.set STAGEFLAG_ELVIS_WARPED_FROM_START, 0x00000001 -.set STAGEFLAG_TRIGGER_ANGRY_PILOT, 0x00000002 -.set STAGEFLAG_MOONPOOL_SWITCH_DESTROYED, 0x00000004 -.set STAGEFLAG_GPS_DISABLED, 0x00000100 -.set STAGEFLAG_AUTOPILOT_DISABLED, 0x00000200 -.set STAGEFLAG_00000400, 0x00000400 -.set STAGEFLAG_REACTOR_HATCH_OPEN, 0x00000800 -.set STAGEFLAG_REACTOR_SHUT_DOWN, 0x00001000 -.set STAGEFLAG_LOCATED_DIVING_AREA, 0x00002000 -.set STAGEFLAG_COLLECTED_RESEARCH_DATA, 0x00004000 -.set STAGEFLAG_LABTECH_DEAD, 0x00008000 -.set STAGEFLAG_SAID_PULLTHEPLUG, 0x00010000 -.set STAGEFLAG_SAID_SWITCHTHINGOFF, 0x00020000 -.set STAGEFLAG_PILOT_DEAD, 0x00040000 -.set STAGEFLAG_00080000, 0x00080000 -.set STAGEFLAG_MOONPOOL_ACTIVATED, 0x00100000 -.set STAGEFLAG_LIFT_UNLOCKED, 0x00200000 -.set STAGEFLAG_HATCHSWITCH1_ACTIVATED, 0x00400000 -.set STAGEFLAG_HATCHSWITCH2_ACTIVATED, 0x00800000 -.set STAGEFLAG_HATCHSWITCH3_ACTIVATED, 0x01000000 -.set STAGEFLAG_HATCHSWITCH4_ACTIVATED, 0x02000000 -.set STAGEFLAG_HATCHSWITCHES_RESETTING, 0x04000000 -.set STAGEFLAG_MET_ELVIS, 0x08000000 -.set STAGEFLAG_ELVIS_APPEARED_AT_MOONPOOL, 0x10000000 -.set STAGEFLAG_ELVIS_DEAD, 0x20000000 -.set STAGEFLAG_JO_KILLED_A_PILOT, 0x40000000 -.set STAGEFLAG_REACTOR_SWITCH_DESTROYED, 0x80000000 - -// Functions -.set FUNC_PILOT, 0x0401 -.set FUNC_INIT_PILOT, 0x0402 -.set FUNC_PILOT_DYING, 0x0403 -.set FUNC_ANGRY_PILOT, 0x0404 -.set FUNC_GUARD_UNALERTED, 0x0408 -.set FUNC_LABTECH1, 0x040b -.set FUNC_LABTECH2, 0x040c -.set FUNC_LABTECH3, 0x040d -.set FUNC_INIT_LABTECH1, 0x040e -.set FUNC_INIT_LABTECH2, 0x040f -.set FUNC_INIT_LABTECH3, 0x0410 -.set FUNC_LABTECH_ALERTED, 0x0411 -.set FUNC_HIDE, 0x0412 -.set FUNC_GUARD_ALERTED, 0x0413 -.set FUNC_OUTRO, 0x0414 -.set FUNC_ELVIS_AT_START, 0x0415 -.set FUNC_ELVIS_LEADING, 0x0416 -.set FUNC_ELVIS_PREPARE_LEADING, 0x0417 -.set FUNC_ELVIS_AT_MOONPOOL, 0x0418 - -props: - briefing 0, 0x1601 - briefing 1, 0x1600 - briefing 2, 0x1602 - briefing 3, 0x1603 - - beginobjective 0, 0x1606, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Disable primary power source" - complete_flags STAGEFLAG_REACTOR_SHUT_DOWN - fail_flags STAGEFLAG_REACTOR_SWITCH_DESTROYED - endobjective - - beginobjective 1, 0x1607, DIFFBIT_PA | DIFFBIT_PD // "Secure laboratories and research data" - complete_flags STAGEFLAG_COLLECTED_RESEARCH_DATA - fail_flags STAGEFLAG_LABTECH_DEAD - endobjective - - beginobjective 2, 0x1605, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Deactivate GPS and autopilot" - complete_flags STAGEFLAG_GPS_DISABLED - complete_flags STAGEFLAG_AUTOPILOT_DISABLED - fail_flags STAGEFLAG_00000400 - fail_flags STAGEFLAG_PILOT_DEAD - fail_flags STAGEFLAG_JO_KILLED_A_PILOT - endobjective - - beginobjective 3, 0x1608, DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Activate Moon Pool lift" - complete_flags STAGEFLAG_MOONPOOL_ACTIVATED - fail_flags STAGEFLAG_MOONPOOL_SWITCH_DESTROYED - endobjective - - beginobjective 4, 0x1609, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Rendezvous and escape with Elvis" - complete_flags STAGEFLAG_LOCATED_DIVING_AREA - fail_flags STAGEFLAG_ELVIS_DEAD - endobjective - - chr 0x00010400, 0x00, 0x0024, BODY_THEKING, HEAD_ELVIS_GOGS, GFUNC_IDLE, -1, -1, 1000, 200, 0x00002000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAIANPISTOL, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PHOENIX, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x02, 0x0027, BODY_PELAGIC_GUARD, HEAD_MOTO, GFUNC_IDLE, -1, -1, 1000, 200, 0x00002000, 0x00300000, 0x10, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FARSIGHTXR20, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x2e, 0x014e, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc000a601, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x002e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x2d, 0x014d, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, 0x0214, -1, 1000, 100, 0xc0042000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x002d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x2f, 0x014f, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, 0x0215, -1, 1000, 100, 0xc40c2000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x002f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x30, 0x0150, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, 0x0215, -1, 1000, 100, 0xc40c2008, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0030, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x31, 0x0151, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, 0x0215, -1, 1000, 100, 0xc40c2000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0031, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x32, 0x0152, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, 0x0215, -1, 1000, 100, 0xc40c2008, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0032, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x33, 0x0153, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, 0x0216, -1, 1000, 100, 0xc40c2400, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0033, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x34, 0x0154, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, 0x0216, -1, 1000, 100, 0xc40c2000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0034, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x35, 0x0155, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, 0x0216, -1, 1000, 100, 0xc40c2008, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0035, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x38, 0x0158, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, 0x0217, -1, 1000, 7, 0xc40c2400, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0038, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x39, 0x0159, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, 0x0217, -1, 1000, 7, 0xc40c2000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0039, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x3a, 0x015a, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, 0x0217, -1, 1000, 100, 0xc40c2000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x003a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x3b, 0x015b, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, 0x0217, -1, 1000, 100, 0xc40c2000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x003b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x36, 0x0156, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, 0x0218, -1, 1000, 100, 0xc00c8609, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0036, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x37, 0x0157, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, 0x0218, -1, 1000, 100, 0xc00c8601, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0037, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x51, 0x0002, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0405, -1, -1, 1000, 100, 0x8c000000, 0x02000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0051, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x52, 0x0027, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0405, -1, -1, 1000, 100, 0xc8000000, 0x02000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0052, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x53, 0x0028, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0405, -1, -1, 1000, 100, 0xa8800000, 0x02000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0053, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x57, 0x00df, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 100, 0xcc080000, 0x02000000, 0x80, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0057, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x58, 0x00dc, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 100, 0xcc080000, 0x02000000, 0x80, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0058, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x59, 0x00eb, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 100, 0xcc080000, 0x02000000, 0x80, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0059, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x5a, 0x00e8, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 100, 0xcc080000, 0x02000000, 0x80, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x005a, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x5b, 0x0142, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, 0x0213, -1, 100, 100, 0x8d002000, 0x00004000, 0x80, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x005b, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x5c, 0x0143, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, 0x0213, -1, 100, 100, 0x8d002000, 0x00004000, 0x80, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x005c, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x5d, 0x0144, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, 0x0213, -1, 100, 100, 0x8d002000, 0x00004000, 0x80, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x005d, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x5e, 0x0145, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, 0x0213, -1, 100, 100, 0x8d002000, 0x00004000, 0x80, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x005e, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x03, 0x011f, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0xc0088400, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0003, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x04, 0x0120, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x09, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0004, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x24, 0x0140, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0024, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x25, 0x0141, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0025, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x05, 0x0121, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0005, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x06, 0x0122, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0006, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x07, 0x0123, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0007, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x08, 0x0124, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0008, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x09, 0x0125, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x0a, 0x0126, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0b, 0x0127, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x0c, 0x0128, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0d, 0x0129, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x0e, 0x012a, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0f, 0x012b, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x10, 0x012c, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0010, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x11, 0x012d, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0011, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x12, 0x012e, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0012, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x13, 0x012f, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0013, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x14, 0x0130, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x15, 0x0131, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0015, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x16, 0x0132, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0b, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x17, 0x0133, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0017, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x18, 0x0134, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x40082000, 0x00000000, 0x80, 0x0b, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x19, 0x0135, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x40082000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0019, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x1a, 0x0136, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1b, 0x0137, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x001b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x1c, 0x0138, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x001c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1d, 0x0139, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x001d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x1e, 0x013a, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x001e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1f, 0x013b, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x001f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x20, 0x013c, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0020, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x21, 0x013d, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0021, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x22, 0x013e, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0022, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x23, 0x013f, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0023, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x2c, 0x014c, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc8008000, 0x00000080, 0x02, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x002c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x2b, 0x014b, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc8008000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x002b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x2a, 0x014a, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc8008000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x002a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x29, 0x0149, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc8008000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0029, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x54, 0x0004, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 100, 100, 0xc8008000, 0x02000000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0054, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x28, 0x0148, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc8008000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0028, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x27, 0x0147, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc8008000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0027, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x26, 0x0146, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc8008000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0026, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x45, 0x0165, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc000c000, 0x00000000, 0x04, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0045, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x46, 0x0166, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc000c000, 0x00000000, 0x04, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0046, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00010400, 0x3c, 0x015c, BODY_PILOTAF1, HEAD_RANDOM, FUNC_INIT_PILOT, -1, -1, 1000, 10, 0x4000c000, 0x00000000, 0x04, 0x02, -1, 0, 0x00000000 - chr 0x00010400, 0x3e, 0x015e, BODY_PILOTAF1, HEAD_RANDOM, FUNC_INIT_PILOT, -1, -1, 1000, 10, 0x4000c000, 0x00000000, 0x04, 0x02, -1, 0, 0x00000000 - chr 0x00010400, 0x3f, 0x015f, BODY_PILOTAF1, HEAD_RANDOM, FUNC_INIT_PILOT, -1, -1, 1000, 10, 0x4000c000, 0x00000000, 0x04, 0x02, -1, 0, 0x00000000 - chr 0x00000200, 0x41, 0x0161, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc000c000, 0x00000000, 0x04, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0041, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x42, 0x0162, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc000c000, 0x00000000, 0x04, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0042, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x43, 0x0163, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc000c000, 0x00000000, 0x04, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0043, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x44, 0x0164, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc000c000, 0x00000000, 0x04, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0044, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x47, 0x0167, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc4080000, 0x00000000, 0x04, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0047, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x48, 0x0168, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc4080000, 0x00000000, 0x04, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0048, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x49, 0x0169, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc4080000, 0x00000000, 0x04, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0049, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x4a, 0x016a, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc4080000, 0x00000000, 0x04, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x004a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x4b, 0x016b, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc4080000, 0x00000000, 0x04, 0x09, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x004b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x4c, 0x016c, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc4080000, 0x00000000, 0x04, 0x09, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x004c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x4d, 0x016d, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc4080000, 0x00000080, 0x04, 0x09, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x004d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x55, 0x0012, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0407, -1, -1, 100, 100, 0xc4080000, 0x02000000, 0x04, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0055, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x56, 0x0014, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0407, -1, -1, 100, 100, 0xc4080000, 0x02000000, 0x04, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0056, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00010400, 0x4e, 0x0209, BODY_DD_LABTECH, HEAD_RANDOM, FUNC_INIT_LABTECH1, 0x00d8, -1, 1000, 100, 0xc0008601, 0x00000000, 0x02, 0x0f, -1, 0, 0x00000000 - chr 0x00010400, 0x50, 0x0055, BODY_DD_LABTECH, HEAD_RANDOM, FUNC_INIT_LABTECH2, 0x0089, -1, 1000, 100, 0xc0008601, 0x00000000, 0x02, 0x0f, -1, 0, 0x01000000 - chr 0x00010400, 0x4f, 0x0057, BODY_DD_LABTECH, HEAD_RANDOM, FUNC_INIT_LABTECH3, 0x008b, -1, 1000, 100, 0xc0008601, 0x00000000, 0x02, 0x0f, -1, 0, 0x02000000 - door 0x0100, MODEL_PELAGICDOOR, 0x00f0, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x00f1, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x00f2, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x00f3, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x00f4, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR2, 0x00f5, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x00f6, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x00f7, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x00f8, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x00f9, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x00fa, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x29, 1 - door 0x0100, MODEL_PELAGICDOOR2, 0x00fb, 0x10000400, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000080, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x2a, 1 - door 0x0100, MODEL_PELAGICDOOR2, 0x00fc, 0x10000400, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000080, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x2b, 1 - door 0x0100, MODEL_PELAGICDOOR2, 0x010a, 0x10000400, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000080, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x2c, 1 - door 0x0100, MODEL_PELAGICDOOR2, 0x0112, 0x10000400, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000080, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x2d, 1 - door 0x0100, MODEL_PELAGICDOOR2, 0x0101, 0x10000400, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000080, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x00fd, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x00fe, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x00ff, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x0100, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x18, 2 - tag 0x19, 2 - door 0x0100, MODEL_BIGPELAGICDOOR, 0x0103, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_BIGPELAGICDOOR, 0x0102, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x0104, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x0105, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x0106, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x0107, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x0108, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x0109, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x010b, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x010c, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x010d, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x010e, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x010f, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x0110, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x0111, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x0113, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x0114, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x0115, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x0116, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x0117, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x0118, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x0119, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x011a, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x011c, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_PELAGICDOOR, 0x011b, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - object 0x0100, MODEL_A51_CRATE2, 0x0180, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x017f, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x017e, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x017d, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x017c, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x017b, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x017a, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0179, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0178, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0177, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0176, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0175, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0174, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0173, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0172, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0171, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0170, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x016f, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x016e, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0181, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0182, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0186, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0187, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0185, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0183, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0189, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0188, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x018b, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0184, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x018a, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x018c, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x018d, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x018e, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x018f, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0191, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0192, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0193, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0194, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0195, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0196, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0197, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0198, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0199, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x019a, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x019b, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x019c, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x019d, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x019e, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x019f, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01a0, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01a1, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01a2, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01a3, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01a4, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01a5, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01a6, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01a7, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01a8, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01ab, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01ac, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01ad, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01ae, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01af, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01b0, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01b1, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01b2, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01b3, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01b4, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01b6, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01b7, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01b8, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01b9, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01ba, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01bb, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01bc, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01bd, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01be, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01c1, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01c2, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01c3, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01c4, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01c5, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01c6, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01c7, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01c8, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01d4, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01d5, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01d6, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01d7, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01d8, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01d9, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01da, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01db, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01dc, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01dd, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01de, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01df, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01e0, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01e1, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01e2, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01e3, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BLASTSHIELD, 0x01e6, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BLASTSHIELD, 0x01e7, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BLASTSHIELD, 0x01e8, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BLASTSHIELD, 0x01e9, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BLASTSHIELD, 0x01ea, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BLASTSHIELD, 0x01eb, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BLASTSHIELD, 0x01ec, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BLASTSHIELD, 0x01f1, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BLASTSHIELD, 0x01ed, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BLASTSHIELD, 0x01ee, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BLASTSHIELD, 0x01ef, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BLASTSHIELD, 0x01f0, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x00, 8 - tag 0x01, 8 - tag 0x02, 8 - tag 0x03, 8 - tag 0x04, 8 - tag 0x05, 8 - tag 0x06, 8 - tag 0x07, 8 - multimonitor 0x0099, MODEL_COMHUB, 0x01f2, 0x00020002, 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, 0x13131300 - multimonitor 0x0099, MODEL_COMHUB, 0x01f3, 0x00020002, 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, 0x13131300 - multimonitor 0x0099, MODEL_COMHUB, 0x01f4, 0x00020002, 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, 0x13131300 - multimonitor 0x0099, MODEL_COMHUB, 0x01f5, 0x00020002, 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, 0x13131300 - multimonitor 0x0099, MODEL_COMHUB, 0x01f6, 0x00020002, 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, 0x13131300 - multimonitor 0x0099, MODEL_COMHUB, 0x01f7, 0x00020002, 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, 0x13131300 - multimonitor 0x0099, MODEL_COMHUB, 0x01f8, 0x00020002, 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, 0x13131300 - multimonitor 0x0099, MODEL_COMHUB, 0x01f9, 0x00020002, 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, 0x13131300 - tag 0x08, 1 - tag 0x09, 1 - tag 0x0a, 1 - tag 0x0b, 1 - tag 0x0c, 1 - tag 0x0d, 1 - tag 0x0e, 1 - tag 0x0f, 1 - tag 0x13, 1 - multimonitor 0x0099, MODEL_COMHUB, 0x01fa, 0x000000e2, 0x00000001, 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, 0x13131300 - tag 0x14, 1 - key 0x0080, MODEL_CHRBRIEFCASE, 0x004e, 0x01244000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - rename_object -1, 0x43, 0x1616, 0x1617, 0x1618, 0x1619, 0x161a, 0x0000, 0x0000 // "" - tag 0x15, 1 - key 0x0080, MODEL_CHRBRIEFCASE, 0x0050, 0x01244000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - rename_object -1, 0x43, 0x1616, 0x1617, 0x1618, 0x1619, 0x161a, 0x0000, 0x0000 // "" - tag 0x16, 1 - key 0x0080, MODEL_CHRBRIEFCASE, 0x004f, 0x01244000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - rename_object -1, 0x43, 0x1616, 0x1617, 0x1618, 0x1619, 0x161a, 0x0000, 0x0000 // "" - tag 0x21, 5 - tag 0x22, 5 - tag 0x23, 5 - tag 0x24, 5 - tag 0x25, 5 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x01fb, 0x10000002, 0x00204000, 0x00210000, 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, 0xffffff14 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x01fc, 0x10000002, 0x00204000, 0x00210000, 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, 0xffffff14 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x01fd, 0x10000002, 0x00204000, 0x00210000, 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, 0xffffff14 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x01fe, 0x10000002, 0x00204000, 0x00210000, 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, 0xffffff14 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x01ff, 0x10000002, 0x00204000, 0x00210000, 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, 0xffffff14 - tag 0x17, 1 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x0200, 0x10000002, 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, 0xffffff03 - tag 0x1a, 1 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x0201, 0x10000002, 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, 0xffffff03 - camera 0x00c0, MODEL_CCTV_PD, 0x0219, 0x0000000a, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x01f70000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0x00000000, 0x0000001e, 0x00000000, 0x000002bc, 0x00000000 - camera 0x00c0, MODEL_CCTV_PD, 0x021a, 0x0000000a, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x00dd0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0x00000000, 0x0000001e, 0x00000000, 0x000002bc, 0x00000000 - camera 0x00c0, MODEL_CCTV_PD, 0x021b, 0x0000000a, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x000a0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000238e, 0x00000000, 0x00000000, 0x0000001e, 0x00000000, 0x000002bc, 0x00000000 - camera 0x00c0, MODEL_CCTV_PD, 0x021c, 0x0000000a, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x01120000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000002bc, 0x00000000 - tag 0x1b, 1 - object 0x0100, MODEL_SUBMARINE, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x1c, 1 - object 0x0100, MODEL_DD_GRATE, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x1d, 1 - object 0x0065, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x1e, 1 - object 0x0065, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x26, 1 - object 0x0100, MODEL_COREHATCH, 0x011e, 0x004005f1, 0x00004300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x021f, 0x00000062, 0x00002001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0220, 0x00000062, 0x00002001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0221, 0x00000062, 0x00002001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0222, 0x00000062, 0x00002001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0223, 0x00000062, 0x00002001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0224, 0x00000062, 0x00002001, 0x00000000, 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, 0xffffff03 - tag 0x1f, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x021d, 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 0x20, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x021e, 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 0x27, 2 - tag 0x28, 2 - weapon 0x0100, MODEL_CHRFALCON2SCOPE, 0x0034, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SILENCER, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRFALCON2SCOPE, 0x0034, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SILENCER, 0x00ffffff, 0x00000000 - link_collectibles -1, -2 - endprops - -intro: - outfit OUTFIT_WETSUIT - intro_weapon WEAPON_FALCON2_SILENCER, -1 - ammo AMMOTYPE_PISTOL, 100 - intro_weapon WEAPON_LAPTOPGUN, -1 - ammo AMMOTYPE_SMG, 100 - ammo AMMOTYPE_NBOMB, 3 - intro_weapon WEAPON_XRAYSCANNER, -1 - intro_weapon WEAPON_NBOMB, -1 - spawn 0x0046 - endintro - -path00: - pad 0x0002 - pad 0x0001 - pad 0x0024 - pad 0x0027 - pad 0x002b - pad 0x0028 - pad 0x002d - pad 0x002e - pad 0x002c - endpath - -path01: - pad 0x0004 - pad 0x0008 - pad 0x000a - pad 0x0006 - pad 0x0007 - pad 0x000b - endpath - -path02: - pad 0x0012 - pad 0x0010 - pad 0x0011 - pad 0x0014 - pad 0x0015 - pad 0x0016 - pad 0x0017 - pad 0x0013 - endpath - -path03: - pad 0x00dd - pad 0x00de - pad 0x00df - pad 0x00e0 - pad 0x00d9 - pad 0x00db - pad 0x00dc - endpath - -path04: - pad 0x00e8 - pad 0x00e7 - pad 0x00e6 - pad 0x00e5 - pad 0x00eb - pad 0x00ea - pad 0x00e9 - endpath - -paths: - register_path path00, 0, 1 - register_path path01, 1, 0 - register_path path02, 2, 1 - register_path path03, 3, 1 - register_path path04, 4, 1 - endpaths - -func1001_objectives_failed_msg: - yield - set_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_01000000 - set_chr_flag_bank3 CHR_LABTECH1, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_LABTECH2, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_LABTECH3, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_PILOT1, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_PILOT2, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_PILOT3, CHRFLAG3_04000000 - set_function CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG - endfunction - -func1400_setup_counterop: - yield - set_chr_alliance CHR_COUNTEROP, ALLIANCE_ENEMY - set_function CHR_SELF, GFUNC_REBUILD_GROUPS - endfunction - -func0408_guard_unalerted: - set_chr_cloaked CHR_SELF, FALSE, TRUE - set_chr_dodge_rating 2, 0x0a - set_accuracy 18 - set_reaction_speed 60 - set_chr_health CHR_SELF, 70 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func1002_intro: - set_music_track MUSIC_PELAGIC_INTRO - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - camera_movement 0x02ce - cmd0175 60 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x02cf, -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 0x02d0, -1, -1, 0x0600, CHR_ELVIS, 4 - set_chr_flag_bank3 CHR_INTRO_GUARD, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_INTRO_GUARD, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_INTRO_GUARD, CHRFLAG2_00020000 - animation 0x02d1, -1, -1, 0x0600, CHR_INTRO_GUARD, 4 - restart_timer - set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_JOANNA, WEAPON_FALCON2_SILENCER, WEAPON_NONE - - .macro wait_until time loopid - beginloop \loopid - if_controller_button_pressed /*goto*/ 0x39 - if_timer_gt \time, /*goto*/ 0x04 - endloop \loopid - label 0x04 - .endm - - wait_until 342, 0x3b - play_sound 0x0171, CHANNEL_7 - - wait_until 390, 0x3c - play_sound 0x0172, CHANNEL_6 - - wait_until 438, 0x3d - play_sound 0x0173, CHANNEL_5 - - wait_until 484, 0x48 - play_sound 0x0174, CHANNEL_7 - - wait_until 532, 0x4a - play_sound 0x0175, CHANNEL_5 - - wait_until 574, 0x4b - play_sound 0x0176, CHANNEL_7 - - wait_until 616, 0x49 - play_sound 0x0177, CHANNEL_6 - - wait_until 660, 0x4c - play_sound 0x0178, CHANNEL_6 - - wait_until 712, 0x4d - play_sound 0x0171, CHANNEL_5 - - wait_until 760, 0x4e - play_sound 0x0172, CHANNEL_7 - - wait_until 812, 0x4f - play_sound 0x0173, CHANNEL_6 - - wait_until 1386, 0x50 - play_sound 0x0171, CHANNEL_5 - - wait_until 1482, 0x51 - play_sound 0x0172, CHANNEL_7 - - wait_until 1628, 0x52 - play_sound 0x0173, CHANNEL_6 - - wait_until 1698, 0x53 - play_sound 0x0174, CHANNEL_5 - - wait_until 1860, 0x54 - play_sound 0x05a8, CHANNEL_7 - - wait_until 2180, 0x55 - play_sound 0x05a9, CHANNEL_6 - - wait_until 2260, 0x57 - play_sound 0x05aa, CHANNEL_7 - - wait_until 2274, 0x58 - play_sound 0x0175, CHANNEL_6 - - wait_until 2280, 0x59 - play_sound 0x0176, CHANNEL_5 - - wait_until 2294, 0x56 - play_sound 0x0177, CHANNEL_5 - - wait_until 2298, 0x5a - play_sound 0x0171, CHANNEL_7 - - wait_until 2316, 0x5b - play_sound 0x0178, CHANNEL_6 - - wait_until 2474, 0x5c - play_sound 0x0172, CHANNEL_5 - - wait_until 2489, 0x5d - play_sound 0x01db, CHANNEL_7 - - wait_until 2572, 0x5e - play_sound 0x0171, CHANNEL_6 - - wait_until 2616, 0x5f - play_sound 0x0173, CHANNEL_5 - - wait_until 2644, 0x60 - play_sound 0x0172, CHANNEL_5 - - beginloop 0x0b - if_camera_animating /*goto*/ 0x07 - goto_next 0x39 - - label 0x07 - if_controller_button_pressed /*goto*/ 0x39 - label 0x07 - endloop 0x0b - - label 0x39 - mute_channel CHANNEL_10 - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x02cf, -2, -1, 0x0600, CHR_JOANNA, 2 - unset_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_ELVIS, CHRFLAG2_00020000 - animation 0x02d0, -2, -1, 0x0600, CHR_ELVIS, 2 - unset_chr_flag_bank3 CHR_INTRO_GUARD, CHRFLAG3_UNPLAYABLE - hide_chr CHR_INTRO_GUARD - enter_firstperson - yield - set_function CHR_ELVIS, FUNC_ELVIS_AT_START - restart_timer - - beginloop 0x0c - if_timer_gt 60, /*goto*/ 0x04 - endloop 0x0c - - label 0x04 - restart_default_music - reset_ambience - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0c01_outro: - camera_movement 0x02e2 - set_music_track MUSIC_PELAGIC_OUTRO - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0xf1, CHRFLAG3_HIDDEN - set_function CHR_P1P2, GFUNC_IDLE - set_chr_flag_bank3 CHR_P1P2, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_P1P2, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_P1P2, CHRFLAG2_00020000 - animation 0x02e3, -1, -1, 0x0600, CHR_P1P2, 4 - set_function CHR_ELVIS, GFUNC_IDLE - set_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - 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 0x02e4, -1, -1, 0x0600, CHR_ELVIS, 4 - - show_object OBJ_OUTRO_SUBMARINE - set_object_flag_bank1 OBJ_OUTRO_SUBMARINE, OBJECTFLAG1_04000000 - set_object_flag_bank2 OBJ_OUTRO_SUBMARINE, OBJECTFLAG2_00000010 - object_do_animation 0x02e5, OBJ_OUTRO_SUBMARINE, 0x04ff, 0xff - - show_object OBJ_OUTRO_GRATE - set_object_flag_bank1 OBJ_OUTRO_GRATE, OBJECTFLAG1_04000000 - set_object_flag_bank2 OBJ_OUTRO_GRATE, OBJECTFLAG2_00000010 - object_do_animation 0x02e6, OBJ_OUTRO_GRATE, 0x04ff, 0xff - - show_object OBJ_OUTRO_CRATE1 - set_object_flag_bank1 OBJ_OUTRO_CRATE1, OBJECTFLAG1_04000000 - set_object_flag_bank2 OBJ_OUTRO_CRATE1, OBJECTFLAG2_00000010 - object_do_animation 0x02e7, OBJ_OUTRO_CRATE1, 0x04ff, 0xff - - show_object OBJ_OUTRO_CRATE2 - set_object_flag_bank1 OBJ_OUTRO_CRATE2, OBJECTFLAG1_04000000 - set_object_flag_bank2 OBJ_OUTRO_CRATE2, OBJECTFLAG2_00000010 - object_do_animation 0x02e8, OBJ_OUTRO_CRATE2, 0x04ff, 0xff - - set_cutscene_weapon CHR_P1P2, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_P1P2, WEAPON_NONE, WEAPON_NONE - set_cutscene_weapon CHR_ELVIS, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_ELVIS, WEAPON_NONE, WEAPON_NONE - show_nonessential_chrs FALSE - restart_timer - - wait_until 46, 0x3c - play_sound 0x0171, CHANNEL_10 - - wait_until 160, 0x3d - play_sound 0x0172, CHANNEL_10 - play_sound_from_object2 0x0a, OBJ_OUTRO_SUBMARINE, 0x042d, 0x00, 0x00 - - wait_until 180, 0x3b - speak CHR_JOANNA, 0x1627, 0x7465, CHANNEL_10, COLOR_06_WHITE // "Right. The diving operation has been disrupted on ..." - - wait_until 200, 0x48 - play_sound 0x0173, CHANNEL_10 - - wait_until 232, 0x49 - play_sound 0x0174, CHANNEL_10 - - wait_until 254, 0x4a - play_sound 0x0172, CHANNEL_10 - - wait_until 272, 0x66 - - wait_until 374, 0x4b - play_sound 0x0172, CHANNEL_10 - - wait_until 415, 0x4c - play_sound 0x0173, CHANNEL_10 - - wait_until 454, 0x4d - play_sound 0x0174, CHANNEL_10 - - wait_until 532, 0x4e - play_sound 0x0171, CHANNEL_10 - - wait_until 570, 0x4f - speak CHR_JOANNA, 0x1628, 0x7466, CHANNEL_10, COLOR_09_BLUE // "I hope the government don't want to use this ship ..." - - wait_until 582, 0x50 - play_sound 0x0171, CHANNEL_10 - - wait_until 666, 0x51 - play_sound 0x0172, CHANNEL_10 - - wait_until 706, 0x52 - play_sound 0x0173, CHANNEL_10 - - wait_until 736, 0x64 - play_sound 0x05a8, CHANNEL_10 - - wait_until 806, 0x53 - play_sound 0x809f, CHANNEL_10 - - wait_until 854, 0x54 - play_sound 0x0174, CHANNEL_10 - - wait_until 876, 0x55 - play_sound 0x0173, CHANNEL_10 - - wait_until 906, 0x56 - play_sound 0x0172, CHANNEL_10 - - wait_until 926, 0x57 - play_sound 0x80a2, CHANNEL_10 - - wait_until 950, 0x58 - speak CHR_JOANNA, 0x1629, 0x7467, CHANNEL_10, COLOR_06_WHITE // "Do you think we were a little heavy-handed?" - - wait_until 1088, 0x59 - play_sound 0x80a3, CHANNEL_10 - - wait_until 1152, 0x5a - play_sound 0x0176, CHANNEL_10 - - wait_until 1190, 0x5b - speak CHR_JOANNA, 0x162a, 0x7468, CHANNEL_10, COLOR_09_BLUE // "Naaahhhh." - - wait_until 1228, 0x5c - play_sound 0x0174, CHANNEL_10 - - wait_until 1258, 0x5d - play_sound 0x0172, CHANNEL_10 - - wait_until 1260, 0x5e - play_sound 0x05b4, CHANNEL_10 - - wait_until 1300, 0x5f - play_sound 0x05b6, CHANNEL_10 - play_sound 0x0171, CHANNEL_10 - - wait_until 1309, 0x65 - play_sound 0x0172, CHANNEL_10 - - wait_until 1358, 0x60 - play_sound 0x0171, CHANNEL_10 - - wait_until 1382, 0x61 - play_sound 0x8098, CHANNEL_10 - - wait_until 1480, 0x62 - play_sound 0x80a3, CHANNEL_10 - - wait_until 1480, 0x63 - play_sound_from_object2 0x0a, OBJ_OUTRO_GRATE, 0x00c1, 0x00, 0x00 - - wait_until 1500, 0x67 - play_sound_from_object2 0x0a, OBJ_OUTRO_SUBMARINE, 0x042d, 0x00, 0x00 - - wait_until 1590, 0x68 - play_sound_from_object2 0x0a, OBJ_OUTRO_SUBMARINE, 0x0434, 0x00, 0x00 - - beginloop 0x0b - if_camera_animating /*goto*/ 0x07 - goto_next 0x39 - - label 0x07 - if_controller_button_pressed /*goto*/ 0x39 - label 0x07 - endloop 0x0b - - label 0x39 - unset_chr_flag_bank3 CHR_P1P2, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_P1P2, CHRFLAG2_00020000 - animation 0x02cf, -2, -1, 0x0600, CHR_P1P2, 2 - unset_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_ELVIS, CHRFLAG2_00020000 - animation 0x02d0, -2, -1, 0x0600, CHR_ELVIS, 2 - end_level - set_function CHR_SELF, GFUNC_IDLE - endfunction - -unregistered_function1: - label 0x00 - yield - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1004_msg_controlledfrom: - restart_timer - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0027, /*goto*/ 0x07 - endloop 0x00 - - label 0x07 - speak CHR_P1P2, 0x160b, 0x73d1, CHANNEL_6, COLOR_09_BLUE // "This must be where the sub's controlled from." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1005_msg_withoutautopilot: - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x007e, /*goto*/ 0x07 - endloop 0x00 - - label 0x07 - speak CHR_P1P2, 0x160c, 0x73d2, CHANNEL_6, COLOR_09_BLUE // "Without the autopilot and the GPS, the ship will w..." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1006_msg_conductoperations: - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x007f, /*goto*/ 0x07 - endloop 0x00 - - label 0x07 - speak CHR_P1P2, 0x160d, 0x73d3, CHANNEL_6, COLOR_09_BLUE // "They'll be unable to conduct any operations withou..." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -unregistered_function2: - // These are invalid object IDs - beginloop 0x00 - if_object_in_good_condition 0x11, /*goto*/ 0x07 - goto_next 0x04 - - label 0x07 - if_object_in_good_condition 0x10, /*goto*/ 0x07 - goto_next 0x04 - - label 0x07 - endloop 0x00 - - label 0x04 - message CHR_JOANNA, 0x1610 // "Critical mission object has been destroyed." - set_stage_flag STAGEFLAG_00000400 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1009_open_reactor_hatch: - // Wait for all switches active - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - if_stage_flag_eq STAGEFLAG_HATCHSWITCH1_ACTIVATED, TRUE, /*goto*/ 0x07 - reloop 0x00 - - label 0x07 - if_stage_flag_eq STAGEFLAG_HATCHSWITCH2_ACTIVATED, TRUE, /*goto*/ 0x07 - reloop 0x00 - - label 0x07 - if_stage_flag_eq STAGEFLAG_HATCHSWITCH3_ACTIVATED, TRUE, /*goto*/ 0x07 - reloop 0x00 - - label 0x07 - if_stage_flag_eq STAGEFLAG_HATCHSWITCH4_ACTIVATED, TRUE, /*goto*/ 0x07 - endloop 0x00 - - label 0x07 - hide_object OBJ_REACTOR_HATCH - set_object_flag_bank1 OBJ_REACTOR_HATCH, OBJECTFLAG1_INVISIBLE - message CHR_P1P2, 0x1611 // "Reactor shutdown control hatch opened." - set_stage_flag STAGEFLAG_REACTOR_HATCH_OPEN - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100a_reactor_switch: - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - if_object_in_good_condition OBJ_REACTOR_SWITCH, /*goto*/ 0x07 - message CHR_JOANNA, 0x1624 // "Critical mission object has been destroyed." - set_stage_flag STAGEFLAG_REACTOR_SWITCH_DESTROYED - set_function CHR_SELF, GFUNC_IDLE - - label 0x07 - if_chr_activated_object CHR_P1P2, OBJ_REACTOR_SWITCH, /*goto*/ 0x07 - reloop 0x00 - - label 0x07 - if_stage_flag_eq STAGEFLAG_REACTOR_HATCH_OPEN, TRUE, /*goto*/ 0x07 - endloop 0x00 - - label 0x07 - mute_channel CHANNEL_0 - mute_channel CHANNEL_1 - assign_sound 0x8147, CHANNEL_0 - control_sound_from_object CHANNEL_0, OBJ_REACTOR_SWITCH, TRUE - set_lights_state 0x007f, 0x03, 0xff, 0x06, 0x78 - set_object_image OBJ_REACTOR_SWITCH, 0x00, 0x12 - set_object_image OBJ_REACTOR_SWITCH, 0x01, 0x12 - set_object_image OBJ_REACTOR_SWITCH, 0x02, 0x12 - message CHR_P1P2, 0x1612 // "Reactor has been shut down." - set_stage_flag STAGEFLAG_REACTOR_SHUT_DOWN - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100b_check_diving_area_located: - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - if_stage_flag_eq STAGEFLAG_MET_ELVIS, TRUE, /*goto*/ 0x07 - reloop 0x00 - - label 0x07 - if_chr_in_room CHR_P1P2, 0x00, 0x0064, /*goto*/ 0x07 - reloop 0x00 - - label 0x07 - if_chr_distance_to_pad_lt CHR_P1P2, 600, 0x0095, /*goto*/ 0x07 - if_chr_distance_to_pad_lt CHR_P1P2, 600, 0x0096, /*goto*/ 0x07 - endloop 0x00 - - label 0x07 - message CHR_P1P2, 0x1613 // "Diving control center has been located." - set_stage_flag STAGEFLAG_LOCATED_DIVING_AREA - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100c_check_end_level: - beginloop 0x6f - if_objective_complete 0, /*goto*/ 0x07 - reloop 0x6f - - label 0x07 - if_difficulty_lt DIFF_PA, /*goto*/ 0x07 - if_objective_complete 1, /*goto*/ 0x07 - reloop 0x6f - - label 0x07 - if_objective_complete 2, /*goto*/ 0x07 - reloop 0x6f - - label 0x07 - if_difficulty_lt DIFF_SA, /*goto*/ 0x07 - if_objective_complete 3, /*goto*/ 0x07 - endloop 0x6f - - label 0x07 - - beginloop 0x3b - if_stage_flag_eq STAGEFLAG_ELVIS_WARPED_FROM_START, TRUE, /*goto*/ 0x07 - endloop 0x3b - - label 0x07 - if_stage_flag_eq STAGEFLAG_ELVIS_APPEARED_AT_MOONPOOL, TRUE, /*goto*/ 0x00 - set_stage_flag STAGEFLAG_ELVIS_APPEARED_AT_MOONPOOL - unset_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function CHR_ELVIS, FUNC_ELVIS_AT_MOONPOOL - - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0064, /*goto*/ 0x07 - reloop 0x00 - - label 0x07 - if_chr_distance_to_pad_lt CHR_P1P2, 600, 0x0095, /*goto*/ 0x07 - if_chr_distance_to_pad_lt CHR_P1P2, 600, 0x0096, /*goto*/ 0x07 - reloop 0x00 - - label 0x07 - if_all_objectives_complete /*goto*/ 0x07 - endloop 0x00 - - label 0x07 - restart_timer - - beginloop 0x0b - if_timer_gt 120, /*goto*/ 0x07 - endloop 0x0b - - label 0x07 - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x07 - if_chr_dying CHR_JOANNA, /*goto*/ 0x07 - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x07 - goto_next 0x08 - - label 0x07 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x07 - if_chr_dying CHR_VELVET, /*goto*/ 0x07 - if_chr_unloaded CHR_VELVET, /*goto*/ 0x07 - - // Jo or Velvet alive - label 0x08 - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0x08 - if_chr_dying CHR_ELVIS, /*goto*/ 0x08 - if_chr_unloaded CHR_ELVIS, /*goto*/ 0x08 - - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x07 - if_chr_dying CHR_JOANNA, /*goto*/ 0x07 - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x07 - goto_next 0x04 - - // Both players dead - this check is redundant - label 0x07 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x07 - if_chr_dying CHR_VELVET, /*goto*/ 0x07 - if_chr_unloaded CHR_VELVET, /*goto*/ 0x07 - goto_next 0x04 - - // Both players dead - label 0x07 - end_level - set_function CHR_SELF, GFUNC_IDLE - - // Mission complete - label 0x04 - set_invincible CHR_JOANNA - set_function CHR_SELF, FUNC_OUTRO - - // Elvis dead - label 0x08 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100e_check_labtech_dead: - if_difficulty_lt DIFF_PA, /*goto*/ 0x0b - - beginloop 0x00 - if_chr_death_animation_finished CHR_LABTECH1, /*goto*/ 0x07 - if_chr_dying CHR_LABTECH1, /*goto*/ 0x07 - if_chr_death_animation_finished CHR_LABTECH2, /*goto*/ 0x07 - if_chr_dying CHR_LABTECH2, /*goto*/ 0x07 - if_chr_death_animation_finished CHR_LABTECH3, /*goto*/ 0x07 - if_chr_dying CHR_LABTECH3, /*goto*/ 0x07 - endloop 0x00 - - label 0x07 - message CHR_JOANNA, 0x1614 // "Critical mission personnel killed." - set_stage_flag STAGEFLAG_LABTECH_DEAD - label 0x0b - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100f_check_researchdata_collected: - beginloop 0x00 - if_chr_has_object CHR_JOANNA, OBJ_RESEARCHDATA1, /*goto*/ 0x07 - if_chr_has_object CHR_VELVET, OBJ_RESEARCHDATA1, /*goto*/ 0x07 - reloop 0x00 - - label 0x07 - if_chr_has_object CHR_JOANNA, OBJ_RESEARCHDATA2, /*goto*/ 0x07 - if_chr_has_object CHR_VELVET, OBJ_RESEARCHDATA2, /*goto*/ 0x07 - reloop 0x00 - - label 0x07 - if_chr_has_object CHR_JOANNA, OBJ_RESEARCHDATA3, /*goto*/ 0x07 - if_chr_has_object CHR_VELVET, OBJ_RESEARCHDATA3, /*goto*/ 0x07 - endloop 0x00 - - label 0x07 - message CHR_JOANNA, 0x1615 // "Research data has been secured." - set_stage_flag STAGEFLAG_COLLECTED_RESEARCH_DATA - set_function CHR_SELF, GFUNC_IDLE - endfunction - -.macro init_path pathid - set_chr_dodge_rating 2, 0x0a - set_accuracy 18 - set_reaction_speed 60 - set_chr_health CHR_SELF, 70 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - assign_path \pathid - start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 -.endm - -func0405_start_path00: - init_path 0 - endfunction - -func0409_start_path03: - set_chr_cloaked CHR_SELF, FALSE, TRUE - init_path 3 - endfunction - -func040a_start_path04: - set_chr_cloaked CHR_SELF, FALSE, TRUE - init_path 4 - endfunction - -func0406_start_path01: - init_path 1 - endfunction - -func0407_start_path02: - init_path 2 - endfunction - -.macro labtech_logic function pad1 pad2 pad3 - set_onshot_function \function - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x07 - if_chr_dying CHR_SELF, /*goto*/ 0x07 - if_chr_unloaded CHR_SELF, /*goto*/ 0x07 - goto_next 0x04 - - // Dying - label 0x07 - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x04 - - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_sees_player /*goto*/ 0x0f - - .if \pad1 == 0x020f - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x10 - .else - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x0f - .endif - - if_chr_stopped /*goto*/ 0x04 - goto_next 0x07 - label 0x04 - if_chr_idle /*goto*/ 0x07 - call_rng - if_rand_lt 128, /*goto*/ 0x27 - call_rng - if_rand_lt 86, /*goto*/ 0x3b - if_rand_lt 172, /*goto*/ 0x3c - - animation ANIM_OPERATE_0206, -1, -1, 0x0210, CHR_SELF, 2 - goto_next 0x07 - - label 0x3b - animation ANIM_OPERATE_0204, -1, -1, 0x0210, CHR_SELF, 2 - goto_next 0x07 - - label 0x3c - animation ANIM_OPERATE_0205, -1, -1, 0x0210, CHR_SELF, 2 - goto_next 0x07 - - label 0x27 - call_rng - if_rand_lt 86, /*goto*/ 0x3b - if_rand_lt 172, /*goto*/ 0x3c - - if_chr_distance_to_pad_lt CHR_SELF, 200, \pad1, /*goto*/ 0x3b - walk_to_pad \pad1 - goto_next 0x07 - - label 0x3b - if_chr_distance_to_pad_lt CHR_SELF, 200, \pad2, /*goto*/ 0x3c - walk_to_pad \pad2 - goto_next 0x07 - - label 0x3c - if_chr_distance_to_pad_lt CHR_SELF, 200, \pad3, /*goto*/ 0x07 - walk_to_pad \pad3 - goto_next 0x07 - - label 0x07 - endloop 0x00 - - .if \pad1 == 0x020f - label 0x10 - set_alertness 100 - .endif - - label 0x0f - set_function CHR_SELF, FUNC_LABTECH_ALERTED -.endm - -func040e_init_labtech1: - set_self_flag_bank3 CHRFLAG3_04000000 - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, FUNC_LABTECH1 - endfunction - -func040b_labtech1: - labtech_logic FUNC_LABTECH1, 0x0209, 0x020a, 0x020b - endfunction - -func040f_init_labtech2: - set_self_flag_bank3 CHRFLAG3_04000000 - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, FUNC_LABTECH2 - endfunction - -func040c_labtech2: - labtech_logic FUNC_LABTECH2, 0x020c, 0x020d, 0x020e - endfunction - -func0410_init_labtech3: - set_self_flag_bank3 CHRFLAG3_04000000 - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, FUNC_LABTECH3 - endfunction - -func040d_labtech3: - // @bug: Wrong onshot function. Under normal gameplay this labtech has 1HP - // anyway and will die in one shot. Theroetically, if you use PD mode with - // max health and shoot him with a weak weapon then he will start running to - // lab tech 1's pads. - labtech_logic FUNC_LABTECH1, 0x020f, 0x0210, 0x0211 - endfunction - -func0411_labtech_alerted: - restart_timer - label 0x0b - try_face_entity 0x0200, 0x0000, /*goto*/ 0x0c - - beginloop 0x0c - if_angle_to_target_chr_lt 10, /*goto*/ 0x04 - if_timer_gt 60, /*goto*/ 0x04 - endloop 0x0c - - label 0x04 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x04 - set_alertness 100 - dprint "TALK 1\n" - say_quip CHR_JOANNA, 0x2a, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00 - animation ANIM_SURRENDER_002E, 0, -1, 0x1010, CHR_SELF, 2 - - beginloop 0x3e - if_timer_gt 90, /*goto*/ 0x04 - endloop 0x3e - - // Already alert (eg. by gunfire) - label 0x04 - try_target_chr_in_same_group /*goto*/ 0x3f - goto_next 0x42 - - label 0x3f - try_run_to_chr FOLLOW_CHR, /*goto*/ 0x40 - goto_next 0x42 - - beginloop 0x40 - if_detected_chr FOLLOW_CHR, /*goto*/ 0x41 - if_chr_stopped /*goto*/ 0x41 - endloop 0x40 - - label 0x41 - set_group_alertness 100 - say_quip CHR_JOANNA, 0x10, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00 - - label 0x42 - go_to_target_pad SPEED_RUN - - beginloop 0x10 - if_chr_stopped /*goto*/ 0x13 - endloop 0x10 - - label 0x13 - restart_timer - if_chr_sees_player /*goto*/ 0x07 - goto_next 0x00 - - label 0x07 - set_target_chr CHR_P1P2 - if_chr_distance_lt 300, /*goto*/ 0x04 - - label 0x00 - animation ANIM_COWER_0229, -1, -1, 0x100a, CHR_SELF, 2 - - beginloop 0x11 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_timer_gt 1200, /*goto*/ 0x0d - if_chr_sees_player /*goto*/ 0x07 - goto_next 0x00 - - label 0x07 - if_chr_distance_lt 300, /*goto*/ 0x04 - label 0x00 - if_chr_stopped /*goto*/ 0x07 - endloop 0x11 - - label 0x07 - goto_first 0x13 - - label 0x0d - goto_first 0x42 - - label 0x04 - retreat 0x02, 0x02 - restart_timer - - beginloop 0x14 - if_timer_gt 600, /*goto*/ 0x07 - endloop 0x14 - - label 0x07 - goto_first 0x13 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0412_hide: - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1010_alarm_responders: - yield - yield - set_chr_flag_bank2 0x57, CHRFLAG2_CLOAKED - set_chr_flag_bank2 0x58, CHRFLAG2_CLOAKED - set_chr_flag_bank2 0x59, CHRFLAG2_CLOAKED - set_chr_flag_bank2 0x5a, CHRFLAG2_CLOAKED - set_chr_flag_bank2 0x5b, CHRFLAG2_CLOAKED - set_chr_flag_bank2 0x5c, CHRFLAG2_CLOAKED - set_chr_flag_bank2 0x5d, CHRFLAG2_CLOAKED - set_chr_flag_bank2 0x5e, CHRFLAG2_CLOAKED - hide_chr 0x57 - hide_chr 0x58 - hide_chr 0x59 - hide_chr 0x5a - hide_chr 0x5b - hide_chr 0x5c - hide_chr 0x5d - hide_chr 0x5e - set_chr_flag_bank2 0x04, CHRFLAG2_CLOAKED - set_chr_flag_bank2 0x25, CHRFLAG2_CLOAKED - set_chr_flag_bank2 0x06, CHRFLAG2_CLOAKED - set_chr_flag_bank2 0x08, CHRFLAG2_CLOAKED - set_chr_flag_bank2 0x0a, CHRFLAG2_CLOAKED - set_chr_flag_bank2 0x0c, CHRFLAG2_CLOAKED - set_chr_flag_bank2 0x0e, CHRFLAG2_CLOAKED - set_chr_flag_bank2 0x10, CHRFLAG2_CLOAKED - set_chr_flag_bank2 0x12, CHRFLAG2_CLOAKED - set_chr_flag_bank2 0x14, CHRFLAG2_CLOAKED - set_chr_flag_bank2 0x16, CHRFLAG2_CLOAKED - set_chr_flag_bank2 0x18, CHRFLAG2_CLOAKED - set_chr_flag_bank2 0x1a, CHRFLAG2_CLOAKED - set_chr_flag_bank2 0x1c, CHRFLAG2_CLOAKED - set_chr_flag_bank2 0x1e, CHRFLAG2_CLOAKED - set_chr_flag_bank2 0x20, CHRFLAG2_CLOAKED - set_chr_flag_bank2 0x22, CHRFLAG2_CLOAKED - hide_chr 0x04 - hide_chr 0x25 - hide_chr 0x06 - hide_chr 0x08 - hide_chr 0x0a - hide_chr 0x0c - hide_chr 0x0e - hide_chr 0x10 - hide_chr 0x12 - hide_chr 0x14 - hide_chr 0x16 - hide_chr 0x18 - hide_chr 0x1a - hide_chr 0x1c - hide_chr 0x1e - hide_chr 0x20 - hide_chr 0x22 - - beginloop 0x00 - if_alarm_active /*goto*/ 0x07 - endloop 0x00 - - label 0x07 - show_chr 0x57 - show_chr 0x58 - show_chr 0x59 - show_chr 0x5a - show_chr 0x5b - show_chr 0x5c - show_chr 0x5d - show_chr 0x5e - set_chr_alliance 0x57, ALLIANCE_ENEMY - set_chr_alliance 0x58, ALLIANCE_ENEMY - set_chr_alliance 0x59, ALLIANCE_ENEMY - set_chr_alliance 0x5a, ALLIANCE_ENEMY - set_chr_alliance 0x5b, ALLIANCE_ENEMY - set_chr_alliance 0x5c, ALLIANCE_ENEMY - set_chr_alliance 0x5d, ALLIANCE_ENEMY - set_chr_alliance 0x5e, ALLIANCE_ENEMY - cmd0145_rebuild_groups - cmd0146_rebuild_groups - yield - show_chr 0x04 - show_chr 0x25 - show_chr 0x06 - show_chr 0x08 - show_chr 0x0a - show_chr 0x0c - show_chr 0x0e - show_chr 0x10 - show_chr 0x12 - show_chr 0x14 - show_chr 0x16 - show_chr 0x18 - show_chr 0x1a - show_chr 0x1c - show_chr 0x1e - show_chr 0x20 - show_chr 0x22 - set_chr_alliance 0x04, ALLIANCE_ENEMY - set_chr_alliance 0x25, ALLIANCE_ENEMY - set_chr_alliance 0x06, ALLIANCE_ENEMY - set_chr_alliance 0x08, ALLIANCE_ENEMY - set_chr_alliance 0x0a, ALLIANCE_ENEMY - set_chr_alliance 0x0c, ALLIANCE_ENEMY - set_chr_alliance 0x0e, ALLIANCE_ENEMY - set_chr_alliance 0x10, ALLIANCE_ENEMY - set_chr_alliance 0x12, ALLIANCE_ENEMY - set_chr_alliance 0x14, ALLIANCE_ENEMY - set_chr_alliance 0x16, ALLIANCE_ENEMY - set_chr_alliance 0x18, ALLIANCE_ENEMY - set_chr_alliance 0x1a, ALLIANCE_ENEMY - set_chr_alliance 0x1c, ALLIANCE_ENEMY - set_chr_alliance 0x1e, ALLIANCE_ENEMY - set_chr_alliance 0x20, ALLIANCE_ENEMY - set_chr_alliance 0x22, ALLIANCE_ENEMY - cmd0145_rebuild_groups - cmd0146_rebuild_groups - yield - set_function 0x57, 0x0409 - set_function 0x58, 0x0409 - set_function 0x59, 0x040a - set_function 0x5a, 0x040a - set_function 0x5b, FUNC_GUARD_ALERTED - set_function 0x5c, FUNC_GUARD_ALERTED - set_function 0x5d, FUNC_GUARD_ALERTED - set_function 0x5e, FUNC_GUARD_ALERTED - set_function 0x04, FUNC_GUARD_UNALERTED - set_function 0x25, FUNC_GUARD_UNALERTED - set_function 0x06, FUNC_GUARD_UNALERTED - set_function 0x08, FUNC_GUARD_UNALERTED - set_function 0x0a, FUNC_GUARD_UNALERTED - set_function 0x0c, FUNC_GUARD_UNALERTED - set_function 0x0e, FUNC_GUARD_UNALERTED - set_function 0x10, FUNC_GUARD_UNALERTED - set_function 0x12, FUNC_GUARD_UNALERTED - set_function 0x14, FUNC_GUARD_UNALERTED - set_function 0x16, FUNC_GUARD_UNALERTED - set_function 0x18, FUNC_GUARD_UNALERTED - set_function 0x1a, FUNC_GUARD_UNALERTED - set_function 0x1c, FUNC_GUARD_UNALERTED - set_function 0x1e, FUNC_GUARD_UNALERTED - set_function 0x20, FUNC_GUARD_UNALERTED - set_function 0x22, FUNC_GUARD_UNALERTED - yield - unset_chr_flag_bank3 0x57, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x58, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x59, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x5a, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x5b, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x5c, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x5d, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x5e, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x57, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x58, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x59, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x5a, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x5b, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x5c, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x5d, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x5e, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x04, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x25, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x06, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x08, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x0a, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x0c, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x0e, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x10, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x12, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x14, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x16, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x18, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x1a, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x1c, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x1e, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x20, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x22, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x04, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x25, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x06, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x08, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x0a, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x0c, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x0e, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x10, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x12, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x14, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x16, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x18, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x1a, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x1c, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x1e, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x20, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x22, CHRFLAG3_HIDDEN - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0402_init_pilot: - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, FUNC_PILOT - endfunction - -func0401_pilot_dying: - unset_stage_flag STAGEFLAG_SAID_PULLTHEPLUG - unset_stage_flag STAGEFLAG_SAID_SWITCHTHINGOFF - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0401_pilot: - set_onshot_function FUNC_PILOT - if_chr_dying CHR_SELF, /*goto*/ 0x07 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x07 - if_chr_unloaded CHR_SELF, /*goto*/ 0x07 - goto_next 0x00 - - // Dying - label 0x07 - set_function CHR_SELF, FUNC_PILOT_DYING - - // Alive - wait for player to arrive - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x07 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x04 - endloop 0x00 - - // Seen player - label 0x07 - say_quip CHR_JOANNA, 0x08, 0xfe, 0x0a, 0xff, BANK_0, 0x00, 0x00 - - label 0x04 - set_group_alertness 100 - surrender - - beginloop 0x0b - // Wait for Jo nearby - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_distance_lt 200, /*goto*/ 0x07 - reloop 0x0b - - // and for Jo's room entry speech to finish - label 0x07 - if_sound_finished CHANNEL_6, /*goto*/ 0x07 - reloop 0x0b - - // and for Jo to be in view - label 0x07 - if_chr_in_view /*goto*/ 0x07 - endloop 0x0b - - label 0x07 - if_stage_flag_eq STAGEFLAG_AUTOPILOT_DISABLED, TRUE, /*goto*/ 0x08 - if_stage_flag_eq STAGEFLAG_SAID_PULLTHEPLUG, FALSE, /*goto*/ 0x07 - goto_next 0x04 - - label 0x08 - if_chr_death_animation_finished CHR_ANGRY_PILOT, /*goto*/ 0x09 - if_chr_dying CHR_ANGRY_PILOT, /*goto*/ 0x09 - if_chr_unloaded CHR_ANGRY_PILOT, /*goto*/ 0x09 - goto_first 0x0b - - // Angry pilot dead or hasn't been chosen yet - label 0x09 - if_stage_flag_eq STAGEFLAG_GPS_DISABLED, TRUE, /*goto*/ 0x04 - if_stage_flag_eq STAGEFLAG_SAID_SWITCHTHINGOFF, FALSE, /*goto*/ 0x08 - - // GPS disabled - label 0x04 - say_quip CHR_JOANNA, 0x08, 0xfe, 0x0a, 0xff, BANK_0, 0x00, 0x00 - goto_first 0x0b - - label 0x07 - speak TARGET_CHR, 0x162b, 0x7325, CHANNEL_7, COLOR_09_BLUE // "Pull the plug on that now." - set_stage_flag STAGEFLAG_SAID_PULLTHEPLUG - goto_next 0x0c - - label 0x08 - speak TARGET_CHR, 0x162c, 0x7326, CHANNEL_7, COLOR_09_BLUE // "Switch this thing off." - set_stage_flag STAGEFLAG_SAID_SWITCHTHINGOFF - goto_next 0x0c - - beginloop 0x0c - if_sound_finished CHANNEL_7, /*goto*/ 0x07 - endloop 0x0c - - label 0x07 - set_self_flag_bankx CHRFLAG0_08000000, BANK_0 - if_stage_flag_eq STAGEFLAG_SAID_SWITCHTHINGOFF, FALSE, /*goto*/ 0x07 - speak TARGET_CHR, 0x162d, 0x128e, CHANNEL_6, COLOR_04_ORANGE // "I'll shut it down." - goto_next 0x08 - - label 0x07 - speak TARGET_CHR, 0x162e, 0x1280, CHANNEL_6, COLOR_04_ORANGE // "Please don't hurt me." - label 0x08 - do_special_animation -1 - - beginloop 0x0f - if_sound_finished CHANNEL_6, /*goto*/ 0x08 - endloop 0x0f - - // Choose which pad to walk to - label 0x08 - if_stage_flag_eq STAGEFLAG_SAID_SWITCHTHINGOFF, TRUE, /*goto*/ 0x07 - walk_to_pad 0x015d - goto_next 0x0d - - label 0x07 - walk_to_pad 0x0160 - - // Walking to pad - beginloop 0x0d - if_chr_stopped /*goto*/ 0x07 - endloop 0x0d - - // Push button - label 0x07 - animation ANIM_PUSH_BUTTON, 0, -1, 0x1010, CHR_SELF, 2 - restart_timer - - beginloop 0x0e - if_chr_stopped /*goto*/ 0x07 - if_timer_gt 60, /*goto*/ 0x08 - endloop 0x0e - - label 0x08 - speak CHR_SELF, -1, 0x8118, CHANNEL_9, COLOR_00_GREEN - - beginloop 0x10 - if_chr_stopped /*goto*/ 0x07 - endloop 0x10 - - label 0x07 - if_stage_flag_eq STAGEFLAG_AUTOPILOT_DISABLED, TRUE, /*goto*/ 0x07 - message TARGET_CHR, 0x160e // "Autopilot system has been deactivated." - set_stage_flag STAGEFLAG_TRIGGER_ANGRY_PILOT - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - set_stage_flag STAGEFLAG_AUTOPILOT_DISABLED - surrender - goto_first 0x0b - - label 0x07 - message TARGET_CHR, 0x160f // "GPS system has been deactivated." - set_stage_flag STAGEFLAG_GPS_DISABLED - surrender - goto_first 0x0b - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1011_check_pilots_dead: - beginloop 0x00 - if_stage_flag_eq STAGEFLAG_00080000, TRUE, /*goto*/ 0x08 - if_chr_dying CHR_PILOT1, /*goto*/ 0x07 - if_chr_death_animation_finished CHR_PILOT1, /*goto*/ 0x07 - if_chr_unloaded CHR_PILOT1, /*goto*/ 0x07 - reloop 0x00 - - label 0x07 - if_chr_dying CHR_PILOT2, /*goto*/ 0x07 - if_chr_death_animation_finished CHR_PILOT2, /*goto*/ 0x07 - if_chr_unloaded CHR_PILOT2, /*goto*/ 0x07 - reloop 0x00 - - label 0x07 - if_chr_dying CHR_PILOT3, /*goto*/ 0x07 - if_chr_death_animation_finished CHR_PILOT3, /*goto*/ 0x07 - if_chr_unloaded CHR_PILOT3, /*goto*/ 0x07 - endloop 0x00 - - // All pilots dead - label 0x07 - - // Flag is set - label 0x08 - if_stage_flag_eq STAGEFLAG_AUTOPILOT_DISABLED, FALSE, /*goto*/ 0x07 - if_stage_flag_eq STAGEFLAG_GPS_DISABLED, FALSE, /*goto*/ 0x07 - set_function CHR_SELF, GFUNC_IDLE - - label 0x07 - message CHR_JOANNA, 0x161b // "Critical mission personnel have been killed." - set_stage_flag STAGEFLAG_PILOT_DEAD - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Choose a pilot to become angry. One of the three is selected at random. If - * the selected pilot is dead, try the next one and so on in order 1, 2, 3. - */ -func1012_choose_angry_pilot: - set_chr_flag_bank3 CHR_PILOT1, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 CHR_PILOT2, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 CHR_PILOT3, CHRFLAG3_KILLCOUNTABLE - - beginloop 0x00 - if_kill_count_gt 0, /*goto*/ 0x08 - if_stage_flag_eq STAGEFLAG_TRIGGER_ANGRY_PILOT, TRUE, /*goto*/ 0x07 - endloop 0x00 - - // Triggered - label 0x07 - call_rng - if_rand_lt 86, /*goto*/ 0x3b - if_rand_lt 172, /*goto*/ 0x3c - - beginloop 0x03 - if_kill_count_gt 0, /*goto*/ 0x08 - if_chr_dying CHR_PILOT1, /*goto*/ 0x3b - if_chr_death_animation_finished CHR_PILOT1, /*goto*/ 0x3b - if_chr_unloaded CHR_PILOT1, /*goto*/ 0x3b - if_chr_flag_bankx CHR_PILOT1, CHRFLAG0_08000000, BANK_0, /*goto*/ 0x3b - set_function CHR_PILOT1, FUNC_ANGRY_PILOT - set_function CHR_SELF, GFUNC_IDLE - - label 0x3b - if_chr_dying CHR_PILOT2, /*goto*/ 0x3c - if_chr_death_animation_finished CHR_PILOT2, /*goto*/ 0x3c - if_chr_unloaded CHR_PILOT2, /*goto*/ 0x3c - if_chr_flag_bankx CHR_PILOT2, CHRFLAG0_08000000, BANK_0, /*goto*/ 0x3c - set_function CHR_PILOT2, FUNC_ANGRY_PILOT - set_function CHR_SELF, GFUNC_IDLE - - label 0x3c - if_chr_dying CHR_PILOT3, /*goto*/ 0x04 - if_chr_death_animation_finished CHR_PILOT3, /*goto*/ 0x04 - if_chr_unloaded CHR_PILOT3, /*goto*/ 0x04 - if_chr_flag_bankx CHR_PILOT3, CHRFLAG0_08000000, BANK_0, /*goto*/ 0x04 - set_function CHR_PILOT3, FUNC_ANGRY_PILOT - set_function CHR_SELF, GFUNC_IDLE - - label 0x04 - endloop 0x03 - - // Killed a pilot - label 0x08 - message CHR_JOANNA, 0x1623 // "Civilians have been killed." - set_stage_flag STAGEFLAG_JO_KILLED_A_PILOT - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0404_angry_pilot: - set_chr_id CHR_ANGRY_PILOT - set_accuracy 90 - set_reaction_speed 100 - set_chr_alliance CHR_SELF, ALLIANCE_ENEMY - cmd0145_rebuild_groups - cmd0146_rebuild_groups - unset_self_flag_bankx CHRFLAG0_00100000, BANK_0 - set_self_flag_bank3 CHRFLAG3_00000040 - set_onshot_function FUNC_ANGRY_PILOT - if_chr_dying CHR_SELF, /*goto*/ 0x07 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x07 - if_chr_unloaded CHR_SELF, /*goto*/ 0x07 - goto_next 0x04 - - // Dying - label 0x07 - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x04 - set_self_flag_bankx CHRFLAG0_00000004, BANK_0 - speak TARGET_CHR, 0x162f, 0x14dd, CHANNEL_7, COLOR_04_ORANGE // "Die, you traitors." - animation ANIM_DRAW_PISTOL_0245, -1, 120, 0x0600, CHR_SELF, 3 - try_draw_weapon MODEL_CHRDY357, WEAPON_DY357MAGNUM, 0x00000000, /*goto*/ 0x6c - - beginloop 0x6c - if_chr_stopped /*goto*/ 0x03 - endloop 0x6c - - label 0x03 - if_kill_count_gt 1, /*goto*/ 0x08 - goto_next 0x04 - - // Jo killed a pilot - label 0x08 - set_stage_flag STAGEFLAG_00080000 - - // Select another pilot as target - label 0x04 - if_chr_dying CHR_PILOT1, /*goto*/ 0x3b - if_chr_death_animation_finished CHR_PILOT1, /*goto*/ 0x3b - if_chr_unloaded CHR_PILOT1, /*goto*/ 0x3b - if_chr_flag_bankx CHR_PILOT1, CHRFLAG0_00000004, BANK_0, /*goto*/ 0x3b - set_target_chr CHR_PILOT1 - goto_next 0x00 - - label 0x3b - if_chr_dying CHR_PILOT2, /*goto*/ 0x3c - if_chr_death_animation_finished CHR_PILOT2, /*goto*/ 0x3c - if_chr_unloaded CHR_PILOT2, /*goto*/ 0x3c - if_chr_flag_bankx CHR_PILOT2, CHRFLAG0_00000004, BANK_0, /*goto*/ 0x3c - set_target_chr CHR_PILOT2 - goto_next 0x00 - - label 0x3c - if_chr_dying CHR_PILOT3, /*goto*/ 0x04 - if_chr_death_animation_finished CHR_PILOT3, /*goto*/ 0x04 - if_chr_unloaded CHR_PILOT3, /*goto*/ 0x04 - if_chr_flag_bankx CHR_PILOT3, CHRFLAG0_00000004, BANK_0, /*goto*/ 0x04 - set_target_chr CHR_PILOT3 - goto_next 0x00 - - // No other pilots - label 0x04 - call_rng - if_rand_lt 128, /*goto*/ 0x3b - set_target_chr CHR_VELVET - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x3b - goto_next 0x00 - label 0x3b - set_target_chr CHR_JOANNA - - // Got target (other pilot or Jo) - label 0x00 - if_chr_lost_track_of_target_maybe /*goto*/ 0x07 - goto_next 0x04 - label 0x07 - set_onshot_function GFUNC_ALERTED - set_function CHR_SELF, GFUNC_ALERTED - - label 0x04 - restart_timer - try_run_to_target_chr /*goto*/ 0x6d - - beginloop 0x6d - if_in_disarm_range /*goto*/ 0x07 - if_timer_gt 120, /*goto*/ 0x04 - endloop 0x6d - - label 0x04 - goto_first 0x00 - - label 0x07 - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x04 - label 0x04 - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x6e - - beginloop 0x6e - if_chr_stopped /*goto*/ 0x07 - endloop 0x6e - - label 0x07 - goto_first 0x03 - - endfunction - -func1013_lift_switch: - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, OBJ_LIFT_SWITCH, /*goto*/ 0x07 - endloop 0x00 - - label 0x07 - message CHR_P1P2, 0x161c // "Lift door has been unlocked." - unlock_door 0x18, 0x02 - unlock_door 0x19, 0x02 - open_door 0x18 - open_door 0x19 - set_stage_flag STAGEFLAG_LIFT_UNLOCKED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1014_moonpool_switch: - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - if_object_in_good_condition OBJ_MOONPOOL_SWITCH, /*goto*/ 0x08 - if_difficulty_lt DIFF_SA, /*goto*/ 0x10 - message CHR_P1P2, 0x1624 // "Critical mission object has been destroyed." - set_stage_flag STAGEFLAG_MOONPOOL_SWITCH_DESTROYED - - label 0x10 - set_function CHR_SELF, GFUNC_IDLE - - label 0x08 - if_chr_activated_object CHR_P1P2, OBJ_MOONPOOL_SWITCH, /*goto*/ 0x07 - endloop 0x00 - - label 0x07 - label 0x07 - message CHR_P1P2, 0x161d // "Lift has been activated." - set_stage_flag STAGEFLAG_MOONPOOL_ACTIVATED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0413_guard_alerted: - set_chr_cloaked CHR_SELF, FALSE, TRUE - set_chr_dodge_rating 2, 0x0a - set_accuracy 18 - set_reaction_speed 60 - set_chr_health CHR_SELF, 70 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -func1015_shuffle_hatchswitches: - yield - shuffle_pelagic_switches - yield - yield - set_object_image OBJ_BADHATCHSWITCH1, 0x00, 0x12 - yield - set_object_image OBJ_BADHATCHSWITCH2, 0x00, 0x12 - yield - set_object_image OBJ_BADHATCHSWITCH3, 0x00, 0x12 - yield - set_object_image OBJ_BADHATCHSWITCH4, 0x00, 0x12 - yield - set_object_image OBJ_HATCHSWITCH1, 0x00, 0x13 - yield - set_object_image OBJ_HATCHSWITCH2, 0x00, 0x13 - yield - set_object_image OBJ_HATCHSWITCH3, 0x00, 0x13 - yield - set_object_image OBJ_HATCHSWITCH4, 0x00, 0x13 - yield - set_function CHR_SELF, GFUNC_IDLE - endfunction - -.macro hatchswitch_logic switch flag - yield - yield - - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, \switch, /*goto*/ 0x07 - endloop 0x00 - - label 0x07 - assign_sound 0x043a, CHANNEL_7 - control_sound_from_object CHANNEL_7, \switch, TRUE - set_object_image \switch, 0x00, 0x14 - set_stage_flag \flag - - beginloop 0x0b - if_stage_flag_eq STAGEFLAG_HATCHSWITCHES_RESETTING, TRUE, /*goto*/ 0x07 - endloop 0x0b - - label 0x07 - set_object_image \switch, 0x00, 0x13 - yield - yield - yield - yield - yield - unset_stage_flag STAGEFLAG_HATCHSWITCH1_ACTIVATED - unset_stage_flag STAGEFLAG_HATCHSWITCH2_ACTIVATED - unset_stage_flag STAGEFLAG_HATCHSWITCH3_ACTIVATED - unset_stage_flag STAGEFLAG_HATCHSWITCH4_ACTIVATED - goto_first 0x00 -.endm - -func1016_hatchswitch1: - hatchswitch_logic OBJ_HATCHSWITCH1, STAGEFLAG_HATCHSWITCH1_ACTIVATED - endfunction - -func1017_hatchswitch2: - hatchswitch_logic OBJ_HATCHSWITCH2, STAGEFLAG_HATCHSWITCH2_ACTIVATED - endfunction - -func1018_hatchswitch3: - hatchswitch_logic OBJ_HATCHSWITCH3, STAGEFLAG_HATCHSWITCH3_ACTIVATED - endfunction - -func1019_hatchswitch4: - hatchswitch_logic OBJ_HATCHSWITCH4, STAGEFLAG_HATCHSWITCH4_ACTIVATED - endfunction - -func101a_badhatchswitches: - yield - yield - - beginloop 0x00 - if_chr_activated_object CHR_P1P2, OBJ_BADHATCHSWITCH1, /*goto*/ 0x0b - if_chr_activated_object CHR_P1P2, OBJ_BADHATCHSWITCH2, /*goto*/ 0x0c - if_chr_activated_object CHR_P1P2, OBJ_BADHATCHSWITCH3, /*goto*/ 0x0d - if_chr_activated_object CHR_P1P2, OBJ_BADHATCHSWITCH4, /*goto*/ 0x0e - endloop 0x00 - - // 1 - label 0x0b - assign_sound 0x043a, CHANNEL_7 - control_sound_from_object CHANNEL_7, OBJ_BADHATCHSWITCH1, TRUE - yield - assign_sound 0x01c0, CHANNEL_6 - control_sound_from_object CHANNEL_6, OBJ_BADHATCHSWITCH1, FALSE - set_object_image OBJ_BADHATCHSWITCH1, 0x00, 0x0f - goto_next 0x04 - - // 2 - label 0x0c - assign_sound 0x043a, CHANNEL_7 - control_sound_from_object CHANNEL_7, OBJ_BADHATCHSWITCH2, TRUE - yield - assign_sound 0x01c0, CHANNEL_6 - control_sound_from_object CHANNEL_6, OBJ_BADHATCHSWITCH2, FALSE - set_object_image OBJ_BADHATCHSWITCH2, 0x00, 0x0f - goto_next 0x04 - - // 3 - label 0x0d - assign_sound 0x043a, CHANNEL_7 - control_sound_from_object CHANNEL_7, OBJ_BADHATCHSWITCH3, TRUE - yield - assign_sound 0x01c0, CHANNEL_6 - control_sound_from_object CHANNEL_6, OBJ_BADHATCHSWITCH3, FALSE - set_object_image OBJ_BADHATCHSWITCH3, 0x00, 0x0f - goto_next 0x04 - - // 4 - label 0x0e - assign_sound 0x043a, CHANNEL_7 - control_sound_from_object CHANNEL_7, OBJ_BADHATCHSWITCH4, TRUE - yield - assign_sound 0x01c0, CHANNEL_6 - control_sound_from_object CHANNEL_6, OBJ_BADHATCHSWITCH4, FALSE - set_object_image OBJ_BADHATCHSWITCH4, 0x00, 0x0f - goto_next 0x04 - - label 0x04 - message CHR_P1P2, 0x161f // "Unlocking sequence has been reset." - set_stage_flag STAGEFLAG_HATCHSWITCHES_RESETTING - restart_timer - - beginloop 0x10 - if_timer_gt 120, /*goto*/ 0x04 - endloop 0x10 - - label 0x04 - mute_channel CHANNEL_6 - unset_stage_flag STAGEFLAG_HATCHSWITCHES_RESETTING - set_object_image OBJ_BADHATCHSWITCH1, 0x00, 0x12 - set_object_image OBJ_BADHATCHSWITCH2, 0x00, 0x12 - set_object_image OBJ_BADHATCHSWITCH3, 0x00, 0x12 - set_object_image OBJ_BADHATCHSWITCH4, 0x00, 0x12 - goto_first 0x00 - - endfunction - -func101b_reactor_hum: - yield - assign_sound 0x8146, CHANNEL_1 - play_sound_from_object CHANNEL_1, OBJ_REACTOR_SWITCH, 0x07d0, 0x0bb8 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0415_elvis_at_start: - set_onshot_function FUNC_ELVIS_AT_START - if_chr_dying CHR_SELF, /*goto*/ 0x07 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x07 - if_chr_unloaded CHR_SELF, /*goto*/ 0x07 - goto_next 0x04 - - // Dying - label 0x07 - if_sound_finished CHANNEL_6, /*goto*/ 0x08 - mute_channel CHANNEL_6 - label 0x08 - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x04 - stop_chr - set_chr_health CHR_SELF, 1 - restart_timer - - beginloop 0x0b - if_timer_gt 120, /*goto*/ 0x07 - endloop 0x0b - - label 0x07 - do_special_animation -1 - speak TARGET_CHR, 0x1620, 0x14dc, CHANNEL_6, COLOR_06_WHITE // "You go on ahead, Jo. I'll secure the perimeter. We..." - - beginloop 0x0c - if_sound_finished CHANNEL_6, /*goto*/ 0x07 - endloop 0x0c - - label 0x07 - jog_to_pad 0x0040 - - beginloop 0x0d - if_chr_stopped /*goto*/ 0x07 - endloop 0x0d - - label 0x3b - restart_timer - label 0x0e - stop_chr - if_self_flag_bankx_eq CHRFLAG1_DONE_SEARCH_ANIM, TRUE, BANK_1, /*goto*/ 0x07 - call_rng - if_rand_gt 128, /*goto*/ 0x07 - - // 50% chance of doing an idle animation - call_rng - if_rand_lt 64, /*goto*/ 0x44 - if_rand_lt 128, /*goto*/ 0x45 - if_rand_lt 196, /*goto*/ 0x46 - - set_self_flag_bankx CHRFLAG1_DONE_SEARCH_ANIM, BANK_1 - animation ANIM_SMOKE_CIGARETTE, 0, -1, 0x100a, CHR_SELF, 2 - goto_next 0x4c - - label 0x44 - animation ANIM_SCRATCH_HEAD, 0, -1, 0x100a, CHR_SELF, 2 - goto_next 0x4c - - label 0x45 - animation ANIM_YAWN, 0, -1, 0x100a, CHR_SELF, 2 - goto_next 0x4c - - label 0x46 - animation ANIM_GRAB_CROTCH, 0, -1, 0x100a, CHR_SELF, 2 - goto_next 0x4c - - label 0x47 - animation ANIM_TWO_GUN_HOLD, 0, 100, 0x100a, CHR_SELF, 2 - goto_next 0x4c - - // 50% chance - label 0x07 - unset_self_flag_bankx CHRFLAG1_DONE_SEARCH_ANIM, BANK_1 - if_chr_in_room CHR_SELF, 0x00, 0x0029, /*goto*/ 0x04 - set_target_pad 0x0040 - goto_next 0x07 - - label 0x04 - call_rng - if_rand_lt 64, /*goto*/ 0x44 - if_rand_lt 128, /*goto*/ 0x45 - if_rand_lt 196, /*goto*/ 0x46 - try_set_target_pad_to_something 0x08, /*goto*/ 0x07 - label 0x44 - try_set_target_pad_to_something 0x02, /*goto*/ 0x07 - label 0x45 - try_set_target_pad_to_something 0x04, /*goto*/ 0x07 - label 0x46 - try_set_target_pad_to_something 0x08, /*goto*/ 0x07 - goto_next 0x4c - label 0x07 - go_to_target_pad SPEED_WALK - - beginloop 0x4c - if_chr_in_room CHR_JOANNA, 0x00, 0x0029, /*goto*/ 0x04 - if_chr_in_room CHR_JOANNA, 0x00, 0x002a, /*goto*/ 0x04 - if_chr_in_room CHR_JOANNA, 0x00, 0x002b, /*goto*/ 0x04 - if_chr_in_room CHR_JOANNA, 0x00, 0x0030, /*goto*/ 0x04 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x07 - if_chr_in_room CHR_VELVET, 0x00, 0x0029, /*goto*/ 0x04 - if_chr_in_room CHR_VELVET, 0x00, 0x002a, /*goto*/ 0x04 - if_chr_in_room CHR_VELVET, 0x00, 0x002b, /*goto*/ 0x04 - if_chr_in_room CHR_VELVET, 0x00, 0x0030, /*goto*/ 0x04 - label 0x07 - goto_next 0x10 - - label 0x04 - if_chr_stopped /*goto*/ 0x4b - endloop 0x4c - - label 0x4b - goto_first 0x3b - - label 0x04 - label 0x10 - yield - if_difficulty_lt DIFF_SA, /*goto*/ 0x07 - - // SA and PA - chr_move_to_pad CHR_ELVIS, 0x0020, 0x01, /*goto*/ 0x04 - goto_first 0x10 - - // Agent - label 0x07 - chr_move_to_pad CHR_ELVIS, 0x0096, 0x01, /*goto*/ 0x04 - goto_first 0x10 - - label 0x04 - stop_chr - set_stage_flag STAGEFLAG_ELVIS_WARPED_FROM_START - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_armor 2000 - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Elvis leading the way from the moon pool to the diving area. - */ -func0416_elvis_leading: - set_onshot_function FUNC_ELVIS_LEADING - if_chr_dying CHR_SELF, /*goto*/ 0x07 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x07 - if_chr_unloaded CHR_SELF, /*goto*/ 0x07 - goto_next 0x04 - - // Dying - label 0x07 - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x04 - if_just_injured CHR_SELF, /*goto*/ 0x07 - goto_next 0x04 - - // Injured - label 0x07 - say_quip CHR_JOANNA, 0x29, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00 - - beginloop 0x3a - if_chr_stopped /*goto*/ 0x04 - endloop 0x3a - - label 0x04 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x0b - set_target_pad 0x0096 - label 0x12 - label 0x04 - run_to_pad 0x0096 - restart_timer - - beginloop 0x00 - if_timer_gt 1200, /*goto*/ 0x08 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x0b - label 0x07 - dprint "GO TO PAD\n" - if_chr_stopped /*goto*/ 0x04 - endloop 0x00 - - label 0x08 - goto_first 0x12 - - label 0x07 - goto_first 0x03 - - label 0x04 - stop_chr - - beginloop 0x0c - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x0b - label 0x07 - dprint "AT PAD\n" - endloop 0x0c - - label 0x0b - dprint "DETECTED\n" - call_rng - if_rand_lt 85, /*goto*/ 0x3b - if_rand_lt 170, /*goto*/ 0x3c - say_quip CHR_JOANNA, 0x26, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00 - goto_next 0x07 - - label 0x3b - say_quip CHR_JOANNA, 0x27, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00 - goto_next 0x07 - - label 0x3c - say_quip CHR_JOANNA, 0x28, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00 - - label 0x07 - set_onshot_function FUNC_ELVIS_LEADING - set_return_function CHR_SELF, FUNC_ELVIS_LEADING - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - endfunction - -func101c_check_elvis_dead: - beginloop 0x00 - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0x07 - if_chr_dying CHR_ELVIS, /*goto*/ 0x07 - if_chr_unloaded CHR_ELVIS, /*goto*/ 0x07 - endloop 0x00 - - label 0x07 - message CHR_JOANNA, 0x1621 // "Elvis has been killed." - set_stage_flag STAGEFLAG_ELVIS_DEAD - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0418_elvis_at_moonpool: - // @bug? If Elvis has enough health, and you can shoot him before he talks, - // he'll jump straight to leading the way without enabling AIVSAI on - // everyone. This may allow him to run past guards without engaging in - // combat. - set_onshot_function FUNC_ELVIS_LEADING - - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_sees_player /*goto*/ 0x07 - endloop 0x00 - - label 0x07 - if_chr_dying CHR_SELF, /*goto*/ 0x07 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x07 - if_chr_unloaded CHR_SELF, /*goto*/ 0x07 - do_special_animation -1 - set_stage_flag STAGEFLAG_MET_ELVIS - speak CHR_P1P2, 0x1622, 0x81a4, CHANNEL_6, COLOR_06_WHITE // "Joanna... What took you so long? Follow me - let's..." - - beginloop 0x0b - if_sound_finished CHANNEL_6, /*goto*/ 0x07 - endloop 0x0b - - label 0x07 - set_function CHR_SELF, FUNC_ELVIS_PREPARE_LEADING - endfunction - -func0417_elvis_prepare_leading: - // Allow all other chrs to engage in combat with Elvis - set_chr_flag_bankx 0x03, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x04, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x05, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x06, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x07, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x08, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x09, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x0a, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x0b, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x0c, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x0d, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x0e, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x0f, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x10, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x11, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x12, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x13, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x14, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x15, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x16, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x17, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x18, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x19, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x1a, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x1b, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x1c, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x1d, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x1e, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x1f, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x20, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x21, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x22, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x23, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x24, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x25, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x26, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x27, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x28, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x29, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x2a, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x2b, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x2c, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x2d, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x2e, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x2f, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x30, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x31, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x32, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x33, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x34, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x35, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x36, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x37, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x38, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x39, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x3a, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x3b, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx CHR_PILOT1, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x3d, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx CHR_PILOT2, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx CHR_PILOT3, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x40, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x41, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x42, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x43, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x44, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x45, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x46, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x47, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x48, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x49, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x4a, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x4b, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x4c, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x4d, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x51, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x52, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x53, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x54, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x55, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x56, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x57, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x58, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x59, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x5a, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x5b, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x5c, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x5d, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x5e, CHRFLAG0_AIVSAI, BANK_0 - set_function CHR_SELF, FUNC_ELVIS_LEADING - endfunction - -func101d_alarm_switches: - beginloop 0x00 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, 0x21, /*goto*/ 0x07 - if_chr_activated_object CHR_P1P2, 0x22, /*goto*/ 0x07 - if_chr_activated_object CHR_P1P2, 0x23, /*goto*/ 0x07 - if_chr_activated_object CHR_P1P2, 0x24, /*goto*/ 0x07 - if_chr_activated_object CHR_P1P2, 0x25, /*goto*/ 0x07 - endloop 0x00 - - label 0x07 - if_alarm_active /*goto*/ 0x07 - activate_alarm - message CHR_P1P2, 0x1625 // "Alarm has been activated." - goto_next 0x0c - - label 0x07 - deactivate_alarm - message CHR_JOANNA, 0x1626 // "Alarm has been deactivated." - goto_next 0x0c - - label 0x0c - restart_timer - - beginloop 0x0d - if_timer_gt 120, /*goto*/ 0x07 - endloop 0x0d - - label 0x07 - goto_first 0x00 - - // @bug: This function is surely not meant to be assigned here. But it has - // no consequences because the function will bail because CHR_SELF doesn't - // exist. - set_function CHR_SELF, FUNC_ELVIS_LEADING - endfunction - -func101e_alarm_images: - beginloop 0x00 - if_alarm_active /*goto*/ 0x07 - endloop 0x00 - - label 0x07 - set_object_flag_bank0 0x27, OBJECTFLAG0_00100000 - set_object_flag_bank0 0x28, OBJECTFLAG0_00100000 - set_object_flag_bank1 0x27, OBJECTFLAG1_INVISIBLE - set_object_flag_bank1 0x28, OBJECTFLAG1_INVISIBLE - set_object_image 0x21, 0x00, 0x0f - set_object_image 0x22, 0x00, 0x0f - set_object_image 0x23, 0x00, 0x0f - set_object_image 0x24, 0x00, 0x0f - set_object_image 0x25, 0x00, 0x0f - - beginloop 0x0b - if_alarm_active /*goto*/ 0x07 - goto_next 0x04 - - label 0x07 - endloop 0x0b - - label 0x04 - set_object_image 0x21, 0x00, 0x14 - set_object_image 0x22, 0x00, 0x14 - set_object_image 0x23, 0x00, 0x14 - set_object_image 0x24, 0x00, 0x14 - set_object_image 0x25, 0x00, 0x14 - goto_first 0x00 - - endfunction - -func101f_unlock_doors: - if_difficulty_lt DIFF_SA, /*goto*/ 0x0b - if_difficulty_lt DIFF_PA, /*goto*/ 0x0c - - // PA - unlock_door 0x2c, 0x80 - unlock_door 0x2d, 0x80 - - // SA + PA - label 0x0c - unlock_door 0x29, 0x80 - unlock_door 0x2a, 0x80 - unlock_door 0x2b, 0x80 - - // A + SA + PA - label 0x0b - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1020_setup_rtracker: - yield - set_object_flag_bank2 0x27, OBJECTFLAG2_RTRACKED_BLUE - set_object_flag_bank2 0x28, OBJECTFLAG2_RTRACKED_BLUE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1421_setup_lighting: - yield - set_lighting 0x0060, 0x06, 0x01 - set_lighting 0x0061, 0x06, 0x01 - set_lighting 0x0063, 0x05, 0x01 - set_lighting 0x0064, 0x05, 0x01 - set_lighting 0x0064, 0x06, 0x01 - set_lighting 0x0065, 0x05, 0x01 - set_lighting 0x0067, 0x05, 0x01 - set_lighting 0x0067, 0x06, 0x01 - set_lighting 0x0068, 0x05, 0x01 - set_lighting 0x0068, 0x06, 0x01 - set_lighting 0x0069, 0x05, 0x01 - set_lighting 0x0069, 0x06, 0x01 - set_lighting 0x006a, 0x05, 0x01 - set_lighting 0x006a, 0x06, 0x01 - set_lighting 0x006b, 0x05, 0x01 - set_lighting 0x006b, 0x06, 0x01 - set_lighting 0x006d, 0x05, 0x01 - set_lighting 0x006d, 0x06, 0x01 - set_lighting 0x006e, 0x05, 0x01 - set_lighting 0x006e, 0x06, 0x01 - set_lighting 0x006f, 0x05, 0x01 - set_lighting 0x006f, 0x06, 0x01 - set_lighting 0x0070, 0x05, 0x01 - set_lighting 0x0070, 0x06, 0x01 - set_lighting 0x0071, 0x05, 0x01 - set_lighting 0x0071, 0x06, 0x01 - set_lighting 0x0072, 0x05, 0x01 - set_lighting 0x0072, 0x06, 0x01 - set_lighting 0x0073, 0x05, 0x01 - set_lighting 0x0077, 0x05, 0x01 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -functions: - register_function func1400_setup_counterop 0x1400 - register_function func1001_objectives_failed_msg 0x1001 - register_function func1002_intro 0x1002 - register_function func1004_msg_controlledfrom 0x1004 - register_function func1005_msg_withoutautopilot 0x1005 - register_function func1006_msg_conductoperations 0x1006 - register_function func1009_open_reactor_hatch 0x1009 - register_function func100a_reactor_switch 0x100a - register_function func100b_check_diving_area_located 0x100b - register_function func100c_check_end_level 0x100c - register_function func100e_check_labtech_dead 0x100e - register_function func100f_check_researchdata_collected 0x100f - register_function func1010_alarm_responders 0x1010 - register_function func1011_check_pilots_dead 0x1011 - register_function func1012_choose_angry_pilot 0x1012 - register_function func1013_lift_switch 0x1013 - register_function func1014_moonpool_switch 0x1014 - register_function func1015_shuffle_hatchswitches 0x1015 - register_function func1016_hatchswitch1 0x1016 - register_function func1017_hatchswitch2 0x1017 - register_function func1018_hatchswitch3 0x1018 - register_function func1019_hatchswitch4 0x1019 - register_function func101a_badhatchswitches 0x101a - register_function func101b_reactor_hum 0x101b - register_function func101c_check_elvis_dead 0x101c - register_function func101d_alarm_switches 0x101d - register_function func101e_alarm_images 0x101e - register_function func101f_unlock_doors 0x101f - register_function func1020_setup_rtracker 0x1020 - register_function func1421_setup_lighting 0x1421 - register_function func1002_intro 0x0c00 - register_function func0c01_outro 0x0c01 - register_function func0408_guard_unalerted 0x0408 - register_function func0405_start_path00 0x0405 - register_function func0401_pilot 0x0401 - register_function func0402_init_pilot 0x0402 - register_function func0401_pilot_dying 0x0403 - register_function func0404_angry_pilot 0x0404 - register_function func0c01_outro 0x0414 - register_function func0415_elvis_at_start 0x0415 - register_function func0416_elvis_leading 0x0416 - register_function func0417_elvis_prepare_leading 0x0417 - register_function func0418_elvis_at_moonpool 0x0418 - register_function func0406_start_path01 0x0406 - register_function func0407_start_path02 0x0407 - register_function func0409_start_path03 0x0409 - register_function func040a_start_path04 0x040a - register_function func040b_labtech1 0x040b - register_function func040c_labtech2 0x040c - register_function func040d_labtech3 0x040d - register_function func040e_init_labtech1 0x040e - register_function func040f_init_labtech2 0x040f - register_function func0410_init_labtech3 0x0410 - register_function func0411_labtech_alerted 0x0411 - register_function func0412_hide 0x0412 - register_function func0413_guard_alerted 0x0413 - endfunctions - -.align 4 diff --git a/asm/setup/setupdepo.s b/asm/setup/setupdepo.s deleted file mode 100644 index 7636266dc..000000000 --- a/asm/setup/setupdepo.s +++ /dev/null @@ -1,3089 +0,0 @@ -# -# G5 Building -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -// Characters -.set CHR_CLOAK_1A, 0x00 // first room -.set CHR_CLOAK_1B, 0x01 // first room -.set CHR_LIGHTSWITCH_GUARD, 0x02 -.set CHR_CLOAK_2A, 0x03 // second room -.set CHR_CLOAK_2B, 0x04 // second room -.set CHR_CLOAK_2C, 0x05 // second room -.set CHR_CLOAK_2D, 0x06 // second room -.set CHR_CASS, 0x18 -.set CHR_TRENT, 0x19 -.set CHR_STRIPES, 0x1a -.set CHR_BLONDE, 0x1b -.set CHR_INTRO_VICTIM, 0x1d - -// Objects -.set OBJ_GENERATOR, 0x01 -.set OBJ_LASERSWITCH1, 0x03 -.set OBJ_LASERSWITCH2, 0x04 -.set OBJ_LASERSWITCH3, 0x05 -.set OBJ_LASERSWITCH4, 0x06 -.set OBJ_SAFEDOOR, 0x0b -.set OBJ_BACKUPDISK, 0x0c -.set OBJ_KEYCARD1, 0x0e -.set OBJ_KEYCARD2, 0x0f -.set OBJ_DECODER, 0x10 -.set OBJ_SAFEKEYPAD, 0x11 -.set OBJ_ALARM1, 0x12 -.set OBJ_ALARM2, 0x13 -.set OBJ_ESCAPEDOOR1, 0x18 -.set OBJ_ESCAPEDOOR2, 0x1b -.set OBJ_LASER_1A, 0x22 -.set OBJ_LASER_1B, 0x23 -.set OBJ_LASER_1C, 0x24 -.set OBJ_LASER_1D, 0x25 -.set OBJ_LASER_2A, 0x26 -.set OBJ_LASER_2B, 0x27 -.set OBJ_LASER_2C, 0x28 -.set OBJ_LASER_2D, 0x29 -.set OBJ_LASER_3A, 0x2a -.set OBJ_LASER_3B, 0x2b -.set OBJ_LASER_3C, 0x2c -.set OBJ_LASER_3D, 0x2d -.set OBJ_LASER_4A, 0x2e -.set OBJ_LASER_4B, 0x2f -.set OBJ_LASER_4C, 0x30 -.set OBJ_LASER_4D, 0x31 -.set OBJ_MINE1, 0x38 -.set OBJ_MINE2, 0x39 -.set OBJ_NBOMB_CRATE, 0x3c -.set OBJ_LIGHTSWITCH, 0x3d -.set OBJ_CROSSBOW, 0x3e -.set OBJ_CMP150_JOANNA, 0x47 -.set OBJ_CMP150_VELVET, 0x48 - -// Stage flags -.set STAGEFLAG_CLOAK1_ONE_REMAINING, 0x00000002 -.set STAGEFLAG_CLOAK2_ONE_REMAINING, 0x00000004 -.set STAGEFLAG_MEETING_FINISHED, 0x00000008 -.set STAGEFLAG_CONSPIRATORS_ALERTED, 0x00000010 -.set STAGEFLAG_VISITED_TOP_DOOR, 0x00000020 -.set STAGEFLAG_SAFEKEYPAD_DESTROYED, 0x00000040 -.set STAGEFLAG_LIGHTS_OFF, 0x00000080 -.set STAGEFLAG_GENERATOR_SHUT_DOWN, 0x00000100 -.set STAGEFLAG_GENERATOR_SHUT_DOWN2, 0x00000200 // redundant -.set STAGEFLAG_GENERATOR_DESTROYED, 0x00000400 -.set STAGEFLAG_LASERSET1_DISABLED, 0x00000800 -.set STAGEFLAG_LASERSET2_DISABLED, 0x00001000 -.set STAGEFLAG_00002000, 0x00002000 -.set STAGEFLAG_LASERSET4_DISABLED, 0x00004000 -.set STAGEFLAG_LASERSWITCH1_DESTROYED, 0x00008000 -.set STAGEFLAG_LASERSWITCH2_DESTROYED, 0x00010000 -.set STAGEFLAG_LASERSWITCH3_DESTROYED, 0x00020000 -.set STAGEFLAG_LASERSWITCH4_DESTROYED, 0x00040000 -.set STAGEFLAG_ALL_LASERS_DISABLED, 0x00080000 -.set STAGEFLAG_DECODER_ATTACHED, 0x00200000 -.set STAGEFLAG_LASERSET3_DISABLED, 0x00800000 -.set STAGEFLAG_MEETING_STARTED, 0x01000000 -.set STAGEFLAG_BACKUP_COLLECTED, 0x08000000 -.set STAGEFLAG_MEETING_HOLOGRAPHED, 0x10000000 -.set STAGEFLAG_20000000, 0x20000000 -.set STAGEFLAG_ALARM_SOUNDING, 0x40000000 -.set STAGEFLAG_EXITED_BUILDING, 0x80000000 - -// Functions -.set FUNC_WALK_FROM_MEETING, 0x0403 -.set FUNC_RUN_FROM_MEETING, 0x0404 -.set FUNC_CLOAK2_HIDE, 0x0405 -.set FUNC_INIT_TYPE1_GUARD, 0x0406 -.set FUNC_INIT_CLOAK1_GUARD, 0x0408 -.set FUNC_INTRO, 0x040d -.set FUNC_MEETING_CUTSCENE, 0x040e -.set FUNC_OUTRO, 0x040f -.set FUNC_CLOAK_GUARD, 0x0412 -.set FUNC_CLOAK2_GUARD, 0x0414 - -props: - briefing 0, 0x1801 - briefing 1, 0x1800 - briefing 2, 0x1802 - briefing 3, 0x1803 - - beginobjective 0, 0x1809, DIFFBIT_PA | DIFFBIT_PD // "Disable damping field generator" - complete_flags STAGEFLAG_GENERATOR_SHUT_DOWN - fail_flags STAGEFLAG_GENERATOR_DESTROYED - endobjective - - beginobjective 1, 0x180a, DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Deactivate laser grid systems" - complete_flags STAGEFLAG_ALL_LASERS_DISABLED - complete_flags STAGEFLAG_LASERSET1_DISABLED - complete_flags STAGEFLAG_LASERSET2_DISABLED - complete_flags STAGEFLAG_LASERSET3_DISABLED - complete_flags STAGEFLAG_LASERSET4_DISABLED - fail_flags STAGEFLAG_LASERSWITCH1_DESTROYED - fail_flags STAGEFLAG_LASERSWITCH2_DESTROYED - fail_flags STAGEFLAG_LASERSWITCH3_DESTROYED - fail_flags STAGEFLAG_LASERSWITCH4_DESTROYED - endobjective - - beginobjective 2, 0x180b, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Holograph meeting conspirators" - complete_flags STAGEFLAG_MEETING_HOLOGRAPHED - fail_flags STAGEFLAG_20000000 - fail_flags STAGEFLAG_CONSPIRATORS_ALERTED - fail_flags STAGEFLAG_00002000 - endobjective - - beginobjective 3, 0x180c, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Retrieve Dr. Caroll backup from safe" - complete_flags STAGEFLAG_BACKUP_COLLECTED - fail_flags STAGEFLAG_SAFEKEYPAD_DESTROYED - endobjective - - beginobjective 4, 0x180d, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Exit building" - complete_flags STAGEFLAG_EXITED_BUILDING - endobjective - - // First cloak room - chr 0x00000100, CHR_CLOAK_1A, 0x007e, BODY_G5_SWAT_GUARD, HEAD_RANDOM, GFUNC_IDLE, 0x007e, -1, 200, 100, 0x00000600, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, CHR_CLOAK_1A, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRCROSSBOW, CHR_CLOAK_1A, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CROSSBOW, 0x00ffffff, 0x00000000 - tag OBJ_CROSSBOW, -1 - - chr 0x00000100, CHR_CLOAK_1B, 0x007f, BODY_G5_SWAT_GUARD, HEAD_RANDOM, GFUNC_IDLE, 0x007f, -1, 200, 100, 0x00000600, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, CHR_CLOAK_1B, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - - tag OBJ_KEYCARD1, 1 - key 0x0080, MODEL_KEYCARD, CHR_CLOAK_1A, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000004 - rename_object -1, 0x0045, 0x180e, 0x180f, 0x1810, 0x1811, 0x1812, 0x0000, 0x0000 // "Obtain alpha key card." - - // Between cloak rooms - chr 0x00004a00, 0x02, 0x005f, BODY_G5_GUARD, HEAD_RANDOM, GFUNC_UNALERTED, 0x0080, -1, 2000, 100, 0x80028204, 0x00000100, 0x80, 0x04, -1, 0, 0x00010000 - weapon 0x0100, MODEL_CHRCMP150, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - - // Second cloak room - chr 0x00000000, 0x03, 0x005e, BODY_G5_SWAT_GUARD, HEAD_RANDOM, FUNC_CLOAK2_HIDE, 0x006e, -1, 1, 15, 0x000a8204, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0003, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - - chr 0x00000000, 0x04, 0x005d, BODY_G5_SWAT_GUARD, HEAD_RANDOM, FUNC_CLOAK2_HIDE, 0x006f, -1, 1, 15, 0x000a8204, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0004, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - - chr 0x00000000, 0x05, 0x0072, BODY_G5_SWAT_GUARD, HEAD_RANDOM, FUNC_CLOAK2_HIDE, 0x0070, -1, 1, 10, 0x000a8204, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0005, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - - chr 0x00000000, 0x06, 0x0013, BODY_G5_SWAT_GUARD, HEAD_RANDOM, FUNC_CLOAK2_HIDE, 0x0071, -1, 1, 10, 0x000a8204, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0006, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - - tag OBJ_KEYCARD2, 1 - key 0x0080, MODEL_KEYCARD, 0x0003, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000010 - rename_object -1, 0x0046, 0x1813, 0x1814, 0x1815, 0x1816, 0x1817, 0x0000, 0x0000 // "Obtain alpha key card." - - // Rest of stage - chr 0x00000200, 0x08, 0x002f, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, 0x007b, -1, 200, 100, 0x800a8204, 0x00000000, 0x80, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0008, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - - chr 0x00000300, 0x09, 0x0079, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, 0x007c, -1, 200, 100, 0x800a8204, 0x00000000, 0x80, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - - chr 0x00000300, 0x0a, 0x007a, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, 0x007d, -1, 200, 100, 0x800a8204, 0x00000000, 0x80, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - - chr 0x00000200, 0x0b, 0x0026, BODY_G5_GUARD, HEAD_RANDOM, 0x040c, 0x0029, -1, 100, 100, 0x800a8204, 0x00000000, 0x80, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - - chr 0x00000600, 0x07, 0x005c, BODY_G5_GUARD, HEAD_BEAU1, 0x0409, -1, -1, 200, 100, 0xc0008601, 0x00000000, 0x80, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0007, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - - chr 0x00000600, 0x0c, 0x005b, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, 0x0073, -1, 200, 100, 0xc000c680, 0x00008000, 0x80, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - - chr 0x00000600, 0x0d, 0x001f, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, 0x0073, -1, 200, 100, 0xc000c680, 0x00008000, 0x80, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - - chr 0x00000600, 0x0e, 0x0067, BODY_G5_GUARD, HEAD_RANDOM, 0x040a, 0x0073, -1, 200, 100, 0xc000c680, 0x00008000, 0x80, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - - chr 0x00000600, 0x0f, 0x0039, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, 0x0074, -1, 200, 100, 0x8004c080, 0x00000000, 0x80, 0x06, -1, 0, 0x02000700 - weapon 0x0100, MODEL_CHRCMP150, 0x000f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - - chr 0x00000600, 0x10, 0x0068, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, 0x0074, -1, 200, 100, 0x8004c080, 0x00000000, 0x80, 0x06, -1, 0, 0x02000700 - weapon 0x0100, MODEL_CHRCMP150, 0x0010, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - - chr 0x00000600, 0x11, 0x0069, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, 0x0074, -1, 200, 100, 0x8004c080, 0x00000000, 0x80, 0x06, -1, 0, 0x02000700 - weapon 0x0100, MODEL_CHRCMP150, 0x0011, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - - chr 0x00000200, 0x12, 0x003f, BODY_G5_GUARD, HEAD_RANDOM, 0x040b, -1, -1, 200, 100, 0xa080c080, 0x00000000, 0x80, 0x06, -1, 0, 0x02000700 - weapon 0x0100, MODEL_CHRCMP150, 0x0012, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - - chr 0x00000200, 0x13, 0x006a, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 200, 100, 0xa080c080, 0x00000000, 0x80, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0013, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - - chr 0x00000200, 0x14, 0x006b, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 200, 100, 0xc000c080, 0x00000000, 0x80, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - - chr 0x00000200, 0x15, 0x006c, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 200, 100, 0xc000c080, 0x00000000, 0x80, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0015, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - - chr 0x00000200, 0x16, 0x006d, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 200, 100, 0xc000c080, 0x00000000, 0x80, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - - chr 0x00000200, 0x17, 0x0082, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 200, 100, 0xa0802000, 0x00000000, 0x80, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0017, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - - tag 0x0d, 1 - chr 0x00000400, CHR_CASS, 0x0088, BODY_CASSANDRA, HEAD_CASSANDRA, 0x0410, -1, -1, 200, 100, 0x0000c080, 0x00000000, 0x02, 0x02, 0x4a, 0, 0x00010000 - chr 0x00000400, CHR_BLONDE, 0x0087, BODY_MRBLONDE, HEAD_MRBLONDE, 0x0410, -1, -1, 200, 100, 0x0000c080, 0x00000000, 0x02, 0x02, 0x4b, 0, 0x00010000 - chr 0x00000400, CHR_INTRO_VICTIM, 0x0009, BODY_G5_GUARD, HEAD_RANDOM, 0x0410, -1, -1, 1000, 100, 0x0000c200, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, CHR_INTRO_VICTIM, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000500, CHR_TRENT, 0x003b, BODY_TRENT, HEAD_TRENT, 0x0411, -1, -1, 200, 100, 0x0000c080, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - chr 0x00000500, CHR_STRIPES, 0x003c, BODY_STRIPES, HEAD_JON, 0x0411, -1, -1, 200, 100, 0x0000c080, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - tag OBJ_GENERATOR, 1 - multimonitor 0x0100, MODEL_PD_CONSOLE, 0x00d0, 0x000001e1, 0x00000001, 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, 0x03030000 - tag 0x3f, 1 - door 0x0100, MODEL_DOOR2_G5, 0x009c, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000010, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x009d, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000010, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x40, -1 - door 0x0100, MODEL_DOOR2_G5, 0x00a2, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x00a3, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x00a4, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x00a5, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x00a6, 0x10000000, 0x08000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000020, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x00a7, 0x10000000, 0x10000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000020, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x00a8, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x00a9, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x00b3, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x00b4, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x00aa, 0x10000000, 0x28000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000020, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x00ab, 0x10000000, 0x30000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000020, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x00ac, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x00ad, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x34, 4 - tag 0x35, 4 - tag 0x36, 4 - tag 0x37, 4 - door 0x0100, MODEL_DOOR1A_G5, 0x0099, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR1ATRI_G5, 0x0098, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0001f8ac, 0x0002a0e5, 0x0000434a, 0x0003491f, 0x000010d2, 0x00000000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR1B_G5, 0x009a, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR1ATRI_G5, 0x009b, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0001f8ac, 0x0002a0e5, 0x0000434a, 0x0003491f, 0x000010d2, 0x00000000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffd, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x33, 1 - door 0x0100, MODEL_DOOR1A_G5, 0x00a0, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR1ATRI_G5, 0x00a1, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0001f8ac, 0x0002a0e5, 0x0000434a, 0x0003491f, 0x000010d2, 0x00000000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR1B_G5, 0x009f, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR1ATRI_G5, 0x009e, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0001f8ac, 0x0002a0e5, 0x0000434a, 0x0003491f, 0x000010d2, 0x00000000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffd, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x43, -4 - tag 0x44, -4 - tag 0x45, -4 - tag 0x46, -4 - tag 0x3a, 1 - door 0x0100, MODEL_DOOR4A_G5, 0x00b5, 0x00000400, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0000ffff, 0x00014000, 0x00001999, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR4B_G5, 0x00b6, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0000ffff, 0x00014000, 0x00001999, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x41, 1 - door 0x0100, MODEL_G5CARLIFTDOOR, 0x00b7, 0x00000000, 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, 0x00000020, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_G5CARLIFTDOOR, 0x00b8, 0x00000000, 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, 0x00080000, 0x00000020, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x42, -1 - - tag OBJ_BACKUPDISK, 1 - object 0x0100, MODEL_ZIGGYCARD, 0x004c, 0x012404e8, 0x00004000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - rename_object -1, 0x0044, 0x181e, 0x181f, 0x1820, 0x1821, 0x1822, 0x0000, 0x0000 // "Obtain DAT tape." - - tag OBJ_DECODER, 1 - object 0x0200, MODEL_CHRDOORDECODER, 0x0050, 0x00420408, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - - tag OBJ_LIGHTSWITCH, 1 - singlemonitor 0x0019, MODEL_G5_LASER_SWITCH, 0x00ed, 0x00000002, 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, 0xffffff06 - tag 0x03, 1 - singlemonitor 0x0019, MODEL_G5_LASER_SWITCH, 0x00e6, 0x00000002, 0x00000001, 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, 0xffffff13 - tag 0x04, 1 - singlemonitor 0x0019, MODEL_G5_LASER_SWITCH, 0x00e8, 0x00000002, 0x00000001, 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, 0xffffff13 - tag 0x05, 1 - singlemonitor 0x0019, MODEL_G5_LASER_SWITCH, 0x00e9, 0x00000002, 0x00000001, 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, 0xffffff13 - tag 0x06, 1 - singlemonitor 0x0019, MODEL_G5_LASER_SWITCH, 0x00ea, 0x00000002, 0x00000001, 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, 0xffffff13 - tag 0x12, 1 - singlemonitor 0x0019, MODEL_G5_ALARM, 0x00e7, 0x00000002, 0x00204000, 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, 0xffffff04 - tag 0x13, 1 - singlemonitor 0x0019, MODEL_G5_ALARM, 0x00eb, 0x00000002, 0x00204000, 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, 0xffffff04 - tag OBJ_SAFEKEYPAD, 1 - singlemonitor 0x0019, MODEL_G5_LASER_SWITCH, 0x00ec, 0x00000002, 0x00000001, 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, 0xffffff01 - tag OBJ_SAFEDOOR, 1 - door 0x0100, MODEL_G5SAFEDOOR, 0x00c2, 0x10000010, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x00500000, 0x00500000, 0x00001999, 0x00000005, 0x00000040, 0x00000e10, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - - tag OBJ_CMP150_JOANNA, 1 - weapon 0x0100, MODEL_CHRCMP150, 0xffff, 0x40000000, 0x00000000, 0x00400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REMOTEMINE, 0x00ffffff, 0x00000000 - rename_object -1, 0x0022, 0x1842, 0x1843, 0x1844, 0x1845, 0x1846, 0x0000, 0x0000 // "" - - tag OBJ_CMP150_VELVET, 1 - weapon 0x0100, MODEL_CHRCMP150, 0xffff, 0x40000000, 0x00000000, 0x00400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REMOTEMINE, 0x00ffffff, 0x00000000 - rename_object -1, 0x0022, 0x1842, 0x1843, 0x1844, 0x1845, 0x1846, 0x0000, 0x0000 // "" - - glass 0x0100, MODEL_WINDOW, 0x00c0, 0x00000f62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x00c1, 0x00000f62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x00be, 0x00000f62, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x22, 4 - tag 0x23, 4 - tag 0x24, 4 - tag 0x25, 4 - door 0x0100, MODEL_LASDOOR, 0x00d1, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x00d2, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x00d3, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x00d4, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x26, 4 - tag 0x27, 4 - tag 0x28, 4 - tag 0x29, 4 - door 0x0100, MODEL_LASDOOR, 0x00d5, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x00d6, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x00d7, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x00d8, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x2a, 4 - tag 0x2b, 4 - tag 0x2c, 4 - tag 0x2d, 4 - door 0x0100, MODEL_LASDOOR, 0x00d9, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x00da, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x00db, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x00dc, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x2e, 4 - tag 0x2f, 4 - tag 0x30, 4 - tag 0x31, 4 - door 0x0100, MODEL_LASDOOR, 0x00dd, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x00de, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x00df, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x00e0, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffd, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag OBJ_ESCAPEDOOR1, 2 - link_scenery 1, 0, 2 - door 0x0100, MODEL_G5_ESCDOORUP, 0x00f0, 0x13500d00, 0x20304300, 0x00000000, 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_G5_ESCDOORUPBOOM, 0x00f1, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag OBJ_ESCAPEDOOR2, 2 - link_scenery 1, 0, 2 - door 0x0100, MODEL_G5_ESCDOORDOWN, 0x00ee, 0x13500d00, 0x20304300, 0x00000000, 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_G5_ESCDOORDOWNBOOM, 0x00ef, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - - tag OBJ_MINE1, 1 - remote_mine 0x0100, MODEL_CHRREMOTEMINE, 0x0077, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x22000000, 0x00000001, 0x00000000 - - tag OBJ_MINE2, 1 - remote_mine 0x0100, MODEL_CHRREMOTEMINE, 0x0078, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x22000000, 0x00000001, 0x00000000 - - object 0x0100, MODEL_DUMPSTER, 0x00f9, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DUMPSTER, 0x00fa, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DUMPSTER, 0x00fb, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DUMPSTER, 0x00fc, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0028, MODEL_BAFTA, 0x004d, 0x002000e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0133, MODEL_G5SMALLCHAIR, 0x00f3, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0133, MODEL_G5SMALLCHAIR, 0x00f4, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0133, MODEL_G5SMALLCHAIR, 0x00f5, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0133, MODEL_G5SMALLCHAIR, 0x00f6, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0133, MODEL_G5SMALLCHAIR, 0x00f7, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x4a, 1 - object 0x0185, MODEL_G5BIGCHAIR, 0x00f8, 0x000004e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x4b, 1 - object 0x0133, MODEL_G5SMALLCHAIR, 0x00f2, 0x000004e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x00c8, 0x000005e1, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x00c9, 0x000005e1, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x00ca, 0x000005e1, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x00cb, 0x000005e1, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x00cc, 0x000005e1, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x00cd, 0x000005e1, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x00ce, 0x000005e1, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x00cf, 0x000005e1, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000 - - tag 0x3c, 1 - weapon 0x0080, MODEL_MULTI_AMMO_CRATE, 0x0095, 0x00000101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_NBOMB, 0x00ffffff, 0x00000000 - - tag 0x3b, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x0096, 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 0x49, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x0056, 0x00000001, 0x000000c0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000 - endprops - -intro: - intro_weapon WEAPON_FALCON2_SILENCER, -1 - ammo AMMOTYPE_PISTOL, 100 - ammo AMMOTYPE_NBOMB, 6 - outfit OUTFIT_LEATHER - intro_weapon WEAPON_DOORDECODER, -1 - intro_weapon WEAPON_CAMSPY, -1 - spawn 0x0083 - endintro - -path00: - pad 0x0015 - pad 0x0014 - pad 0x0019 - pad 0x0018 - pad 0x0019 - pad 0x0014 - endpath - -path01: - pad 0x0023 - pad 0x0025 - pad 0x0020 - pad 0x001a - pad 0x001c - pad 0x001a - pad 0x0020 - pad 0x0025 - endpath - -path02: - pad 0x0037 - pad 0x003f - pad 0x0043 - pad 0x0041 - pad 0x0040 - pad 0x0042 - pad 0x0045 - pad 0x0046 - pad 0x0045 - pad 0x0042 - pad 0x0040 - pad 0x0041 - pad 0x0043 - pad 0x003f - endpath - -path03: - pad 0x0027 - pad 0x0028 - pad 0x0029 - pad 0x002a - pad 0x002d - pad 0x002e - pad 0x002d - pad 0x002a - pad 0x0029 - pad 0x0028 - pad 0x0027 - pad 0x0026 - endpath - -func0409_start_path00: - set_chr_dodge_rating 2, 0x0a - set_accuracy 5 - set_reaction_speed 30 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - assign_path 0 - start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 - endfunction - -func040a_start_path01: - set_chr_dodge_rating 2, 0x0a - set_accuracy 5 - set_reaction_speed 30 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - assign_path 1 - start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 - endfunction - -func040b_start_path02: - set_chr_dodge_rating 2, 0x0a - set_accuracy 5 - set_reaction_speed 30 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - assign_path 2 - start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 - endfunction - -func040c_start_path03: - set_chr_dodge_rating 2, 0x0a - set_accuracy 5 - set_reaction_speed 30 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - assign_path 3 - start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 - endfunction - -func1008_check_generator: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, OBJ_GENERATOR, /*goto*/ 0x08 - if_object_in_good_condition OBJ_GENERATOR, /*goto*/ 0x2c - if_stage_flag_eq STAGEFLAG_GENERATOR_SHUT_DOWN, TRUE, /*goto*/ 0x2c - - // Destroyed - mute_channel CHANNEL_4 - if_difficulty_lt DIFF_PA, /*goto*/ 0x06 - message CHR_JOANNA, 0x1818 // "Mission critical object destroyed." - set_stage_flag STAGEFLAG_GENERATOR_DESTROYED - label 0x06 - set_function CHR_SELF, GFUNC_IDLE - label 0x2c - reloop 0x04 - - // Generator activated - label 0x08 - if_stage_flag_eq STAGEFLAG_GENERATOR_SHUT_DOWN2, TRUE, /*goto*/ 0x09 - set_object_image OBJ_GENERATOR, 0x00, 0x14 - set_object_image OBJ_GENERATOR, 0x01, 0x14 - mute_channel CHANNEL_4 - mute_channel CHANNEL_0 - assign_sound 0x8147, CHANNEL_0 - control_sound_from_object CHANNEL_0, OBJ_GENERATOR, TRUE - message CHR_P1P2, 0x1819 // "Damping field generator shut down." - set_stage_flag STAGEFLAG_GENERATOR_SHUT_DOWN2 - set_stage_flag STAGEFLAG_GENERATOR_SHUT_DOWN - reloop 0x04 - - label 0x09 - message CHR_P1P2, 0x181a // "Generator cannot be restarted." - endloop 0x04 - - endfunction - -func1003_laser_switch_1: - assign_sound 0x8119, CHANNEL_0 - play_sound_from_object CHANNEL_0, OBJ_LASER_1A, 0x012c, 0x0190 - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, OBJ_LASERSWITCH1, /*goto*/ 0x08 - if_object_in_good_condition OBJ_LASERSWITCH1, /*goto*/ 0x2c - if_stage_flag_eq STAGEFLAG_LASERSET1_DISABLED, TRUE, /*goto*/ 0x2c - message CHR_JOANNA, 0x1818 // "Mission critical object destroyed." - set_stage_flag STAGEFLAG_LASERSWITCH1_DESTROYED - set_function CHR_SELF, GFUNC_IDLE - label 0x2c - reloop 0x04 - - // Activated/deactivated - label 0x08 - if_stage_flag_eq STAGEFLAG_LASERSET1_DISABLED, TRUE, /*goto*/ 0x09 - - // Deactivated - set_object_image OBJ_LASERSWITCH1, 0x00, 0x14 - message CHR_P1P2, 0x181b // "Laser grid unit shut down." - set_stage_flag STAGEFLAG_LASERSET1_DISABLED - open_door OBJ_LASER_1A - open_door OBJ_LASER_1B - open_door OBJ_LASER_1C - open_door OBJ_LASER_1D - yield - set_object_flag_bank0 OBJ_LASER_1A, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_LASER_1B, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_LASER_1C, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_LASER_1D, OBJECTFLAG0_40000000 - assign_sound 0x043f, CHANNEL_7 - play_sound_from_entity CHANNEL_7, OBJ_LASERSWITCH1, 0x012c, 0x0190, 0x00 - mute_channel CHANNEL_0 - assign_sound 0x01cd, CHANNEL_0 - play_sound_from_entity CHANNEL_0, OBJ_LASER_1A, 0x012c, 0x0190, 0x00 - goto_next 0x0a - - // Activated - label 0x09 - message CHR_P1P2, 0x181c // "Laser grid unit activated." - unset_stage_flag STAGEFLAG_LASERSET1_DISABLED - set_object_image OBJ_LASERSWITCH1, 0x00, 0x13 - close_door OBJ_LASER_1A - close_door OBJ_LASER_1B - close_door OBJ_LASER_1C - close_door OBJ_LASER_1D - assign_sound 0x043f, CHANNEL_7 - play_sound_from_entity CHANNEL_7, OBJ_LASERSWITCH1, 0x012c, 0x0190, 0x00 - assign_sound 0x8119, CHANNEL_0 - play_sound_from_object CHANNEL_0, OBJ_LASER_1A, 0x012c, 0x0190 - goto_next 0x0a - label 0x0a - restart_timer - - beginloop 0x0b - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x0b - - label 0x06 - endloop 0x04 - - endfunction - -func1004_laser_switch_2: - assign_sound 0x8119, CHANNEL_1 - play_sound_from_object CHANNEL_1, OBJ_LASER_2A, 0x012c, 0x0190 - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, OBJ_LASERSWITCH2, /*goto*/ 0x08 - if_object_in_good_condition OBJ_LASERSWITCH2, /*goto*/ 0x2c - if_stage_flag_eq STAGEFLAG_LASERSET2_DISABLED, TRUE, /*goto*/ 0x2c - message CHR_JOANNA, 0x1818 // "Mission critical object destroyed." - set_stage_flag STAGEFLAG_LASERSWITCH2_DESTROYED - set_function CHR_SELF, GFUNC_IDLE - label 0x2c - reloop 0x04 - - // Activated/deactivated - label 0x08 - dprint "SWITCH 2" - if_stage_flag_eq STAGEFLAG_LASERSET2_DISABLED, TRUE, /*goto*/ 0x09 - - // Deactivated - set_object_image OBJ_LASERSWITCH2, 0x00, 0x14 - message CHR_P1P2, 0x181b // "Laser grid unit shut down." - set_stage_flag STAGEFLAG_LASERSET2_DISABLED - open_door OBJ_LASER_2A - open_door OBJ_LASER_2B - open_door OBJ_LASER_2C - open_door OBJ_LASER_2D - yield - set_object_flag_bank0 OBJ_LASER_2A, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_LASER_2B, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_LASER_2C, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_LASER_2D, OBJECTFLAG0_40000000 - assign_sound 0x043f, CHANNEL_7 - play_sound_from_entity CHANNEL_7, OBJ_LASERSWITCH2, 0x012c, 0x0190, 0x00 - mute_channel CHANNEL_1 - assign_sound 0x01cd, CHANNEL_1 - play_sound_from_entity CHANNEL_1, OBJ_LASER_2A, 0x012c, 0x0190, 0x00 - goto_next 0x0a - - // Activated - label 0x09 - set_object_image OBJ_LASERSWITCH2, 0x00, 0x13 - message CHR_P1P2, 0x181c // "Laser grid unit activated." - unset_stage_flag STAGEFLAG_LASERSET2_DISABLED - close_door OBJ_LASER_2A - close_door OBJ_LASER_2B - close_door OBJ_LASER_2C - close_door OBJ_LASER_2D - assign_sound 0x043f, CHANNEL_7 - play_sound_from_entity CHANNEL_7, OBJ_LASERSWITCH2, 0x012c, 0x0190, 0x00 - assign_sound 0x8119, CHANNEL_1 - play_sound_from_object CHANNEL_1, OBJ_LASER_2A, 0x012c, 0x0190 - goto_next 0x0a - label 0x0a - restart_timer - - beginloop 0x0b - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x0b - - label 0x06 - endloop 0x04 - - endfunction - -func1005_laser_switch_3: - assign_sound 0x8119, CHANNEL_2 - play_sound_from_object CHANNEL_2, OBJ_LASER_3A, 0x012c, 0x0190 - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, OBJ_LASERSWITCH3, /*goto*/ 0x08 - if_object_in_good_condition OBJ_LASERSWITCH3, /*goto*/ 0x2c - if_stage_flag_eq STAGEFLAG_LASERSET3_DISABLED, TRUE, /*goto*/ 0x2c - message CHR_JOANNA, 0x1818 // "Mission critical object destroyed." - set_stage_flag STAGEFLAG_LASERSWITCH3_DESTROYED - set_function CHR_SELF, GFUNC_IDLE - label 0x2c - reloop 0x04 - - // Activated/deactivated - label 0x08 - if_stage_flag_eq STAGEFLAG_LASERSET3_DISABLED, TRUE, /*goto*/ 0x09 - - // Deactivated - set_object_image OBJ_LASERSWITCH3, 0x00, 0x14 - message CHR_P1P2, 0x181b // "Laser grid unit shut down." - set_stage_flag STAGEFLAG_LASERSET3_DISABLED - open_door OBJ_LASER_3A - open_door OBJ_LASER_3B - open_door OBJ_LASER_3C - open_door OBJ_LASER_3D - yield - set_object_flag_bank0 OBJ_LASER_3A, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_LASER_3B, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_LASER_3C, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_LASER_3D, OBJECTFLAG0_40000000 - assign_sound 0x043f, CHANNEL_7 - play_sound_from_entity CHANNEL_7, OBJ_LASERSWITCH3, 0x012c, 0x0190, 0x00 - mute_channel CHANNEL_2 - assign_sound 0x01cd, CHANNEL_2 - play_sound_from_entity CHANNEL_2, OBJ_LASER_3A, 0x012c, 0x0190, 0x00 - goto_next 0x0a - - // Activated - label 0x09 - set_object_image OBJ_LASERSWITCH3, 0x00, 0x13 - message CHR_P1P2, 0x181c // "Laser grid unit activated." - unset_stage_flag STAGEFLAG_LASERSET3_DISABLED - close_door OBJ_LASER_3A - close_door OBJ_LASER_3B - close_door OBJ_LASER_3C - close_door OBJ_LASER_3D - assign_sound 0x043f, CHANNEL_7 - play_sound_from_entity CHANNEL_7, OBJ_LASERSWITCH3, 0x012c, 0x0190, 0x00 - assign_sound 0x8119, CHANNEL_2 - play_sound_from_object CHANNEL_2, OBJ_LASER_3A, 0x012c, 0x0190 - goto_next 0x0a - label 0x0a - restart_timer - - beginloop 0x0b - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x0b - - label 0x06 - endloop 0x04 - - endfunction - -func1006_laser_switch_4: - assign_sound 0x811a, CHANNEL_3 - play_sound_from_object CHANNEL_3, OBJ_LASER_4A, 0x012c, 0x0190 - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, OBJ_LASERSWITCH4, /*goto*/ 0x08 - if_object_in_good_condition OBJ_LASERSWITCH4, /*goto*/ 0x2c - if_stage_flag_eq STAGEFLAG_LASERSET4_DISABLED, TRUE, /*goto*/ 0x2c - message CHR_JOANNA, 0x1818 // "Mission critical object destroyed." - set_stage_flag STAGEFLAG_LASERSWITCH4_DESTROYED - set_function CHR_SELF, GFUNC_IDLE - label 0x2c - reloop 0x04 - - // Activated/deactivated - label 0x08 - if_stage_flag_eq STAGEFLAG_LASERSET4_DISABLED, TRUE, /*goto*/ 0x09 - - // Deactivated - set_object_image OBJ_LASERSWITCH4, 0x00, 0x14 - message CHR_P1P2, 0x181b // "Laser grid unit shut down." - set_stage_flag STAGEFLAG_LASERSET4_DISABLED - open_door OBJ_LASER_4A - open_door OBJ_LASER_4B - open_door OBJ_LASER_4C - open_door OBJ_LASER_4D - yield - set_object_flag_bank0 OBJ_LASER_4A, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_LASER_4B, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_LASER_4C, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_LASER_4D, OBJECTFLAG0_40000000 - assign_sound 0x043f, CHANNEL_7 - play_sound_from_entity CHANNEL_7, OBJ_LASERSWITCH4, 0x012c, 0x0190, 0x00 - mute_channel CHANNEL_3 - assign_sound 0x01cd, CHANNEL_3 - play_sound_from_entity CHANNEL_3, OBJ_LASER_4A, 0x012c, 0x0190, 0x00 - goto_next 0x0a - - // Activated - label 0x09 - set_object_image OBJ_LASERSWITCH4, 0x00, 0x13 - message CHR_P1P2, 0x181c // "Laser grid unit activated." - unset_stage_flag STAGEFLAG_LASERSET4_DISABLED - close_door OBJ_LASER_4A - close_door OBJ_LASER_4B - close_door OBJ_LASER_4C - close_door OBJ_LASER_4D - assign_sound 0x043f, CHANNEL_7 - play_sound_from_entity CHANNEL_7, OBJ_LASERSWITCH4, 0x012c, 0x0190, 0x00 - assign_sound 0x811a, CHANNEL_3 - play_sound_from_object CHANNEL_3, OBJ_LASER_4A, 0x012c, 0x0190 - goto_next 0x0a - label 0x0a - restart_timer - - beginloop 0x0b - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x0b - - label 0x06 - endloop 0x04 - - endfunction - -func1007_init_lasers: - yield - - // Wait for cutscene to finish - beginloop 0x8f - if_camera_animating /*goto*/ 0x2c - goto_next 0x06 - label 0x2c - endloop 0x8f - - label 0x06 - if_difficulty_lt DIFF_SA, /*goto*/ 0x0d - - // SA/PA - bring up lasers - close_door OBJ_LASER_1A - close_door OBJ_LASER_2A - close_door OBJ_LASER_3A - close_door OBJ_LASER_4A - close_door OBJ_LASER_1B - close_door OBJ_LASER_2B - close_door OBJ_LASER_3B - close_door OBJ_LASER_4B - close_door OBJ_LASER_1C - close_door OBJ_LASER_2C - close_door OBJ_LASER_3C - close_door OBJ_LASER_4C - close_door OBJ_LASER_1D - close_door OBJ_LASER_2D - close_door OBJ_LASER_3D - close_door OBJ_LASER_4D - - // Wait until all lasers disabled, show message and set flag - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_LASERSET1_DISABLED, FALSE, /*goto*/ 0x2c - if_stage_flag_eq STAGEFLAG_LASERSET2_DISABLED, FALSE, /*goto*/ 0x2c - if_stage_flag_eq STAGEFLAG_LASERSET3_DISABLED, FALSE, /*goto*/ 0x2c - if_stage_flag_eq STAGEFLAG_LASERSET4_DISABLED, FALSE, /*goto*/ 0x2c - if_stage_flag_eq STAGEFLAG_ALL_LASERS_DISABLED, TRUE, /*goto*/ 0x2c - message CHR_JOANNA, 0x181d // "All laser grid systems shut down." - set_stage_flag STAGEFLAG_ALL_LASERS_DISABLED - label 0x2c - endloop 0x04 - - // Agent - take down lasers - label 0x0d - set_object_image OBJ_LASERSWITCH1, 0x00, 0x14 - set_object_image OBJ_LASERSWITCH2, 0x00, 0x14 - set_object_image OBJ_LASERSWITCH3, 0x00, 0x14 - set_object_image OBJ_LASERSWITCH4, 0x00, 0x14 - open_door OBJ_LASER_1A - open_door OBJ_LASER_2A - open_door OBJ_LASER_3A - open_door OBJ_LASER_4A - open_door OBJ_LASER_1B - open_door OBJ_LASER_2B - open_door OBJ_LASER_3B - open_door OBJ_LASER_4B - open_door OBJ_LASER_1C - open_door OBJ_LASER_2C - open_door OBJ_LASER_3C - open_door OBJ_LASER_4C - open_door OBJ_LASER_1D - open_door OBJ_LASER_2D - open_door OBJ_LASER_3D - open_door OBJ_LASER_4D - yield - set_object_flag_bank0 OBJ_LASER_1A, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_LASER_2A, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_LASER_3A, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_LASER_4A, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_LASER_1B, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_LASER_2B, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_LASER_3B, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_LASER_4B, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_LASER_1C, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_LASER_2C, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_LASER_3C, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_LASER_4C, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_LASER_1D, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_LASER_2D, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_LASER_3D, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_LASER_4D, OBJECTFLAG0_40000000 - set_stage_flag STAGEFLAG_LASERSET1_DISABLED - set_stage_flag STAGEFLAG_LASERSET2_DISABLED - set_stage_flag STAGEFLAG_LASERSET3_DISABLED - set_stage_flag STAGEFLAG_LASERSET4_DISABLED - set_stage_flag STAGEFLAG_ALL_LASERS_DISABLED - label 0x0e - yield - open_door OBJ_LASER_1A - open_door OBJ_LASER_2A - open_door OBJ_LASER_3A - open_door OBJ_LASER_4A - open_door OBJ_LASER_1B - open_door OBJ_LASER_2B - open_door OBJ_LASER_3B - open_door OBJ_LASER_4B - open_door OBJ_LASER_1C - open_door OBJ_LASER_2C - open_door OBJ_LASER_3C - open_door OBJ_LASER_4C - open_door OBJ_LASER_1D - open_door OBJ_LASER_2D - open_door OBJ_LASER_3D - open_door OBJ_LASER_4D - yield - mute_channel CHANNEL_0 - mute_channel CHANNEL_1 - mute_channel CHANNEL_2 - mute_channel CHANNEL_3 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1009_spawner_during_decode: - // Wait for alarm or decoder attached - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_DECODER_ATTACHED, TRUE, /*goto*/ 0x06 - if_alarm_active /*goto*/ 0x61 - endloop 0x04 - - // Decoder is attached - label 0x06 - yield - yield - - // Wait 8.3 seconds - restart_timer - - beginloop 0x08 - if_timer_gt 500, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - activate_alarm - - // Spawn two swat guards - label 0x61 - try_spawn_chr BODY_G5_SWAT_GUARD, HEAD_RANDOM, 0x0058, 0x0401, 0x00000200, /*goto*/ 0x06 - label 0x06 - try_spawn_chr BODY_G5_SWAT_GUARD, HEAD_RANDOM, 0x003f, 0x0402, 0x00000200, /*goto*/ 0x06 - label 0x06 - - // Every half second, use RNG to decide whether to consider spawning more. - // 55/255 chance of passing. - label 0x09 - restart_timer - call_rng - - beginloop 0x0a - if_rand_gt 200, /*goto*/ 0x06 - if_timer_gt 30, /*goto*/ 0x2c - endloop 0x0a - - label 0x2c - reloop 0x09 - - label 0x06 - if_difficulty_lt DIFF_SA, /*goto*/ 0x55 - if_difficulty_lt DIFF_PA, /*goto*/ 0x56 - if_num_chrs_in_group_gt 5, 0x09, /*goto*/ 0x2c - if_kill_count_gt 50, /*goto*/ 0x2c - goto_next 0x57 - - // Agent - label 0x55 - if_num_chrs_in_group_gt 3, 0x09, /*goto*/ 0x2c - if_kill_count_gt 50, /*goto*/ 0x2c - goto_next 0x57 - - // Special Agent - label 0x56 - if_num_chrs_in_group_gt 4, 0x09, /*goto*/ 0x2c - if_kill_count_gt 50, /*goto*/ 0x2c - goto_next 0x57 - - // All difficulties - label 0x57 - call_rng - if_rand_gt 128, /*goto*/ 0x0b - if_stage_flag_eq STAGEFLAG_VISITED_TOP_DOOR, TRUE, /*goto*/ 0x2c - try_spawn_chr BODY_G5_SWAT_GUARD, HEAD_RANDOM, 0x0058, 0x0401, 0x00000200, /*goto*/ 0x06 - label 0x06 - goto_next 0x0d - - label 0x2c - dprint "SQUAD FULL" - reloop 0x09 - - label 0x0b - try_spawn_chr BODY_G5_SWAT_GUARD, HEAD_RANDOM, 0x003f, 0x0402, 0x00000200, /*goto*/ 0x06 - label 0x06 - label 0x0d - restart_timer - - beginloop 0x0e - if_timer_gt 30, /*goto*/ 0x06 - endloop 0x0e - - label 0x06 - endloop 0x09 - - endfunction - -.macro init_swat - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_00400000 - set_self_flag_bankx CHRFLAG1_00080000, BANK_1 - set_chr_dodge_rating 2, 0x0a - set_accuracy 15 - set_reaction_speed 25 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - try_draw_weapon MODEL_CHRDY357, WEAPON_DY357MAGNUM, 0x10000000, /*goto*/ 0x06 - label 0x06 - set_chr_alliance CHR_SELF, ALLIANCE_ENEMY - set_group 0x09 - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_KILLCOUNTABLE - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - set_self_flag_bankx CHRFLAG0_00008000, BANK_0 - set_alertness 90 - set_self_flag_bank3 CHRFLAG3_00000200 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - run_to_pad 0x004e -.endm - -func0401_init_swat1: - init_swat - - beginloop 0x08 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_sees_player /*goto*/ 0x2c - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x2c - if_chr_in_room CHR_SELF, 0x00, 0x0050, /*goto*/ 0x06 - endloop 0x08 - - label 0x2c - set_function CHR_SELF, GFUNC_UNALERTED - - label 0x06 - set_return_function CHR_SELF, GFUNC_UNALERTED - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -/** - * Same as above, but guards with this function will become unalerted if they - * lose sight of Jo regardless of what room they're in. - */ -func0402_init_swat2: - init_swat - - beginloop 0x08 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_sees_player /*goto*/ 0x2c - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x2c - if_chr_in_room CHR_SELF, 0x00, 0x0050, /*goto*/ 0x06 - if_chr_stopped /*goto*/ 0x06 - endloop 0x08 - - label 0x2c - set_function CHR_SELF, GFUNC_UNALERTED - - label 0x06 - set_return_function CHR_SELF, GFUNC_UNALERTED - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -func100a_give_keycards: - set_object_flag_bank0 OBJ_KEYCARD1, OBJECTFLAG0_00100000 - set_object_flag_bank1 OBJ_KEYCARD1, OBJECTFLAG1_INVISIBLE - set_object_flag_bank0 OBJ_KEYCARD2, OBJECTFLAG0_00100000 - set_object_flag_bank1 OBJ_KEYCARD2, OBJECTFLAG1_INVISIBLE - set_object_flag_bank1 OBJ_CROSSBOW, OBJECTFLAG1_INVISIBLE - set_object_flag_bank0 OBJ_CROSSBOW, OBJECTFLAG0_00100000 - - set_chr_flag_bank3 CHR_CLOAK_1A, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 CHR_CLOAK_1B, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 CHR_CLOAK_2A, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 CHR_CLOAK_2B, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 CHR_CLOAK_2C, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 CHR_CLOAK_2D, CHRFLAG3_KILLCOUNTABLE - - // Wait for trigger - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_CLOAK1_ONE_REMAINING, TRUE, /*goto*/ 0x2c - endloop 0x04 - - label 0x2c - if_chr_dying CHR_CLOAK_1A, /*goto*/ 0x06 - if_chr_death_animation_finished CHR_CLOAK_1A, /*goto*/ 0x06 - if_chr_unloaded CHR_CLOAK_1A, /*goto*/ 0x06 - - // First cloacked guard is alive - give_object_to_chr OBJ_KEYCARD1, CHR_CLOAK_1A - give_object_to_chr OBJ_CROSSBOW, CHR_CLOAK_1A - set_target_chr CHR_CLOAK_1A - goto_next 0x2c - - // First cloaked guard is dead - label 0x06 - give_object_to_chr OBJ_KEYCARD1, CHR_CLOAK_1B - give_object_to_chr OBJ_CROSSBOW, CHR_CLOAK_1B - set_target_chr CHR_CLOAK_1B - - label 0x2c - unset_object_flag_bank0 OBJ_KEYCARD1, OBJECTFLAG0_00100000 - unset_object_flag_bank1 OBJ_KEYCARD1, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank1 OBJ_CROSSBOW, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank0 OBJ_CROSSBOW, OBJECTFLAG0_00100000 - - // Wait for the chr who holds the keycard to die - beginloop 0x55 - if_chr_unloaded TARGET_CHR, /*goto*/ 0x08 - if_chr_dying TARGET_CHR, /*goto*/ 0x2c - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x2c - endloop 0x55 - - label 0x2c - set_object_flag_bank1 OBJ_CROSSBOW, OBJECTFLAG1_INVISIBLE - set_object_flag_bank0 OBJ_CROSSBOW, OBJECTFLAG0_00100000 - hide_object OBJ_CROSSBOW - - beginloop 0x08 - dprint "CHECK DEAD" - if_stage_flag_eq STAGEFLAG_CLOAK2_ONE_REMAINING, TRUE, /*goto*/ 0x2c - endloop 0x08 - - // Second room - label 0x2c - if_chr_dying CHR_CLOAK_2A, /*goto*/ 0x06 - if_chr_death_animation_finished CHR_CLOAK_2A, /*goto*/ 0x06 - if_chr_unloaded CHR_CLOAK_2A, /*goto*/ 0x06 - - // 2A alive - give_object_to_chr OBJ_KEYCARD2, CHR_CLOAK_2A - dprint "GIVE TO4" - goto_next 0x2c - - // 2A dead - label 0x06 - if_chr_dying CHR_CLOAK_2B, /*goto*/ 0x06 - if_chr_death_animation_finished CHR_CLOAK_2B, /*goto*/ 0x06 - if_chr_unloaded CHR_CLOAK_2B, /*goto*/ 0x06 - give_object_to_chr OBJ_KEYCARD2, CHR_CLOAK_2B - dprint "GIVE TO5" - goto_next 0x2c - - // 2B dead - label 0x06 - if_chr_dying CHR_CLOAK_2C, /*goto*/ 0x06 - if_chr_death_animation_finished CHR_CLOAK_2C, /*goto*/ 0x06 - if_chr_unloaded CHR_CLOAK_2C, /*goto*/ 0x06 - give_object_to_chr OBJ_KEYCARD2, CHR_CLOAK_2C - dprint "GIVE TO6" - goto_next 0x2c - - // 2C dead - label 0x06 - give_object_to_chr OBJ_KEYCARD2, CHR_CLOAK_2D - dprint "GIVE TO7" - - label 0x2c - unset_object_flag_bank0 OBJ_KEYCARD2, OBJECTFLAG0_00100000 - unset_object_flag_bank1 OBJ_KEYCARD2, OBJECTFLAG1_INVISIBLE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100b_check_backup_collected: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_has_object CHR_P1P2, OBJ_BACKUPDISK, /*goto*/ 0x2c - endloop 0x04 - - label 0x2c - set_stage_flag STAGEFLAG_BACKUP_COLLECTED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1002_set_ai: - set_function CHR_SELF, GFUNC_REBUILD_GROUPS - endfunction - -func1400_setup_counterop: - yield - set_chr_alliance CHR_COUNTEROP, ALLIANCE_ENEMY - - // On counterop SA and PA, give Joanna a CMP150 - if_difficulty_lt DIFF_SA, /*goto*/ 0x06 - give_object_to_chr OBJ_CMP150_JOANNA, CHR_JOANNA - give_object_to_chr OBJ_CMP150_VELVET, CHR_VELVET - label 0x06 - set_function CHR_SELF, GFUNC_REBUILD_GROUPS - endfunction - -func100e_check_conspirators_alerted: - // Wait for alarm - beginloop 0x04 - if_alarm_active /*goto*/ 0x06 - reloop 0x04 - - // These objects are doors - label 0x06 - unset_object_flag_bank1 0x3f, OBJECTFLAG1_20000000 - unset_object_flag_bank1 0x40, OBJECTFLAG1_20000000 - unset_object_flag_bank1 0x41, OBJECTFLAG1_20000000 - unset_object_flag_bank1 0x42, OBJECTFLAG1_20000000 - unset_object_flag_bank1 0x43, OBJECTFLAG1_20000000 - unset_object_flag_bank1 0x44, OBJECTFLAG1_20000000 - unset_object_flag_bank1 0x45, OBJECTFLAG1_20000000 - unset_object_flag_bank1 0x46, OBJECTFLAG1_20000000 - unset_object_flag_bank1 0x34, OBJECTFLAG1_20000000 - unset_object_flag_bank1 0x35, OBJECTFLAG1_20000000 - unset_object_flag_bank1 0x36, OBJECTFLAG1_20000000 - unset_object_flag_bank1 0x37, OBJECTFLAG1_20000000 - - set_stage_flag STAGEFLAG_ALARM_SOUNDING - if_stage_flag_eq STAGEFLAG_MEETING_STARTED, TRUE, /*goto*/ 0x06 - set_stage_flag STAGEFLAG_CONSPIRATORS_ALERTED - set_function CHR_CASS, FUNC_RUN_FROM_MEETING - set_function 0x1c, FUNC_RUN_FROM_MEETING // chr doesn't exist - set_function CHR_BLONDE, FUNC_RUN_FROM_MEETING - message CHR_JOANNA, 0x1829 // "Conspirators have been alerted." - - // Wait until alarm not active - label 0x06 - - beginloop 0x55 - if_alarm_active /*goto*/ 0x2c - goto_next 0x06 - label 0x2c - endloop 0x55 - - label 0x06 - unset_stage_flag STAGEFLAG_ALARM_SOUNDING - endloop 0x04 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100f_alarm_switches: - // Wait until player activated alarm switch - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, OBJ_ALARM1, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, OBJ_ALARM2, /*goto*/ 0x2c - reloop 0x04 - - label 0x2c - if_stage_flag_eq STAGEFLAG_ALARM_SOUNDING, TRUE, /*goto*/ 0x06 - message CHR_P1P2, 0x182a // "Alarm activated." - set_stage_flag STAGEFLAG_ALARM_SOUNDING - activate_alarm - reloop 0x04 - - label 0x06 - message CHR_P1P2, 0x182b // "Alarm deactivated." - unset_stage_flag STAGEFLAG_ALARM_SOUNDING - deactivate_alarm - endloop 0x04 - - endfunction - -func1010_safe_cracking: - // Wait for player to activate keypad or for it to be destroyed - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_object_in_good_condition OBJ_SAFEKEYPAD, /*goto*/ 0x2c - message CHR_JOANNA, 0x1840 // "Mission critical object destroyed." - set_stage_flag STAGEFLAG_SAFEKEYPAD_DESTROYED - set_function CHR_SELF, GFUNC_IDLE - label 0x2c - if_chr_activated_object CHR_P1P2, OBJ_SAFEKEYPAD, /*goto*/ 0x2c - reloop 0x04 - - label 0x2c - if_chr_weapon_equipped CHR_P1P2, WEAPON_DOORDECODER, /*goto*/ 0x2c - message CHR_P1P2, 0x182c // "Safe door is locked." - endloop 0x04 - - label 0x2c - message CHR_P1P2, 0x182d // "Door Decoder attached." - remove_weapon_from_inventory WEAPON_DOORDECODER - move_object_to_pad OBJ_DECODER, 0x0075 - set_stage_flag STAGEFLAG_DECODER_ATTACHED - assign_sound 0x8144, CHANNEL_1 - play_sound_from_object CHANNEL_1, OBJ_SAFEKEYPAD, 0x012c, 0x0190 - restart_timer - - beginloop 0x09 - if_timer_gt 180, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - speak CHR_JOANNA, 0x1826, 0x7754, CHANNEL_5, COLOR_00_GREEN // "INTRUDER ALERT - all security to the vault." - play_x_music CHANNEL_10, 180 - yield - set_countdown_timer 60 - message CHR_P1P2, 0x1824 // "Initiating cracking routines." - yield - show_countdown_timer - start_countdown_timer - restart_timer - - beginloop 0x5e - if_timer_gt 180, /*goto*/ 0x2c - endloop 0x5e - - label 0x2c - activate_alarm - - beginloop 0x08 - if_object_in_good_condition OBJ_SAFEKEYPAD, /*goto*/ 0x2c - message CHR_JOANNA, 0x1840 // "Mission critical object destroyed." - set_stage_flag STAGEFLAG_SAFEKEYPAD_DESTROYED - hide_countdown_timer - set_function CHR_SELF, GFUNC_IDLE - label 0x2c - if_countdown_timer_lt 1, /*goto*/ 0x06 - endloop 0x08 - - // Unlock - label 0x06 - mute_channel CHANNEL_1 - assign_sound 0x8145, CHANNEL_1 - control_sound_from_object CHANNEL_1, OBJ_SAFEKEYPAD, TRUE - message CHR_P1P2, 0x1825 // "Door Decoder finished - door unlocked." - unlock_door OBJ_SAFEDOOR, 0x40 - unset_object_flag_bank1 OBJ_SAFEDOOR, OBJECTFLAG1_20000000 - open_door OBJ_SAFEDOOR - hide_countdown_timer - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1012_check_for_end: - // Wait until player on ending catwalk - beginloop 0x08 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0060, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0061, /*goto*/ 0x06 - reloop 0x08 - - label 0x06 - if_chr_death_animation_finished CHR_P1P2, /*goto*/ 0x2c - if_chr_dying CHR_P1P2, /*goto*/ 0x2c - if_chr_unloaded CHR_P1P2, /*goto*/ 0x2c - goto_next 0x06 - label 0x2c - endloop 0x08 - - label 0x06 - set_stage_flag STAGEFLAG_EXITED_BUILDING - dprint "IN THE ELEVATOR\n" - set_invincible CHR_JOANNA - yield - yield - revoke_control CHR_JOANNA, 4 - hide_countdown_timer - stop_countdown_timer - if_all_objectives_complete /*goto*/ 0x53 - message CHR_JOANNA, 0x1833 // "Objectives incomplete - MISSION FAILED." - label 0x2c - restart_timer - - beginloop 0x52 - if_timer_gt 280, /*goto*/ 0x2c - endloop 0x52 - - label 0x2c - end_level - set_function CHR_SELF, GFUNC_IDLE - - // Objectives complete - label 0x53 - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x2c - if_chr_dying CHR_JOANNA, /*goto*/ 0x2c - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x2c - goto_next 0x06 - - label 0x2c - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2c - if_chr_dying CHR_VELVET, /*goto*/ 0x2c - if_chr_unloaded CHR_VELVET, /*goto*/ 0x2c - goto_next 0x06 - - label 0x2c - end_level - set_function CHR_SELF, GFUNC_IDLE - - // Mission complete - label 0x06 - set_function CHR_SELF, FUNC_OUTRO - endfunction - -func1013_check_escape_doors: - beginloop 0x04 - if_object_in_good_condition OBJ_ESCAPEDOOR1, /*goto*/ 0x06 - goto_next 0x2c - label 0x06 - if_object_in_good_condition OBJ_ESCAPEDOOR2, /*goto*/ 0x06 - label 0x2c - dprint "START ALARM\n" - activate_alarm - set_function CHR_SELF, GFUNC_IDLE - reloop 0x04 - - label 0x06 - endloop 0x04 - - endfunction - -func1014_check_camspy_location: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room 0x00, /*camspy*/ 0x02, 0x0094, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - if_stage_flag_eq STAGEFLAG_CONSPIRATORS_ALERTED, TRUE, /*goto*/ 0x2c - set_stage_flag STAGEFLAG_MEETING_HOLOGRAPHED - - label 0x2c - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100c_check_for_meeting_trigger: - // Wait until meeting started then start cutscene - beginloop 0x00 - if_stage_flag_eq STAGEFLAG_MEETING_HOLOGRAPHED, TRUE, /*goto*/ 0x06 - endloop 0x00 - - label 0x06 - dprint "shot 1" - set_function CHR_SELF, FUNC_MEETING_CUTSCENE - endfunction - -func0403_walk_from_meeting: - walk_to_pad 0x0085 - - beginloop 0x04 - if_chr_stopped /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - remove_chr CHR_SELF - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0404_run_from_meeting: - run_to_pad 0x0085 - - beginloop 0x04 - if_chr_stopped /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - remove_chr CHR_SELF - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1001_objectives_failed_msg: - yield - set_function CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG - endfunction - -/** - * Monitor the laser states and unset the stage flags when they become enabled - * (ie. door is closed). This seems redundant because the flags are unset when - * the switches are used. Maybe they close after a long timeout or something. - */ -func1017_check_lasers_closed: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_ALL_LASERS_DISABLED, TRUE, /*goto*/ 0x08 - if_stage_flag_eq STAGEFLAG_MEETING_HOLOGRAPHED, TRUE, /*goto*/ 0x08 - if_door_state OBJ_LASER_1A, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2c - unset_stage_flag STAGEFLAG_LASERSET1_DISABLED - label 0x2c - if_door_state OBJ_LASER_2A, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2c - unset_stage_flag STAGEFLAG_LASERSET2_DISABLED - label 0x2c - if_door_state OBJ_LASER_3A, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2c - unset_stage_flag STAGEFLAG_LASERSET3_DISABLED - label 0x2c - if_door_state OBJ_LASER_4A, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2c - unset_stage_flag STAGEFLAG_LASERSET4_DISABLED - label 0x2c - endloop 0x04 - - label 0x08 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040d_intro: - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_music_track MUSIC_G5_INTRO - camera_movement 0x0165 - cmd0175 60 - - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x0166, -1, -1, 0x0600, CHR_JOANNA, 4 - - set_chr_flag_bank3 CHR_INTRO_VICTIM, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_INTRO_VICTIM, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_INTRO_VICTIM, CHRFLAG2_00020000 - animation 0x0167, -1, -1, 0x0600, CHR_INTRO_VICTIM, 4 - - restart_timer - set_cutscene_weapon CHR_JOANNA, WEAPON_FALCON2_SILENCER, WEAPON_NONE - fade_to_color 0x000000ff, 0 - fade_to_color 0x00000000, 110 - - beginloop 0x55 - if_controller_button_pressed /*goto*/ 0x54 - if_timer_gt 74, /*goto*/ 0x06 - endloop 0x55 - - label 0x06 - play_sound 0x0161, CHANNEL_7 - - beginloop 0x56 - if_controller_button_pressed /*goto*/ 0x54 - if_timer_gt 100, /*goto*/ 0x06 - endloop 0x56 - - label 0x06 - play_sound 0x0085, CHANNEL_7 - - beginloop 0x57 - if_controller_button_pressed /*goto*/ 0x54 - if_timer_gt 172, /*goto*/ 0x06 - endloop 0x57 - - label 0x06 - play_sound 0x0163, CHANNEL_7 - - beginloop 0x58 - if_controller_button_pressed /*goto*/ 0x54 - if_timer_gt 173, /*goto*/ 0x06 - endloop 0x58 - - label 0x06 - play_sound 0x0164, CHANNEL_6 - - beginloop 0x59 - if_controller_button_pressed /*goto*/ 0x54 - if_timer_gt 278, /*goto*/ 0x06 - endloop 0x59 - - label 0x06 - play_sound 0x0161, CHANNEL_7 - - beginloop 0x5a - if_controller_button_pressed /*goto*/ 0x54 - if_timer_gt 312, /*goto*/ 0x06 - endloop 0x5a - - label 0x06 - play_sound 0x0162, CHANNEL_7 - - beginloop 0x5b - if_controller_button_pressed /*goto*/ 0x54 - if_timer_gt 356, /*goto*/ 0x06 - endloop 0x5b - - label 0x06 - play_sound 0x0163, CHANNEL_7 - - beginloop 0x5c - if_controller_button_pressed /*goto*/ 0x54 - if_timer_gt 396, /*goto*/ 0x06 - endloop 0x5c - - label 0x06 - play_sound 0x0164, CHANNEL_7 - - beginloop 0x5d - if_controller_button_pressed /*goto*/ 0x54 - if_timer_gt 434, /*goto*/ 0x06 - endloop 0x5d - - label 0x06 - play_sound 0x0161, CHANNEL_7 - - beginloop 0x5e - if_controller_button_pressed /*goto*/ 0x54 - if_timer_gt 478, /*goto*/ 0x06 - endloop 0x5e - - label 0x06 - play_sound 0x0162, CHANNEL_7 - - beginloop 0x60 - if_controller_button_pressed /*goto*/ 0x54 - if_timer_gt 515, /*goto*/ 0x06 - endloop 0x60 - - label 0x06 - play_sound 0x0163, CHANNEL_7 - - beginloop 0x61 - if_controller_button_pressed /*goto*/ 0x54 - if_timer_gt 560, /*goto*/ 0x06 - endloop 0x61 - - label 0x06 - play_sound 0x0164, CHANNEL_7 - - beginloop 0x65 - if_controller_button_pressed /*goto*/ 0x54 - if_timer_gt 568, /*goto*/ 0x06 - endloop 0x65 - - label 0x06 - play_sound 0x0162, CHANNEL_6 - - beginloop 0x62 - if_controller_button_pressed /*goto*/ 0x54 - if_timer_gt 595, /*goto*/ 0x06 - endloop 0x62 - - label 0x06 - play_sound 0x0161, CHANNEL_7 - - beginloop 0x63 - if_controller_button_pressed /*goto*/ 0x54 - if_timer_gt 630, /*goto*/ 0x06 - endloop 0x63 - - label 0x06 - play_sound 0x0162, CHANNEL_7 - - beginloop 0x66 - if_controller_button_pressed /*goto*/ 0x54 - if_timer_gt 638, /*goto*/ 0x06 - endloop 0x66 - - label 0x06 - play_sound 0x0163, CHANNEL_6 - - beginloop 0x68 - if_controller_button_pressed /*goto*/ 0x54 - if_timer_gt 670, /*goto*/ 0x06 - endloop 0x68 - - label 0x06 - play_sound 0x002e, CHANNEL_7 - - beginloop 0x67 - if_controller_button_pressed /*goto*/ 0x54 - if_timer_gt 670, /*goto*/ 0x06 - endloop 0x67 - - label 0x06 - play_sound 0x0045, CHANNEL_6 - chr_drop_weapon CHR_INTRO_VICTIM - - beginloop 0x69 - if_controller_button_pressed /*goto*/ 0x54 - if_timer_gt 672, /*goto*/ 0x06 - endloop 0x69 - - label 0x06 - play_sound 0x0087, CHANNEL_5 - - beginloop 0x64 - if_controller_button_pressed /*goto*/ 0x54 - if_timer_gt 702, /*goto*/ 0x06 - endloop 0x64 - - label 0x06 - play_sound 0x0164, CHANNEL_6 - - beginloop 0x6a - if_controller_button_pressed /*goto*/ 0x54 - if_timer_gt 718, /*goto*/ 0x06 - endloop 0x6a - - label 0x06 - play_sound 0x007a, CHANNEL_7 - - beginloop 0x6b - if_controller_button_pressed /*goto*/ 0x54 - if_timer_gt 722, /*goto*/ 0x06 - endloop 0x6b - - label 0x06 - play_sound 0x007c, CHANNEL_6 - - beginloop 0x6c - if_controller_button_pressed /*goto*/ 0x54 - if_timer_gt 764, /*goto*/ 0x06 - endloop 0x6c - - label 0x06 - play_sound 0x0082, CHANNEL_5 - - beginloop 0x08 - if_camera_animating /*goto*/ 0x2c - goto_next 0x54 - label 0x2c - if_controller_button_pressed /*goto*/ 0x54 - label 0x2c - endloop 0x08 - - label 0x54 - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x0166, -2, -1, 0x0600, CHR_JOANNA, 2 - - unset_chr_flag_bank3 CHR_INTRO_VICTIM, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_INTRO_VICTIM, CHRFLAG2_00020000 - set_chr_flag_bank3 CHR_INTRO_VICTIM, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_INTRO_VICTIM, CHRFLAG3_00010000 - animation 0x0167, -2, -1, 0x0600, CHR_INTRO_VICTIM, 2 - - restart_default_music - reset_ambience - enter_firstperson - animation 0x022a, -1, -1, 0x0600, CHR_INTRO_VICTIM, 2 - chr_drop_weapon CHR_INTRO_VICTIM - yield - set_function CHR_CLOAK_1A, FUNC_INIT_CLOAK1_GUARD - set_function CHR_CLOAK_1B, FUNC_INIT_CLOAK1_GUARD - yield - kill CHR_INTRO_VICTIM - set_function CHR_SELF, GFUNC_IDLE - endfunction - -// Used in both mid and outro cutscenes -.macro wait_until time loopid - beginloop \loopid - if_controller_button_pressed /*goto*/ 0x54 - if_timer_gt \time, /*goto*/ 0x06 - endloop \loopid - - label 0x06 -.endm - -func040e_meeting_cutscene: - deactivate_alarm - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_music_track MUSIC_G5_MIDCUTSCENE - camera_movement 0x0191 - set_stage_flag STAGEFLAG_MEETING_STARTED - set_function CHR_BLONDE, GFUNC_IDLE - set_function CHR_CASS, GFUNC_IDLE - set_function CHR_TRENT, GFUNC_IDLE - set_function CHR_STRIPES, GFUNC_IDLE - - set_chr_flag_bank3 CHR_BLONDE, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_BLONDE, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_BLONDE, CHRFLAG2_00020000 - animation 0x0192, -1, -1, 0x0600, CHR_BLONDE, 4 - - set_chr_flag_bank3 CHR_CASS, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_CASS, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_CASS, CHRFLAG2_00020000 - animation 0x0193, -1, -1, 0x0600, CHR_CASS, 4 - - set_chr_flag_bank3 CHR_TRENT, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_TRENT, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_TRENT, CHRFLAG2_00020000 - animation 0x0194, -1, -1, 0x0600, CHR_TRENT, 4 - - set_chr_flag_bank3 CHR_STRIPES, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_STRIPES, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_STRIPES, CHRFLAG2_00020000 - animation 0x0195, -1, -1, 0x0600, CHR_STRIPES, 4 - restart_timer - - beginloop 0x55 - if_timer_gt 240, /*goto*/ 0x06 - endloop 0x55 - - label 0x06 - speak CHR_JOANNA, 0x1848, 0x740c, CHANNEL_5, COLOR_04_ORANGE // "We've recovered the sapient from Carrington and al..." - - wait_until 752, 0x56 - play_sound 0x0161, CHANNEL_6 - - wait_until 760, 0x57 - speak CHR_JOANNA, 0x1849, 0x740d, CHANNEL_7, COLOR_03_RED // "This will reduce its efficiency. My team will have..." - - wait_until 813, 0x58 - play_sound 0x0162, CHANNEL_6 - - wait_until 864, 0x59 - play_sound 0x0163, CHANNEL_5 - - wait_until 1183, 0x5a - play_sound 0x0164, CHANNEL_6 - - wait_until 1466, 0x5b - play_sound 0x0161, CHANNEL_6 - - // Someone screwed up the labelling here... - // 5c was probably supposed to go here. - yield - if_controller_button_pressed /*goto*/ 0x54 - if_timer_gt 1594, /*goto*/ 0x06 - goto_first 0x5c - label 0x06 - play_sound 0x0162, CHANNEL_6 - - wait_until 1638, 0x5c - play_sound 0x0593, CHANNEL_6 - - wait_until 1684, 0x5d - speak CHR_JOANNA, 0x184a, 0x740e, CHANNEL_5, COLOR_04_ORANGE // "No one could have predicted that! And I resent bei..." - - wait_until 1780, 0x5e - play_sound_from_object2 CHANNEL_6, 0x3a, 0x01d5, 0x00, 0x00 - - wait_until 2050, 0x60 - play_sound_from_object2 CHANNEL_7, 0x3a, 0x00ec, 0x00, 0x00 - - wait_until 2070, 0x5f - open_door 0x3a - play_sound_from_object2 0x0a, 0x3a, 0x81b0, 0x00, 0x00 - - wait_until 2195, 0x61 - play_sound 0x0171, CHANNEL_6 - - wait_until 2227, 0x62 - play_sound 0x0172, CHANNEL_5 - - wait_until 2272, 0x63 - play_sound 0x0173, CHANNEL_7 - - wait_until 2291, 0x64 - play_sound 0x0161, CHANNEL_7 - - wait_until 2316, 0x65 - speak CHR_JOANNA, 0x184b, 0x740f, CHANNEL_7, COLOR_03_RED // "The President turned down your request for the loa..." - - wait_until 2342, 0x67 - play_sound 0x0162, CHANNEL_6 - close_door 0x3a - - wait_until 2387, 0x68 - play_sound 0x0163, CHANNEL_5 - - wait_until 2406, 0x69 - play_sound 0x0163, CHANNEL_6 - - wait_until 2521, 0x6a - play_sound 0x0161, CHANNEL_5 - - wait_until 2547, 0x6b - play_sound 0x0162, CHANNEL_6 - - wait_until 2584, 0x6c - play_sound 0x0163, CHANNEL_7 - - wait_until 2586, 0x6d - play_sound 0x0164, CHANNEL_5 - - wait_until 2617, 0x6e - play_sound 0x0164, CHANNEL_5 - - wait_until 2662, 0x70 - play_sound 0x0162, CHANNEL_6 - - wait_until 2668, 0x71 - play_sound 0x0161, CHANNEL_5 - - wait_until 2692, 0x6f - speak CHR_JOANNA, 0x184c, 0x7410, CHANNEL_7, COLOR_03_RED // "Could it be you overestimated your influence over ..." - - wait_until 2705, 0x72 - play_sound 0x0161, CHANNEL_6 - - wait_until 2713, 0x73 - play_sound 0x0162, CHANNEL_5 - - wait_until 2796, 0x74 - play_sound 0x0161, CHANNEL_6 - - wait_until 2937, 0x75 - play_sound 0x0164, CHANNEL_6 - - wait_until 2971, 0x76 - play_sound 0x0162, CHANNEL_6 - - wait_until 3000, 0x77 - play_sound 0x0162, CHANNEL_6 - - wait_until 3046, 0x78 - play_sound 0x0163, CHANNEL_5 - - wait_until 3048, 0x79 - speak CHR_JOANNA, 0x184d, 0x7411, CHANNEL_7, COLOR_05_GREEN // "No! Perhaps I underestimated his resolve. We have ..." - - wait_until 3186, 0x7a - play_sound 0x0164, CHANNEL_6 - - wait_until 3378, 0x7b - play_sound 0x0162, CHANNEL_6 - - wait_until 3429, 0x7c - play_sound 0x0161, CHANNEL_6 - - wait_until 3481, 0x7d - play_sound 0x0162, CHANNEL_6 - - wait_until 3557, 0x7e - play_sound 0x0164, CHANNEL_6 - - wait_until 3628, 0x7f - play_sound 0x0163, CHANNEL_6 - - wait_until 3813, 0x80 - play_sound 0x0161, CHANNEL_6 - - wait_until 3916, 0x81 - play_sound 0x0162, CHANNEL_6 - - wait_until 4070, 0x82 - speak CHR_JOANNA, 0x184e, 0x7412, CHANNEL_7, COLOR_04_ORANGE // "Ha! Assuming you don't get any interference. If Ca..." - - wait_until 4312, 0x84 - play_sound 0x0163, CHANNEL_6 - - wait_until 4370, 0x85 - play_sound 0x0164, CHANNEL_5 - - wait_until 4440, 0x86 - play_sound 0x0161, CHANNEL_6 - - wait_until 4510, 0x87 - play_sound 0x0162, CHANNEL_6 - - wait_until 4555, 0x88 - play_sound 0x0161, CHANNEL_7 - - wait_until 4560, 0x83 - speak CHR_JOANNA, 0x184f, 0x7413, CHANNEL_5, COLOR_05_GREEN // "There will be no outside help for Mr. Carrington. ..." - - wait_until 4636, 0x89 - play_sound 0x0163, CHANNEL_7 - - wait_until 5017, 0x8a - play_sound 0x0164, CHANNEL_7 - - wait_until 5272, 0x8b - speak CHR_JOANNA, 0x1850, 0x7414, CHANNEL_5, COLOR_03_RED // "Then the devices we gave you are working correctly..." - - wait_until 5360, 0x8c - play_sound 0x0163, CHANNEL_6 - - wait_until 5509, 0x8d - play_sound 0x0164, CHANNEL_6 - - wait_until 5897, 0x8e - play_sound 0x0161, CHANNEL_6 - - beginloop 0x08 - if_camera_animating /*goto*/ 0x2c - goto_next 0x54 - label 0x2c - label 0x2c - endloop 0x08 - - label 0x54 - label 0x06 - restart_default_music - reset_ambience - enter_firstperson - set_stage_flag STAGEFLAG_MEETING_FINISHED - mute_channel CHANNEL_10 - mute_channel CHANNEL_7 - mute_channel CHANNEL_6 - mute_channel CHANNEL_5 - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - restart_timer - label 0x06 - set_function CHR_CASS, FUNC_WALK_FROM_MEETING - - beginloop 0x0e - if_timer_gt 140, /*goto*/ 0x06 - endloop 0x0e - - label 0x06 - set_function CHR_TRENT, FUNC_WALK_FROM_MEETING - - beginloop 0x0f - if_timer_gt 300, /*goto*/ 0x06 - endloop 0x0f - - label 0x06 - chr_move_to_pad 0x1e, 0x003c, 0x01, /*goto*/ 0x2c // invalid chr? - label 0x2c - set_function CHR_BLONDE, FUNC_WALK_FROM_MEETING - set_function CHR_STRIPES, FUNC_WALK_FROM_MEETING - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040f_outro_from_menu: - hide_object OBJ_MINE1 - hide_object OBJ_MINE2 - set_function CHR_SELF, FUNC_OUTRO - endfunction - -func040f_outro: - camera_movement 0x0196 - set_music_track MUSIC_G5_OUTRO - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0xf1, CHRFLAG3_HIDDEN - set_function CHR_P1P2, GFUNC_IDLE - set_chr_flag_bank3 CHR_P1P2, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_P1P2, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_P1P2, CHRFLAG2_00020000 - animation 0x0197, -1, -1, 0x0600, CHR_P1P2, 4 - set_chr_hud_visible CHR_P1P2, TRUE - restart_timer - deactivate_alarm - show_nonessential_chrs FALSE - set_cutscene_weapon CHR_P1P2, -1, -1 - yield - set_cutscene_weapon CHR_P1P2, -1, 0x03 - - wait_until 20, 0x55 - play_sound 0x0171, CHANNEL_6 - - wait_until 38, 0x57 - play_sound 0x0173, CHANNEL_7 - - wait_until 69, 0x58 - play_sound 0x0174, CHANNEL_6 - - wait_until 88, 0x5a - play_sound 0x0172, CHANNEL_6 - - wait_until 103, 0x5b - play_sound 0x0173, CHANNEL_7 - - wait_until 134, 0x5c - play_sound 0x0174, CHANNEL_6 - - wait_until 142, 0x5e - - wait_until 162, 0x60 - play_sound 0x0173, CHANNEL_7 - - wait_until 185, 0x61 - play_sound 0x0174, CHANNEL_6 - - wait_until 204, 0x62 - play_sound 0x0171, CHANNEL_7 - - wait_until 220, 0x63 - play_sound 0x0172, CHANNEL_6 - - wait_until 256, 0x64 - play_sound 0x0173, CHANNEL_7 - - wait_until 262, 0x65 - play_sound 0x0174, CHANNEL_6 - - enable_rain 2 - wait_until 273, 0x68 - play_sound 0x0172, CHANNEL_7 - - wait_until 318, 0x6a - play_sound 0x0174, CHANNEL_6 - - wait_until 344, 0x6b - play_sound 0x0171, CHANNEL_7 - - wait_until 362, 0x6c - play_sound 0x0172, CHANNEL_6 - - wait_until 390, 0x6d - play_sound 0x0163, CHANNEL_7 - - wait_until 404, 0x6e - play_sound 0x0161, CHANNEL_6 - - wait_until 420, 0x70 - play_sound 0x0162, CHANNEL_6 - - wait_until 468, 0x71 - play_sound 0x0163, CHANNEL_7 - - wait_until 488, 0x72 - play_sound 0x0164, CHANNEL_6 - - wait_until 679, 0x74 - play_sound 0x0161, CHANNEL_6 - - wait_until 728, 0x56 - - wait_until 768, 0x73 - speak CHR_P1P2, 0x1851, 0x7415, CHANNEL_7, COLOR_09_BLUE // "Agent Dark reporting in! Prepare to receive a down..." - - wait_until 1280, 0x59 - - wait_until 1310, 0x75 - speak CHR_P1P2, 0x1852, 0x7416, CHANNEL_7, COLOR_06_WHITE // "No time for that now, Agent Dark. There's been a d..." - - wait_until 1780, 0x76 - play_sound 0x0162, CHANNEL_6 - - wait_until 1841, 0x77 - play_sound 0x0163, CHANNEL_6 - - wait_until 1883, 0x78 - play_sound 0x0164, CHANNEL_6 - - wait_until 2600, 0x5d - - wait_until 2630, 0x79 - speak CHR_P1P2, 0x1853, 0x7417, CHANNEL_7, COLOR_09_BLUE // "Area 51? But what about the President?" - - beginloop 0x08 - if_camera_animating /*goto*/ 0x2c - goto_next 0x54 - label 0x2c - if_controller_button_pressed /*goto*/ 0x54 - label 0x2c - endloop 0x08 - - label 0x54 - label 0x06 - set_chr_hud_visible CHR_P1P2, FALSE - end_level - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1018_intro_from_menu: - set_return_function CHR_SELF, GFUNC_END_CINEMA - set_function CHR_SELF, FUNC_INTRO - endfunction - -func1019_generator_hum: - yield - assign_sound 0x8146, CHANNEL_4 - play_sound_from_object CHANNEL_4, OBJ_GENERATOR, 0x0640, 0x0898 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Not entirely sure what this does. It's probably the guards in the laser - * switch area, and it probably controls which ones will run for the alarm. - */ -func101a_init_laser_switch_guards: - if_difficulty_lt DIFF_SA, /*goto*/ 0x08 - if_difficulty_lt DIFF_PA, /*goto*/ 0x09 - - // Perfect Agent - set_chr_flag_bankx 0x0c, CHRFLAG0_CAN_RUN_FOR_ALARM, BANK_0 - set_chr_flag_bankx 0x0d, CHRFLAG0_CAN_RUN_FOR_ALARM, BANK_0 - set_chr_flag_bankx 0x0e, CHRFLAG0_CAN_RUN_FOR_ALARM, BANK_0 - goto_next 0x06 - - // Agent - label 0x08 - set_chr_flag_bankx 0x0e, CHRFLAG0_CAN_RUN_FOR_ALARM, BANK_0 - set_chr_flag_bankx 0x0e, CHRFLAG0_UNSURPRISABLE, BANK_0 - goto_next 0x06 - - // Special Agent - label 0x09 - set_chr_flag_bankx 0x0e, CHRFLAG0_CAN_RUN_FOR_ALARM, BANK_0 - set_chr_flag_bankx 0x0d, CHRFLAG0_CAN_RUN_FOR_ALARM, BANK_0 - - label 0x06 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0412_cloak_guard: - set_var_a 0 - set_onshot_function FUNC_CLOAK_GUARD - set_chr_cloaked CHR_SELF, TRUE, FALSE - 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 0x03 - - // Dead - label 0x06 - goto_next 0x10 - - // Choose target - label 0x03 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - label 0x06 - restart_timer - cmd0139 70, 0x02, TRUE - - // Wait 3 seconds or until stopped - beginloop 0x55 - if_timer_gt 180, /*goto*/ 0x06 - if_chr_stopped /*goto*/ 0x06 - endloop 0x55 - - // 50% chance of attacking immediately, 50% at 2 seconds - label 0x06 - stop_chr - call_rng - if_rand_gt 128, /*goto*/ 0x06 - restart_timer - - beginloop 0x0e - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x0e - - // Attacking - label 0x06 - if_var_a_lt 3, /*goto*/ 0x2c - goto_next 0x06 - - label 0x2c - if_player_looking_at_something_maybe 0x0f, 0x01, 0x00, /*goto*/ 0x0e - label 0x06 - if_in_disarm_range /*goto*/ 0x2c - goto_next 0x0d - label 0x0e - add_var_a 1 - label 0x2c - restart_timer - set_chr_cloaked CHR_SELF, FALSE, TRUE - label 0x0a - label 0x2c - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x2c - label 0x2c - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x0b - - beginloop 0x0b - if_chr_stopped /*goto*/ 0x0c - endloop 0x0b - - label 0x0c - set_var_a 0 - set_chr_cloaked CHR_SELF, TRUE, TRUE - label 0x0d - goto_first 0x03 - - label 0x10 - if_chr_flag_bank2 CHR_SELF, CHRFLAG2_CLOAKED, /*goto*/ 0x2c - set_function CHR_SELF, GFUNC_IDLE - - label 0x2c - set_chr_cloaked CHR_SELF, FALSE, TRUE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0413_cloak1_guard: - yield - set_onshot_function FUNC_CLOAK_GUARD - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - label 0x06 - set_reaction_speed 100 - set_onshot_function FUNC_CLOAK_GUARD - restart_timer - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_distance_lt 400, /*goto*/ 0x06 - if_distance_to_target_chr_lt 30, /*goto*/ 0x06 - if_chr_in_view /*goto*/ 0x06 - if_difficulty_lt DIFF_SA, /*goto*/ 0x2c - if_timer_gt 180, /*goto*/ 0x06 - label 0x2c - endloop 0x04 - - label 0x06 - unset_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_00040000 - set_chr_cloaked CHR_SELF, TRUE, TRUE - set_function CHR_SELF, FUNC_CLOAK_GUARD - endfunction - -func0414_init_cloak2_guard: - stop_chr - set_onshot_function FUNC_CLOAK_GUARD - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_dodge_rating 2, 0x0a - set_accuracy 5 - set_reaction_speed 25 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - unset_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_00040000 - set_chr_cloaked CHR_SELF, TRUE, TRUE - set_function CHR_SELF, FUNC_CLOAK_GUARD - endfunction - -func101b_cloak2_entry: - // Wait until in glass area of second cloak room - beginloop 0x08 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x001a, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - lock_door 0x34, 0x10 - lock_door 0x35, 0x10 - lock_door 0x36, 0x10 - lock_door 0x37, 0x10 - set_object_flag_bank1 0x34, OBJECTFLAG1_10000000 - set_object_flag_bank1 0x35, OBJECTFLAG1_10000000 - set_object_flag_bank1 0x36, OBJECTFLAG1_08000000 - set_object_flag_bank1 0x37, OBJECTFLAG1_10000000 - close_door 0x34 - close_door 0x35 - close_door 0x36 - close_door 0x37 - if_stage_flag_eq STAGEFLAG_LIGHTS_OFF, TRUE, /*goto*/ 0x2c - play_sound 0x8147, -1 - restart_timer - set_lights_state 0x000b, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x000c, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x000d, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x000e, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0010, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x000f, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0011, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0012, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0013, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0014, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0015, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0017, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0018, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0001, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0003, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0004, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0005, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0006, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0007, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0008, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0009, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x000a, 0x03, 0xff, 0x06, 0x78 - - // Wait 2 seconds - beginloop 0x09 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - set_lights_state 0x000b, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x000c, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x000d, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x000e, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0010, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x000f, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0011, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0012, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0013, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0014, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0015, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0017, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0018, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0001, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0003, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0004, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0005, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0006, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0007, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0008, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0009, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x000a, 0x01, 0x0a, 0x00, 0x00 - goto_next 0x07 - - label 0x2c - play_sound 0x8148, -1 - set_lights_state 0x000b, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x000c, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x000d, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x000e, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0010, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x000f, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0011, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0012, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0013, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0014, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0015, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0017, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0018, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0001, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0003, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0004, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0005, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0006, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0007, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0008, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0009, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x000a, 0x03, 0x06, 0xff, 0x78 - - // Wait 2 seconds - restart_timer - - beginloop 0x0a - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x0a - - label 0x06 - set_lights_state 0x000b, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x000c, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x000d, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x000e, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0010, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x000f, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0011, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0012, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0013, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0014, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0015, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0017, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0018, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0001, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0003, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0004, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0005, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0006, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0007, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0008, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0009, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x000a, 0x01, 0xff, 0x00, 0x00 - - label 0x07 - unset_chr_flag_bank3 CHR_CLOAK_2A, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_CLOAK_2B, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_CLOAK_2C, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_CLOAK_2D, CHRFLAG3_HIDDEN - set_function CHR_CLOAK_2A, FUNC_CLOAK2_GUARD - set_function CHR_CLOAK_2B, FUNC_CLOAK2_GUARD - set_function CHR_CLOAK_2C, FUNC_CLOAK2_GUARD - set_function CHR_CLOAK_2D, FUNC_CLOAK2_GUARD - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0405_cloak2_hide: - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101c_check_visited_top_door: - // Wait until decoder attached - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_DECODER_ATTACHED, TRUE, /*goto*/ 0x08 - endloop 0x04 - - // Wait until player gone near top fire escape door - beginloop 0x08 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_distance_to_pad_lt CHR_P1P2, 400, 0x0058, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - set_stage_flag STAGEFLAG_VISITED_TOP_DOOR - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101d_init_mines: - yield - set_object_flag_bank1 OBJ_MINE1, OBJECTFLAG1_00020000 - set_object_flag_bank1 OBJ_MINE2, OBJECTFLAG1_00020000 - set_object_flag_bank1 OBJ_MINE1, OBJECTFLAG1_INVISIBLE - set_object_flag_bank1 OBJ_MINE2, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank0 OBJ_MINE1, OBJECTFLAG0_00000100 - unset_object_flag_bank0 OBJ_MINE2, OBJECTFLAG0_00000100 - set_chr_alliance CHR_COUNTEROP, ALLIANCE_ENEMY - - label 0x06 - if_eeprom_flag_is_unset EEPROMFLAG_G5_MINE, /*goto*/ 0x06 - - hide_object OBJ_MINE1 - dprint "EPROMFLAG NOTSET" - set_function CHR_SELF, GFUNC_IDLE - - label 0x06 - dprint "EPROMFLAG SET" - hide_object OBJ_MINE2 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -.macro init_guard accuracy reaction function - set_chr_dodge_rating 2, 0x0a - set_accuracy \accuracy - set_reaction_speed \reaction - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, \function -.endm - -func0406_init_type1_guard: - init_guard 5, 30, GFUNC_UNALERTED - endfunction - -// Never assigned -func0407_init_type2_guard: - init_guard 15, 25, GFUNC_UNALERTED - endfunction - -func0408_init_cloak1_guard: - init_guard 5, 25, 0x0413 - endfunction - -func101e_msg_nowaythrough: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_stage_flag_eq STAGEFLAG_LASERSET1_DISABLED, FALSE, /*goto*/ 0x2c - if_stage_flag_eq STAGEFLAG_LASERSET2_DISABLED, FALSE, /*goto*/ 0x2c - if_stage_flag_eq STAGEFLAG_LASERSET3_DISABLED, FALSE, /*goto*/ 0x2c - if_stage_flag_eq STAGEFLAG_LASERSET4_DISABLED, FALSE, /*goto*/ 0x2c - reloop 0x04 - - label 0x2c - if_chr_in_room CHR_P1P2, 0x00, 0x002f, /*goto*/ 0x2c - endloop 0x04 - - label 0x2c - speak CHR_P1P2, 0x183c, 0x73b4, CHANNEL_6, COLOR_09_BLUE // "There's no way through while those lasers are acti..." - label 0x0d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101f_msg_meetingroomahead: - restart_timer - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_MEETING_HOLOGRAPHED, TRUE, /*goto*/ 0x0d - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x004c, /*goto*/ 0x2c - reloop 0x04 - - label 0x2c - if_chr_y CHR_P1P2, 300, OPERATOR_LESS_THAN, /*goto*/ 0x06 - goto_next 0x2c - label 0x06 - endloop 0x04 - - label 0x2c - speak CHR_P1P2, 0x183d, 0x73b5, CHANNEL_6, COLOR_09_BLUE // "That must be the meeting room up ahead. Time to us..." - - label 0x0d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1020_msg_heavilyencrypted: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0050, /*goto*/ 0x2c - endloop 0x04 - - label 0x2c - speak CHR_P1P2, 0x183e, 0x817c, CHANNEL_6, COLOR_09_BLUE // "The safe's heavily encrypted. The decoder's gonna ..." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1021_blow_mines: - // Wait for backup collected - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_stage_flag_eq STAGEFLAG_BACKUP_COLLECTED, TRUE, /*goto*/ 0x2c - endloop 0x04 - - // Wait 2 seconds - label 0x2c - restart_timer - - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x2c - endloop 0x08 - - label 0x2c - if_difficulty_lt DIFF_SA, /*goto*/ 0x2c - speak CHR_P1P2, 0x183f, 0x73b7, CHANNEL_6, COLOR_09_BLUE // "Time to leave! Let's get to the door I set up earl..." - set_function CHR_SELF, GFUNC_IDLE - - // Agent - label 0x2c - if_object_in_good_condition OBJ_ESCAPEDOOR1, /*goto*/ 0x2c - goto_next 0x0d - - label 0x2c - if_object_in_good_condition OBJ_ESCAPEDOOR2, /*goto*/ 0x2c - goto_next 0x0d - - label 0x2c - speak CHR_P1P2, 0x1841, 0x81a2, CHANNEL_6, COLOR_09_BLUE // "Stand back, Joanna. We'll create your escape route..." - restart_timer - - beginloop 0x09 - if_timer_gt 120, /*goto*/ 0x2c - endloop 0x09 - - label 0x2c - destroy_object OBJ_MINE1 - destroy_object OBJ_MINE2 - restart_timer - - beginloop 0x0a - if_timer_gt 240, /*goto*/ 0x2c - endloop 0x0a - - label 0x2c - label 0x0d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1022_light_switch: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, OBJ_LIGHTSWITCH, /*goto*/ 0x2c - reloop 0x04 - - label 0x2c - if_stage_flag_eq STAGEFLAG_LIGHTS_OFF, TRUE, /*goto*/ 0x2c - - // Turning lights off - set_stage_flag STAGEFLAG_LIGHTS_OFF - assign_sound 0x043f, CHANNEL_7 - play_sound_from_entity CHANNEL_7, OBJ_LIGHTSWITCH, 0x012c, 0x0190, 0x00 - yield - set_object_image OBJ_LIGHTSWITCH, 0x00, 0x14 - play_sound 0x8147, -1 - set_lights_state 0x000b, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x000c, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x000d, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x000e, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0010, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x000f, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0011, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0012, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0013, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0014, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0015, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0017, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0018, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0001, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0003, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0004, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0005, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0006, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0007, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0008, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x0009, 0x03, 0xff, 0x06, 0x78 - set_lights_state 0x000a, 0x03, 0xff, 0x06, 0x78 - - restart_timer - - beginloop 0x09 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - set_lights_state 0x000b, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x000c, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x000d, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x000e, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0010, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x000f, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0011, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0012, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0013, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0014, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0015, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0017, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0018, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0001, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0003, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0004, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0005, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0006, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0007, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0008, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x0009, 0x01, 0x0a, 0x00, 0x00 - set_lights_state 0x000a, 0x01, 0x0a, 0x00, 0x00 - goto_first 0x04 - - // Turning lights on - label 0x2c - unset_stage_flag STAGEFLAG_LIGHTS_OFF - assign_sound 0x043f, CHANNEL_7 - play_sound_from_entity CHANNEL_7, OBJ_LIGHTSWITCH, 0x012c, 0x0190, 0x00 - yield - play_sound 0x8148, -1 - set_object_image 0x3d, 0x00, 0x06 - set_lights_state 0x000b, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x000c, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x000d, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x000e, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0010, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x000f, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0011, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0012, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0013, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0014, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0015, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0017, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0018, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0001, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0003, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0004, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0005, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0006, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0007, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0008, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x0009, 0x03, 0x06, 0xff, 0x78 - set_lights_state 0x000a, 0x03, 0x06, 0xff, 0x78 - - restart_timer - - beginloop 0x0a - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x0a - - label 0x06 - set_lights_state 0x000b, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x000c, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x000d, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x000e, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0010, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x000f, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0011, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0012, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0013, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0014, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0015, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0017, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0018, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0001, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0003, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0004, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0005, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0006, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0007, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0008, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0009, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x000a, 0x01, 0xff, 0x00, 0x00 - endloop 0x04 - - endfunction - -func1023_hide_nbomb_crate: - if_eeprom_flag_is_unset EEPROMFLAG_G5_MINE, /*goto*/ 0x06 - set_function CHR_SELF, GFUNC_IDLE - - label 0x06 - hide_object OBJ_NBOMB_CRATE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Opens the laser doors in response to the stageflags changing. - */ -unregistered_function: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_LASERSET1_DISABLED, FALSE, /*goto*/ 0x2c - if_door_state OBJ_LASER_1A, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x2c - open_door OBJ_LASER_1A - open_door OBJ_LASER_1B - open_door OBJ_LASER_1C - open_door OBJ_LASER_1D - label 0x2c - if_stage_flag_eq STAGEFLAG_LASERSET2_DISABLED, FALSE, /*goto*/ 0x2c - if_door_state OBJ_LASER_2A, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x2c - open_door OBJ_LASER_2A - open_door OBJ_LASER_2B - open_door OBJ_LASER_2C - open_door OBJ_LASER_2D - label 0x2c - if_stage_flag_eq STAGEFLAG_LASERSET3_DISABLED, FALSE, /*goto*/ 0x2c - if_door_state OBJ_LASER_3A, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x2c - open_door OBJ_LASER_3A - open_door OBJ_LASER_3B - open_door OBJ_LASER_3C - open_door OBJ_LASER_3D - label 0x2c - if_stage_flag_eq STAGEFLAG_LASERSET4_DISABLED, FALSE, /*goto*/ 0x2c - if_door_state OBJ_LASER_4A, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x2c - open_door OBJ_LASER_4A - open_door OBJ_LASER_4B - open_door OBJ_LASER_4C - open_door OBJ_LASER_4D - label 0x2c - endloop 0x04 - - endfunction - -/** - * I'm guessing co op buddies etc would get stuck in locked rooms after the - * player has passed through them. So this just unlocks the doors once they've - * been opened for the first time. - */ -func1026_unlock_doors: - // If Velvet and counter op don't exist, return - yield - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2c - goto_next 0x04 - label 0x2c - if_chr_death_animation_finished CHR_COUNTEROP, /*goto*/ 0x0a - - // Wait until some door is not closed (so... opening, I guess?) - beginloop 0x04 - if_door_state 0x43, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2c - if_door_state 0x44, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2c - if_door_state 0x45, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2c - if_door_state 0x46, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2c - endloop 0x04 - - // Unlock those doors - label 0x2c - unlock_door 0x43, 0x04 - unlock_door 0x44, 0x04 - unlock_door 0x45, 0x04 - unlock_door 0x46, 0x04 - - // New set of doors - wait until not closed - beginloop 0x08 - if_door_state 0x34, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2c - if_door_state 0x35, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2c - if_door_state 0x36, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2c - if_door_state 0x37, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2c - endloop 0x08 - - // Unlock them - label 0x2c - unlock_door 0x34, 0x04 - unlock_door 0x35, 0x04 - unlock_door 0x36, 0x04 - unlock_door 0x37, 0x04 - - // Third set of doors - beginloop 0x09 - if_door_state 0x3f, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2c - if_door_state 0x40, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2c - endloop 0x09 - - label 0x2c - unlock_door 0x3f, 0x10 - unlock_door 0x40, 0x10 - - label 0x0a - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0410_invincible: - label 0x04 - yield - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_UNEXPLODABLE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0411_hide: - label 0x04 - yield - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_UNEXPLODABLE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1027_cloak1_check_one_remaining: - // Wait until either cloak guard dying (in first room) - beginloop 0x04 - if_chr_dying CHR_CLOAK_1A, /*goto*/ 0x2c - if_chr_death_animation_finished CHR_CLOAK_1A, /*goto*/ 0x2c - if_chr_unloaded CHR_CLOAK_1A, /*goto*/ 0x2c - if_chr_dying CHR_CLOAK_1B, /*goto*/ 0x2c - if_chr_death_animation_finished CHR_CLOAK_1B, /*goto*/ 0x2c - if_chr_unloaded CHR_CLOAK_1B, /*goto*/ 0x2c - endloop 0x04 - - label 0x2c - set_stage_flag STAGEFLAG_CLOAK1_ONE_REMAINING - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1028_cloak2_check_one_remaining: - // Count number of dead cloak guards in second room - beginloop 0x04 - set_var_a 0 - if_chr_dying CHR_CLOAK_2A, /*goto*/ 0x2c - if_chr_death_animation_finished CHR_CLOAK_2A, /*goto*/ 0x2c - if_chr_unloaded CHR_CLOAK_2A, /*goto*/ 0x2c - goto_next 0x06 - - label 0x2c - add_var_a 1 - label 0x06 - if_chr_dying CHR_CLOAK_2B, /*goto*/ 0x2c - if_chr_death_animation_finished CHR_CLOAK_2B, /*goto*/ 0x2c - if_chr_unloaded CHR_CLOAK_2B, /*goto*/ 0x2c - goto_next 0x06 - - label 0x2c - add_var_a 1 - label 0x06 - if_chr_dying CHR_CLOAK_2C, /*goto*/ 0x2c - if_chr_death_animation_finished CHR_CLOAK_2C, /*goto*/ 0x2c - if_chr_unloaded CHR_CLOAK_2C, /*goto*/ 0x2c - goto_next 0x06 - - label 0x2c - add_var_a 1 - label 0x06 - if_chr_dying CHR_CLOAK_2D, /*goto*/ 0x2c - if_chr_death_animation_finished CHR_CLOAK_2D, /*goto*/ 0x2c - if_chr_unloaded CHR_CLOAK_2D, /*goto*/ 0x2c - goto_next 0x06 - - label 0x2c - add_var_a 1 - label 0x06 - if_var_a_lt 3, /*goto*/ 0x2c - set_stage_flag STAGEFLAG_CLOAK2_ONE_REMAINING - set_function CHR_SELF, GFUNC_IDLE - label 0x2c - endloop 0x04 - - endfunction - -func1029_set_secret_weapon_props: - yield - set_object_flag_bank2 OBJ_NBOMB_CRATE, OBJECTFLAG2_RTRACKED_BLUE - set_object_flag_bank2 OBJ_CROSSBOW, OBJECTFLAG2_RTRACKED_BLUE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func102a_8174: - // Wait until some door opening - beginloop 0x08 - if_door_state 0x3f, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x2c - endloop 0x08 - - label 0x2c - set_chr_flag_bank2 0x07, CHRFLAG2_08000000 - set_chr_flag_bank2 0x0c, CHRFLAG2_08000000 - set_chr_flag_bank2 0x0d, CHRFLAG2_08000000 - set_chr_flag_bank2 0x0e, CHRFLAG2_08000000 - set_chr_flag_bank2 0x0f, CHRFLAG2_08000000 - set_chr_flag_bank2 0x10, CHRFLAG2_08000000 - set_chr_flag_bank2 0x11, CHRFLAG2_08000000 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func102b_81bc: - // Wait until some door opening - beginloop 0x08 - if_door_state 0x3f, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x2c - endloop 0x08 - - label 0x2c - set_chr_alliance 0x08, ALLIANCE_ENEMY - set_chr_alliance 0x09, ALLIANCE_ENEMY - set_chr_alliance 0x0a, ALLIANCE_ENEMY - set_chr_alliance 0x0b, ALLIANCE_ENEMY - set_chr_alliance 0x07, ALLIANCE_ENEMY - set_chr_alliance 0x0c, ALLIANCE_ENEMY - set_chr_alliance 0x0d, ALLIANCE_ENEMY - set_chr_alliance 0x0e, ALLIANCE_ENEMY - set_chr_alliance 0x0f, ALLIANCE_ENEMY - set_chr_alliance 0x10, ALLIANCE_ENEMY - set_chr_alliance 0x11, ALLIANCE_ENEMY - set_chr_alliance 0x12, ALLIANCE_ENEMY - set_chr_alliance 0x13, ALLIANCE_ENEMY - set_chr_alliance 0x14, ALLIANCE_ENEMY - set_chr_alliance 0x15, ALLIANCE_ENEMY - set_chr_alliance 0x16, ALLIANCE_ENEMY - set_chr_alliance 0x17, ALLIANCE_ENEMY - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * I suspect Rare screwed up here. I think the lightswitch guard starts off as - * an ally so that he won't respond to Jo making noise in the first cloak room. - * Then when he becomes alerted to you (such as you shooting near him) he'd - * become an enemy. - * - * However, it's checking if the alertness is less than, so this condition - * passes immediately and he becomes an enemy. This could be why he's sometimes - * left his pad by the time you leave the first room. - */ -func102c_set_lightswitch_guard_alliance: - beginloop 0x08 - if_chr_alertness_lt 99, CHR_LIGHTSWITCH_GUARD, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - set_chr_alliance CHR_LIGHTSWITCH_GUARD, ALLIANCE_ENEMY - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE - endfunction - -functions: - register_function func0401_init_swat1 0x0401 - register_function func0402_init_swat2 0x0402 - register_function func0403_walk_from_meeting 0x0403 - register_function func0404_run_from_meeting 0x0404 - register_function func0405_cloak2_hide 0x0405 - register_function func0406_init_type1_guard 0x0406 - register_function func0407_init_type2_guard 0x0407 - register_function func0408_init_cloak1_guard 0x0408 - register_function func0409_start_path00 0x0409 - register_function func040a_start_path01 0x040a - register_function func040b_start_path02 0x040b - register_function func040c_start_path03 0x040c - - register_function func1400_setup_counterop 0x1400 - - register_function func1001_objectives_failed_msg 0x1001 - register_function func1002_set_ai 0x1002 - register_function func1003_laser_switch_1 0x1003 - register_function func1004_laser_switch_2 0x1004 - register_function func1005_laser_switch_3 0x1005 - register_function func1006_laser_switch_4 0x1006 - register_function func1007_init_lasers 0x1007 - register_function func1008_check_generator 0x1008 - register_function func1009_spawner_during_decode 0x1009 - register_function func100a_give_keycards 0x100a - register_function func100b_check_backup_collected 0x100b - register_function func100c_check_for_meeting_trigger 0x100c - register_function func100e_check_conspirators_alerted 0x100e - register_function func100f_alarm_switches 0x100f - register_function func1010_safe_cracking 0x1010 - register_function func1012_check_for_end 0x1012 - register_function func1013_check_escape_doors 0x1013 - register_function func1014_check_camspy_location 0x1014 - register_function func1017_check_lasers_closed 0x1017 - register_function func1018_intro_from_menu 0x1018 - register_function func1019_generator_hum 0x1019 - register_function func101a_init_laser_switch_guards 0x101a - register_function func101b_cloak2_entry 0x101b - register_function func101c_check_visited_top_door 0x101c - register_function func101d_init_mines 0x101d - register_function func101e_msg_nowaythrough 0x101e - register_function func101f_msg_meetingroomahead 0x101f - register_function func1020_msg_heavilyencrypted 0x1020 - register_function func1021_blow_mines 0x1021 - register_function func1022_light_switch 0x1022 - register_function func1023_hide_nbomb_crate 0x1023 - register_function func1026_unlock_doors 0x1026 - register_function func1027_cloak1_check_one_remaining 0x1027 - register_function func1028_cloak2_check_one_remaining 0x1028 - register_function func1029_set_secret_weapon_props 0x1029 - register_function func102a_8174 0x102a - register_function func102b_81bc 0x102b - register_function func102c_set_lightswitch_guard_alliance 0x102c - - register_function func040d_intro 0x040d - register_function func040e_meeting_cutscene 0x040e - register_function func040f_outro 0x040f - register_function func0410_invincible 0x0410 - register_function func0411_hide 0x0411 - register_function func0412_cloak_guard 0x0412 - register_function func0413_cloak1_guard 0x0413 - register_function func0414_init_cloak2_guard 0x0414 - - register_function func1018_intro_from_menu 0x0c00 - register_function func040e_meeting_cutscene 0x0c01 - register_function func040f_outro_from_menu 0x0c02 - endfunctions - -paths: - register_path path00, 0, 1 - register_path path01, 1, 1 - register_path path02, 2, 1 - register_path path03, 3, 1 - endpaths - -.align 4 diff --git a/asm/setup/setupdest.s b/asm/setup/setupdest.s deleted file mode 100644 index 68e8f66c6..000000000 --- a/asm/setup/setupdest.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Stage ID 0x1a -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupdish.s b/asm/setup/setupdish.s deleted file mode 100644 index 2c864ab8d..000000000 --- a/asm/setup/setupdish.s +++ /dev/null @@ -1,5989 +0,0 @@ -# -# CI Training -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -// Characters -.set CHR_CARRINGTON, 0x00 - -// Objects -.set OBJ_CAMSPY, 0x26 -.set OBJ_LIGHTSWITCH, 0x34 -.set OBJ_HOVERCRATE, 0x93 - -// Stage flags -.set STAGEFLAG_IN_TRAINING, 0x00000001 -.set STAGEFLAG_HOLO_FAILED, 0x00000002 -.set STAGEFLAG_DEVICE_ABORTING, 0x00000004 -.set STAGEFLAG_TRIGGER_DEVICE_SUCCESS, 0x00000008 -.set STAGEFLAG_TRIGGER_DEVICE_FAILURE, 0x00000010 -.set STAGEFLAG_HOLO_ABORTING, 0x00000020 -.set STAGEFLAG_TRIGGER_HOLO_SUCCESS, 0x00000040 -.set STAGEFLAG_TRIGGER_HOLO_FAILURE, 0x00000080 -.set STAGEFLAG_TRIGGER_UPLINK, 0x00000100 -.set STAGEFLAG_TRIGGER_ECMMINE, 0x00000200 -.set STAGEFLAG_TRIGGER_CAMSPY, 0x00000400 -.set STAGEFLAG_TRIGGER_NIGHTVISION, 0x00000800 -.set STAGEFLAG_TRIGGER_DOORDECODER, 0x00001000 -.set STAGEFLAG_TRIGGER_RTRACKER, 0x00002000 -.set STAGEFLAG_TRIGGER_IR, 0x00004000 -.set STAGEFLAG_TRIGGER_XRAY, 0x00008000 -.set STAGEFLAG_TRIGGER_DISGUISE, 0x00010000 -.set STAGEFLAG_TRIGGER_CLOAK, 0x00020000 -.set STAGEFLAG_IN_HOLO1, 0x00040000 -.set STAGEFLAG_IN_HOLO2, 0x00080000 -.set STAGEFLAG_IN_HOLO3, 0x00100000 -.set STAGEFLAG_IN_HOLO4, 0x00200000 -.set STAGEFLAG_IN_HOLO5, 0x00400000 -.set STAGEFLAG_IN_HOLO6, 0x00800000 -.set STAGEFLAG_IN_HOLO7, 0x01000000 -.set STAGEFLAG_GENERAL_PURPOSE, 0x02000000 -.set STAGEFLAG_TRIGGER_CANNOTEXIT_MSG, 0x04000000 -.set STAGEFLAG_CONSIDER_WARP, 0x08000000 -.set STAGEFLAG_CLOAK_COMPLETE, 0x10000000 -.set STAGEFLAG_CLOAK_FAILED, 0x20000000 -.set STAGEFLAG_DISGUISE_FAILED, 0x40000000 -.set STAGEFLAG_DISGUISE_COMPLETE, 0x80000000 - -// Functions -.set FUNC_MOVE_TO_DEVICEROOM, 0x0401 -.set FUNC_MOVE_TO_HOLOROOM, 0x0402 -.set FUNC_HOLO4_GUARD1, 0x0403 -.set FUNC_HOLO4_GUARD2, 0x0404 -.set FUNC_HOLO4_GUARD3, 0x0405 -.set FUNC_HOLO5_INIT_GUARD1, 0x0406 -.set FUNC_HOLO5_GUARD1, 0x0407 -.set FUNC_HOLO5_INIT_GUARD2, 0x0408 -.set FUNC_HOLO5_GUARD2, 0x0409 -.set FUNC_HOLO5_INIT_GUARD3, 0x040a -.set FUNC_HOLO5_GUARD3, 0x040b -.set FUNC_HOLO6_INIT_GUARD1, 0x040c -.set FUNC_HOLO6_INIT_GUARD2, 0x040d -.set FUNC_HOLO6_INIT_GUARD3, 0x040e -.set FUNC_HOLO6_INIT_GUARD4, 0x040f -.set FUNC_HOLO7_INIT_GUARD4, 0x0410 -.set FUNC_HOLO7_INIT_GUARD5, 0x0411 -.set FUNC_HOLO7_INIT_GUARD1, 0x0412 -.set FUNC_HOLO7_INIT_GUARD2, 0x0413 -.set FUNC_HOLO7_INIT_GUARD3, 0x0414 -.set FUNC_HOLO_GUARD_UNARMED_UNALERT, 0x0415 -.set FUNC_HOLO_GUARD_UNARMED_ALERT, 0x0416 -.set FUNC_HOLO_GUARD_UNARMED_ALERT2, 0x0417 -.set FUNC_HOLO_GUARD_ARMED_UNALERT, 0x0418 -.set FUNC_HOLO_GUARD_ARMED_ALERT, 0x0419 -.set FUNC_HOLO3_CHECK_DONE, 0x041c -.set FUNC_INIT_COLLEAGUE_WHEN_SIGHTED, 0x041d -.set FUNC_COLLEAGUE, 0x041e -.set FUNC_GRIMSHAW_DISGUISE, 0x0429 -.set FUNC_CARRINGTON_CLOAK, 0x042a -.set FUNC_INIT_CARRINGTON, 0x042b -.set FUNC_CARRINGTON_TOUR, 0x042c -.set FUNC_DEVICEGIRL_REPLY_TO_CARRINGTON, 0x042e -.set FUNC_HOLO1_CHECK_DONE, 0x0430 -.set FUNC_HOLO3_OBJECT1, 0x0435 -.set FUNC_HOLO3_OBJECT2, 0x0436 -.set FUNC_HOLO1_SWITCH1, 0x0437 -.set FUNC_HOLO1_SWITCH2, 0x0438 -.set FUNC_HOLO1_SWITCH3, 0x0439 -.set FUNC_HOLO1_MONITOR_SWITCHES, 0x043a - -// Pads -.set PAD_OUTSIDE_JO_OFFICE, 0x0053 -.set PAD_CARRINGTON_OFFICE, 0x00f6 -.set PAD_DEVICEROOM, 0x0121 -.set PAD_HOLOROOM, 0x0273 - -props: - door 0x0100, MODEL_INSTFRONTDOOR, 0x018d, 0x10000600, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_INSTFRONTDOOR, 0x018e, 0x10000600, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_INSTFRONTDOOR, 0x018f, 0x10000600, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_INSTFRONTDOOR, 0x0190, 0x10000600, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CIDOOR1_REF, 0x0156, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CIDOOR1_REF, 0x0157, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x75, 2 - tag 0x76, 2 - door 0x0100, MODEL_CIDOOR1_REF, 0x0158, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CIDOOR1_REF, 0x0159, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x8a, 1 - door 0x0100, MODEL_CIDOOR1_REF, 0x015b, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CIDOOR1_REF, 0x015c, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x31, 1 - door 0x0100, MODEL_CIDOOR1_REF, 0x015a, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x89, 1 - door 0x0100, MODEL_CIDOOR1_REF, 0x015d, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x91, 2 - tag 0x92, 1 - door 0x0100, MODEL_DD_LIFTDOOR, 0x018c, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - object 0x0100, MODEL_CI_SOFA, 0x0212, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_CI_SOFA, 0x0213, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_CI_SOFA, 0x0214, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_CI_SOFA, 0x0215, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_CI_SOFA, 0x0216, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_CI_SOFA, 0x0217, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_CI_SOFA, 0x0218, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_CI_SOFA, 0x0219, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AIRBASE_SAFEDOOR, 0x025b, 0x000205e8, 0x00200002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000fa0, 0x00000000, 0x00000000, 0x0fff0000 - glass 0x0100, MODEL_WINDOW, 0x019f, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x019e, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x019d, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x019c, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01a0, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01a1, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01a2, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01a3, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01a8, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01a9, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01aa, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01ab, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01ac, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01ad, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01ae, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01af, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01b7, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01b8, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01b9, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01ba, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01bb, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01bc, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01bd, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01be, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01bf, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01c3, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01c4, 0x04020362, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01c5, 0x04020362, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01c6, 0x04020362, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01c7, 0x04020362, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01d1, 0x04000362, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x80, 6 - tag 0x81, 6 - tag 0x82, 6 - tag 0x83, 6 - tag 0x43, 1 - lift 0x0100, MODEL_CI_LIFT, 0x0193, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0193, 0x0194, 0xffffffff, 0x00000001, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x015e, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x015f, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x0160, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x0161, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -4, -5, 0, 0 - link_objects -4, -6, 0, 0 - link_objects -4, -7, 0, 1 - link_objects -4, -8, 0, 1 - tag 0x84, 6 - tag 0x85, 6 - tag 0x86, 6 - tag 0x87, 6 - tag 0x44, 1 - lift 0x0100, MODEL_CI_LIFT, 0x0195, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0195, 0x0196, 0xffffffff, 0x00000001, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x0164, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x0165, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x0162, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x0163, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -4, -5, 0, 0 - link_objects -4, -6, 0, 0 - link_objects -4, -7, 0, 1 - link_objects -4, -8, 0, 1 - tag 0x00, 1 - object 0x0100, MODEL_DD_CHAIR, 0x021b, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x021a, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x1b, 1 - singlemonitor 0x0100, MODEL_GOODPC, 0x021c, 0x000204e1, 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, 0xffffff03 - tag 0x01, 1 - object 0x0100, MODEL_DD_CHAIR, 0x021f, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x021d, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x10, 1 - singlemonitor 0x0100, MODEL_GOODPC, 0x021e, 0x000004e1, 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, 0xffffff03 - tag 0x02, 1 - object 0x00b3, MODEL_DD_CHAIR, 0x0220, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x0222, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x0f, 1 - singlemonitor 0x0100, MODEL_GOODPC, 0x0221, 0x000004e1, 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, 0xffffff03 - tag 0x33, -1 - tag 0x0d, 1 - object 0x0100, MODEL_DD_CHAIR, 0x0223, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x0225, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x0e, 1 - singlemonitor 0x0100, MODEL_GOODPC, 0x0224, 0x000004e1, 0x00020000, 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, 0xffffff03 - tag 0x7f, 1 - singlemonitor 0x0100, MODEL_GOODPC, 0x022d, 0x000204e1, 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, 0xffffff03 - require_object_holographed 0x0000000e, 0x00000000, 0x00000000 - tag 0x05, 18 - tag 0x06, 18 - tag 0x07, 18 - tag 0x08, 18 - tag 0x09, 18 - tag 0x0a, 18 - tag 0x0b, 18 - tag 0x0c, 18 - tag 0x11, 18 - tag 0x12, 18 - tag 0x13, 18 - tag 0x14, 18 - tag 0x15, 18 - tag 0x16, 18 - tag 0x17, 18 - tag 0x18, 18 - tag 0x19, 18 - tag 0x1a, 18 - object 0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - chr 0x00002000, 0x00, PAD_CARRINGTON_OFFICE, BODY_CARRINGTON, HEAD_CARRINGTON, FUNC_INIT_CARRINGTON, -1, -1, 1000, 4, 0x00000000, 0x00000000, 0x20, 0x05, -1, 0, 0x02000000 - chr 0x00002000, 0x01, 0x00f8, BODY_CIFEMTECH, HEAD_SECRETARY, 0x0420, -1, -1, 1000, 4, 0x00000000, 0x00000000, 0x20, 0x05, -1, 0, 0x02000000 - chr 0x00002000, 0x02, 0x00fa, BODY_CILABTECH, HEAD_CHRIST, 0x0424, -1, -1, 1000, 4, 0x00000000, 0x00000000, 0x20, 0x05, -1, 0, 0x02000000 - chr 0x00002000, 0x03, 0x00f7, BODY_CILABTECH, HEAD_MARK2, 0x0421, -1, -1, 1000, 6, 0x00000000, 0x00000000, 0x20, 0x05, -1, 0, 0x02000000 - chr 0x00002000, 0x04, 0x00f9, BODY_CIFEMTECH, HEAD_SECRETARY, 0x0422, -1, -1, 1000, 6, 0x00000000, 0x00000000, 0x20, 0x05, -1, 0, 0x02000000 - chr 0x00002000, 0x05, 0x00fb, BODY_CILABTECH, HEAD_BRIAN, 0x0423, -1, -1, 1000, 6, 0x00000000, 0x00000000, 0x20, 0x05, -1, 0, 0x02000000 - chr 0x00006000, 0x06, 0x00fd, BODY_CILABTECH, HEAD_RUSS, 0x0425, -1, -1, 0, 0, 0xc8000000, 0x00000100, 0x02, 0x0d, 0x01, 0, 0x00020000 - chr 0x00006000, 0x07, 0x00fc, BODY_CILABTECH, HEAD_BEAU1, 0x0426, -1, -1, 0, 0, 0xc8000000, 0x00000100, 0x02, 0x0d, 0x00, 0, 0x00020000 - chr 0x00006000, 0x08, 0x00fe, BODY_CIFEMTECH, HEAD_SECRETARY, 0x0427, -1, -1, 0, 0, 0xc8000000, 0x00000100, 0x02, 0x0d, 0x02, 0, 0x00020000 - tag 0x1e, 8 - tag 0x1f, 8 - tag 0x20, 8 - tag 0x21, 8 - tag 0x22, 8 - tag 0x23, 8 - tag 0x24, 8 - tag 0x25, 8 - weapon 0x0100, MODEL_CHRWPPK, 0x0115, 0x00100008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRTT33, 0x0116, 0x00100008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRSKORPION, 0x0117, 0x00100008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRKALASH, 0x0118, 0x00100008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRUZI, 0x0119, 0x00100008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRMP5K, 0x011a, 0x00100008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRM16, 0x011b, 0x00100008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRFNP90, 0x011c, 0x00100008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000 - tag 0x7a, 1 - glass 0x0100, MODEL_DD_WINDOW, 0x01c8, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x79, 1 - glass 0x0100, MODEL_DD_WINDOW, 0x01c9, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x78, 1 - glass 0x0100, MODEL_DD_WINDOW, 0x01ca, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x7e, 1 - glass 0x0100, MODEL_DD_WINDOW, 0x01cb, 0x04020962, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x7b, 1 - glass 0x0100, MODEL_DD_WINDOW, 0x01cc, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x7c, 1 - glass 0x0100, MODEL_DD_WINDOW, 0x01cd, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x7d, 1 - glass 0x0100, MODEL_DD_WINDOW, 0x01ce, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x77, 1 - glass 0x0100, MODEL_DD_WINDOW, 0x01cf, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01d0, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - object 0x0100, MODEL_DD_DESK, 0x0229, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x2f, 1 - weapon 0x0100, MODEL_CHRDATATHIEF, 0xffff, 0x00100008, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DATAUPLINK, 0x00ffffff, 0x00000000 - object 0x0100, MODEL_DD_DESK, 0x0228, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0226, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x30, 1 - singlemonitor 0x0180, MODEL_GOODPC, 0x0227, 0x000004e1, 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, 0xffffff03 - tag 0x2e, 1 - weapon 0x0180, MODEL_CHRECMMINE, 0xffff, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_ECMMINE, 0x00ffffff, 0x00000000 - tag 0x32, 1 - multimonitor 0x0140, MODEL_CIHUB, 0x0239, 0x00000002, 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, 0x03000000 - tag 0x26, 1 - weapon 0x0100, MODEL_CHREYESPY, 0xffff, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CAMSPY, 0x00ffffff, 0x00000000 - tag 0x27, 1 - weapon 0x0180, MODEL_CHRNIGHTSIGHT, 0xffff, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_NIGHTVISION, 0x00ffffff, 0x00000000 - tag 0x34, 1 - object 0x0100, MODEL_LIGHTSWITCH, 0x023a, 0x10000002, 0x00080000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x28, 1 - weapon 0x0200, MODEL_CHRDOORDECODER, 0xffff, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DOORDECODER, 0x00ffffff, 0x00000000 - tag 0x35, 1 - multimonitor 0x0100, MODEL_CIHUB, 0x023b, 0x00000002, 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, 0x03000000 - tag 0x88, 1 - object 0x0200, MODEL_CHRDOORDECODER, 0x0130, 0x00020408, 0x00080001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x2c, 1 - weapon 0x0180, MODEL_RUSSDAR, 0xffff, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_RTRACKER, 0x00ffffff, 0x00000000 - tag 0x36, 1 - weapon 0x0180, MODEL_MISC_IRSPECS, 0xffff, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_IRSCANNER, 0x00ffffff, 0x00000000 - tag 0x29, 1 - weapon 0x0180, MODEL_XRAYSPECS, 0xffff, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_XRAYSCANNER, 0x00ffffff, 0x00000000 - tag 0x38, 1 - multimonitor 0x0099, MODEL_CIHUB, 0x023c, 0x00000002, 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, 0x03000000 - tag 0x39, 1 - multimonitor 0x0099, MODEL_CIHUB, 0x023d, 0x00000002, 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, 0x03000000 - tag 0x2a, 1 - weapon 0x0180, MODEL_CHRBRIEFCASE, 0xffff, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DISGUISE41, 0x00ffffff, 0x00000000 - tag 0x2b, 1 - weapon 0x0180, MODEL_MISC_IRSPECS, 0xffff, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_IRSCANNER, 0x00ffffff, 0x00000000 - tag 0x2d, 1 - weapon 0x0180, MODEL_CHRCLOAKER, 0xffff, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CLOAKINGDEVICE, 0x00ffffff, 0x00000000 - tag 0x3c, 1 - weapon 0x0180, MODEL_CHRCLOAKER, 0x0003, 0x00104001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CLOAKINGDEVICE, 0x00ffffff, 0x00000000 - tag 0x3d, 1 - door 0x0100, MODEL_DD_GRATE, 0x0185, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00100005, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x3e, 1 - door 0x0100, MODEL_DEVICESECRETDOOR, 0x0186, 0x36000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00100005, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x3f, 1 - door 0x0100, MODEL_DD_GRATE, 0x0187, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00100005, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x40, 1 - door 0x0100, MODEL_CARRINGTONSECRETDOOR, 0x0188, 0x16000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00100005, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x3a, 1 - door 0x0100, MODEL_LASDOOR, 0x0189, 0x06000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0400000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x3b, 1 - door 0x0100, MODEL_LASDOOR, 0x018a, 0x06000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0400000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - camera 0x00c0, MODEL_CCTV_PD, 0x027b, 0x30020102, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x011f0000, 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 - tag 0x41, 1 - door 0x0100, MODEL_DD_GRATE, 0x018b, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00007fff, 0x00014000, 0x00000666, 0x000c0004, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x37, 1 - door 0x0100, MODEL_SECRETINDOOR, 0x0192, 0x10000000, 0x00000000, 0x40000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x93, 1 - hover_prop 0x00eb, MODEL_HOVERCRATE1, 0x0141, 0x35100101, 0x80102300, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x02010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - hoverbike 0x0100, MODEL_HOVBIKE, 0x01f9, 0x05120101, 0x00304300, 0x02000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x01010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x42, 1 - object 0x0100, MODEL_DROPSHIP, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - door 0x0100, MODEL_CH_SHUTTER1, 0x0166, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00007fff, 0x00014000, 0x00000222, 0x00000004, 0x00000020, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000400, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x0167, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00007fff, 0x00014000, 0x00000222, 0x00000004, 0x00000020, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000400, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0168, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0169, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x016a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x016b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x016c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x016d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x016e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x016f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0170, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0171, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0172, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0173, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0174, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0175, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0176, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0177, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0178, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0179, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x017b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x017c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x017d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x017e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x017f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0180, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x0181, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000222, 0x00000004, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000400, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x0182, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000222, 0x00000004, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000400, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0183, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0184, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - object 0x0100, MODEL_A51_CRATE1, 0x01d6, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01e1, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01e2, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01e5, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01e6, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01e8, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01e9, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01ea, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01eb, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01ec, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01ed, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01ee, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01ef, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01f0, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01f1, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01f3, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01f4, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01f5, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01f6, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01f7, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01fa, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01fb, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01fc, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01fd, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01fe, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x0200, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x0201, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x0202, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x0204, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x46, 1 - singlemonitor 0x0100, MODEL_GOODPC, 0x022a, 0x000004e1, 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, 0xffffff03 - tag 0x45, 1 - multimonitor 0x0100, MODEL_CIHUB, 0x023e, 0x00000002, 0x00020000, 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, 0x03000000 - tag 0x47, 1 - singlemonitor 0x0100, MODEL_GOODPC, 0x022b, 0x000004e8, 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, 0xffffff03 - tag 0x48, 1 - multimonitor 0x00cc, MODEL_CIHUB, 0x0240, 0x00000002, 0x00020000, 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, 0x14000000 - tag 0x49, 1 - multimonitor 0x00cc, MODEL_CIHUB, 0x0241, 0x00000002, 0x00020000, 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, 0x14000000 - tag 0x4a, 1 - multimonitor 0x00cc, MODEL_CIHUB, 0x0242, 0x00000002, 0x00020000, 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, 0x14000000 - tag 0x4b, 1 - multimonitor 0x00cc, MODEL_CIHUB, 0x0243, 0x00000002, 0x00020000, 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, 0x14000000 - tag 0x4c, 1 - multimonitor 0x0100, MODEL_CIHUB, 0x0247, 0x00000002, 0x00020000, 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, 0x14000000 - tag 0x4d, 1 - multimonitor 0x0100, MODEL_CIHUB, 0x0246, 0x00000002, 0x00020000, 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, 0x14000000 - tag 0x4e, 1 - multimonitor 0x0100, MODEL_CIHUB, 0x0245, 0x00000002, 0x00020000, 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, 0x14000000 - tag 0x4f, 1 - multimonitor 0x0100, MODEL_CIHUB, 0x0244, 0x00000002, 0x00020000, 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, 0x14000000 - tag 0x54, 1 - multimonitor 0x0100, MODEL_CIHUB, 0x024c, 0x00000002, 0x00020000, 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, 0x14000000 - tag 0x55, 1 - multimonitor 0x0100, MODEL_CIHUB, 0x024d, 0x00000002, 0x00020000, 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, 0x14000000 - tag 0x56, 1 - multimonitor 0x0100, MODEL_CIHUB, 0x024e, 0x00000002, 0x00020000, 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, 0x14000000 - tag 0x57, 1 - multimonitor 0x0100, MODEL_CIHUB, 0x024f, 0x00000002, 0x00020000, 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, 0x14000000 - tag 0x58, 15 - tag 0x59, 15 - tag 0x5a, 15 - tag 0x5b, 15 - tag 0x5c, 15 - tag 0x5d, 15 - tag 0x5e, 15 - tag 0x5f, 15 - tag 0x60, 15 - tag 0x61, 15 - tag 0x62, 15 - tag 0x63, 15 - tag 0x64, 15 - tag 0x73, 15 - tag 0x74, 15 - object 0x0100, MODEL_A51_CRATE1, 0x0205, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x0206, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x0207, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x0208, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x0209, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x020a, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x020b, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x020c, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x020d, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x020e, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01d2, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01d3, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x020f, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x0210, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x0211, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x67, 12 - tag 0x68, 12 - tag 0x69, 12 - tag 0x6a, 12 - tag 0x6b, 12 - tag 0x6c, 12 - tag 0x6d, 12 - tag 0x6e, 12 - tag 0x6f, 12 - tag 0x70, 12 - tag 0x71, 12 - tag 0x72, 12 - door 0x0100, MODEL_LASDOOR, 0x027c, 0x06000500, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0400000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x027d, 0x06000500, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0400000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x027e, 0x06000500, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0400000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x027f, 0x06000500, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0400000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x0280, 0x06000500, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0400000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x0281, 0x06000500, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0400000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x0282, 0x06000500, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0400000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x0283, 0x06000500, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0400000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x0284, 0x06000500, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0400000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x0285, 0x06000500, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0400000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x0286, 0x06000500, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0400000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x0287, 0x06000500, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0400000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x65, 1 - multimonitor 0x00cc, MODEL_CIHUB, 0x0250, 0x00000002, 0x00020000, 0x00210000, 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, 0x14000000 - tag 0x66, 1 - multimonitor 0x00cc, MODEL_CIHUB, 0x0251, 0x00000002, 0x00020000, 0x00210000, 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, 0x14000000 - tag 0x8b, 1 - autogun 0x00a6, MODEL_CI_ROOFGUN, 0x0235, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00750000, 0x00000000, 0x00005555, 0xffffaaab, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000aaa, 0x00320000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x8c, 1 - autogun 0x00a6, MODEL_CI_ROOFGUN, 0x0234, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x007f0000, 0x00000000, 0x00005555, 0xffffaaab, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000aaa, 0x00320000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x8d, 1 - autogun 0x00a6, MODEL_CI_ROOFGUN, 0x0233, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00970000, 0x00000000, 0x00005555, 0xffffaaab, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000aaa, 0x00320000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x8e, 1 - multimonitor 0x0099, MODEL_CIHUB, 0x0236, 0x00000002, 0x00000001, 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 0x8f, 1 - multimonitor 0x0099, MODEL_CIHUB, 0x0237, 0x00000002, 0x00000001, 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 0x90, 1 - multimonitor 0x0099, MODEL_CIHUB, 0x0238, 0x00000002, 0x00000001, 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 - endprops - -/** - * Wait until seeing player (without cloak) then assign colleague. - */ -func041d_init_collegue_when_sighted: - restart_timer - - beginloop 0x04 - if_chr_sees_player /*goto*/ 0x2f - endloop 0x04 - - label 0x2f - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - if_stage_flag_eq STAGEFLAG_TRIGGER_CLOAK, TRUE, /*goto*/ 0x2f - set_function CHR_SELF, FUNC_COLLEAGUE - - label 0x2f - goto_first 0x04 - - endfunction - -func041e_colleague: - set_return_function CHR_SELF, FUNC_COLLEAGUE - if_alertness 1, OPERATOR_LESS_THAN, /*goto*/ 0x04 - if_alertness 2, OPERATOR_LESS_THAN, /*goto*/ 0x7c - if_alertness 3, OPERATOR_LESS_THAN, /*goto*/ 0x7d - - beginloop 0x04 - // Wait until player in sight and not doing idle animations already - if_target_chr_in_sight /*goto*/ 0x2f - if_chr_idle /*goto*/ 0x06 - if_self_flag_bankx_eq CHRFLAG1_DOINGIDLEANIMATION, FALSE, BANK_1, /*goto*/ 0x7f - animation 0x0227, 0, -1, 0x1400, CHR_SELF, 2 - reloop 0x04 - - // Player not in sight - 2 in 255 chance of doing a bored animation - label 0x7f - call_rng - if_rand_gt 1, /*goto*/ 0x06 - set_function CHR_SELF, GFUNC_DO_BORED_ANIMATION - label 0x06 - reloop 0x04 - - // Player is in sight - prepare to talk - label 0x2f - restart_timer - label 0x08 - if_self_flag_bankx_eq CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x06 - try_face_entity 0x0200, 0x0000, /*goto*/ 0x09 - - beginloop 0x09 - if_angle_to_target_chr_lt 10, /*goto*/ 0x06 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - if_self_flag_bankx_eq CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x7f - do_special_animation 3 - goto_next 0x2f - - label 0x7f - animation ANIM_SITTING_0265, 0, -1, 0x1400, CHR_SELF, 2 - label 0x2f - play_chr_specific_quip BANK_0, CHANNEL_6 - restart_timer - - beginloop 0x57 - if_sound_finished CHANNEL_6, /*goto*/ 0x06 - endloop 0x57 - - label 0x06 - if_var_a_lt 6, /*goto*/ 0x06 - goto_next 0x7e - - label 0x06 - restart_timer - stop_chr - try_face_entity 0x0200, 0x0000, /*goto*/ 0x59 - - beginloop 0x59 - if_target_chr_in_sight /*goto*/ 0x06 - endloop 0x59 - - label 0x06 - if_timer_gt 120, /*goto*/ 0x06 - goto_first 0x59 - - label 0x06 - if_player_looking_at_something_maybe 0x14, 0x01, 0x00, /*goto*/ 0x06 - goto_first 0x59 - - label 0x06 - do_special_animation -1 - label 0x06 - play_chr_specific_quip BANK_1, CHANNEL_6 - restart_timer - - beginloop 0x5b - if_sound_finished CHANNEL_6, /*goto*/ 0x7e - endloop 0x5b - - label 0x7e - if_self_flag_bankx_eq CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x7f - stop_chr - label 0x7f - set_alertness 1 - label 0x7c - restart_timer - - beginloop 0x0a - if_timer_lt 600, /*goto*/ 0x2f - if_target_chr_in_sight /*goto*/ 0x06 - goto_next 0x2f - - label 0x06 - if_player_looking_at_something_maybe 0x14, 0x01, 0x00, /*goto*/ 0x30 - label 0x2f - if_chr_idle /*goto*/ 0x06 - if_self_flag_bankx_eq CHRFLAG1_DOINGIDLEANIMATION, FALSE, BANK_1, /*goto*/ 0x7f - set_function CHR_SELF, GFUNC_DO_SITTING_ANIMATION - reloop 0x04 - - label 0x7f - call_rng - if_rand_gt 1, /*goto*/ 0x06 - set_function CHR_SELF, GFUNC_DO_BORED_ANIMATION - label 0x06 - endloop 0x0a - - label 0x30 - if_self_flag_bankx_eq CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x7f - do_special_animation -1 - goto_next 0x06 - - label 0x7f - animation ANIM_SITTING_0265, 0, -1, 0x1400, CHR_SELF, 2 - label 0x06 - play_chr_specific_quip BANK_2, CHANNEL_6 - restart_timer - - beginloop 0x5c - if_sound_finished CHANNEL_6, /*goto*/ 0x06 - endloop 0x5c - - label 0x06 - if_self_flag_bankx_eq CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x7f - stop_chr - label 0x7f - set_alertness 2 - label 0x7d - yield - if_chr_idle /*goto*/ 0x06 - if_self_flag_bankx_eq CHRFLAG1_DOINGIDLEANIMATION, FALSE, BANK_1, /*goto*/ 0x7f - set_function CHR_SELF, GFUNC_DO_SITTING_ANIMATION - endloop 0x04 - - label 0x7f - call_rng - if_rand_gt 1, /*goto*/ 0x06 - set_function CHR_SELF, GFUNC_DO_BORED_ANIMATION - - label 0x06 - goto_first 0x7d - - endfunction - -func041f_colleague1: - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_UNEXPLODABLE - set_var_a 0 - set_function CHR_SELF, FUNC_COLLEAGUE - endfunction - -func0420_colleague2: - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_UNEXPLODABLE - set_var_a 1 - set_function CHR_SELF, FUNC_COLLEAGUE - endfunction - -func0421_colleague3: - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_UNEXPLODABLE - set_var_a 2 - set_function CHR_SELF, FUNC_COLLEAGUE - endfunction - -func0422_colleague4: - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_UNEXPLODABLE - set_var_a 3 - set_function CHR_SELF, FUNC_COLLEAGUE - endfunction - -func0423_colleague5: - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_UNEXPLODABLE - set_var_a 4 - set_function CHR_SELF, FUNC_COLLEAGUE - endfunction - -func0424_colleague6: - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_UNEXPLODABLE - set_var_a 5 - set_function CHR_SELF, FUNC_COLLEAGUE - endfunction - -func0425_colleague7: - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_UNEXPLODABLE - set_var_a 6 - set_function CHR_SELF, FUNC_COLLEAGUE - endfunction - -func0426_colleague8: - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_UNEXPLODABLE - set_var_a 7 - set_function CHR_SELF, FUNC_COLLEAGUE - endfunction - -func0427_colleague9: - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_UNEXPLODABLE - set_var_a 8 - set_function CHR_SELF, FUNC_COLLEAGUE - endfunction - -func0428_colleague10: - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_UNEXPLODABLE - set_var_a 9 - set_function CHR_SELF, FUNC_COLLEAGUE - endfunction - -func1001_set_jo_alliance: - yield - set_chr_alliance CHR_JOANNA, 0x32 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1002_devicetraining_camspy: - label 0x80 - beginloop 0x0f - if_stage_flag_eq STAGEFLAG_TRIGGER_CAMSPY, TRUE, /*goto*/ 0x81 - endloop 0x0f - - label 0x81 - hide_object 0x0e - lock_door 0x31, 0x40 - lock_door 0x8a, 0x40 - lock_door 0x89, 0x40 - show_object OBJ_CAMSPY - move_object_to_pad OBJ_CAMSPY, 0x011d - unset_object_flag_bank0 OBJ_CAMSPY, OBJECTFLAG0_00100000 - unset_object_flag_bank1 OBJ_CAMSPY, OBJECTFLAG1_INVISIBLE - unset_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - close_door 0x31 - close_door 0x8a - close_door 0x89 - yield - show_object 0x0e - - label 0x8c - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c14 // "Collect CamSpy from table to begin." - restart_timer - - beginloop 0x86 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_chr_has_object CHR_JOANNA, OBJ_CAMSPY, /*goto*/ 0x2f - if_timer_gt 1200, /*goto*/ 0x06 - endloop 0x86 - - label 0x06 - goto_first 0x8c - - label 0x2f - label 0x8d - remove_displayed_text - if_chr_weapon_equipped CHR_JOANNA, WEAPON_CAMSPY, /*goto*/ 0x2f - display_text 0x01, COLOR_04_ORANGE, 0x1c39 // "Select the CamSpy. - Hold A Button. - Use Control Stick to change selection. - Highlight CamSpy and release A Button." - restart_timer - - beginloop 0x8e - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_has_weapon_equipped CHR_JOANNA, WEAPON_CAMSPY, /*goto*/ 0x2f - if_timer_gt 1200, /*goto*/ 0x06 - endloop 0x8e - - label 0x06 - goto_first 0x8d - - label 0x2f - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c15 // "Locate Info Room PC and holograph it." - - beginloop 0x82 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_door_state 0x31, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x85 - if_door_state 0x8a, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x85 - if_door_state 0x89, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x85 - if_training_pc_holographed /*goto*/ 0x09 - endloop 0x82 - - label 0x09 - remove_displayed_text - message CHR_JOANNA, 0x1c16 // "Info Room PC successfully holographed." - restart_timer - - beginloop 0x0c - if_timer_gt 240, /*goto*/ 0x83 - endloop 0x0c - - label 0x85 - dprint "fail" - set_stage_flag STAGEFLAG_TRIGGER_DEVICE_FAILURE - goto_next 0x84 - - label 0x83 - dprint "done" - yield - set_stage_flag STAGEFLAG_TRIGGER_DEVICE_SUCCESS - set_eeprom_flag EEPROMFLAG_CI_CAMSPY_DONE - label 0x84 - if_chr_in_room CHR_JOANNA, 0x00, 0x001e, /*goto*/ 0x90 - label 0x90 - set_stage_flag STAGEFLAG_CONSIDER_WARP - unlock_door 0x31, 0x40 - unlock_door 0x8a, 0x40 - unlock_door 0x89, 0x40 - remove_displayed_text - hide_object OBJ_CAMSPY - goto_first 0x0f - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1003_devicetraining_nightvision: - label 0x80 - - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_TRIGGER_NIGHTVISION, TRUE, /*goto*/ 0x81 - endloop 0x08 - - label 0x81 - set_lights_state 0x0030, 0x01, 0x00, 0x00, 0x00 - set_lights_state 0x002e, 0x01, 0x00, 0x00, 0x00 - set_lights_state 0x002f, 0x01, 0x00, 0x00, 0x00 - set_lights_state 0x0020, 0x01, 0x00, 0x00, 0x00 - set_lights_state 0x0024, 0x01, 0x00, 0x00, 0x00 - set_lights_state 0x0025, 0x01, 0x00, 0x00, 0x00 - set_lights_state 0x0026, 0x01, 0x00, 0x00, 0x00 - set_lights_state 0x0022, 0x01, 0x00, 0x00, 0x00 - set_stage_flag STAGEFLAG_IN_TRAINING - lock_door 0x31, 0x40 - lock_door 0x8a, 0x40 - lock_door 0x89, 0x40 - show_object 0x27 - move_object_to_pad 0x27, 0x011d - unset_object_flag_bank0 0x27, OBJECTFLAG0_00100000 - unset_object_flag_bank1 0x27, OBJECTFLAG1_INVISIBLE - unset_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - close_door 0x31 - close_door 0x8a - close_door 0x89 - - label 0x8c - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c08 // "Collect Night Vision from table to begin." - restart_timer - - beginloop 0x86 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_chr_has_object CHR_JOANNA, 0x27, /*goto*/ 0x2f - if_timer_gt 1200, /*goto*/ 0x06 - endloop 0x86 - - label 0x06 - goto_first 0x8c - - label 0x2f - label 0x8d - remove_displayed_text - if_chr_weapon_equipped CHR_JOANNA, WEAPON_NIGHTVISION, /*goto*/ 0x2f - display_text 0x01, COLOR_04_ORANGE, 0x1c3a // "Select the Night Vision. - Hold A Button. - Use Control Stick to change selection. - Highlight Night Vision and release A Button." - restart_timer - - beginloop 0x8e - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_has_weapon_equipped CHR_JOANNA, WEAPON_NIGHTVISION, /*goto*/ 0x2f - if_timer_gt 1200, /*goto*/ 0x06 - endloop 0x8e - - label 0x06 - goto_first 0x8d - - label 0x2f - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c09 // "Activate the Night Vision. Locate the light switch. Turn the lights back on." - - beginloop 0x82 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_chr_activated_object CHR_F3, OBJ_LIGHTSWITCH, /*goto*/ 0x2f - endloop 0x82 - - label 0x2f - play_sound 0x00ba, -1 - set_lights_state 0x0030, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x002e, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x002f, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0020, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0024, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0025, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0026, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0022, 0x01, 0xff, 0x00, 0x00 - remove_displayed_text - message CHR_JOANNA, 0x1c17 // "Lights have been reactivated." - restart_timer - - beginloop 0x0d - if_timer_gt 240, /*goto*/ 0x83 - endloop 0x0d - - label 0x85 - dprint "fail" - set_stage_flag STAGEFLAG_TRIGGER_DEVICE_FAILURE - goto_next 0x84 - - label 0x83 - set_eeprom_flag EEPROMFLAG_CI_NIGHTVISION_DONE - dprint "done" - set_stage_flag STAGEFLAG_TRIGGER_DEVICE_SUCCESS - set_lights_state 0x0030, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x002e, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x002f, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0020, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0024, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0025, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0026, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0022, 0x01, 0xff, 0x00, 0x00 - yield - label 0x84 - if_chr_in_room CHR_JOANNA, 0x00, 0x001e, /*goto*/ 0x90 - label 0x90 - unlock_door 0x31, 0x40 - unlock_door 0x8a, 0x40 - unlock_door 0x89, 0x40 - set_stage_flag STAGEFLAG_CONSIDER_WARP - remove_displayed_text - hide_object 0x27 - - beginloop 0x59 - if_stage_flag_eq STAGEFLAG_TRIGGER_NIGHTVISION, FALSE, /*goto*/ 0x2f - endloop 0x59 - - label 0x2f - goto_first 0x08 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1004_devicetraining_doordecoder: - label 0x80 - - beginloop 0x0f - if_stage_flag_eq STAGEFLAG_TRIGGER_DOORDECODER, TRUE, /*goto*/ 0x81 - endloop 0x0f - - label 0x81 - set_object_flag_bank1 0x88, OBJECTFLAG1_INVISIBLE - set_stage_flag STAGEFLAG_IN_TRAINING - lock_door 0x31, 0x40 - lock_door 0x8a, 0x40 - lock_door 0x89, 0x40 - show_object 0x28 - move_object_to_pad 0x28, 0x011d - unset_object_flag_bank0 0x28, OBJECTFLAG0_00100000 - unset_object_flag_bank1 0x28, OBJECTFLAG1_INVISIBLE - unset_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - close_door 0x31 - close_door 0x8a - close_door 0x89 - label 0x8c - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c18 // "Collect Door Decoder from table to begin." - restart_timer - - beginloop 0x86 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_chr_has_object CHR_JOANNA, 0x28, /*goto*/ 0x2f - if_timer_gt 1200, /*goto*/ 0x06 - endloop 0x86 - - label 0x06 - goto_first 0x8c - - label 0x2f - label 0x8d - remove_displayed_text - if_chr_weapon_equipped CHR_JOANNA, WEAPON_DOORDECODER, /*goto*/ 0x2f - display_text 0x01, COLOR_04_ORANGE, 0x1c3b // "Select the Door Decoder. - Hold A Button. - Use Control Stick to change selection. - Highlight Door Decoder and release A Button." - restart_timer - - beginloop 0x8e - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_weapon_equipped CHR_JOANNA, WEAPON_DOORDECODER, /*goto*/ 0x2f - if_timer_gt 1200, /*goto*/ 0x06 - endloop 0x8e - - label 0x06 - goto_first 0x8d - - label 0x2f - if_chr_activated_object CHR_JOANNA, 0x35, /*goto*/ 0x2f - label 0x2f - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c19 // "Use Decoder on door pad to unlock it." - - beginloop 0x82 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_door_state 0x31, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x85 - if_door_state 0x8a, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x85 - if_door_state 0x89, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x85 - if_chr_activated_object CHR_JOANNA, 0x35, /*goto*/ 0x09 - endloop 0x82 - - label 0x09 - if_chr_weapon_equipped CHR_JOANNA, WEAPON_DOORDECODER, /*goto*/ 0x06 - remove_displayed_text - message CHR_JOANNA, 0x1c1a // "You need to be holding the Door Decoder." - restart_timer - - beginloop 0x0e - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_timer_gt 60, /*goto*/ 0x2f - endloop 0x0e - - label 0x2f - goto_first 0x82 - - label 0x06 - remove_displayed_text - message CHR_JOANNA, 0x1c1b // "Decoder attached. Initiating cracking routines..." - unset_object_flag_bank1 0x88, OBJECTFLAG1_INVISIBLE - assign_sound 0x8144, CHANNEL_1 - play_sound_from_object CHANNEL_1, 0x35, 0x012c, 0x0190 - restart_timer - - beginloop 0x0c - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_timer_gt 240, /*goto*/ 0x2f - endloop 0x0c - - label 0x2f - mute_channel CHANNEL_1 - assign_sound 0x8145, CHANNEL_1 - control_sound_from_object CHANNEL_1, 0x35, TRUE - remove_displayed_text - message CHR_JOANNA, 0x1c1c // "Decoding complete. Door has been unlocked." - unlock_door 0x41, 0x40 - restart_timer - - beginloop 0x0d - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_timer_gt 240, /*goto*/ 0x83 - endloop 0x0d - - label 0x85 - dprint "fail" - set_stage_flag STAGEFLAG_TRIGGER_DEVICE_FAILURE - goto_next 0x84 - - label 0x83 - set_eeprom_flag EEPROMFLAG_CI_DOORDECODER_DONE - dprint "done" - yield - set_stage_flag STAGEFLAG_TRIGGER_DEVICE_SUCCESS - unset_object_flag_bank1 0x88, OBJECTFLAG1_INVISIBLE - label 0x84 - if_chr_in_room CHR_JOANNA, 0x00, 0x001e, /*goto*/ 0x90 - label 0x90 - mute_channel CHANNEL_1 - unlock_door 0x31, 0x40 - unlock_door 0x8a, 0x40 - unlock_door 0x89, 0x40 - set_stage_flag STAGEFLAG_CONSIDER_WARP - remove_displayed_text - hide_object 0x28 - goto_first 0x0f - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1005_devicetraining_xray: - label 0x80 - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_TRIGGER_XRAY, TRUE, /*goto*/ 0x81 - endloop 0x08 - - label 0x81 - lock_door 0x31, 0x40 - lock_door 0x8a, 0x40 - lock_door 0x89, 0x40 - dprint "training" - show_object 0x29 - move_object_to_pad 0x29, 0x011d - unset_object_flag_bank0 0x29, OBJECTFLAG0_00100000 - unset_object_flag_bank1 0x29, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank1 0x38, OBJECTFLAG1_00000001 - unset_object_flag_bank1 0x39, OBJECTFLAG1_00000001 - unset_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - close_door 0x31 - close_door 0x8a - close_door 0x89 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - label 0x8c - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c23 // "Collect X-Ray Scanner from table to begin." - restart_timer - - beginloop 0x86 - if_chr_has_weapon_equipped CHR_JOANNA, WEAPON_XRAYSCANNER, /*goto*/ 0x2f - set_object_flag_bank0 0x38, OBJECTFLAG0_02000000 - set_object_flag_bank0 0x39, OBJECTFLAG0_02000000 - goto_next 0x30 - - label 0x2f - unset_object_flag_bank0 0x38, OBJECTFLAG0_02000000 - unset_object_flag_bank0 0x39, OBJECTFLAG0_02000000 - label 0x30 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_chr_has_object CHR_JOANNA, 0x29, /*goto*/ 0x2f - if_timer_gt 1200, /*goto*/ 0x06 - endloop 0x86 - - label 0x06 - goto_first 0x8c - - label 0x8d - remove_displayed_text - if_chr_weapon_equipped CHR_JOANNA, WEAPON_XRAYSCANNER, /*goto*/ 0x2f - display_text 0x01, COLOR_04_ORANGE, 0x1c3c // "Select the X-Ray Scanner. - Hold A Button. - Use Control Stick to change selection. - Highlight X-Ray Scanner and release A Button." - restart_timer - - beginloop 0x8e - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_has_weapon_equipped CHR_JOANNA, WEAPON_XRAYSCANNER, /*goto*/ 0x2f - if_timer_gt 1200, /*goto*/ 0x06 - endloop 0x8e - - label 0x06 - goto_first 0x8d - - label 0x2f - remove_displayed_text - message CHR_JOANNA, 0x1c24 // "Find hidden switches to shut down laser grid." - - beginloop 0x82 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_chr_has_weapon_equipped CHR_JOANNA, WEAPON_XRAYSCANNER, /*goto*/ 0x2f - set_object_flag_bank0 0x38, OBJECTFLAG0_02000000 - set_object_flag_bank0 0x39, OBJECTFLAG0_02000000 - goto_next 0x30 - - label 0x2f - unset_object_flag_bank0 0x38, OBJECTFLAG0_02000000 - unset_object_flag_bank0 0x39, OBJECTFLAG0_02000000 - label 0x30 - if_chr_activated_object CHR_JOANNA, 0x38, /*goto*/ 0x5b - if_chr_activated_object CHR_JOANNA, 0x39, /*goto*/ 0x5c - endloop 0x82 - - label 0x5b - if_object_flag_bank1 0x38, OBJECTFLAG1_00000001, /*goto*/ 0x87 - remove_displayed_text - message CHR_JOANNA, 0x1c29 // "Laser Grid 1 has been deactivated." - set_object_image 0x38, 0x00, 0x12 - set_object_flag_bank1 0x38, OBJECTFLAG1_00000001 - open_door 0x3a - label 0x87 - restart_timer - - beginloop 0x89 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x85 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x85 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x85 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x89 - - label 0x5c - if_object_flag_bank1 0x39, OBJECTFLAG1_00000001, /*goto*/ 0x88 - set_object_image 0x39, 0x00, 0x12 - remove_displayed_text - message CHR_JOANNA, 0x1c2a // "Laser Grid 2 has been deactivated." - set_object_flag_bank1 0x39, OBJECTFLAG1_00000001 - open_door 0x3b - label 0x88 - restart_timer - - beginloop 0x8a - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x8a - - label 0x8b - hide_object 0x3a - goto_next 0x06 - - label 0x07 - hide_object 0x3b - goto_next 0x06 - - label 0x06 - if_object_flag_bank1 0x38, OBJECTFLAG1_00000001, /*goto*/ 0x2f - goto_first 0x82 - - label 0x2f - if_object_flag_bank1 0x39, OBJECTFLAG1_00000001, /*goto*/ 0x2f - goto_first 0x82 - - label 0x09 - restart_timer - - beginloop 0x5b - if_timer_gt 120, /*goto*/ 0x2f - endloop 0x5b - - label 0x2f - remove_displayed_text - message CHR_JOANNA, 0x1c25 // "All laser grids have been deactivated." - restart_timer - - beginloop 0x0e - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_timer_gt 240, /*goto*/ 0x83 - endloop 0x0e - - label 0x85 - dprint "fail" - set_stage_flag STAGEFLAG_TRIGGER_DEVICE_FAILURE - goto_next 0x84 - - label 0x83 - set_eeprom_flag EEPROMFLAG_CI_XRAY_DONE - dprint "done" - yield - set_stage_flag STAGEFLAG_TRIGGER_DEVICE_SUCCESS - label 0x84 - if_chr_in_room CHR_JOANNA, 0x00, 0x001e, /*goto*/ 0x90 - label 0x90 - unlock_door 0x31, 0x40 - unlock_door 0x8a, 0x40 - unlock_door 0x89, 0x40 - set_stage_flag STAGEFLAG_CONSIDER_WARP - remove_displayed_text - hide_object 0x29 - goto_first 0x08 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1006_devicetraining_disguise: - label 0x80 - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_TRIGGER_DISGUISE, TRUE, /*goto*/ 0x81 - endloop 0x08 - - label 0x81 - unset_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_DISGUISED - unset_stage_flag STAGEFLAG_DISGUISE_FAILED - unset_stage_flag STAGEFLAG_DISGUISE_COMPLETE - lock_door 0x31, 0x40 - lock_door 0x8a, 0x40 - lock_door 0x89, 0x40 - dprint "training" - show_object 0x2a - move_object_to_pad 0x2a, 0x011d - unset_object_flag_bank0 0x2a, OBJECTFLAG0_00100000 - unset_object_flag_bank1 0x2a, OBJECTFLAG1_INVISIBLE - set_function 0x03, FUNC_GRIMSHAW_DISGUISE - unset_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - close_door 0x31 - close_door 0x8a - close_door 0x89 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - label 0x8c - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c26 // "Collect Disguise from table to begin." - restart_timer - - beginloop 0x86 - if_stage_flag_eq STAGEFLAG_DISGUISE_FAILED, TRUE, /*goto*/ 0x0a - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_chr_has_object CHR_JOANNA, 0x2a, /*goto*/ 0x2f - if_timer_gt 1200, /*goto*/ 0x06 - endloop 0x86 - - label 0x06 - goto_first 0x8c - - label 0x2f - label 0x8d - remove_displayed_text - if_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_DISGUISED, /*goto*/ 0x2f - display_text 0x01, COLOR_04_ORANGE, 0x1c3d // "Select the Disguise. - Hold A Button. - Use Control Stick to change selection. - Highlight Disguise and release A Button." - restart_timer - - beginloop 0x8e - if_stage_flag_eq STAGEFLAG_DISGUISE_FAILED, TRUE, /*goto*/ 0x0a - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_DISGUISED, /*goto*/ 0x2f - if_timer_gt 1200, /*goto*/ 0x06 - endloop 0x8e - - label 0x06 - goto_first 0x8d - - label 0x2f - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c27 // "Fool someone into giving you Cloaking Device." - - beginloop 0x82 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_door_state 0x31, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x85 - if_door_state 0x8a, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x85 - if_door_state 0x89, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x85 - if_stage_flag_eq STAGEFLAG_DISGUISE_COMPLETE, TRUE, /*goto*/ 0x09 - if_stage_flag_eq STAGEFLAG_DISGUISE_FAILED, TRUE, /*goto*/ 0x0a - endloop 0x82 - - label 0x09 - remove_displayed_text - message CHR_JOANNA, 0x1c28 // "Cloaking Device successfully retrieved." - restart_timer - - beginloop 0x0e - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_timer_gt 240, /*goto*/ 0x83 - endloop 0x0e - - label 0x0a - remove_displayed_text - message CHR_JOANNA, 0x1c2f // "You're meant to use the Disguise, remember?" - restart_timer - - beginloop 0x0f - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - label 0x59 - if_timer_gt 240, /*goto*/ 0x85 - endloop 0x0f - - label 0x85 - dprint "fail" - set_stage_flag STAGEFLAG_TRIGGER_DEVICE_FAILURE - goto_next 0x84 - - label 0x83 - set_eeprom_flag EEPROMFLAG_CI_DISGUISE_DONE - dprint "done" - yield - set_stage_flag STAGEFLAG_TRIGGER_DEVICE_SUCCESS - label 0x84 - if_chr_in_room CHR_JOANNA, 0x00, 0x001e, /*goto*/ 0x90 - label 0x90 - unlock_door 0x31, 0x40 - unlock_door 0x8a, 0x40 - unlock_door 0x89, 0x40 - set_stage_flag STAGEFLAG_CONSIDER_WARP - remove_displayed_text - hide_object 0x2a - - beginloop 0x6d - if_stage_flag_eq STAGEFLAG_TRIGGER_DISGUISE, FALSE, /*goto*/ 0x2f - endloop 0x6d - - label 0x2f - set_function 0x03, FUNC_INIT_COLLEAGUE_WHEN_SIGHTED - goto_first 0x08 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1007_devicetrainign_ir: - label 0x80 - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_TRIGGER_IR, TRUE, /*goto*/ 0x81 - endloop 0x08 - - label 0x81 - if_chr_activated_object CHR_JOANNA, 0x37, /*goto*/ 0x2f - label 0x2f - lock_door 0x31, 0x40 - lock_door 0x8a, 0x40 - lock_door 0x89, 0x40 - dprint "training" - show_object 0x2b - move_object_to_pad 0x2b, 0x011d - unset_object_flag_bank0 0x2b, OBJECTFLAG0_00100000 - unset_object_flag_bank1 0x2b, OBJECTFLAG1_INVISIBLE - unset_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - close_door 0x31 - close_door 0x8a - close_door 0x89 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - label 0x8c - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c20 // "Collect IR Scanner from table to begin." - restart_timer - - beginloop 0x86 - if_chr_has_weapon_equipped CHR_JOANNA, WEAPON_IRSCANNER, /*goto*/ 0x2f - set_object_flag_bank0 0x37, OBJECTFLAG0_02000000 - goto_next 0x30 - label 0x2f - unset_object_flag_bank0 0x37, OBJECTFLAG0_02000000 - label 0x30 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_chr_has_object CHR_JOANNA, 0x2b, /*goto*/ 0x2f - if_timer_gt 1200, /*goto*/ 0x06 - endloop 0x86 - - label 0x06 - goto_first 0x8c - - label 0x2f - label 0x8d - remove_displayed_text - if_chr_has_weapon_equipped CHR_JOANNA, WEAPON_IRSCANNER, /*goto*/ 0x2f - display_text 0x01, COLOR_04_ORANGE, 0x1c3e // "Select the IR Scanner. - Hold A Button. - Use Control Stick to change selection. - Highlight IR Scanner and release A Button." - restart_timer - - beginloop 0x8e - if_chr_has_weapon_equipped CHR_JOANNA, WEAPON_IRSCANNER, /*goto*/ 0x2f - set_object_flag_bank0 0x37, OBJECTFLAG0_02000000 - goto_next 0x30 - - label 0x2f - unset_object_flag_bank0 0x37, OBJECTFLAG0_02000000 - label 0x30 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_has_weapon_equipped CHR_JOANNA, WEAPON_IRSCANNER, /*goto*/ 0x2f - if_timer_gt 1200, /*goto*/ 0x06 - endloop 0x8e - - label 0x06 - goto_first 0x8d - - label 0x2f - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c21 // "Locate secret door using IR Scanner." - - beginloop 0x82 - if_chr_has_weapon_equipped CHR_JOANNA, WEAPON_IRSCANNER, /*goto*/ 0x2f - set_object_flag_bank0 0x37, OBJECTFLAG0_02000000 - goto_next 0x30 - label 0x2f - unset_object_flag_bank0 0x37, OBJECTFLAG0_02000000 - label 0x30 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_door_state 0x31, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x85 - if_door_state 0x8a, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x85 - if_door_state 0x89, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x85 - if_chr_activated_object CHR_JOANNA, 0x37, /*goto*/ 0x09 - endloop 0x82 - - label 0x09 - remove_displayed_text - message CHR_JOANNA, 0x1c22 // "Secret door has been successfully located." - restart_timer - - beginloop 0x0e - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_timer_gt 240, /*goto*/ 0x83 - endloop 0x0e - - label 0x85 - dprint "fail" - set_stage_flag STAGEFLAG_TRIGGER_DEVICE_FAILURE - goto_next 0x84 - - label 0x83 - set_eeprom_flag EEPROMFLAG_CI_IR_DONE - dprint "done" - yield - set_stage_flag STAGEFLAG_TRIGGER_DEVICE_SUCCESS - label 0x84 - if_chr_in_room CHR_JOANNA, 0x00, 0x001e, /*goto*/ 0x90 - label 0x90 - unlock_door 0x31, 0x40 - unlock_door 0x8a, 0x40 - unlock_door 0x89, 0x40 - set_stage_flag STAGEFLAG_CONSIDER_WARP - remove_displayed_text - hide_object 0x2b - goto_first 0x08 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1008_devicetraining_rtracker: - label 0x80 - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_TRIGGER_RTRACKER, TRUE, /*goto*/ 0x81 - endloop 0x08 - - label 0x81 - lock_door 0x31, 0x40 - lock_door 0x8a, 0x40 - lock_door 0x89, 0x40 - dprint "training" - show_object 0x2c - move_object_to_pad 0x2c, 0x011d - unset_object_flag_bank0 0x2c, OBJECTFLAG0_00100000 - unset_object_flag_bank1 0x2c, OBJECTFLAG1_INVISIBLE - unset_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - close_door 0x31 - close_door 0x8a - close_door 0x89 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - label 0x8c - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c1d // "Collect Tracker from table to begin." - restart_timer - - beginloop 0x86 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_chr_has_object CHR_JOANNA, 0x2c, /*goto*/ 0x2f - if_timer_gt 1200, /*goto*/ 0x06 - endloop 0x86 - - label 0x06 - goto_first 0x8c - - label 0x2f - label 0x8d - remove_displayed_text - if_chr_has_weapon_equipped CHR_JOANNA, WEAPON_RTRACKER, /*goto*/ 0x2f - display_text 0x01, COLOR_04_ORANGE, 0x1c3f // "Select the Tracker. - Hold A Button. - Use Control Stick to change selection. - Highlight Tracker and release A Button." - restart_timer - - beginloop 0x8e - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_has_weapon_equipped CHR_JOANNA, WEAPON_RTRACKER, /*goto*/ 0x2f - if_timer_gt 1200, /*goto*/ 0x06 - endloop 0x8e - - label 0x06 - goto_first 0x8d - - label 0x2f - unset_object_flag_bank0 0x36, OBJECTFLAG0_00100000 - unset_object_flag_bank1 0x36, OBJECTFLAG1_INVISIBLE - show_object 0x36 - move_object_to_pad 0x36, 0x011e - set_object_flag_bank2 0x36, OBJECTFLAG2_RTRACKED_YELLOW - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c1e // "Locate IR Scanner using Tracker." - - beginloop 0x82 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_door_state 0x31, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x85 - if_door_state 0x8a, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x85 - if_door_state 0x89, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x85 - if_chr_has_object CHR_JOANNA, 0x36, /*goto*/ 0x09 - endloop 0x82 - - label 0x09 - remove_displayed_text - message CHR_JOANNA, 0x1c1f // "IR Scanner has been successfully located." - restart_timer - - beginloop 0x0e - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_timer_gt 240, /*goto*/ 0x83 - endloop 0x0e - - label 0x85 - dprint "fail" - set_stage_flag STAGEFLAG_TRIGGER_DEVICE_FAILURE - goto_next 0x84 - - label 0x83 - set_eeprom_flag EEPROMFLAG_CI_RTRACKER_DONE - dprint "done" - yield - set_stage_flag STAGEFLAG_TRIGGER_DEVICE_SUCCESS - label 0x84 - if_chr_in_room CHR_JOANNA, 0x00, 0x001e, /*goto*/ 0x90 - label 0x90 - unlock_door 0x31, 0x40 - unlock_door 0x8a, 0x40 - unlock_door 0x89, 0x40 - set_stage_flag STAGEFLAG_CONSIDER_WARP - remove_displayed_text - hide_object 0x2c - hide_object 0x36 - goto_first 0x08 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1009_devicetraining_cloak: - label 0x80 - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_TRIGGER_CLOAK, TRUE, /*goto*/ 0x81 - endloop 0x08 - - label 0x81 - deactivate_alarm - unset_stage_flag STAGEFLAG_GENERAL_PURPOSE - lock_door 0x31, 0x40 - lock_door 0x8a, 0x40 - lock_door 0x89, 0x40 - dprint "training" - restart_timer - show_object 0x2d - move_object_to_pad 0x2d, 0x011d - unset_stage_flag STAGEFLAG_CLOAK_FAILED - unset_stage_flag STAGEFLAG_CLOAK_COMPLETE - unset_object_flag_bank0 0x2d, OBJECTFLAG0_00100000 - unset_object_flag_bank1 0x2d, OBJECTFLAG1_INVISIBLE - unset_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - close_door 0x31 - close_door 0x8a - close_door 0x89 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - label 0x8c - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c33 // "Collect Cloaking Device from table to begin." - restart_timer - - beginloop 0x86 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_stage_flag_eq STAGEFLAG_CLOAK_COMPLETE, TRUE, /*goto*/ 0x09 - if_stage_flag_eq STAGEFLAG_CLOAK_FAILED, TRUE, /*goto*/ 0x0a - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_chr_has_object CHR_JOANNA, 0x2d, /*goto*/ 0x2f - if_timer_gt 1200, /*goto*/ 0x06 - endloop 0x86 - - label 0x06 - goto_first 0x8c - - label 0x2f - set_function CHR_CARRINGTON, FUNC_CARRINGTON_CLOAK - label 0x8d - remove_displayed_text - if_chr_has_weapon_equipped CHR_JOANNA, WEAPON_CLOAKINGDEVICE, /*goto*/ 0x2f - display_text 0x01, COLOR_04_ORANGE, 0x1c40 // "Select the Cloaking Device. - Hold A Button. - Use Control Stick to change selection. - Highlight Device and release A Button." - restart_timer - - beginloop 0x8e - if_stage_flag_eq STAGEFLAG_CLOAK_COMPLETE, TRUE, /*goto*/ 0x09 - if_stage_flag_eq STAGEFLAG_CLOAK_FAILED, TRUE, /*goto*/ 0x0a - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_has_weapon_equipped CHR_JOANNA, WEAPON_CLOAKINGDEVICE, /*goto*/ 0x2f - if_timer_gt 1200, /*goto*/ 0x06 - endloop 0x8e - - label 0x06 - goto_first 0x8d - - label 0x2f - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c34 // "Use Cloaking Device and locate Carrington." - - beginloop 0x82 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_door_state 0x31, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x85 - if_door_state 0x8a, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x85 - if_door_state 0x89, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x85 - if_stage_flag_eq STAGEFLAG_CLOAK_COMPLETE, TRUE, /*goto*/ 0x09 - if_stage_flag_eq STAGEFLAG_CLOAK_FAILED, TRUE, /*goto*/ 0x0a - endloop 0x82 - - label 0x09 - remove_displayed_text - message CHR_JOANNA, 0x1c36 // "Mission complete - Device Training passed!" - restart_timer - - beginloop 0x0e - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_timer_gt 240, /*goto*/ 0x83 - endloop 0x0e - - label 0x0a - remove_displayed_text - message CHR_JOANNA, 0x1c37 // "Mission failed - you have been detected." - restart_timer - - beginloop 0x0f - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_timer_gt 240, /*goto*/ 0x85 - endloop 0x0f - - label 0x85 - dprint "fail" - set_stage_flag STAGEFLAG_TRIGGER_DEVICE_FAILURE - goto_next 0x84 - - label 0x83 - set_eeprom_flag EEPROMFLAG_CI_CLOAK_DONE - dprint "done" - yield - set_stage_flag STAGEFLAG_TRIGGER_DEVICE_SUCCESS - label 0x84 - if_chr_in_room CHR_JOANNA, 0x00, 0x001e, /*goto*/ 0x90 - label 0x90 - unlock_door 0x31, 0x40 - unlock_door 0x8a, 0x40 - unlock_door 0x89, 0x40 - set_stage_flag STAGEFLAG_CONSIDER_WARP - remove_displayed_text - hide_object 0x2d - - beginloop 0x5c - if_stage_flag_eq STAGEFLAG_TRIGGER_CLOAK, FALSE, /*goto*/ 0x2f - endloop 0x5c - - label 0x2f - set_function CHR_CARRINGTON, FUNC_INIT_COLLEAGUE_WHEN_SIGHTED - goto_first 0x08 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100a_devicetraining_ecmmine: - label 0x80 - beginloop 0x0f - if_stage_flag_eq STAGEFLAG_TRIGGER_ECMMINE, TRUE, /*goto*/ 0x81 - endloop 0x0f - - label 0x81 - lock_door 0x31, 0x40 - lock_door 0x8a, 0x40 - lock_door 0x89, 0x40 - show_object 0x2e - move_object_to_pad 0x2e, 0x011d - unset_object_flag_bank0 0x2e, OBJECTFLAG0_00100000 - unset_object_flag_bank1 0x2e, OBJECTFLAG1_INVISIBLE - unset_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - close_door 0x31 - close_door 0x8a - close_door 0x89 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - label 0x8c - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c10 // "Collect ECM Mine from table to begin." - restart_timer - - beginloop 0x86 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_chr_has_object CHR_JOANNA, 0x2e, /*goto*/ 0x2f - if_timer_gt 1200, /*goto*/ 0x06 - endloop 0x86 - - label 0x06 - goto_first 0x8c - - label 0x2f - label 0x8d - remove_displayed_text - if_chr_weapon_equipped CHR_JOANNA, WEAPON_ECMMINE, /*goto*/ 0x2f - display_text 0x01, COLOR_04_ORANGE, 0x1c41 // "Select the ECM Mine. - Hold A Button. - Use Control Stick to change selection. - Highlight ECM Mine and release A Button." - restart_timer - - beginloop 0x8e - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_weapon_equipped CHR_JOANNA, WEAPON_ECMMINE, /*goto*/ 0x2f - if_timer_gt 1200, /*goto*/ 0x06 - endloop 0x8e - - label 0x06 - goto_first 0x8d - - label 0x2f - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c11 // "Locate Hub and throw ECM Mine onto Hub." - - beginloop 0x82 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_ammo_quantity_lt CHR_JOANNA, AMMOTYPE_ECM_MINE, 1, /*goto*/ 0x2f - endloop 0x82 - - label 0x2f - yield - yield - yield - yield - yield - if_weapon_thrown WEAPON_ECMMINE, /*goto*/ 0x06 - goto_first 0x82 - - label 0x06 - restart_timer - - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_weapon_thrown_on_object WEAPON_ECMMINE, 0x32, /*goto*/ 0x09 - if_timer_gt 120, /*goto*/ 0x0a - endloop 0x08 - - label 0x09 - remove_displayed_text - message CHR_JOANNA, 0x1c13 // "ECM Mine has been placed correctly." - restart_timer - - beginloop 0x0c - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_timer_gt 240, /*goto*/ 0x83 - endloop 0x0c - - label 0x0a - remove_displayed_text - message CHR_JOANNA, 0x1c12 // "ECM Mine has been placed incorrectly." - restart_timer - - beginloop 0x0d - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_timer_gt 240, /*goto*/ 0x85 - endloop 0x0d - - label 0x85 - dprint "fail" - set_stage_flag STAGEFLAG_TRIGGER_DEVICE_FAILURE - goto_next 0x84 - - label 0x83 - set_eeprom_flag EEPROMFLAG_CI_ECMMINE_DONE - dprint "done" - yield - set_stage_flag STAGEFLAG_TRIGGER_DEVICE_SUCCESS - label 0x84 - if_chr_in_room CHR_JOANNA, 0x00, 0x001e, /*goto*/ 0x90 - label 0x90 - unlock_door 0x31, 0x40 - unlock_door 0x8a, 0x40 - unlock_door 0x89, 0x40 - set_stage_flag STAGEFLAG_CONSIDER_WARP - remove_displayed_text - hide_object 0x2e - goto_first 0x0f - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100b_devicetraining_uplink: - label 0x80 - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_TRIGGER_UPLINK, TRUE, /*goto*/ 0x81 - endloop 0x08 - - label 0x81 - lock_door 0x31, 0x40 - lock_door 0x8a, 0x40 - lock_door 0x89, 0x40 - unset_stage_flag STAGEFLAG_DEVICE_ABORTING - unset_stage_flag STAGEFLAG_TRIGGER_DEVICE_SUCCESS - unset_stage_flag STAGEFLAG_TRIGGER_DEVICE_FAILURE - show_object 0x2f - move_object_to_pad 0x2f, 0x0131 - unset_object_flag_bank0 0x2f, OBJECTFLAG0_00100000 - unset_object_flag_bank1 0x2f, OBJECTFLAG1_INVISIBLE - dprint "training" - close_door 0x31 - close_door 0x8a - close_door 0x89 - unset_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x8c - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x8c - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x8c - label 0x8c - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c0a // "Collect Data Uplink from table to begin." - restart_timer - - beginloop 0x86 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_chr_has_object CHR_JOANNA, 0x2f, /*goto*/ 0x2f - if_timer_gt 1200, /*goto*/ 0x06 - endloop 0x86 - - label 0x06 - goto_first 0x8c - - label 0x2f - label 0x8d - remove_displayed_text - if_chr_weapon_equipped CHR_JOANNA, WEAPON_DATAUPLINK, /*goto*/ 0x2f - display_text 0x01, COLOR_04_ORANGE, 0x1c38 // "Select the Uplink. - Hold A Button. - Use Control Stick to change selection. - Highlight Data Uplink and release A Button." - restart_timer - - beginloop 0x8e - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_weapon_equipped CHR_JOANNA, WEAPON_DATAUPLINK, /*goto*/ 0x2f - if_timer_gt 1200, /*goto*/ 0x06 - endloop 0x8e - - label 0x06 - goto_first 0x8d - - label 0x2f - if_chr_activated_object CHR_JOANNA, 0x30, /*goto*/ 0x2f - label 0x2f - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c0b // "Stand next to the terminal and use the Uplink." - - beginloop 0x82 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_activated_object CHR_JOANNA, 0x30, /*goto*/ 0x2f - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - endloop 0x82 - - label 0x2f - if_chr_weapon_equipped CHR_JOANNA, WEAPON_DATAUPLINK, /*goto*/ 0x2f - play_sound 0x8116, -1 - remove_displayed_text - message CHR_JOANNA, 0x1c0c // "You need to be holding the Data Uplink." - goto_first 0x82 - - label 0x2f - remove_displayed_text - message CHR_JOANNA, 0x1c0d // "Connection established..." - restart_timer - - label 0x08 - yield - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - assign_sound 0x01bf, CHANNEL_5 - control_sound_from_object CHANNEL_5, 0x30, TRUE - label 0x14 - yield - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_timer_gt 400, /*goto*/ 0x06 - if_chr_distance_to_pad_gt CHR_JOANNA, 400, 0x0227, /*goto*/ 0x09 - if_chr_weapon_equipped CHR_JOANNA, WEAPON_DATAUPLINK, /*goto*/ 0x2f - goto_first 0x09 - - label 0x2f - goto_first 0x14 - - label 0x06 - restart_timer - mute_channel CHANNEL_5 - assign_sound 0x01c1, CHANNEL_7 - control_sound_from_object CHANNEL_7, 0x30, TRUE - remove_displayed_text - message TARGET_CHR, 0x1c0e // "Terminal has been successfully hacked." - - beginloop 0x15 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_timer_gt 240, /*goto*/ 0x06 - endloop 0x15 - - label 0x06 - goto_next 0x83 - - label 0x09 - remove_displayed_text - message CHR_JOANNA, 0x1c0f // "Connection broken - too far from PC." - mute_channel CHANNEL_5 - assign_sound 0x01c0, CHANNEL_6 - control_sound_from_object CHANNEL_6, 0x30, TRUE - restart_timer - - beginloop 0x16 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90 - if_chr_activated_object CHR_JOANNA, 0x31, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x8a, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x89, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x16 - - label 0x06 - mute_channel CHANNEL_6 - goto_first 0x82 - - label 0x85 - dprint "fail" - set_stage_flag STAGEFLAG_TRIGGER_DEVICE_FAILURE - goto_next 0x84 - - label 0x83 - set_eeprom_flag EEPROMFLAG_CI_UPLINK_DONE - dprint "done" - set_stage_flag STAGEFLAG_TRIGGER_DEVICE_SUCCESS - yield - goto_next 0x84 - - label 0x84 - if_chr_in_room CHR_JOANNA, 0x00, 0x001e, /*goto*/ 0x90 - label 0x90 - unlock_door 0x31, 0x40 - unlock_door 0x8a, 0x40 - unlock_door 0x89, 0x40 - set_stage_flag STAGEFLAG_CONSIDER_WARP - remove_displayed_text - mute_channel CHANNEL_5 - mute_channel CHANNEL_6 - mute_channel CHANNEL_7 - dprint "aborted" - hide_object 0x2f - goto_first 0x08 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101a_move_jo_to_training_room: - // Wait for flag to be set while not in training - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_CONSIDER_WARP, TRUE, /*goto*/ 0x2f - reloop 0x04 - - label 0x2f - if_stage_flag_eq STAGEFLAG_TRIGGER_UPLINK, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_TRIGGER_ECMMINE, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_TRIGGER_CAMSPY, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_TRIGGER_NIGHTVISION, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_TRIGGER_DOORDECODER, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_TRIGGER_RTRACKER, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_TRIGGER_IR, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_TRIGGER_XRAY, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_TRIGGER_DISGUISE, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_TRIGGER_CLOAK, TRUE, /*goto*/ 0x2f - goto_next 0x06 - label 0x2f - endloop 0x04 - - label 0x06 - unset_stage_flag STAGEFLAG_CONSIDER_WARP - if_chr_in_room CHR_JOANNA, 0x00, 0x001e, /*goto*/ 0x2f - goto_next 0x30 - - // In room - label 0x2f - reloop 0x04 - - // Not in room - label 0x30 - revoke_control CHR_JOANNA, 0 - fade_to_color 0x000000ff, 0 - fade_to_color 0x00000000, 5000 - restart_timer - - beginloop 0x08 - if_timer_gt 30, /*goto*/ 0x2f - endloop 0x08 - - label 0x2f - if_chr_in_room CHR_JOANNA, 0x00, 0x0016, /*goto*/ 0x2f - if_chr_in_room CHR_JOANNA, 0x00, 0x0017, /*goto*/ 0x2f - if_chr_in_room CHR_JOANNA, 0x00, 0x0018, /*goto*/ 0x2f - if_chr_in_room CHR_JOANNA, 0x00, 0x0019, /*goto*/ 0x2f - if_chr_in_room CHR_JOANNA, 0x00, 0x0014, /*goto*/ 0x2f - enter_camera_and_move_to_pad 0x0151 - set_function CHR_P1P2, FUNC_MOVE_TO_DEVICEROOM - goto_next 0x06 - - label 0x2f - enter_camera_and_move_to_pad 0x020a - set_function CHR_P1P2, FUNC_MOVE_TO_HOLOROOM - - label 0x06 - yield - yield - yield - yield - enter_firstperson - fade_to_color 0x000000ff, 0 - fade_to_color 0x00000000, 90 - restart_timer - - beginloop 0x09 - if_timer_gt 90, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - grant_control CHR_JOANNA - enter_firstperson - unset_stage_flag STAGEFLAG_CONSIDER_WARP - goto_first 0x04 - - endfunction - -func0401_move_to_deviceroom: - chr_move_to_pad CHR_SELF, PAD_DEVICEROOM, 0x01, /*goto*/ 0x06 - label 0x06 - stop_chr - yield - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0402_move_to_holoroom: - chr_move_to_pad CHR_SELF, PAD_HOLOROOM, 0x01, /*goto*/ 0x06 - label 0x06 - stop_chr - yield - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0429_grimshaw_disguise: - set_return_function CHR_SELF, FUNC_GRIMSHAW_DISGUISE - dprint "Initialisea" - restart_timer - - beginloop 0x0f - if_timer_gt 60, /*goto*/ 0x8f - endloop 0x0f - - beginloop 0x8f - if_stage_flag_eq STAGEFLAG_CONSIDER_WARP, FALSE, /*goto*/ 0x04 - endloop 0x8f - - // Wait until Jo in sight - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x0d - if_target_chr_in_sight /*goto*/ 0x2f - if_chr_idle /*goto*/ 0x06 - label 0x7f - call_rng - if_rand_gt 1, /*goto*/ 0x06 - set_function CHR_SELF, GFUNC_DO_BORED_ANIMATION - label 0x06 - endloop 0x04 - - label 0x2f - dprint "Initialiseb" - restart_timer - label 0x08 - if_self_flag_bankx_eq CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x06 - try_face_entity 0x0200, 0x0000, /*goto*/ 0x09 - - beginloop 0x09 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x0d - if_angle_to_target_chr_lt 10, /*goto*/ 0x06 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - dprint "Initialisec" - do_special_animation 3 - play_chr_specific_quip BANK_0, CHANNEL_6 - restart_timer - - beginloop 0x57 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x0d - if_sound_finished CHANNEL_6, /*goto*/ 0x06 - endloop 0x57 - - label 0x06 - dprint "Initialised" - restart_timer - - beginloop 0x58 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x0d - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x58 - - label 0x06 - speak CHR_JOANNA, 0x1c2b, 0x1517, CHANNEL_6, COLOR_09_BLUE // "I'm here to pick up the equipment." - - beginloop 0x59 - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x0d - if_sound_finished CHANNEL_6, /*goto*/ 0x06 - endloop 0x59 - - label 0x06 - restart_timer - - beginloop 0x5b - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x0d - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x5b - - label 0x06 - if_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_DISGUISED, /*goto*/ 0x2f - do_special_animation -1 - speak TARGET_CHR, 0x1c2c, 0x1518, CHANNEL_6, COLOR_05_GREEN // "Go away, Joanna. You're not fooling anybody!" - - beginloop 0x5c - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x0d - if_sound_finished CHANNEL_6, /*goto*/ 0x06 - endloop 0x5c - - label 0x06 - set_stage_flag STAGEFLAG_DISGUISE_FAILED - goto_next 0x0d - - label 0x2f - do_special_animation -1 - speak TARGET_CHR, 0x1c2d, 0x1519, CHANNEL_6, COLOR_05_GREEN // "Here you go. Don't drop it now." - - beginloop 0x5d - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x0d - if_sound_finished CHANNEL_6, /*goto*/ 0x06 - endloop 0x5d - - label 0x06 - give_object_to_chr 0x3c, CHR_JOANNA - set_stage_flag STAGEFLAG_DISGUISE_COMPLETE - label 0x0d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100c_cloak_detection: - beginloop 0x04 - deactivate_alarm - dprint "INITY" - if_stage_flag_eq STAGEFLAG_TRIGGER_CLOAK, TRUE, /*goto*/ 0x8f - reloop 0x04 - - beginloop 0x8f - dprint "LOOPY" - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x5d - if_chr_distance_to_pad_lt CHR_JOANNA, 200, 0x027b, /*goto*/ 0x06 - endloop 0x8f - - beginloop 0x5d - dprint "WAITY" - if_stage_flag_eq STAGEFLAG_TRIGGER_CLOAK, FALSE, /*goto*/ 0x30 - endloop 0x5d - - label 0x30 - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - endloop 0x04 - - label 0x06 - dprint "GOTTHRU" - if_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_CLOAKED, /*goto*/ 0x30 - activate_alarm - yield - restart_timer - - beginloop 0x09 - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x59 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - set_stage_flag STAGEFLAG_GENERAL_PURPOSE - speak TARGET_CHR, 0x1c30, 0x151a, CHANNEL_6, COLOR_05_GREEN // "You'll have to do better than that, Joanna." - message CHR_JOANNA, 0x1c32 // "You have been detected by the camera." - restart_timer - - beginloop 0x0a - if_stage_flag_eq STAGEFLAG_TRIGGER_CLOAK, FALSE, /*goto*/ 0x30 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x0a - - label 0x06 - set_stage_flag STAGEFLAG_CLOAK_FAILED - restart_timer - - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_TRIGGER_CLOAK, FALSE, /*goto*/ 0x30 - if_timer_gt 120, /*goto*/ 0x59 - endloop 0x08 - - label 0x59 - deactivate_alarm - - beginloop 0x5a - if_stage_flag_eq STAGEFLAG_TRIGGER_CLOAK, FALSE, /*goto*/ 0x30 - endloop 0x5a - - label 0x30 - deactivate_alarm - restart_timer - - beginloop 0x5c - yield - dprint "WAITFIN" - if_timer_gt 60, /*goto*/ 0x2f - endloop 0x5c - - label 0x2f - goto_first 0x04 - - label 0x06 - goto_first 0x8f - - endfunction - -func042a_carrington_cloak: - set_return_function CHR_SELF, FUNC_CARRINGTON_CLOAK - - beginloop 0x8f - chr_move_to_pad CHR_SELF, PAD_CARRINGTON_OFFICE, 0x01, /*goto*/ 0x06 - endloop 0x8f - - label 0x06 - dprint "Initialisea" - - beginloop 0x04 - if_target_chr_in_sight /*goto*/ 0x2f - if_chr_idle /*goto*/ 0x06 - label 0x7f - call_rng - if_rand_gt 1, /*goto*/ 0x06 - set_function CHR_SELF, GFUNC_DO_BORED_ANIMATION - - label 0x06 - endloop 0x04 - - label 0x2f - set_stage_flag STAGEFLAG_GENERAL_PURPOSE - close_door 0x40 - dprint "Initialiseb" - restart_timer - label 0x08 - if_self_flag_bankx_eq CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x06 - try_face_entity 0x0200, 0x0000, /*goto*/ 0x09 - - beginloop 0x09 - if_angle_to_target_chr_lt 10, /*goto*/ 0x06 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - dprint "Initialisec" - restart_timer - animation ANIM_WALK_BACKWARDS, -1, -1, 0x1010, CHR_SELF, 2 - restart_timer - - beginloop 0x57 - if_timer_gt 30, /*goto*/ 0x06 - endloop 0x57 - - label 0x06 - do_special_animation -1 - speak CHR_JOANNA, 0x1c31, 0x151b, CHANNEL_6, COLOR_06_WHITE // "Joanna, where did you spring from?" - - beginloop 0x59 - if_sound_finished CHANNEL_6, /*goto*/ 0x06 - endloop 0x59 - - label 0x06 - restart_timer - - beginloop 0x5b - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x5b - - label 0x06 - do_special_animation -1 - speak TARGET_CHR, 0x1c35, 0x151c, CHANNEL_6, COLOR_06_WHITE // "I think we can safely say your training is now complete!" - - beginloop 0x5c - if_sound_finished CHANNEL_6, /*goto*/ 0x06 - endloop 0x5c - - label 0x06 - stop_chr - set_stage_flag STAGEFLAG_CLOAK_COMPLETE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100e_training_unlockables: - beginloop 0x04 - if_eeprom_flag_is_set EEPROMFLAG_CI_UPLINK_DONE, /*goto*/ 0x2f - endloop 0x04 - - label 0x2f - unlock_door 0x3e, 0x40 - - beginloop 0x08 - if_eeprom_flag_is_set EEPROMFLAG_CI_ECMMINE_DONE, /*goto*/ 0x2f - endloop 0x08 - - label 0x2f - unlock_door 0x3d, 0x40 - unlock_door 0x3f, 0x40 - goto_next 0x2f - - beginloop 0x09 - if_eeprom_flag_is_set EEPROMFLAG_CI_CAMSPY_DONE, /*goto*/ 0x2f - endloop 0x09 - - label 0x2f - unset_object_flag_bank1 OBJ_LIGHTSWITCH, OBJECTFLAG1_INVISIBLE - - beginloop 0x0a - if_eeprom_flag_is_set EEPROMFLAG_CI_NIGHTVISION_DONE, /*goto*/ 0x2f - endloop 0x0a - - label 0x2f - set_lights_state 0x0030, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x002e, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x002f, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0020, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0024, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0025, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0026, 0x01, 0xff, 0x00, 0x00 - set_lights_state 0x0022, 0x01, 0xff, 0x00, 0x00 - - beginloop 0x0b - if_eeprom_flag_is_set EEPROMFLAG_CI_DOORDECODER_DONE, /*goto*/ 0x2f - endloop 0x0b - - label 0x2f - unlock_door 0x41, 0x40 - - beginloop 0x0e - if_eeprom_flag_is_set EEPROMFLAG_CI_IR_DONE, /*goto*/ 0x2f - endloop 0x0e - - label 0x2f - unlock_door 0x37, 0x40 - - beginloop 0x0f - if_eeprom_flag_is_set EEPROMFLAG_CI_XRAY_DONE, /*goto*/ 0x2f - endloop 0x0f - - label 0x2f - hide_object 0x3a - hide_object 0x3b - set_function CHR_SELF, GFUNC_IDLE - endfunction - -.macro do_door_proxy eepromflag pad door - // If training flag is done, open/close a door automatically as Jo nears it - beginloop 0x04 - if_eeprom_flag_is_set \eepromflag, /*goto*/ 0x2f - reloop 0x04 - - label 0x2f - if_chr_distance_to_pad_lt CHR_JOANNA, 350, \pad, /*goto*/ 0x06 - close_door \door - reloop 0x04 - - label 0x06 - if_door_state \door, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x2f - open_door \door - set_object_flag_bank0 \door, OBJECTFLAG0_40000000 - restart_timer - - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x2f - endloop 0x08 - - label 0x2f - endloop 0x04 -.endm - -func100f_doorproxy_unused1: - set_function CHR_SELF, GFUNC_IDLE - - // Unreachable - do_door_proxy EEPROMFLAG_CI_ECMMINE_DONE, 0x0185, 0x3d - endfunction - -func1010_doorproxy: - do_door_proxy EEPROMFLAG_CI_UPLINK_DONE, 0x0186, 0x3e - endfunction - -func1010_doorproxy_unused2: - set_function CHR_SELF, GFUNC_IDLE - - // Unreachable - do_door_proxy EEPROMFLAG_CI_ECMMINE_DONE, 0x0187, 0x3f - endfunction - -func1012_cloak_doorproxy: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_TRIGGER_CLOAK, TRUE, /*goto*/ 0x2f - reloop 0x04 - - label 0x2f - if_stage_flag_eq STAGEFLAG_CLOAK_FAILED, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_TRIGGER_DEVICE_SUCCESS, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_TRIGGER_DEVICE_FAILURE, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x2f - if_chr_distance_to_pad_lt CHR_JOANNA, 350, 0x0188, /*goto*/ 0x06 - close_door 0x40 - label 0x2f - endloop 0x04 - - label 0x06 - if_door_state 0x40, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x2f - open_door 0x40 - set_object_flag_bank0 0x40, OBJECTFLAG0_40000000 - restart_timer - - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x2f - endloop 0x08 - - label 0x2f - goto_first 0x04 - - endfunction - -func101b_ir_door: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_TRIGGER_IR, TRUE, /*goto*/ 0x06 - if_eeprom_flag_is_set EEPROMFLAG_CI_IR_DONE, /*goto*/ 0x2f - label 0x06 - reloop 0x04 - - label 0x2f - if_chr_distance_to_pad_lt CHR_JOANNA, 350, 0x0192, /*goto*/ 0x06 - close_door 0x37 - endloop 0x04 - - label 0x06 - if_door_state 0x37, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x2f - open_door 0x37 - set_object_flag_bank0 0x37, OBJECTFLAG0_40000000 - restart_timer - - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x2f - endloop 0x08 - - label 0x2f - goto_first 0x04 - - endfunction - -func042b_init_carrington: - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_UNEXPLODABLE - yield - set_var_a 0 - if_eeprom_flag_is_unset EEPROMFLAG_CI_TOUR_STARTED, /*goto*/ 0x06 - set_eeprom_flag EEPROMFLAG_CI_TOUR_DONE - dprint "EEPROM SET" - - beginloop 0x08 - chr_move_to_pad CHR_SELF, PAD_CARRINGTON_OFFICE, 0x01, /*goto*/ 0x2f - endloop 0x08 - - label 0x2f - set_function CHR_SELF, 0x041e - - label 0x06 - dprint "EEPROM NOTSET" - if_eeprom_flag_is_unset EEPROMFLAG_CI_TOUR_DONE, /*goto*/ 0x8f - goto_first 0x08 - - beginloop 0x8f - chr_move_to_pad CHR_SELF, PAD_OUTSIDE_JO_OFFICE, 0x01, /*goto*/ 0x2f - endloop 0x8f - - label 0x2f - stop_chr - set_function CHR_SELF, FUNC_CARRINGTON_TOUR - endfunction - -func1019_setup_carrington: - beginloop 0x04 - if_chr_flag_bank2 CHR_CARRINGTON, CHRFLAG2_10000000, /*goto*/ 0x06 - if_eeprom_flag_is_set EEPROMFLAG_CI_TOUR_STARTED, /*goto*/ 0x2f - endloop 0x04 - - label 0x06 - set_function CHR_SELF, GFUNC_IDLE - - label 0x2f - set_function CHR_CARRINGTON, FUNC_INIT_CARRINGTON - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func042c_carrington_tour: - set_return_function CHR_SELF, FUNC_CARRINGTON_TOUR - set_self_flag_bank3 CHRFLAG3_00040000 - restart_timer - try_face_entity ENTITYTYPE_PAD, 0x0054, /*goto*/ 0x04 - - beginloop 0x04 - dprint "FACE PAD" - if_timer_gt 1200, /*goto*/ 0x2f - if_chr_sees_player /*goto*/ 0x2f - if_chr_idle /*goto*/ 0x06 - label 0x7f - call_rng - if_rand_gt 1, /*goto*/ 0x06 - set_function CHR_SELF, GFUNC_DO_BORED_ANIMATION - - label 0x06 - endloop 0x04 - - label 0x2f - if_chr_sees_player /*goto*/ 0x06 - try_run_to_target_chr_with_hand_up /*goto*/ 0x08 - - beginloop 0x08 - if_chr_sees_player /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_10000000 - set_eeprom_flag EEPROMFLAG_CI_TOUR_STARTED - do_special_animation -1 - remove_displayed_text - speak TARGET_CHR, 0x1c42, 0x8029, CHANNEL_6, COLOR_06_WHITE // "Joanna, it's good to see you." - restart_timer - - beginloop 0x57 - if_sound_finished CHANNEL_6, /*goto*/ 0x06 - endloop 0x57 - - label 0x06 - do_special_animation -1 - speak TARGET_CHR, 0x1c43, 0x151d, CHANNEL_6, COLOR_06_WHITE // "Come with me. I'll walk you round the training rooms." - restart_timer - - beginloop 0x59 - if_sound_finished CHANNEL_6, /*goto*/ 0x06 - endloop 0x59 - - label 0x06 - walk_to_pad 0x0064 - - beginloop 0x5b - if_chr_stopped /*goto*/ 0x06 - endloop 0x5b - - label 0x06 - stop_chr - restart_timer - try_face_entity ENTITYTYPE_PAD, 0x0068, /*goto*/ 0x5c - - beginloop 0x5c - if_timer_lt 60, /*goto*/ 0x06 - if_chr_sees_player /*goto*/ 0x2f - label 0x06 - endloop 0x5c - - label 0x2f - if_chr_distance_lt 500, /*goto*/ 0x2f - goto_first 0x5c - - label 0x2f - do_special_animation -1 - remove_displayed_text - speak TARGET_CHR, 0x1c44, 0x1520, CHANNEL_6, COLOR_06_WHITE // "The information center is through this door." - restart_timer - - beginloop 0x5d - if_sound_finished CHANNEL_6, /*goto*/ 0x06 - endloop 0x5d - - label 0x06 - walk_to_pad 0x0065 - - beginloop 0x62 - if_chr_stopped /*goto*/ 0x06 - endloop 0x62 - - label 0x06 - stop_chr - - beginloop 0x63 - if_chr_sees_player /*goto*/ 0x2f - endloop 0x63 - - label 0x2f - if_chr_distance_lt 500, /*goto*/ 0x2f - goto_first 0x63 - - label 0x2f - set_function 0x01, GFUNC_IDLE - do_special_animation -1 - speak TARGET_CHR, 0x1c45, 0x151f, CHANNEL_6, COLOR_06_WHITE // "In here we have the device lab." - restart_timer - - beginloop 0x64 - if_sound_finished CHANNEL_6, /*goto*/ 0x06 - endloop 0x64 - - label 0x06 - restart_timer - try_face_entity ENTITYTYPE_CHR, 0x01, /*goto*/ 0x65 - - beginloop 0x65 - if_timer_gt 40, /*goto*/ 0x06 - endloop 0x65 - - label 0x06 - do_special_animation -1 - play_sound 0x8028, CHANNEL_6 - set_function 0x01, FUNC_DEVICEGIRL_REPLY_TO_CARRINGTON - restart_timer - - beginloop 0x66 - if_timer_gt 20, /*goto*/ 0x06 - if_sound_finished CHANNEL_6, /*goto*/ 0x06 - endloop 0x66 - - label 0x06 - mute_channel CHANNEL_6 - stop_chr - yield - yield - - beginloop 0x68 - if_sound_finished CHANNEL_6, /*goto*/ 0x06 - endloop 0x68 - - label 0x06 - walk_to_pad 0x0020 - - beginloop 0x69 - if_chr_stopped /*goto*/ 0x06 - endloop 0x69 - - label 0x06 - stop_chr - - beginloop 0x6a - if_chr_sees_player /*goto*/ 0x2f - endloop 0x6a - - label 0x2f - if_chr_distance_lt 500, /*goto*/ 0x2f - goto_first 0x6a - - label 0x2f - do_special_animation -1 - speak TARGET_CHR, 0x1c46, 0x1521, CHANNEL_6, COLOR_06_WHITE // "This leads to the simulant training room." - restart_timer - - beginloop 0x6b - if_sound_finished CHANNEL_6, /*goto*/ 0x06 - endloop 0x6b - - label 0x06 - stop_chr - yield - yield - - beginloop 0x6c - if_sound_finished CHANNEL_6, /*goto*/ 0x06 - endloop 0x6c - - label 0x06 - walk_to_pad 0x0010 - - beginloop 0x6d - if_chr_stopped /*goto*/ 0x06 - endloop 0x6d - - label 0x06 - stop_chr - - beginloop 0x6e - if_chr_sees_player /*goto*/ 0x2f - endloop 0x6e - - label 0x2f - if_chr_distance_lt 500, /*goto*/ 0x2f - goto_first 0x6e - - label 0x2f - do_special_animation -1 - speak TARGET_CHR, 0x1c47, 0x151e, CHANNEL_6, COLOR_06_WHITE // "This is the firing range, Jo." - restart_timer - - beginloop 0x6f - if_sound_finished CHANNEL_6, /*goto*/ 0x06 - endloop 0x6f - - label 0x06 - restart_timer - try_face_entity ENTITYTYPE_CHR, 0x01, /*goto*/ 0x70 - - beginloop 0x70 - if_timer_gt 40, /*goto*/ 0x06 - endloop 0x70 - - label 0x06 - restart_timer - - beginloop 0x71 - if_sound_finished CHANNEL_6, /*goto*/ 0x06 - endloop 0x71 - - label 0x06 - stop_chr - yield - yield - - beginloop 0x72 - if_sound_finished CHANNEL_6, /*goto*/ 0x06 - endloop 0x72 - - label 0x06 - label 0x06 - walk_to_pad 0x0009 - - beginloop 0x73 - if_chr_stopped /*goto*/ 0x06 - endloop 0x73 - - label 0x06 - stop_chr - - beginloop 0x74 - if_chr_sees_player /*goto*/ 0x2f - endloop 0x74 - - label 0x2f - if_chr_distance_lt 500, /*goto*/ 0x2f - goto_first 0x74 - - label 0x2f - do_special_animation -1 - speak TARGET_CHR, 0x1c48, 0x1522, CHANNEL_6, COLOR_06_WHITE // "This corridor leads down to the hangar." - restart_timer - - beginloop 0x75 - if_sound_finished CHANNEL_6, /*goto*/ 0x06 - endloop 0x75 - - label 0x06 - restart_timer - set_target_chr CHR_JOANNA - try_face_entity 0x0200, 0x0000, /*goto*/ 0x79 - - beginloop 0x79 - if_timer_gt 120, /*goto*/ 0x2f - endloop 0x79 - - label 0x2f - do_special_animation -1 - speak TARGET_CHR, 0x1c7c, 0x17dc, CHANNEL_6, COLOR_06_WHITE // "Okay, Jo, I'll leave you to prepare for the mission." - - beginloop 0x7a - if_sound_finished CHANNEL_6, /*goto*/ 0x2f - endloop 0x7a - - label 0x2f - set_eeprom_flag EEPROMFLAG_CI_TOUR_DONE - walk_to_pad PAD_CARRINGTON_OFFICE - - beginloop 0x76 - if_chr_stopped /*goto*/ 0x06 - endloop 0x76 - - label 0x06 - set_function CHR_SELF, 0x041e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func042d_unused: - set_alertness 1 - set_self_flag_bank3 CHRFLAG3_00040000 - restart_timer - try_face_entity ENTITYTYPE_CHR, CHR_CARRINGTON, /*goto*/ 0x5f - - beginloop 0x5f - if_timer_gt 40, /*goto*/ 0x06 - endloop 0x5f - - label 0x06 - - beginloop 0x60 - if_sound_finished CHANNEL_6, /*goto*/ 0x06 - endloop 0x60 - - label 0x06 - assign_sound 0x802d, CHANNEL_6 - play_sound_from_entity CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01 - - beginloop 0x61 - if_sound_finished CHANNEL_6, /*goto*/ 0x06 - endloop 0x61 - - label 0x06 - set_function CHR_SELF, 0x041e - endfunction - -func042e_devicegirl_reply_to_carrington: - set_alertness 1 - set_self_flag_bank3 CHRFLAG3_00040000 - restart_timer - try_face_entity ENTITYTYPE_CHR, CHR_CARRINGTON, /*goto*/ 0x5f - - beginloop 0x5f - if_timer_gt 40, /*goto*/ 0x06 - endloop 0x5f - - label 0x06 - - beginloop 0x60 - if_sound_finished CHANNEL_6, /*goto*/ 0x06 - endloop 0x60 - - label 0x06 - yield - yield - yield - assign_sound 0x177d, CHANNEL_6 - play_sound_from_entity CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01 - - beginloop 0x61 - if_sound_finished CHANNEL_6, /*goto*/ 0x06 - endloop 0x61 - - label 0x06 - set_function CHR_SELF, 0x041e - endfunction - -func1013_msg_hovercrate: - if_eeprom_flag_is_unset EEPROMFLAG_CI_TOUR_STARTED, /*goto*/ 0x04 - set_function CHR_SELF, GFUNC_IDLE - - beginloop 0x04 - if_eeprom_flag_is_set EEPROMFLAG_CI_TOUR_STARTED, /*goto*/ 0x06 - if_chr_distance_to_pad_lt CHR_JOANNA, 250, 0x0141, /*goto*/ 0x2f - endloop 0x04 - - label 0x06 - set_function CHR_SELF, GFUNC_IDLE - - label 0x2f - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c49 // "HOVERCRATE Press B Button next to Hovcrate to grab it..." - restart_timer - - beginloop 0x08 - if_timer_gt 240, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c4a // "Press B Button when crate grabbed to release it." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1014_msg_hoverbike: - if_eeprom_flag_is_unset EEPROMFLAG_CI_TOUR_STARTED, /*goto*/ 0x04 - set_function CHR_SELF, GFUNC_IDLE - - beginloop 0x04 - if_eeprom_flag_is_set EEPROMFLAG_CI_TOUR_STARTED, /*goto*/ 0x06 - if_chr_distance_to_pad_lt CHR_JOANNA, 250, 0x01f9, /*goto*/ 0x2f - endloop 0x04 - - label 0x06 - set_function CHR_SELF, GFUNC_IDLE - - label 0x2f - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c4b // "HOVERBIKE Double tap B Button next to Hovbike to ride it..." - restart_timer - - beginloop 0x08 - if_timer_gt 240, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c4c // "Double tap B Button when on Hovbike to dismount." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1015_msg_doors: - if_eeprom_flag_is_unset EEPROMFLAG_CI_TOUR_STARTED, /*goto*/ 0x04 - set_function CHR_SELF, GFUNC_IDLE - - beginloop 0x04 - if_eeprom_flag_is_set EEPROMFLAG_CI_TOUR_STARTED, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - set_function CHR_SELF, GFUNC_IDLE - - label 0x2f - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c4d // "OPENING DOORS Press B Button next to door to open it." - restart_timer - - beginloop 0x08 - if_timer_gt 240, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c4e // "B Button will also activate any object nearby." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1016_msg_elevators: - if_eeprom_flag_is_unset EEPROMFLAG_CI_TOUR_STARTED, /*goto*/ 0x04 - set_function CHR_SELF, GFUNC_IDLE - - beginloop 0x04 - if_eeprom_flag_is_set EEPROMFLAG_CI_TOUR_STARTED, /*goto*/ 0x06 - if_chr_distance_to_pad_lt CHR_JOANNA, 250, 0x0160, /*goto*/ 0x2f - if_chr_distance_to_pad_lt CHR_JOANNA, 250, 0x0162, /*goto*/ 0x2f - endloop 0x04 - - label 0x2f - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c4f // "ELEVATORS Press B Button next to door to call elevator." - label 0x06 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1017_msg_terminals: - if_eeprom_flag_is_unset EEPROMFLAG_CI_TOUR_STARTED, /*goto*/ 0x04 - set_function CHR_SELF, GFUNC_IDLE - - beginloop 0x04 - if_eeprom_flag_is_set EEPROMFLAG_CI_TOUR_STARTED, /*goto*/ 0x06 - if_chr_distance_to_pad_lt CHR_JOANNA, 250, 0x0227, /*goto*/ 0x2f - if_chr_distance_to_pad_lt CHR_JOANNA, 250, 0x022a, /*goto*/ 0x2f - if_chr_distance_to_pad_lt CHR_JOANNA, 250, 0x021c, /*goto*/ 0x2f - if_chr_distance_to_pad_lt CHR_JOANNA, 250, 0x021e, /*goto*/ 0x2f - if_chr_distance_to_pad_lt CHR_JOANNA, 250, 0x0221, /*goto*/ 0x2f - if_chr_distance_to_pad_lt CHR_JOANNA, 250, 0x0224, /*goto*/ 0x2f - if_chr_distance_to_pad_lt CHR_JOANNA, 250, 0x023e, /*goto*/ 0x2f - endloop 0x04 - - label 0x2f - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c72 // "TERMINALS - Press B Button next to terminal to use it." - label 0x06 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1018_lightswitch: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_TRIGGER_NIGHTVISION, FALSE, /*goto*/ 0x2f - if_chr_has_weapon_equipped CHR_JOANNA, WEAPON_NIGHTVISION, /*goto*/ 0x2f - set_object_flag_bank1 OBJ_LIGHTSWITCH, OBJECTFLAG1_INVISIBLE - reloop 0x04 - - label 0x2f - unset_object_flag_bank1 OBJ_LIGHTSWITCH, OBJECTFLAG1_INVISIBLE - endloop 0x04 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101c_holo1_main: - label 0x80 - hide_object 0x48 - hide_object 0x49 - hide_object 0x4a - hide_object 0x4b - hide_object 0x4c - hide_object 0x4d - hide_object 0x4e - hide_object 0x4f - - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_IN_HOLO1, TRUE, /*goto*/ 0x81 - endloop 0x08 - - label 0x81 - set_stage_flag STAGEFLAG_CONSIDER_WARP - restart_timer - - beginloop 0x13 - if_timer_gt 30, /*goto*/ 0x2f - endloop 0x13 - - label 0x2f - lock_door 0x75, 0x40 - lock_door 0x76, 0x40 - close_door 0x75 - unset_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - if_chr_activated_object CHR_JOANNA, 0x75, /*goto*/ 0x2f - if_chr_activated_object CHR_JOANNA, 0x76, /*goto*/ 0x2f - label 0x2f - unset_stage_flag STAGEFLAG_HOLO_ABORTING - unset_stage_flag STAGEFLAG_TRIGGER_HOLO_SUCCESS - unset_stage_flag STAGEFLAG_TRIGGER_HOLO_FAILURE - unset_stage_flag STAGEFLAG_GENERAL_PURPOSE - hide_object 0x45 - show_object 0x48 - show_object 0x49 - show_object 0x4a - show_object 0x4b - show_object 0x4c - show_object 0x4d - show_object 0x4e - show_object 0x4f - unset_object_flag_bank1 0x48, OBJECTFLAG1_00000001 - unset_object_flag_bank1 0x49, OBJECTFLAG1_00000001 - unset_object_flag_bank1 0x4a, OBJECTFLAG1_00000001 - unset_object_flag_bank1 0x4b, OBJECTFLAG1_00000001 - unset_object_flag_bank1 0x4c, OBJECTFLAG1_00000001 - unset_object_flag_bank1 0x4d, OBJECTFLAG1_00000001 - unset_object_flag_bank1 0x4e, OBJECTFLAG1_00000001 - unset_object_flag_bank1 0x4f, OBJECTFLAG1_00000001 - hide_chr 0x04 - dprint "training" - label 0x91 - if_object_flag_bank1 0x4c, OBJECTFLAG1_00000001, /*goto*/ 0x2f - goto_next 0x06 - - label 0x2f - if_object_flag_bank1 0x4d, OBJECTFLAG1_00000001, /*goto*/ 0x2f - goto_next 0x06 - - label 0x2f - if_object_flag_bank1 0x4e, OBJECTFLAG1_00000001, /*goto*/ 0x2f - goto_next 0x06 - - label 0x2f - if_object_flag_bank1 0x4f, OBJECTFLAG1_00000001, /*goto*/ 0x2f - label 0x06 - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c64 // "Get the access codes by examining terminals. - Use the codes on the wall terminals." - goto_next 0x06 - - label 0x2f - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c73 // "Now activate the red terminals on the wall." - label 0x06 - restart_timer - - beginloop 0x82 - if_stage_flag_eq STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x90 - if_stage_flag_eq STAGEFLAG_TRIGGER_HOLO_SUCCESS, TRUE, /*goto*/ 0x83 - if_stage_flag_eq STAGEFLAG_TRIGGER_HOLO_FAILURE, TRUE, /*goto*/ 0x85 - if_chr_activated_object CHR_JOANNA, 0x75, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x76, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_timer_gt 1200, /*goto*/ 0x2f - endloop 0x82 - - label 0x2f - goto_first 0x91 - - label 0x85 - dprint "fail" - set_stage_flag STAGEFLAG_TRIGGER_HOLO_FAILURE - goto_next 0x84 - - label 0x83 - set_eeprom_flag EEPROMFLAG_CI_HOLO1_DONE - dprint "done" - set_stage_flag STAGEFLAG_TRIGGER_HOLO_SUCCESS - yield - goto_next 0x84 - - label 0x84 - if_chr_in_room CHR_JOANNA, 0x00, 0x001e, /*goto*/ 0x90 - label 0x90 - set_stage_flag STAGEFLAG_CONSIDER_WARP - unlock_door 0x75, 0x40 - unlock_door 0x76, 0x40 - remove_displayed_text - mute_channel CHANNEL_5 - mute_channel CHANNEL_6 - mute_channel CHANNEL_7 - show_chr 0x04 - dprint "aborted" - hide_object 0x48 - hide_object 0x49 - hide_object 0x4a - hide_object 0x4b - hide_object 0x4c - hide_object 0x4d - hide_object 0x4e - hide_object 0x4f - show_object 0x45 - remove_displayed_text - goto_first 0x08 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -.macro holo1_some_terminal object function - beginloop 0x8f - if_stage_flag_eq STAGEFLAG_IN_HOLO1, TRUE, /*goto*/ 0x2f - endloop 0x8f - - label 0x2f - set_object_image \object, 0x00, 0x12 - unset_object_flag_bank1 \object, OBJECTFLAG1_00040000 - - beginloop 0x04 - if_chr_activated_object CHR_F3, \object, /*goto*/ 0x2f - reloop 0x04 - - label 0x2f - if_object_flag_bank1 \object, OBJECTFLAG1_00000001, /*goto*/ 0x2f - endloop 0x04 - - label 0x2f - set_object_image \object, 0x00, 0x13 - set_object_flag_bank1 \object, OBJECTFLAG1_00040000 - assign_sound 0x043a, CHANNEL_7 - control_sound_from_object CHANNEL_7, \object, TRUE - set_return_function CHR_SELF, \function - set_function CHR_SELF, FUNC_HOLO1_CHECK_DONE -.endm - -func101d_holo1_switch1: - holo1_some_terminal 0x4c, FUNC_HOLO1_SWITCH1 - endfunction - -func101e_holo1_switch2: - holo1_some_terminal 0x4d, FUNC_HOLO1_SWITCH2 - endfunction - -func101f_holo1_switch3: - holo1_some_terminal 0x4e, FUNC_HOLO1_SWITCH3 - endfunction - -func1020_holo1_monitor_switches: - beginloop 0x8f - if_stage_flag_eq STAGEFLAG_IN_HOLO1, TRUE, /*goto*/ 0x2f - endloop 0x8f - - label 0x2f - set_object_image 0x4f, 0x00, 0x12 - unset_object_flag_bank1 0x4f, OBJECTFLAG1_00040000 - - beginloop 0x04 - if_chr_activated_object CHR_F3, 0x4f, /*goto*/ 0x2f - reloop 0x04 - - label 0x2f - if_object_flag_bank1 0x4f, OBJECTFLAG1_00000001, /*goto*/ 0x2f - endloop 0x04 - - label 0x2f - set_object_image 0x4f, 0x00, 0x13 - set_object_flag_bank1 0x4f, OBJECTFLAG1_00040000 - assign_sound 0x043a, CHANNEL_7 - control_sound_from_object CHANNEL_7, 0x4f, TRUE - set_return_function CHR_SELF, FUNC_HOLO1_MONITOR_SWITCHES - set_function CHR_SELF, FUNC_HOLO1_CHECK_DONE - endfunction - -.macro holo1_code_thing_p1 object1 object2 pad - yield - yield - yield - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_IN_HOLO1, TRUE, /*goto*/ 0x2f - reloop 0x04 - - label 0x2f - if_object_in_good_condition \object1, /*goto*/ 0x2f - reloop 0x04 - - label 0x2f - if_object_flag_bank1 \object1, OBJECTFLAG1_00000001, /*goto*/ 0x2f - if_chr_distance_to_pad_lt CHR_JOANNA, 400, \pad, /*goto*/ 0x09 - label 0x2f - if_chr_looking_at_object CHR_JOANNA, \object1, /*goto*/ 0x2f - endloop 0x04 - - label 0x09 -.endm - -.macro holo1_code_thing_p2 object1 object2 hint message - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, \hint - goto_first 0x04 - - label 0x2f - set_object_image \object2, 0x00, 0x12 - set_object_image \object1, 0x00, 0x13 - remove_displayed_text - message CHR_JOANNA, \message - assign_sound 0x81b0, CHANNEL_7 - control_sound_from_object CHANNEL_7, \object1, TRUE - restart_timer - - beginloop 0x57 - if_timer_gt 60, /*goto*/ 0x2f - goto_first 0x57 - - label 0x2f - set_object_flag_bank1 \object2, OBJECTFLAG1_00000001 - - beginloop 0x59 - if_stage_flag_eq STAGEFLAG_TRIGGER_HOLO_SUCCESS, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x2f - reloop 0x59 - - label 0x2f - if_stage_flag_eq STAGEFLAG_IN_HOLO1, FALSE, /*goto*/ 0x2f - endloop 0x59 - - label 0x2f - goto_first 0x8f -.endm - -func1021_holo1_code1: - label 0x8f - set_object_image 0x48, 0x00, 0x12 - unset_object_flag_bank1 0x4c, OBJECTFLAG1_00000001 - - holo1_code_thing_p1 0x48, 0x4c, 0x0240 - - set_object_flag_bank1 0x48, OBJECTFLAG1_00000001 - set_object_flag_bank1 0x4c, OBJECTFLAG1_00000001 - - // 0x1c55 = "LOOK UP - Press Down C Button to look up at the target." - // 0x1c65 = "Code 1 has been obtained." - holo1_code_thing_p2 0x48, 0x4c, 0x1c55, 0x1c65 - - endfunction - -func1021_holo1_code2: - label 0x8f - set_object_image 0x49, 0x00, 0x12 - unset_object_flag_bank1 0x4d, OBJECTFLAG1_00000001 - - holo1_code_thing_p1 0x49, 0x4d, 0x0241 - - set_object_flag_bank1 0x49, OBJECTFLAG1_00000001 - - // 0x1c56 = "LOOK DOWN - Press Up C Button to look down at the target." - // 0x1c66 = "Code 2 has been obtained." - holo1_code_thing_p2 0x49, 0x4d, 0x1c56, 0x1c66 - endfunction - -func1021_holo1_code3: - label 0x8f - unset_object_flag_bank1 0x4e, OBJECTFLAG1_00000001 - set_object_image 0x4a, 0x00, 0x12 - - holo1_code_thing_p1 0x4a, 0x4e, 0x0242 - - set_object_flag_bank1 0x4a, OBJECTFLAG1_00000001 - - // 0x1c55 = "LOOK UP - Press Down C Button to look up at the target." - // 0x1c67 = "Code 3 has been obtained." - holo1_code_thing_p2 0x4a, 0x4e, 0x1c55, 0x1c67 - endfunction - -func1021_holo1_code4: - label 0x8f - unset_object_flag_bank1 0x4f, OBJECTFLAG1_00000001 - set_object_image 0x4b, 0x00, 0x12 - - holo1_code_thing_p1 0x4b, 0x4f, 0x0243 - - set_object_flag_bank1 0x4b, OBJECTFLAG1_00000001 - - // 0x1c55 = "LOOK UP - Press Down C Button to look up at the target." - // 0x1c68 = "Code 4 has been obtained." - holo1_code_thing_p2 0x4b, 0x4f, 0x1c55, 0x1c68 - endfunction - -func0430_holo1_check_done: - label 0x04 - yield - if_object_flag_bank1 0x4c, OBJECTFLAG1_00040000, /*goto*/ 0x2f - goto_next 0x06 - - label 0x2f - dprint "DOH1" - if_object_flag_bank1 0x4d, OBJECTFLAG1_00040000, /*goto*/ 0x2f - goto_next 0x06 - - label 0x2f - dprint "DOH2" - if_object_flag_bank1 0x4e, OBJECTFLAG1_00040000, /*goto*/ 0x2f - goto_next 0x06 - - label 0x2f - dprint "DOH3" - if_object_flag_bank1 0x4f, OBJECTFLAG1_00040000, /*goto*/ 0x2f - goto_next 0x06 - - // All flags are set - label 0x2f - dprint "DOH4" - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c6a // "Holoprogram 1 has been completed successfully." - restart_timer - - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x2f - endloop 0x08 - - label 0x2f - set_stage_flag STAGEFLAG_TRIGGER_HOLO_SUCCESS - - label 0x06 - - beginloop 0x57 - if_stage_flag_eq STAGEFLAG_IN_HOLO1, FALSE, /*goto*/ 0x2f - endloop 0x57 - - label 0x2f - return - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1022_holo2_main: - label 0x80 - hide_object 0x54 - hide_object 0x55 - hide_object 0x56 - hide_object 0x57 - - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_IN_HOLO2, TRUE, /*goto*/ 0x81 - endloop 0x08 - - label 0x81 - set_stage_flag STAGEFLAG_CONSIDER_WARP - restart_timer - - beginloop 0x13 - if_timer_gt 30, /*goto*/ 0x2f - endloop 0x13 - - label 0x2f - lock_door 0x75, 0x40 - lock_door 0x76, 0x40 - close_door 0x75 - unset_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - if_chr_activated_object CHR_JOANNA, 0x75, /*goto*/ 0x2f - if_chr_activated_object CHR_JOANNA, 0x76, /*goto*/ 0x2f - label 0x2f - unset_object_flag_bank1 0x54, OBJECTFLAG1_00000001 - unset_object_flag_bank1 0x55, OBJECTFLAG1_00000001 - unset_object_flag_bank1 0x56, OBJECTFLAG1_00000001 - unset_object_flag_bank1 0x57, OBJECTFLAG1_00000001 - set_object_image 0x54, 0x00, 0x14 - set_object_image 0x55, 0x00, 0x14 - set_object_image 0x56, 0x00, 0x14 - set_object_image 0x57, 0x00, 0x14 - unset_stage_flag STAGEFLAG_HOLO_ABORTING - unset_stage_flag STAGEFLAG_TRIGGER_HOLO_SUCCESS - unset_stage_flag STAGEFLAG_TRIGGER_HOLO_FAILURE - unset_stage_flag STAGEFLAG_GENERAL_PURPOSE - hide_object 0x45 - show_object 0x54 - show_object 0x55 - show_object 0x56 - show_object 0x57 - hide_chr 0x04 - dprint "training" - label 0x2f - label 0x91 - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c63 // "Activate all of the wall switches. - Be quick, as they will quickly reset." - restart_timer - - beginloop 0x82 - if_stage_flag_eq STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x90 - if_stage_flag_eq STAGEFLAG_TRIGGER_HOLO_FAILURE, TRUE, /*goto*/ 0x85 - if_stage_flag_eq STAGEFLAG_TRIGGER_HOLO_SUCCESS, TRUE, /*goto*/ 0x83 - if_chr_activated_object CHR_JOANNA, 0x75, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x76, /*goto*/ 0x57 - goto_next 0x59 - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_timer_gt 1200, /*goto*/ 0x2f - endloop 0x82 - - label 0x2f - goto_first 0x91 - - label 0x85 - dprint "fail" - set_stage_flag STAGEFLAG_TRIGGER_HOLO_FAILURE - goto_next 0x90 - - label 0x83 - set_eeprom_flag EEPROMFLAG_CI_HOLO2_DONE - dprint "done" - set_stage_flag STAGEFLAG_TRIGGER_HOLO_SUCCESS - yield - goto_next 0x84 - - label 0x84 - remove_displayed_text - label 0x90 - set_stage_flag STAGEFLAG_CONSIDER_WARP - unlock_door 0x75, 0x40 - unlock_door 0x76, 0x40 - mute_channel CHANNEL_5 - mute_channel CHANNEL_6 - mute_channel CHANNEL_7 - show_chr 0x04 - dprint "aborted" - hide_object 0x54 - hide_object 0x55 - hide_object 0x56 - hide_object 0x57 - show_object 0x45 - restart_timer - - beginloop 0x09 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - remove_displayed_text - goto_first 0x08 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -.macro holo2_do_thing object function - restart_timer - beginloop 0x04 - if_chr_activated_object CHR_F3, \object, /*goto*/ 0x2f - if_object_flag_bank1 \object, OBJECTFLAG1_00000001, /*goto*/ 0x06 - reloop 0x04 - - label 0x06 - if_timer_gt 300, /*goto*/ 0x06 - reloop 0x04 - - label 0x06 - set_object_image \object, 0x00, 0x14 - unset_object_flag_bank1 \object, OBJECTFLAG1_00000001 - endloop 0x04 - - label 0x2f - assign_sound 0x043a, CHANNEL_7 - control_sound_from_object CHANNEL_7, \object, TRUE - set_object_image \object, 0x00, 0x13 - set_object_flag_bank1 \object, OBJECTFLAG1_00000001 - set_return_function CHR_SELF, \function - set_function CHR_SELF, 0x041b -.endm - -func1023_holo2_object1: - holo2_do_thing 0x54, 0x0431 - endfunction - -func1024_holo2_object2: - holo2_do_thing 0x55, 0x0432 - endfunction - -func1025_holo2_object3: - holo2_do_thing 0x56, 0x0433 - endfunction - -func1026_holo2_object4: - holo2_do_thing 0x57, 0x0434 - endfunction - -func041b_holo2_part1: - beginloop 0x8f - if_stage_flag_eq STAGEFLAG_IN_HOLO2, TRUE, /*goto*/ 0x04 - endloop 0x8f - - label 0x04 - yield - if_object_flag_bank1 0x54, OBJECTFLAG1_00000001, /*goto*/ 0x2f - goto_next 0x06 - - label 0x2f - if_object_flag_bank1 0x55, OBJECTFLAG1_00000001, /*goto*/ 0x2f - goto_next 0x06 - - label 0x2f - if_object_flag_bank1 0x56, OBJECTFLAG1_00000001, /*goto*/ 0x2f - goto_next 0x06 - - label 0x2f - if_object_flag_bank1 0x57, OBJECTFLAG1_00000001, /*goto*/ 0x2f - goto_next 0x06 - - label 0x2f - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c57 // "Holoprogram 2 has been completed successfully." - restart_timer - - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x2f - endloop 0x08 - - label 0x2f - set_stage_flag STAGEFLAG_TRIGGER_HOLO_SUCCESS - label 0x06 - return - endfunction - -func042f_holo2_part2: - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_IN_HOLO2, TRUE, /*goto*/ 0x04 - endloop 0x08 - - beginloop 0x04 - if_player_looking_at_something_maybe 0x14, 0x01, 0x00, /*goto*/ 0x06 - goto_next 0x2f - - label 0x06 - endloop 0x04 - - label 0x2f - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x09 - set_stage_flag STAGEFLAG_GENERAL_PURPOSE - set_stage_flag STAGEFLAG_HOLO_FAILED - restart_timer - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c69 // "Training failed - you must face forward." - set_function CHR_SELF, GFUNC_IDLE - set_object_image 0x54, 0x00, 0x12 - set_object_image 0x55, 0x00, 0x12 - set_object_image 0x56, 0x00, 0x12 - set_object_image 0x57, 0x00, 0x12 - - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x2f - endloop 0x08 - - label 0x2f - set_stage_flag STAGEFLAG_TRIGGER_HOLO_FAILURE - - beginloop 0x09 - if_stage_flag_eq STAGEFLAG_IN_HOLO2, FALSE, /*goto*/ 0x2f - endloop 0x09 - - label 0x2f - goto_first 0x08 - - endfunction - -func1027_holo3_main: - label 0x80 - hide_object 0x58 - hide_object 0x59 - hide_object 0x5a - hide_object 0x5b - hide_object 0x5c - hide_object 0x5d - hide_object 0x5e - hide_object 0x5f - hide_object 0x60 - hide_object 0x61 - hide_object 0x62 - hide_object 0x63 - hide_object 0x64 - hide_object 0x73 - hide_object 0x74 - hide_object 0x65 - hide_object 0x66 - hide_object 0x67 - hide_object 0x68 - hide_object 0x69 - hide_object 0x6a - hide_object 0x6b - hide_object 0x6c - hide_object 0x6d - hide_object 0x6e - hide_object 0x6f - hide_object 0x70 - hide_object 0x71 - hide_object 0x72 - - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_IN_HOLO3, TRUE, /*goto*/ 0x81 - endloop 0x08 - - label 0x81 - set_stage_flag STAGEFLAG_CONSIDER_WARP - restart_timer - - beginloop 0x13 - if_timer_gt 30, /*goto*/ 0x2f - endloop 0x13 - - label 0x2f - lock_door 0x75, 0x40 - lock_door 0x76, 0x40 - close_door 0x75 - unset_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - if_chr_activated_object CHR_JOANNA, 0x75, /*goto*/ 0x2f - if_chr_activated_object CHR_JOANNA, 0x76, /*goto*/ 0x2f - label 0x2f - unset_object_flag_bank1 0x65, OBJECTFLAG1_00000001 - unset_object_flag_bank1 0x66, OBJECTFLAG1_00000001 - set_object_image 0x65, 0x00, 0x14 - set_object_image 0x66, 0x00, 0x14 - unset_stage_flag STAGEFLAG_HOLO_ABORTING - unset_stage_flag STAGEFLAG_TRIGGER_HOLO_SUCCESS - unset_stage_flag STAGEFLAG_TRIGGER_HOLO_FAILURE - unset_stage_flag STAGEFLAG_GENERAL_PURPOSE - hide_object 0x45 - show_object 0x58 - show_object 0x59 - show_object 0x5a - show_object 0x5b - show_object 0x5c - show_object 0x5d - show_object 0x5e - show_object 0x5f - show_object 0x60 - show_object 0x61 - show_object 0x62 - show_object 0x63 - show_object 0x64 - show_object 0x73 - show_object 0x74 - show_object 0x65 - show_object 0x66 - show_object 0x67 - show_object 0x68 - show_object 0x69 - show_object 0x6a - show_object 0x6b - show_object 0x6c - show_object 0x6d - show_object 0x6e - show_object 0x6f - show_object 0x70 - show_object 0x71 - show_object 0x72 - hide_chr 0x04 - open_door 0x67 - open_door 0x68 - open_door 0x69 - open_door 0x6a - open_door 0x6b - open_door 0x6c - open_door 0x6d - open_door 0x6e - open_door 0x6f - open_door 0x70 - open_door 0x71 - open_door 0x72 - yield - close_door 0x67 - close_door 0x68 - close_door 0x69 - close_door 0x6a - close_door 0x6b - close_door 0x6c - close_door 0x6d - close_door 0x6e - close_door 0x6f - close_door 0x70 - close_door 0x71 - close_door 0x72 - dprint "training" - label 0x2f - label 0x91 - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c62 // "Activate all the switches." - restart_timer - - beginloop 0x82 - if_stage_flag_eq STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x90 - if_stage_flag_eq STAGEFLAG_TRIGGER_HOLO_FAILURE, TRUE, /*goto*/ 0x85 - if_stage_flag_eq STAGEFLAG_TRIGGER_HOLO_SUCCESS, TRUE, /*goto*/ 0x83 - if_chr_activated_object CHR_JOANNA, 0x75, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x76, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_timer_gt 1200, /*goto*/ 0x2f - endloop 0x82 - - label 0x2f - goto_first 0x91 - - label 0x85 - dprint "fail" - set_stage_flag STAGEFLAG_TRIGGER_HOLO_FAILURE - goto_next 0x84 - - label 0x83 - set_eeprom_flag EEPROMFLAG_CI_HOLO3_DONE - dprint "done" - set_stage_flag STAGEFLAG_TRIGGER_HOLO_SUCCESS - yield - goto_next 0x84 - - label 0x84 - label 0x90 - set_stage_flag STAGEFLAG_CONSIDER_WARP - unlock_door 0x75, 0x40 - unlock_door 0x76, 0x40 - remove_displayed_text - mute_channel CHANNEL_5 - mute_channel CHANNEL_6 - mute_channel CHANNEL_7 - show_chr 0x04 - dprint "aborted" - hide_object 0x58 - hide_object 0x59 - hide_object 0x5a - hide_object 0x5b - hide_object 0x5c - hide_object 0x5d - hide_object 0x5e - hide_object 0x5f - hide_object 0x60 - hide_object 0x61 - hide_object 0x62 - hide_object 0x63 - hide_object 0x64 - hide_object 0x73 - hide_object 0x74 - hide_object 0x65 - hide_object 0x66 - hide_object 0x67 - hide_object 0x68 - hide_object 0x69 - hide_object 0x6a - hide_object 0x6b - hide_object 0x6c - hide_object 0x6d - hide_object 0x6e - hide_object 0x6f - hide_object 0x70 - hide_object 0x71 - hide_object 0x72 - show_object 0x45 - restart_timer - - beginloop 0x09 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - remove_displayed_text - goto_first 0x08 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func102a_holo3_part1: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_IN_HOLO3, TRUE, /*goto*/ 0x2f - reloop 0x04 - - label 0x2f - if_chr_distance_to_pad_lt CHR_JOANNA, 300, 0x0123, /*goto*/ 0x09 - endloop 0x04 - - label 0x09 - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x06 - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c5f // "DUCK - Hold R Button, then press Down C Button to duck." - restart_timer - - beginloop 0x0a - if_timer_gt 1200, /*goto*/ 0x06 - endloop 0x0a - - label 0x06 - goto_first 0x04 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func102b_holo3_part2: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_IN_HOLO3, TRUE, /*goto*/ 0x2f - reloop 0x04 - - label 0x2f - if_chr_distance_to_pad_lt CHR_JOANNA, 300, 0x0124, /*goto*/ 0x09 - endloop 0x04 - - label 0x09 - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x06 - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c60 // "CROUCH - When ducking, hold R Button, then press Down C Button to duck." - restart_timer - - beginloop 0x0a - if_timer_gt 1200, /*goto*/ 0x06 - endloop 0x0a - - label 0x06 - goto_first 0x04 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func102c_holo3_object1: - beginloop 0x04 - if_chr_activated_object CHR_F3, 0x65, /*goto*/ 0x2f - endloop 0x04 - - label 0x2f - assign_sound 0x043a, CHANNEL_7 - control_sound_from_object CHANNEL_7, 0x65, TRUE - set_object_image 0x65, 0x00, 0x13 - set_object_flag_bank1 0x65, OBJECTFLAG1_00000001 - set_return_function CHR_SELF, FUNC_HOLO3_OBJECT1 - set_function CHR_SELF, FUNC_HOLO3_CHECK_DONE - endfunction - -func102d_holo3_object2: - beginloop 0x04 - if_chr_activated_object CHR_F3, 0x66, /*goto*/ 0x2f - endloop 0x04 - - label 0x2f - assign_sound 0x043a, CHANNEL_7 - control_sound_from_object CHANNEL_7, 0x65, TRUE - set_object_image 0x66, 0x00, 0x13 - set_object_flag_bank1 0x66, OBJECTFLAG1_00000001 - set_return_function CHR_SELF, FUNC_HOLO3_OBJECT2 - set_function CHR_SELF, FUNC_HOLO3_CHECK_DONE - endfunction - -func041c_holo3_check_done: - label 0x04 - yield - if_object_flag_bank1 0x65, OBJECTFLAG1_00000001, /*goto*/ 0x2f - goto_next 0x06 - - label 0x2f - if_object_flag_bank1 0x66, OBJECTFLAG1_00000001, /*goto*/ 0x2f - goto_next 0x06 - - label 0x2f - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x06 - set_stage_flag STAGEFLAG_GENERAL_PURPOSE - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c61 // "Holoprogram 3 has been completed successfully." - restart_timer - - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x2f - endloop 0x08 - - label 0x2f - set_stage_flag STAGEFLAG_TRIGGER_HOLO_SUCCESS - label 0x06 - return - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1028_holo4_main: - label 0x80 - - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_IN_HOLO4, TRUE, /*goto*/ 0x81 - endloop 0x08 - - label 0x81 - set_stage_flag STAGEFLAG_CONSIDER_WARP - lock_door 0x75, 0x40 - lock_door 0x76, 0x40 - close_door 0x75 - unset_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - if_chr_activated_object CHR_JOANNA, 0x75, /*goto*/ 0x2f - if_chr_activated_object CHR_JOANNA, 0x76, /*goto*/ 0x2f - label 0x2f - unset_stage_flag STAGEFLAG_HOLO_ABORTING - unset_stage_flag STAGEFLAG_TRIGGER_HOLO_SUCCESS - unset_stage_flag STAGEFLAG_TRIGGER_HOLO_FAILURE - unset_stage_flag STAGEFLAG_GENERAL_PURPOSE - hide_object 0x45 - hide_chr 0x04 - try_spawn_chr BODY_DDSHOCK, HEAD_RANDOM, 0x0274, FUNC_HOLO4_GUARD1, 0x00002210, /*goto*/ 0x08 - label 0x08 - dprint "training" - label 0x91 - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x2f - remove_displayed_text - if_chr_flag_bank3 0x0d, CHRFLAG3_00000040, /*goto*/ 0x61 - display_text 0x01, COLOR_04_ORANGE, 0x1c6b // "Unarmed combat - knock out the target. - Press Z Button repeatedly to punch." - goto_next 0x2f - - label 0x61 - if_chr_flag_bank3 0x0e, CHRFLAG3_00000040, /*goto*/ 0x62 - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c6c // "Now try against a moving target..." - goto_next 0x2f - - label 0x62 - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c6d // "And finally against a target that fights back." - goto_next 0x2f - - label 0x2f - restart_timer - - beginloop 0x82 - if_stage_flag_eq STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x90 - if_stage_flag_eq STAGEFLAG_TRIGGER_HOLO_FAILURE, TRUE, /*goto*/ 0x85 - if_stage_flag_eq STAGEFLAG_TRIGGER_HOLO_SUCCESS, TRUE, /*goto*/ 0x83 - if_chr_activated_object CHR_JOANNA, 0x75, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x76, /*goto*/ 0x57 - goto_next 0x59 - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_timer_gt 1200, /*goto*/ 0x2f - endloop 0x82 - - label 0x2f - goto_first 0x91 - - label 0x85 - dprint "fail" - set_stage_flag STAGEFLAG_TRIGGER_HOLO_FAILURE - goto_next 0x84 - - label 0x83 - set_eeprom_flag EEPROMFLAG_CI_HOLO4_DONE - dprint "done" - set_stage_flag STAGEFLAG_TRIGGER_HOLO_SUCCESS - yield - goto_next 0x84 - label 0x84 - label 0x90 - set_stage_flag STAGEFLAG_CONSIDER_WARP - unlock_door 0x75, 0x40 - unlock_door 0x76, 0x40 - remove_displayed_text - mute_channel CHANNEL_5 - mute_channel CHANNEL_6 - mute_channel CHANNEL_7 - show_chr 0x04 - remove_chr 0x0d - remove_chr 0x0e - remove_chr 0x0f - dprint "aborted" - show_object 0x45 - label 0x06 - remove_displayed_text - - beginloop 0x6d - if_stage_flag_eq STAGEFLAG_IN_HOLO4, FALSE, /*goto*/ 0x2f - endloop 0x6d - - label 0x2f - goto_first 0x08 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0403_holo4_guard1: - set_chr_id 0x0d - set_onshot_function FUNC_HOLO4_GUARD1 - - beginloop 0x04 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2f - if_chr_dying CHR_SELF, /*goto*/ 0x2f - if_chr_unloaded CHR_SELF, /*goto*/ 0x2f - endloop 0x04 - - label 0x2f - set_self_flag_bank3 CHRFLAG3_00000040 - try_spawn_chr BODY_DDSHOCK, HEAD_RANDOM, 0x0277, FUNC_HOLO4_GUARD2, 0x00002210, /*goto*/ 0x08 - label 0x08 - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c6c // "Now try against a moving target..." - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0404_holo4_guard2: - set_chr_id 0x0e - set_onshot_function FUNC_HOLO4_GUARD2 - label 0x04 - yield - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2f - if_chr_dying CHR_SELF, /*goto*/ 0x2f - if_chr_unloaded CHR_SELF, /*goto*/ 0x2f - goto_next 0x06 - - label 0x2f - set_self_flag_bank3 CHRFLAG3_00000040 - try_spawn_chr BODY_DDSHOCK, HEAD_RANDOM, 0x027a, FUNC_HOLO4_GUARD3, 0x00002210, /*goto*/ 0x0a - label 0x0a - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c6d // "And finally against a target that fights back." - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - label 0x06 - if_chr_distance_lt 500, /*goto*/ 0x2f - try_face_entity 0x0200, 0x0000, /*goto*/ 0x08 - - beginloop 0x08 - if_chr_distance_lt 500, /*goto*/ 0x2f - endloop 0x08 - - label 0x2f - restart_timer - retreat 0x02, 0x01 - - beginloop 0x09 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - goto_first 0x04 - - endfunction - -func0405_holo4_guard3: - set_chr_id 0x0f - set_onshot_function FUNC_HOLO4_GUARD3 - restart_timer - - beginloop 0x04 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - set_function CHR_SELF, FUNC_HOLO_GUARD_UNARMED_UNALERT - endfunction - -func1033_holo4_part1: - beginloop 0x8f - if_stage_flag_eq STAGEFLAG_IN_HOLO4, TRUE, /*goto*/ 0x04 - endloop 0x8f - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x57 - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x57 - if_chr_death_animation_finished 0x0d, /*goto*/ 0x2f - if_chr_dying 0x0d, /*goto*/ 0x2f - if_chr_unloaded 0x0d, /*goto*/ 0x2f - endloop 0x04 - - label 0x2f - yield - yield - yield - yield - yield - if_stage_flag_eq STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x57 - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x57 - if_chr_death_animation_finished 0x0e, /*goto*/ 0x2f - if_chr_dying 0x0e, /*goto*/ 0x2f - if_chr_unloaded 0x0e, /*goto*/ 0x2f - goto_first 0x04 - - label 0x2f - yield - yield - yield - yield - yield - if_stage_flag_eq STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x57 - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x57 - if_chr_death_animation_finished 0x0f, /*goto*/ 0x2f - if_chr_dying 0x0f, /*goto*/ 0x2f - if_chr_unloaded 0x0f, /*goto*/ 0x2f - goto_first 0x04 - - label 0x2f - restart_timer - set_stage_flag STAGEFLAG_GENERAL_PURPOSE - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c58 // "Holoprogram 4 has been completed successfully." - - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x57 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - set_stage_flag STAGEFLAG_TRIGGER_HOLO_SUCCESS - - beginloop 0x57 - if_stage_flag_eq STAGEFLAG_IN_HOLO4, FALSE, /*goto*/ 0x2f - endloop 0x57 - - label 0x2f - goto_first 0x8f - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1029_holo5_main: - label 0x80 - - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_IN_HOLO5, TRUE, /*goto*/ 0x81 - endloop 0x08 - - label 0x81 - set_stage_flag STAGEFLAG_CONSIDER_WARP - lock_door 0x75, 0x40 - lock_door 0x76, 0x40 - close_door 0x75 - unset_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - if_chr_activated_object CHR_JOANNA, 0x75, /*goto*/ 0x2f - if_chr_activated_object CHR_JOANNA, 0x76, /*goto*/ 0x2f - label 0x2f - unset_stage_flag STAGEFLAG_HOLO_ABORTING - unset_stage_flag STAGEFLAG_TRIGGER_HOLO_SUCCESS - unset_stage_flag STAGEFLAG_TRIGGER_HOLO_FAILURE - unset_stage_flag STAGEFLAG_GENERAL_PURPOSE - hide_object 0x45 - hide_chr 0x04 - try_spawn_chr BODY_DDSHOCK, HEAD_RANDOM, 0x0126, FUNC_HOLO5_INIT_GUARD1, 0x00002210, /*goto*/ 0x06 - label 0x06 - yield - dprint "training" - label 0x91 - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x2f - remove_displayed_text - if_chr_flag_bank3 0x10, CHRFLAG3_00000040, /*goto*/ 0x61 - display_text 0x01, COLOR_04_ORANGE, 0x1c5c // "Disarm this live target if you can." - goto_next 0x2f - - label 0x61 - if_chr_flag_bank3 0x11, CHRFLAG3_00000040, /*goto*/ 0x62 - display_text 0x01, COLOR_04_ORANGE, 0x1c5d // "Knock out this target - stealth is the key." - goto_next 0x2f - - label 0x62 - display_text 0x01, COLOR_04_ORANGE, 0x1c5e // "And the final guard..." - goto_next 0x2f - - label 0x2f - restart_timer - - beginloop 0x82 - if_stage_flag_eq STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x90 - if_stage_flag_eq STAGEFLAG_TRIGGER_HOLO_FAILURE, TRUE, /*goto*/ 0x85 - if_stage_flag_eq STAGEFLAG_TRIGGER_HOLO_SUCCESS, TRUE, /*goto*/ 0x83 - if_chr_activated_object CHR_JOANNA, 0x75, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x76, /*goto*/ 0x57 - goto_next 0x59 - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_timer_gt 1200, /*goto*/ 0x2f - endloop 0x82 - - label 0x2f - goto_first 0x91 - - label 0x2f - goto_first 0x82 - - label 0x85 - dprint "fail" - set_stage_flag STAGEFLAG_TRIGGER_HOLO_FAILURE - goto_next 0x84 - - label 0x83 - set_eeprom_flag EEPROMFLAG_CI_HOLO5_DONE - dprint "done" - set_stage_flag STAGEFLAG_TRIGGER_HOLO_SUCCESS - yield - goto_next 0x84 - - label 0x84 - label 0x90 - set_stage_flag STAGEFLAG_CONSIDER_WARP - unlock_door 0x75, 0x40 - unlock_door 0x76, 0x40 - remove_displayed_text - mute_channel CHANNEL_5 - mute_channel CHANNEL_6 - mute_channel CHANNEL_7 - show_chr 0x04 - remove_chr 0x10 - remove_chr 0x11 - remove_chr 0x12 - dprint "aborted" - show_object 0x45 - remove_displayed_text - - beginloop 0x6d - if_stage_flag_eq STAGEFLAG_IN_HOLO5, FALSE, /*goto*/ 0x2f - endloop 0x6d - - label 0x2f - goto_first 0x08 - - endfunction - -func0406_holo5_init_guard1: - set_alertness 100 - set_chr_id 0x10 - try_draw_weapon MODEL_CHRFALCON2, WEAPON_FALCON2, 0x40000000, /*goto*/ 0x06 - label 0x06 - set_function CHR_SELF, FUNC_HOLO5_GUARD1 - endfunction - -func0407_holo5_guard1: - set_self_flag_bankx CHRFLAG0_80000000, BANK_0 - dprint "CREATED 4" - set_onshot_function FUNC_HOLO5_GUARD1 - set_chr_health CHR_SELF, 300 - set_armor 300 - label 0x04 - yield - label 0x2f - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x30 - if_chr_dying CHR_SELF, /*goto*/ 0x30 - if_chr_unloaded CHR_SELF, /*goto*/ 0x30 - if_has_gun CHR_SELF, /*goto*/ 0x06 - label 0x2f - set_self_flag_bankx CHRFLAG0_00008000, BANK_0 - set_self_flag_bank3 CHRFLAG3_00000040 - set_onshot_function GFUNC_IDLE - goto_next 0x0a - label 0x30 - restart_timer - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - - beginloop 0x62 - if_timer_gt 60, /*goto*/ 0x63 - endloop 0x62 - - label 0x63 - set_stage_flag STAGEFLAG_TRIGGER_HOLO_FAILURE - set_stage_flag STAGEFLAG_GENERAL_PURPOSE - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - label 0x0a - set_self_flag_bank3 CHRFLAG3_00000040 - set_self_flag_bankx CHRFLAG0_00008000, BANK_0 - surrender - message CHR_JOANNA, 0x1c5a // "Guard has been successfully disarmed." - - beginloop 0x59 - try_spawn_chr BODY_DDSHOCK, HEAD_RANDOM, 0x0272, FUNC_HOLO5_INIT_GUARD2, 0x00002210, /*goto*/ 0x2f - endloop 0x59 - - label 0x2f - set_onshot_function GFUNC_IDLE - - beginloop 0x0b - endloop 0x0b - - label 0x06 - if_chr_distance_lt 300, /*goto*/ 0x2f - try_face_entity 0x0200, 0x0000, /*goto*/ 0x08 - - beginloop 0x08 - if_chr_distance_lt 300, /*goto*/ 0x2f - endloop 0x08 - - label 0x2f - restart_timer - retreat 0x02, 0x01 - - beginloop 0x09 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - goto_first 0x04 - - endfunction - -func0408_holo5_init_guard2: - set_chr_health CHR_SELF, 200 - set_alertness 100 - set_chr_id 0x11 - try_draw_weapon MODEL_CHRFALCON2, WEAPON_FALCON2, 0x40000000, /*goto*/ 0x06 - label 0x06 - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c5d // "Knock out this target - stealth is the key." - set_function CHR_SELF, FUNC_HOLO5_GUARD2 - endfunction - -func0409_holo5_guard2: - dprint "CREATED 5" - set_onshot_function FUNC_HOLO5_GUARD2 - label 0x04 - yield - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2f - if_chr_dying CHR_SELF, /*goto*/ 0x2f - if_chr_unloaded CHR_SELF, /*goto*/ 0x2f - restart_timer - assign_path 0 - start_path - label 0x08 - yield - dprint "On Patrol" - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2f - if_chr_dying CHR_SELF, /*goto*/ 0x2f - if_chr_unloaded CHR_SELF, /*goto*/ 0x2f - if_target_chr_in_sight /*goto*/ 0x09 - unset_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_alertness 0 - goto_first 0x08 - - label 0x06 - label 0x09 - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - try_face_entity 0x0200, 0x0000, /*goto*/ 0x0a - - beginloop 0x0a - if_chr_sees_player /*goto*/ 0x06 - goto_first 0x04 - - label 0x06 - endloop 0x0a - - label 0x2f - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_00000040 - - beginloop 0x57 - try_spawn_chr BODY_DDSHOCK, HEAD_RANDOM, 0x0125, FUNC_HOLO5_INIT_GUARD3, 0x00002210, /*goto*/ 0x06 - endloop 0x57 - - label 0x06 - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040a_holo5_init_guard3: - set_reaction_speed 100 - set_chr_id 0x12 - try_draw_weapon MODEL_CHRFALCON2, WEAPON_FALCON2, 0x40000000, /*goto*/ 0x06 - label 0x06 - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c5e // "And the final guard..." - set_alertness 100 - set_function CHR_SELF, FUNC_HOLO5_GUARD3 - endfunction - -func040b_holo5_guard3: - dprint "CREATED 6" - set_onshot_function FUNC_HOLO_GUARD_ARMED_UNALERT - restart_timer - - beginloop 0x08 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - set_function CHR_SELF, FUNC_HOLO_GUARD_ARMED_UNALERT - - beginloop 0x04 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2f - if_chr_dying CHR_SELF, /*goto*/ 0x2f - if_chr_unloaded CHR_SELF, /*goto*/ 0x2f - endloop 0x04 - - label 0x2f - restart_timer - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c59 // "Holoprogram 5 has been completed successfully." - - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - set_stage_flag STAGEFLAG_TRIGGER_HOLO_SUCCESS - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1034_holo5_part1: - beginloop 0x8f - if_stage_flag_eq STAGEFLAG_IN_HOLO5, TRUE, /*goto*/ 0x2f - endloop 0x8f - - label 0x2f - yield - yield - yield - yield - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d - if_chr_flag_bankx 0x10, CHRFLAG0_00008000, BANK_0, /*goto*/ 0x2f - dprint "CHR 4FD" - label 0x06 - endloop 0x04 - - label 0x2f - yield - yield - yield - yield - if_stage_flag_eq STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x0d - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d - if_chr_death_animation_finished 0x11, /*goto*/ 0x2f - if_chr_dying 0x11, /*goto*/ 0x2f - if_chr_unloaded 0x11, /*goto*/ 0x2f - goto_first 0x04 - - label 0x2f - dprint "CHR 5FD" - yield - yield - yield - yield - if_stage_flag_eq STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x0d - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d - if_chr_death_animation_finished 0x12, /*goto*/ 0x2f - if_chr_dying 0x12, /*goto*/ 0x2f - if_chr_unloaded 0x12, /*goto*/ 0x2f - goto_first 0x04 - - label 0x2f - dprint "CHR 6FD" - restart_timer - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d - set_stage_flag STAGEFLAG_GENERAL_PURPOSE - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c59 // "Holoprogram 5 has been completed successfully." - - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x0d - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - set_stage_flag STAGEFLAG_TRIGGER_HOLO_SUCCESS - - beginloop 0x0d - if_stage_flag_eq STAGEFLAG_IN_HOLO5, FALSE, /*goto*/ 0x2f - endloop 0x0d - - label 0x2f - goto_first 0x8f - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func102e_holo6_main: - label 0x80 - - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_IN_HOLO6, TRUE, /*goto*/ 0x81 - endloop 0x08 - - label 0x81 - set_stage_flag STAGEFLAG_CONSIDER_WARP - lock_door 0x75, 0x40 - lock_door 0x76, 0x40 - close_door 0x75 - unset_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - if_chr_activated_object CHR_JOANNA, 0x75, /*goto*/ 0x2f - if_chr_activated_object CHR_JOANNA, 0x76, /*goto*/ 0x2f - label 0x2f - unset_stage_flag STAGEFLAG_HOLO_ABORTING - unset_stage_flag STAGEFLAG_TRIGGER_HOLO_SUCCESS - unset_stage_flag STAGEFLAG_TRIGGER_HOLO_FAILURE - unset_stage_flag STAGEFLAG_GENERAL_PURPOSE - hide_object 0x45 - hide_chr 0x04 - - beginloop 0x57 - try_spawn_chr BODY_DDSHOCK, HEAD_RANDOM, 0x0127, FUNC_HOLO6_INIT_GUARD1, 0x00002210, /*goto*/ 0x59 - endloop 0x57 - - beginloop 0x59 - try_spawn_chr BODY_DDSHOCK, HEAD_RANDOM, 0x0128, FUNC_HOLO6_INIT_GUARD2, 0x00002210, /*goto*/ 0x5b - endloop 0x59 - - beginloop 0x5b - try_spawn_chr BODY_DDSHOCK, HEAD_RANDOM, 0x0129, FUNC_HOLO6_INIT_GUARD3, 0x00002210, /*goto*/ 0x5c - endloop 0x5b - - beginloop 0x5c - try_spawn_chr BODY_DDSHOCK, HEAD_RANDOM, 0x012a, FUNC_HOLO6_INIT_GUARD4, 0x00002210, /*goto*/ 0x5d - endloop 0x5c - - label 0x5d - dprint "training" - label 0x2f - label 0x91 - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x2f - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c6e // "Defeat all enemies without getting hit." - label 0x2f - restart_timer - - beginloop 0x82 - if_stage_flag_eq STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x90 - if_stage_flag_eq STAGEFLAG_TRIGGER_HOLO_FAILURE, TRUE, /*goto*/ 0x85 - if_stage_flag_eq STAGEFLAG_TRIGGER_HOLO_SUCCESS, TRUE, /*goto*/ 0x83 - if_chr_activated_object CHR_JOANNA, 0x75, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x76, /*goto*/ 0x57 - goto_next 0x59 - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_timer_gt 1200, /*goto*/ 0x2f - endloop 0x82 - - label 0x2f - goto_first 0x91 - - label 0x85 - dprint "fail" - set_stage_flag STAGEFLAG_TRIGGER_HOLO_FAILURE - goto_next 0x84 - - label 0x83 - set_eeprom_flag EEPROMFLAG_CI_HOLO6_DONE - dprint "done" - set_stage_flag STAGEFLAG_TRIGGER_HOLO_SUCCESS - yield - goto_next 0x84 - - label 0x84 - label 0x90 - set_stage_flag STAGEFLAG_CONSIDER_WARP - unlock_door 0x75, 0x40 - unlock_door 0x76, 0x40 - remove_displayed_text - mute_channel CHANNEL_5 - mute_channel CHANNEL_6 - mute_channel CHANNEL_7 - show_chr 0x04 - remove_chr 0x13 - remove_chr 0x14 - remove_chr 0x15 - remove_chr 0x16 - dprint "aborted" - show_object 0x45 - label 0x06 - remove_displayed_text - - beginloop 0x6d - if_stage_flag_eq STAGEFLAG_IN_HOLO6, FALSE, /*goto*/ 0x2f - endloop 0x6d - - label 0x2f - goto_first 0x08 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040c_holo6_init_guard1: - set_chr_id 0x13 - set_function CHR_SELF, FUNC_HOLO_GUARD_UNARMED_UNALERT - endfunction - -func040d_holo6_init_guard2: - set_chr_id 0x14 - set_function CHR_SELF, FUNC_HOLO_GUARD_UNARMED_UNALERT - endfunction - -func040e_holo6_init_guard3: - set_chr_id 0x15 - set_function CHR_SELF, FUNC_HOLO_GUARD_UNARMED_UNALERT - endfunction - -func040f_holo6_init_guard4: - set_chr_id 0x16 - set_function CHR_SELF, FUNC_HOLO_GUARD_UNARMED_UNALERT - endfunction - -func0415_holo_guard_unarmed_unalert: - set_alertness 100 - set_chr_health CHR_SELF, 100 - yield - yield - yield - cmd0145_rebuild_groups - cmd0146_rebuild_groups - yield - yield - yield - yield - set_action ACTION_SCAN, FALSE - set_onshot_function FUNC_HOLO_GUARD_UNARMED_ALERT - restart_timer - - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x04 - if_player_looking_at_something_maybe 0x28, 0x01, 0x00, /*goto*/ 0x04 - endloop 0x08 - - beginloop 0x04 - if_chr_distance_lt 500, /*goto*/ 0x06 - call_rng - if_rand_lt 1, /*goto*/ 0x06 - label 0x2f - endloop 0x04 - - label 0x06 - set_function CHR_SELF, FUNC_HOLO_GUARD_UNARMED_ALERT - endfunction - -func0416_holo_guard_unarmed_alert: - set_onshot_function FUNC_HOLO_GUARD_UNARMED_ALERT - set_action ACTION_HAND_COMBAT, FALSE - if_chr_injured_target CHR_SELF, /*goto*/ 0x09 - label 0x8f - restart_timer - try_run_to_target_chr /*goto*/ 0x08 - - beginloop 0x08 - if_chr_stopped /*goto*/ 0x06 - if_chr_distance_lt 300, /*goto*/ 0x2f - if_timer_gt 15, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - goto_first 0x8f - - label 0x2f - set_return_function CHR_SELF, FUNC_HOLO_GUARD_UNARMED_ALERT - set_function CHR_SELF, FUNC_HOLO_GUARD_UNARMED_ALERT2 - - label 0x09 - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0a - set_stage_flag STAGEFLAG_GENERAL_PURPOSE - set_stage_flag STAGEFLAG_HOLO_FAILED - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c6f // "Training failed - you have been hit." - restart_timer - set_function CHR_SELF, GFUNC_IDLE - - beginloop 0x5e - if_stage_flag_eq STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x2f - if_timer_gt 180, /*goto*/ 0x2f - endloop 0x5e - - label 0x2f - set_stage_flag STAGEFLAG_TRIGGER_HOLO_FAILURE - label 0x0a - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0416_holo_guard_unarmed_alert2: - set_action ACTION_HAND_COMBAT, FALSE - restart_timer - - beginloop 0x04 - if_chr_dying TARGET_CHR, /*goto*/ 0x57 - if_chr_unloaded TARGET_CHR, /*goto*/ 0x57 - if_chr_distance_gt 100, /*goto*/ 0x2f - if_in_disarm_range /*goto*/ 0x2f - if_timer_gt 120, /*goto*/ 0x10 - endloop 0x04 - - label 0x2f - if_chr_distance_gt 400, /*goto*/ 0x10 - if_chr_distance_lt 100, /*goto*/ 0x06 - restart_timer - try_run_to_target_chr /*goto*/ 0x08 - - beginloop 0x08 - if_chr_dying TARGET_CHR, /*goto*/ 0x57 - if_chr_unloaded TARGET_CHR, /*goto*/ 0x57 - if_timer_gt 20, /*goto*/ 0x10 - if_chr_stopped /*goto*/ 0x10 - if_chr_lost_track_of_target_maybe /*goto*/ 0x0e - label 0x0e - if_chr_distance_gt 400, /*goto*/ 0x10 - if_chr_distance_lt 100, /*goto*/ 0x06 - endloop 0x08 - - label 0x2f - restart_timer - goto_first 0x04 - - label 0x06 - restart_timer - 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_dying TARGET_CHR, /*goto*/ 0x57 - if_chr_unloaded TARGET_CHR, /*goto*/ 0x57 - if_chr_distance_gt 400, /*goto*/ 0x10 - if_angle_to_target_chr_lt 10, /*goto*/ 0x06 - cmd004f 246, /*goto*/ 0x06 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x09 - - label 0x2f - restart_timer - goto_first 0x04 - - label 0x06 - try_punch_or_kick /*goto*/ 0x2f - restart_timer - goto_first 0x04 - - label 0x2f - - beginloop 0x0a - if_timer_gt 180, /*goto*/ 0x06 - if_chr_injured_target CHR_SELF, /*goto*/ 0x2f - if_chr_stopped /*goto*/ 0x06 - endloop 0x0a - - label 0x06 - if_chr_injured_target CHR_SELF, /*goto*/ 0x2f - say_quip CHR_JOANNA, 0x16, 0x19, 0x03, 0x00, BANK_0, 0x00, 0x00 - say_quip CHR_JOANNA, 0x17, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00 - goto_next 0x06 - - label 0x2f - say_quip CHR_JOANNA, 0x15, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00 - say_quip CHR_JOANNA, 0x15, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00 - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0f - set_stage_flag STAGEFLAG_GENERAL_PURPOSE - set_stage_flag STAGEFLAG_HOLO_FAILED - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c6f // "Training failed - you have been hit." - restart_timer - set_function CHR_SELF, GFUNC_IDLE - - beginloop 0x5e - if_timer_gt 180, /*goto*/ 0x2f - endloop 0x5e - - label 0x2f - set_stage_flag STAGEFLAG_TRIGGER_HOLO_FAILURE - label 0x0f - set_function CHR_SELF, GFUNC_IDLE - - label 0x06 - label 0x57 - label 0x10 - return - endfunction - -func041a_handle_holo_failure: - beginloop 0x8f - if_stage_flag_eq STAGEFLAG_HOLO_FAILED, TRUE, /*goto*/ 0x2f - endloop 0x8f - - label 0x2f - restart_timer - - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x2f - if_timer_gt 180, /*goto*/ 0x2f - endloop 0x08 - - label 0x2f - set_stage_flag STAGEFLAG_TRIGGER_HOLO_FAILURE - label 0x09 - unset_stage_flag STAGEFLAG_HOLO_FAILED - goto_first 0x8f - - endfunction - -func102f_holo1_part1: - beginloop 0x8f - if_stage_flag_eq STAGEFLAG_IN_HOLO6, TRUE, /*goto*/ 0x04 - endloop 0x8f - - beginloop 0x04 - yield - yield - yield - dprint "NO DEAD" - if_stage_flag_eq STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x0d - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d - if_chr_dying 0x13, /*goto*/ 0x2f - if_chr_death_animation_finished 0x13, /*goto*/ 0x2f - if_chr_unloaded 0x13, /*goto*/ 0x2f - endloop 0x04 - - label 0x2f - yield - yield - yield - yield - dprint "CHR 7FD" - if_stage_flag_eq STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x0d - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d - if_chr_dying 0x14, /*goto*/ 0x2f - if_chr_death_animation_finished 0x14, /*goto*/ 0x2f - if_chr_unloaded 0x14, /*goto*/ 0x2f - goto_first 0x04 - - label 0x2f - yield - yield - yield - yield - dprint "CHR 8FD" - if_stage_flag_eq STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x0d - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d - if_chr_dying 0x15, /*goto*/ 0x2f - if_chr_death_animation_finished 0x15, /*goto*/ 0x2f - if_chr_unloaded 0x15, /*goto*/ 0x2f - goto_first 0x04 - - label 0x2f - yield - yield - yield - yield - dprint "CHR 9FD" - if_stage_flag_eq STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x0d - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d - if_chr_dying 0x16, /*goto*/ 0x2f - if_chr_death_animation_finished 0x16, /*goto*/ 0x2f - if_chr_unloaded 0x16, /*goto*/ 0x2f - goto_first 0x04 - - label 0x2f - dprint "CHR 10FD" - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d - set_stage_flag STAGEFLAG_GENERAL_PURPOSE - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c70 // "Holoprogram 6 has been completed successfully." - restart_timer - - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x2f - endloop 0x08 - - label 0x2f - set_stage_flag STAGEFLAG_TRIGGER_HOLO_SUCCESS - - beginloop 0x0d - if_stage_flag_eq STAGEFLAG_IN_HOLO6, FALSE, /*goto*/ 0x2f - endloop 0x0d - - label 0x2f - goto_first 0x8f - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1030_holo7_main: - label 0x80 - - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_IN_HOLO7, TRUE, /*goto*/ 0x81 - endloop 0x08 - - label 0x81 - set_stage_flag STAGEFLAG_CONSIDER_WARP - lock_door 0x75, 0x40 - lock_door 0x76, 0x40 - close_door 0x75 - unset_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - if_chr_activated_object CHR_JOANNA, 0x75, /*goto*/ 0x2f - if_chr_activated_object CHR_JOANNA, 0x76, /*goto*/ 0x2f - label 0x2f - unset_stage_flag STAGEFLAG_HOLO_ABORTING - unset_stage_flag STAGEFLAG_TRIGGER_HOLO_SUCCESS - unset_stage_flag STAGEFLAG_TRIGGER_HOLO_FAILURE - unset_stage_flag STAGEFLAG_GENERAL_PURPOSE - hide_object 0x45 - hide_chr 0x04 - - beginloop 0x57 - try_spawn_chr BODY_DDSHOCK, HEAD_RANDOM, 0x012b, FUNC_HOLO7_INIT_GUARD1, 0x00002210, /*goto*/ 0x59 - endloop 0x57 - - beginloop 0x59 - try_spawn_chr BODY_DDSHOCK, HEAD_RANDOM, 0x012c, FUNC_HOLO7_INIT_GUARD2, 0x00002210, /*goto*/ 0x5b - endloop 0x59 - - beginloop 0x5b - try_spawn_chr BODY_DDSHOCK, HEAD_RANDOM, 0x012d, FUNC_HOLO7_INIT_GUARD3, 0x00002210, /*goto*/ 0x5c - endloop 0x5b - - beginloop 0x5c - try_spawn_chr BODY_DDSHOCK, HEAD_RANDOM, 0x012e, FUNC_HOLO7_INIT_GUARD4, 0x00002210, /*goto*/ 0x5d - endloop 0x5c - - beginloop 0x5d - try_spawn_chr BODY_DDSHOCK, HEAD_RANDOM, 0x012f, FUNC_HOLO7_INIT_GUARD5, 0x00002210, /*goto*/ 0x5e - endloop 0x5d - - label 0x5e - dprint "training" - label 0x2f - label 0x91 - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x2f - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c6e // "Defeat all enemies without getting hit." - label 0x2f - restart_timer - - beginloop 0x82 - dprint "tran loop" - if_stage_flag_eq STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x90 - if_stage_flag_eq STAGEFLAG_TRIGGER_HOLO_FAILURE, TRUE, /*goto*/ 0x85 - if_stage_flag_eq STAGEFLAG_TRIGGER_HOLO_SUCCESS, TRUE, /*goto*/ 0x83 - if_chr_activated_object CHR_JOANNA, 0x75, /*goto*/ 0x57 - if_chr_activated_object CHR_JOANNA, 0x76, /*goto*/ 0x57 - goto_next 0x59 - - label 0x57 - set_stage_flag STAGEFLAG_TRIGGER_CANNOTEXIT_MSG - label 0x59 - if_timer_gt 1200, /*goto*/ 0x2f - endloop 0x82 - - label 0x2f - goto_first 0x91 - - label 0x85 - dprint "fail" - set_stage_flag STAGEFLAG_TRIGGER_HOLO_FAILURE - goto_next 0x84 - - label 0x83 - set_eeprom_flag EEPROMFLAG_CI_HOLO7_DONE - dprint "done" - set_stage_flag STAGEFLAG_TRIGGER_HOLO_SUCCESS - yield - goto_next 0x84 - - label 0x84 - label 0x90 - set_stage_flag STAGEFLAG_CONSIDER_WARP - unlock_door 0x75, 0x40 - unlock_door 0x76, 0x40 - remove_displayed_text - mute_channel CHANNEL_5 - mute_channel CHANNEL_6 - mute_channel CHANNEL_7 - show_chr 0x04 - remove_chr 0x19 - remove_chr 0x1a - remove_chr 0x1b - remove_chr 0x17 - remove_chr 0x18 - dprint "aborted" - show_object 0x45 - remove_displayed_text - - beginloop 0x6d - if_stage_flag_eq STAGEFLAG_IN_HOLO7, FALSE, /*goto*/ 0x2f - endloop 0x6d - - label 0x2f - goto_first 0x08 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0412_holo7_init_guard1: - set_self_flag_bankx CHRFLAG0_80000000, BANK_0 - set_chr_id 0x19 - try_draw_weapon MODEL_CHRFALCON2, WEAPON_FALCON2, 0x00000000, /*goto*/ 0x06 - label 0x06 - set_function CHR_SELF, FUNC_HOLO_GUARD_ARMED_UNALERT - endfunction - -func0413_holo7_init_guard2: - set_self_flag_bankx CHRFLAG0_80000000, BANK_0 - set_chr_id 0x1a - try_draw_weapon MODEL_CHRFALCON2, WEAPON_FALCON2, 0x00000000, /*goto*/ 0x06 - label 0x06 - set_function CHR_SELF, FUNC_HOLO_GUARD_ARMED_UNALERT - endfunction - -func0414_holo7_init_guard3: - set_self_flag_bankx CHRFLAG0_80000000, BANK_0 - set_chr_id 0x1b - try_draw_weapon MODEL_CHRFALCON2, WEAPON_FALCON2, 0x00000000, /*goto*/ 0x06 - label 0x06 - set_function CHR_SELF, FUNC_HOLO_GUARD_ARMED_UNALERT - endfunction - -func0410_holo7_init_guard4: - set_chr_id 0x17 - set_function CHR_SELF, FUNC_HOLO_GUARD_UNARMED_UNALERT - endfunction - -func0411_holo7_init_guard5: - set_chr_id 0x18 - set_function CHR_SELF, FUNC_HOLO_GUARD_UNARMED_UNALERT - endfunction - -func0418_holo_guard_armed_unalert: - set_accuracy 50 - set_reaction_speed 20 - set_chr_health CHR_SELF, 40 - yield - yield - yield - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_action ACTION_SCAN, FALSE - set_onshot_function FUNC_HOLO_GUARD_UNARMED_ALERT - restart_timer - - beginloop 0x04 - if_chr_distance_lt 500, /*goto*/ 0x06 - if_timer_gt 300, /*goto*/ 0x2f - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x06 - endloop 0x04 - - label 0x2f - call_rng - goto_next 0x06 - - label 0x2f - goto_first 0x04 - - label 0x06 - set_function CHR_SELF, FUNC_HOLO_GUARD_ARMED_ALERT - endfunction - -func0419_holo_guard_armed_alert: - set_onshot_function FUNC_HOLO_GUARD_ARMED_ALERT - if_has_gun CHR_SELF, /*goto*/ 0x2f - set_group_alertness 100 - set_return_function CHR_SELF, FUNC_HOLO_GUARD_UNARMED_ALERT - set_function CHR_SELF, FUNC_HOLO_GUARD_UNARMED_ALERT - label 0x2f - label 0x8f - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x04 - - beginloop 0x04 - if_in_disarm_range /*goto*/ 0x2f - endloop 0x04 - - label 0x2f - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x08 - - beginloop 0x08 - if_chr_injured_target CHR_SELF, /*goto*/ 0x2f - if_chr_stopped /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - goto_first 0x8f - - say_quip CHR_JOANNA, 0x15, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00 - say_quip CHR_JOANNA, 0x15, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00 - label 0x2f - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d - set_stage_flag STAGEFLAG_GENERAL_PURPOSE - set_stage_flag STAGEFLAG_HOLO_FAILED - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c6f // "Training failed - you have been hit." - restart_timer - set_function CHR_SELF, GFUNC_IDLE - - beginloop 0x5e - if_stage_flag_eq STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x2f - if_timer_gt 180, /*goto*/ 0x2f - endloop 0x5e - - label 0x2f - set_stage_flag STAGEFLAG_TRIGGER_HOLO_FAILURE - label 0x0d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1031_holo7_part1: - beginloop 0x8f - if_stage_flag_eq STAGEFLAG_IN_HOLO7, TRUE, /*goto*/ 0x04 - endloop 0x8f - - beginloop 0x04 - yield - yield - yield - yield - if_stage_flag_eq STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x0d - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d - if_chr_dying 0x19, /*goto*/ 0x2f - if_chr_death_animation_finished 0x19, /*goto*/ 0x2f - if_chr_unloaded 0x19, /*goto*/ 0x2f - endloop 0x04 - - label 0x2f - yield - yield - yield - yield - yield - if_stage_flag_eq STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x0d - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d - if_chr_dying 0x1a, /*goto*/ 0x2f - if_chr_death_animation_finished 0x1a, /*goto*/ 0x2f - if_chr_unloaded 0x1a, /*goto*/ 0x2f - goto_first 0x04 - - label 0x2f - yield - yield - yield - yield - yield - if_stage_flag_eq STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x0d - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d - if_chr_dying 0x1b, /*goto*/ 0x2f - if_chr_death_animation_finished 0x1b, /*goto*/ 0x2f - if_chr_unloaded 0x1b, /*goto*/ 0x2f - goto_first 0x04 - - label 0x2f - yield - yield - yield - yield - yield - if_stage_flag_eq STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x0d - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d - if_chr_dying 0x17, /*goto*/ 0x2f - if_chr_death_animation_finished 0x17, /*goto*/ 0x2f - if_chr_unloaded 0x17, /*goto*/ 0x2f - goto_first 0x04 - - label 0x2f - yield - yield - yield - yield - yield - if_stage_flag_eq STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x0d - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d - if_chr_dying 0x18, /*goto*/ 0x2f - if_chr_death_animation_finished 0x18, /*goto*/ 0x2f - if_chr_unloaded 0x18, /*goto*/ 0x2f - goto_first 0x04 - - label 0x2f - if_stage_flag_eq STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d - set_stage_flag STAGEFLAG_GENERAL_PURPOSE - remove_displayed_text - display_text 0x01, COLOR_04_ORANGE, 0x1c71 // "Holoprogram 7 has been completed successfully." - restart_timer - - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x2f - endloop 0x08 - - label 0x2f - set_stage_flag STAGEFLAG_TRIGGER_HOLO_SUCCESS - - beginloop 0x0d - if_stage_flag_eq STAGEFLAG_IN_HOLO7, FALSE, /*goto*/ 0x2f - endloop 0x0d - - label 0x2f - goto_first 0x8f - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1035_manage_music: - beginloop 0x8f - if_stage_flag_eq STAGEFLAG_IN_TRAINING, TRUE, /*goto*/ 0x2f - reloop 0x8f - - label 0x2f - play_music_track MUSIC_CI_TRAINING - - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_IN_TRAINING, FALSE, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - restart_music - reset_ambience - endloop 0x8f - - endfunction - -.macro do_gun_msg object text - beginloop 0x03 - if_chr_activated_object CHR_F3, \object, /*goto*/ 0x2f - reloop 0x03 - - label 0x2f - message CHR_JOANNA, \text - restart_timer - - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - endloop 0x03 -.endm - -func1038_msg_pp7: - do_gun_msg 0x1e, 0x1c74 // "PP7" - endfunction - -func1039_msg_tt33: - do_gun_msg 0x1f, 0x1c75 // "TT33" - endfunction - -func103a_msg_skorpion: - do_gun_msg 0x20, 0x1c76 // "Skorpion" - endfunction - -func103b_msg_ak47: - do_gun_msg 0x21, 0x1c77 // "AK47" - endfunction - -func103c_msg_uzi9mm: - do_gun_msg 0x22, 0x1c78 // "Uzi 9mm" - endfunction - -func103d_msg_mp5k: - do_gun_msg 0x23, 0x1c79 // "MP5K" - endfunction - -func103e_msg_m16: - do_gun_msg 0x24, 0x1c7a // "M-16" - endfunction - -func103f_msg_fnp90: - do_gun_msg 0x25, 0x1c7b // "FNP90" - endfunction - -func1000_jo_typing: - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - camera_movement 0x0484 - cmd0175 60 - if_controller_button_pressed /*goto*/ 0x7b - set_music_track MUSIC_CI_INTRO - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x0485, -1, -1, 0x0600, CHR_JOANNA, 4 - restart_timer - fade_to_color 0x000000ff, 0 - fade_to_color 0x00000000, 110 - - beginloop 0x57 - if_controller_button_pressed /*goto*/ 0x7b - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x57 - - label 0x06 - play_sound 0x8116, CHANNEL_5 - - beginloop 0x59 - if_controller_button_pressed /*goto*/ 0x7b - if_timer_gt 175, /*goto*/ 0x06 - endloop 0x59 - - label 0x06 - play_sound 0x8118, CHANNEL_6 - - beginloop 0x08 - if_camera_animating /*goto*/ 0x2f - goto_next 0x7b - - label 0x2f - if_controller_button_pressed /*goto*/ 0x7b - label 0x2f - endloop 0x08 - - label 0x7b - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x0485, -2, -1, 0x0600, CHR_JOANNA, 2 - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - enter_firstperson - passive_mode TRUE - fade_to_color 0x00000000, 0 - yield - yield - yield - yield - restart_default_music - reset_ambience - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1040_lift_door_sounds: - // Disable autoguns - yield - set_autoturret_type 0x8b, 0x02 - set_autoturret_type 0x8c, 0x02 - set_autoturret_type 0x8d, 0x02 - restart_timer - - beginloop 0x57 - if_timer_gt 120, /*goto*/ 0x2f - endloop 0x57 - - label 0x2f - set_object_flag_bank0 0x8b, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 0x8c, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 0x8d, OBJECTFLAG0_DEACTIVATED - - // Play sounds when lift doors activated - beginloop 0x8f - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, 0x80, /*goto*/ 0x2f - if_chr_activated_object CHR_P1P2, 0x81, /*goto*/ 0x2f - if_chr_activated_object CHR_P1P2, 0x82, /*goto*/ 0x2f - if_chr_activated_object CHR_P1P2, 0x83, /*goto*/ 0x2f - if_chr_activated_object CHR_P1P2, 0x84, /*goto*/ 0x2f - if_chr_activated_object CHR_P1P2, 0x85, /*goto*/ 0x2f - if_chr_activated_object CHR_P1P2, 0x86, /*goto*/ 0x2f - if_chr_activated_object CHR_P1P2, 0x87, /*goto*/ 0x2f - reloop 0x8f - - label 0x2f - play_sound 0x81b0, -1 - restart_timer - - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - endloop 0x8f - - endfunction - -intro: - spawn 0x00f5 - outfit OUTFIT_DEFAULT - endintro - -path00: - pad 0x002f - pad 0x002d - endpath - -func1032_setup_lifts: - activate_lift 1, 0x43 - activate_lift 2, 0x44 - set_lights_state 0x0007, 0x01, 0x32, 0x00, 0x00 - set_lights_state 0x0008, 0x01, 0x32, 0x00, 0x00 - set_lights_state 0x0009, 0x01, 0x32, 0x00, 0x00 - set_lights_state 0x000a, 0x01, 0x19, 0x00, 0x00 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1042_check_jo_in_training_room: - beginloop 0x04 - // Wait until player in training - dprint "CHK1" - if_stage_flag_eq STAGEFLAG_TRIGGER_UPLINK, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_TRIGGER_ECMMINE, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_TRIGGER_CAMSPY, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_TRIGGER_NIGHTVISION, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_TRIGGER_DOORDECODER, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_TRIGGER_RTRACKER, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_TRIGGER_IR, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_TRIGGER_XRAY, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_TRIGGER_DISGUISE, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_TRIGGER_CLOAK, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_IN_HOLO1, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_IN_HOLO2, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_IN_HOLO3, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_IN_HOLO4, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_IN_HOLO5, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_IN_HOLO6, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_IN_HOLO7, TRUE, /*goto*/ 0x2f - reloop 0x04 - - // And has exited the training rooms - // 0x0014 = lobby outside holo room - // 0x001d = entry to device training room - // 0x001a = entry to information room - // 0x000b = entry to carrington's office - label 0x2f - if_chr_in_room CHR_JOANNA, 0x00, 0x0014, /*goto*/ 0x30 - if_chr_in_room CHR_JOANNA, 0x00, 0x001d, /*goto*/ 0x2f - if_chr_in_room CHR_JOANNA, 0x00, 0x001a, /*goto*/ 0x2f - if_chr_in_room CHR_JOANNA, 0x00, 0x000b, /*goto*/ 0x2f - reloop 0x04 - - label 0x30 - set_stage_flag STAGEFLAG_TRIGGER_HOLO_FAILURE - label 0x2f - set_stage_flag STAGEFLAG_TRIGGER_DEVICE_FAILURE - label 0x06 - dprint "CHK2" - yield - yield - yield - yield - - label 0x57 - dprint "CHK3" - yield - if_stage_flag_eq STAGEFLAG_CONSIDER_WARP, TRUE, /*goto*/ 0x2f - goto_first 0x57 - - label 0x2f - label 0x59 - dprint "CHK4" - yield - if_stage_flag_eq STAGEFLAG_CONSIDER_WARP, FALSE, /*goto*/ 0x2f - goto_first 0x59 - - label 0x2f - dprint "CHK5" - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - endloop 0x04 - - // Unreachable - label 0x5b - restart_timer - label 0x5c - dprint "CHK6" - yield - if_timer_gt 60, /*goto*/ 0x2f - goto_first 0x5c - label 0x2f - goto_first 0x04 - - endfunction - -func1041_setup_lighting: - yield - set_lighting 0x0045, 0x06, 0x01 - set_lighting 0x0046, 0x06, 0x01 - set_lighting 0x0047, 0x06, 0x01 - set_lighting 0x0048, 0x06, 0x01 - set_lighting 0x0055, 0x06, 0x01 - set_lighting 0x0056, 0x06, 0x01 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1043_remove_hovercrate: - yield - beginloop 0x8f - if_object_in_room OBJ_HOVERCRATE, 0x0016, /*goto*/ 0x08 - if_object_in_room OBJ_HOVERCRATE, 0x0017, /*goto*/ 0x08 - if_object_in_room OBJ_HOVERCRATE, 0x0018, /*goto*/ 0x08 - if_object_in_room OBJ_HOVERCRATE, 0x0019, /*goto*/ 0x08 - goto_first 0x8f - - label 0x08 - if_stage_flag_eq STAGEFLAG_IN_HOLO1, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_IN_HOLO2, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_IN_HOLO3, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_IN_HOLO4, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_IN_HOLO5, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_IN_HOLO6, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_IN_HOLO7, TRUE, /*goto*/ 0x2f - goto_first 0x8f - - label 0x2f - move_object_to_pad OBJ_HOVERCRATE, 0x0141 - endloop 0x8f - - endfunction - -functions: - register_function func1000_jo_typing 0x1000 - register_function func1001_set_jo_alliance 0x1001 - register_function func1002_devicetraining_camspy 0x1002 - register_function func1003_devicetraining_nightvision 0x1003 - register_function func1004_devicetraining_doordecoder 0x1004 - register_function func1005_devicetraining_xray 0x1005 - register_function func1006_devicetraining_disguise 0x1006 - register_function func1007_devicetrainign_ir 0x1007 - register_function func1008_devicetraining_rtracker 0x1008 - register_function func1009_devicetraining_cloak 0x1009 - register_function func100a_devicetraining_ecmmine 0x100a - register_function func100b_devicetraining_uplink 0x100b - register_function func100c_cloak_detection 0x100c - register_function func100e_training_unlockables 0x100e - register_function func100f_doorproxy_unused1 0x100f - register_function func1010_doorproxy 0x1010 - register_function func1010_doorproxy_unused2 0x1011 - register_function func1012_cloak_doorproxy 0x1012 - register_function func1013_msg_hovercrate 0x1013 - register_function func1014_msg_hoverbike 0x1014 - register_function func1015_msg_doors 0x1015 - register_function func1016_msg_elevators 0x1016 - register_function func1017_msg_terminals 0x1017 - register_function func1018_lightswitch 0x1018 - register_function func1019_setup_carrington 0x1019 - register_function func101a_move_jo_to_training_room 0x101a - register_function func101b_ir_door 0x101b - register_function func101c_holo1_main 0x101c - register_function func101d_holo1_switch1 0x101d - register_function func101e_holo1_switch2 0x101e - register_function func101f_holo1_switch3 0x101f - register_function func1020_holo1_monitor_switches 0x1020 - register_function func1021_holo1_code1 0x1021 - register_function func1021_holo1_code2 0x1021 - register_function func1021_holo1_code3 0x1021 - register_function func1021_holo1_code4 0x1021 - register_function func1022_holo2_main 0x1022 - register_function func1023_holo2_object1 0x1023 - register_function func1024_holo2_object2 0x1024 - register_function func1025_holo2_object3 0x1025 - register_function func1026_holo2_object4 0x1026 - register_function func1027_holo3_main 0x1027 - register_function func1028_holo4_main 0x1028 - register_function func1029_holo5_main 0x1029 - register_function func102a_holo3_part1 0x102a - register_function func102b_holo3_part2 0x102b - register_function func102c_holo3_object1 0x102c - register_function func102d_holo3_object2 0x102d - register_function func102e_holo6_main 0x102e - register_function func102f_holo1_part1 0x102f - register_function func1030_holo7_main 0x1030 - register_function func1031_holo7_part1 0x1031 - register_function func1032_setup_lifts 0x1032 - register_function func1033_holo4_part1 0x1033 - register_function func1034_holo5_part1 0x1034 - register_function func1035_manage_music 0x1035 - register_function func041a_handle_holo_failure 0x1037 - register_function func1038_msg_pp7 0x1038 - register_function func1039_msg_tt33 0x1039 - register_function func103a_msg_skorpion 0x103a - register_function func103b_msg_ak47 0x103b - register_function func103c_msg_uzi9mm 0x103c - register_function func103d_msg_mp5k 0x103d - register_function func103e_msg_m16 0x103e - register_function func103f_msg_fnp90 0x103f - register_function func1040_lift_door_sounds 0x1040 - register_function func1041_setup_lighting 0x1041 - register_function func1042_check_jo_in_training_room 0x1042 - register_function func1043_remove_hovercrate 0x1043 - - register_function func041b_holo2_part1 0x041b - register_function func041c_holo3_check_done 0x041c - register_function func0430_holo1_check_done 0x0430 - register_function func0401_move_to_deviceroom 0x0401 - register_function func0402_move_to_holoroom 0x0402 - register_function func041e_colleague 0x041e - register_function func041d_init_collegue_when_sighted 0x041d - register_function func041f_colleague1 0x041f - register_function func0420_colleague2 0x0420 - register_function func0421_colleague3 0x0421 - register_function func0422_colleague4 0x0422 - register_function func0423_colleague5 0x0423 - register_function func0424_colleague6 0x0424 - register_function func0425_colleague7 0x0425 - register_function func0426_colleague8 0x0426 - register_function func0427_colleague9 0x0427 - register_function func0428_colleague10 0x0428 - register_function func0429_grimshaw_disguise 0x0429 - register_function func042a_carrington_cloak 0x042a - register_function func042b_init_carrington 0x042b - register_function func042c_carrington_tour 0x042c - register_function func042f_holo2_part2 0x042f - register_function func042d_unused 0x042d - register_function func042e_devicegirl_reply_to_carrington 0x042e - register_function func0403_holo4_guard1 0x0403 - register_function func0404_holo4_guard2 0x0404 - register_function func0405_holo4_guard3 0x0405 - register_function func0406_holo5_init_guard1 0x0406 - register_function func0407_holo5_guard1 0x0407 - register_function func0408_holo5_init_guard2 0x0408 - register_function func0409_holo5_guard2 0x0409 - register_function func040a_holo5_init_guard3 0x040a - register_function func040b_holo5_guard3 0x040b - register_function func040c_holo6_init_guard1 0x040c - register_function func040d_holo6_init_guard2 0x040d - register_function func040e_holo6_init_guard3 0x040e - register_function func040f_holo6_init_guard4 0x040f - register_function func0410_holo7_init_guard4 0x0410 - register_function func0411_holo7_init_guard5 0x0411 - register_function func0412_holo7_init_guard1 0x0412 - register_function func0413_holo7_init_guard2 0x0413 - register_function func0414_holo7_init_guard3 0x0414 - register_function func0415_holo_guard_unarmed_unalert 0x0415 - register_function func0416_holo_guard_unarmed_alert 0x0416 - register_function func0416_holo_guard_unarmed_alert2 0x0417 - register_function func0418_holo_guard_armed_unalert 0x0418 - register_function func0419_holo_guard_armed_alert 0x0419 - register_function func041a_handle_holo_failure 0x041a - register_function func1023_holo2_object1 0x0431 - register_function func1024_holo2_object2 0x0432 - register_function func1025_holo2_object3 0x0433 - register_function func1026_holo2_object4 0x0434 - register_function func102c_holo3_object1 0x0435 - register_function func102d_holo3_object2 0x0436 - register_function func101d_holo1_switch1 0x0437 - register_function func101e_holo1_switch2 0x0438 - register_function func101f_holo1_switch3 0x0439 - register_function func1020_holo1_monitor_switches 0x043a - endfunctions - -paths: - register_path path00, 0, 1 - endpaths - -.align 4 diff --git a/asm/setup/setupeld.s b/asm/setup/setupeld.s deleted file mode 100644 index 3a0036f5e..000000000 --- a/asm/setup/setupeld.s +++ /dev/null @@ -1,3201 +0,0 @@ -# -# Villa -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -// Characters -.set CHR_SNIPER1, 0x00 -.set CHR_SNIPER2, 0x01 -.set CHR_SNIPER3, 0x02 -.set CHR_SNIPER4, 0x03 -.set CHR_SNIPER5, 0x04 -.set CHR_SNIPER6, 0x05 -.set CHR_SNIPER7, 0x06 -.set CHR_SNIPER8, 0x07 -.set CHR_BASEMENT1, 0x43 -.set CHR_BASEMENT2, 0x44 -.set CHR_BASEMENT3, 0x45 -.set CHR_BASEMENT4, 0x46 -.set CHR_BASEMENT5, 0x47 -.set CHR_BASEMENT6, 0x48 -.set CHR_BASEMENT7, 0x49 -.set CHR_BASEMENT8, 0x4a -.set CHR_BASEMENT9, 0x4b -.set CHR_TAKER1, 0x4e -.set CHR_TAKER2, 0x4f -.set CHR_NEGOTIATOR, 0x50 -.set CHR_CARRINGTON, 0x51 -.set CHR_HACKER1, 0x52 -.set CHR_HACKER2, 0x53 -.set CHR_HACKER3, 0x54 -.set CHR_CISOLDIER, 0x55 - -// Objects -.set OBJ_DROPSHIP, 0x00 -.set OBJ_COOLING_SWITCH, 0x03 -.set OBJ_POWER_SWITCH, 0x04 -.set OBJ_WINDMILL_SWITCH, 0x05 -.set OBJ_KEYCARD, 0x0a -.set OBJ_HACKERPC1, 0x0b -.set OBJ_HACKERPC2, 0x0c -.set OBJ_HACKERPC3, 0x0d -.set OBJ_HACKERPC4, 0x0e -.set OBJ_WINDMILL, 0x0f -.set OBJ_CMP150_1, 0x8e -.set OBJ_CMP150_2, 0x8f -.set OBJ_DEVASTATOR, 0x99 - -// Stage flags -.set STAGEFLAG_NEGOTIATOR_DEAD, 0x00000100 -.set STAGEFLAG_NEGOTIATOR_ESCAPED, 0x00000200 -.set STAGEFLAG_SNIPERS_DEAD, 0x00000400 -.set STAGEFLAG_COOLING_ACTIVE, 0x00000800 -.set STAGEFLAG_POWER_ACTIVE, 0x00001000 -.set STAGEFLAG_WINDMILL_ACTIVATED, 0x00002000 -.set STAGEFLAG_WINDMILL_SWITCH_DESTROYED, 0x00004000 -.set STAGEFLAG_HACKERS_DEAD, 0x00008000 -.set STAGEFLAG_HACKERS_SUCCEEDED, 0x00010000 -.set STAGEFLAG_CARRINGTON_RESCUED, 0x00020000 -.set STAGEFLAG_TAKERS_DEAD, 0x00080000 -.set STAGEFLAG_GUARD_CAPTURED, 0x00100000 -.set STAGEFLAG_HACKER_PC_DESTROYED, 0x00200000 -.set STAGEFLAG_HACKERS_STARTED, 0x00400000 -.set STAGEFLAG_INTRO_FINISHED, 0x00800000 -.set STAGEFLAG_ONE_BASEMENT_GUARD_REMAINING, 0x01000000 -.set STAGEFLAG_PLAYING_INTRO_FROM_MENU, 0x02000000 -.set STAGEFLAG_FORGOT_TO_KO_GUARD, 0x04000000 - -// Functions -.set FUNC_INIT_TAKER, 0x0401 -.set FUNC_TAKER, 0x0402 -.set FUNC_NEGOTIATOR, 0x0403 -.set FUNC_SNIPER, 0x0404 -.set FUNC_HACKER, 0x0405 -.set FUNC_INIT_HACKER, 0x0406 -.set FUNC_INIT_SNIPER, 0x0407 -.set FUNC_OUTRO, 0x0408 -.set FUNC_INTRO, 0x0409 -.set FUNC_ENABLE_SNIPER, 0x040a -.set FUNC_INIT_BASEMENT_GUARD, 0x040b -.set FUNC_INIT_TYPE1_GUARD, 0x040c -.set FUNC_INIT_TYPE2_GUARD, 0x040d // has better accuracy on PA -.set FUNC_PATH01, 0x040e -.set FUNC_PATH02, 0x040f -.set FUNC_CARRINGTON, 0x0410 -.set FUNC_CISOLIDER, 0x0411 - -props: - briefing 0, 0x2001 - briefing 1, 0x2000 - briefing 2, 0x2002 - briefing 3, 0x2003 - - beginobjective 0, 0x2005, DIFFBIT_A | DIFFBIT_SA // "Save the negotiator" - complete_flags STAGEFLAG_NEGOTIATOR_ESCAPED - fail_flags STAGEFLAG_NEGOTIATOR_DEAD - endobjective - - beginobjective 1, 0x2006, DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Eliminate rooftop snipers" - complete_flags STAGEFLAG_SNIPERS_DEAD - endobjective - - beginobjective 2, 0x2007, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Activate wind generator" - complete_flags STAGEFLAG_WINDMILL_ACTIVATED - fail_flags STAGEFLAG_WINDMILL_SWITCH_DESTROYED - endobjective - - beginobjective 3, 0x2008, DIFFBIT_PA | DIFFBIT_PD // "Locate and eliminate dataDyne hackers" - complete_flags STAGEFLAG_HACKERS_DEAD - fail_flags STAGEFLAG_HACKERS_SUCCEEDED - fail_flags STAGEFLAG_HACKER_PC_DESTROYED - endobjective - - beginobjective 4, 0x200a, DIFFBIT_PA | DIFFBIT_PD // "Capture dataDyne guard" - complete_flags STAGEFLAG_GUARD_CAPTURED - fail_flags STAGEFLAG_FORGOT_TO_KO_GUARD - endobjective - - beginobjective 5, 0x2009, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Rescue Carrington" - complete_flags STAGEFLAG_CARRINGTON_RESCUED - endobjective - - // Note these snipers are replaced with new ones further below. - chr 0x00000061, 0x00, 0x0192, BODY_DDSNIPER, HEAD_DDSNIPER, FUNC_INIT_SNIPER, -1, -1, 500, 40, 0x00004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSNIPERRIFLE, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000 - chr 0x00000061, 0x01, 0x0193, BODY_DDSNIPER, HEAD_DDSNIPER, FUNC_INIT_SNIPER, -1, -1, 500, 40, 0x00004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSNIPERRIFLE, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000 - chr 0x00000061, 0x02, 0x0194, BODY_DDSNIPER, HEAD_DDSNIPER, FUNC_INIT_SNIPER, -1, -1, 500, 40, 0x00004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSNIPERRIFLE, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000 - chr 0x00000061, 0x05, 0x0197, BODY_DDSNIPER, HEAD_DDSNIPER, FUNC_INIT_SNIPER, -1, -1, 500, 40, 0x00004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSNIPERRIFLE, 0x0005, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000 - chr 0x00000061, 0x06, 0x0198, BODY_DDSNIPER, HEAD_RANDOM, FUNC_INIT_SNIPER, -1, -1, 500, 40, 0x00004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSNIPERRIFLE, 0x0006, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000 - - tag 0x8e, 2 - tag 0x8f, 2 - weapon 0x0100, MODEL_CHRCMP150, 0x019a, 0x00100000, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x019a, 0x00100000, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - link_collectibles -1, -2 - - chr 0x00000001, 0x04, 0x0196, BODY_DDSNIPER, HEAD_DDSNIPER, FUNC_INIT_SNIPER, -1, -1, 500, 40, 0x00004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSNIPERRIFLE, 0x0004, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000 - chr 0x00000001, 0x07, 0x0199, BODY_DDSNIPER, HEAD_DDSNIPER, FUNC_INIT_SNIPER, -1, -1, 500, 40, 0x00004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSNIPERRIFLE, 0x0007, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000 - chr 0x00000001, 0x03, 0x0195, BODY_DDSNIPER, HEAD_DDSNIPER, FUNC_INIT_SNIPER, -1, -1, 500, 40, 0x00004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSNIPERRIFLE, 0x0003, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000 - chr 0x00000081, 0x00, 0x0192, BODY_DDSNIPER, HEAD_DDSNIPER, FUNC_INIT_SNIPER, -1, -1, 500, 80, 0x00004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSNIPERRIFLE, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000 - chr 0x00000081, 0x01, 0x0193, BODY_DDSNIPER, HEAD_DDSNIPER, FUNC_INIT_SNIPER, -1, -1, 500, 80, 0x00004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSNIPERRIFLE, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000 - chr 0x00000081, 0x02, 0x0194, BODY_DDSNIPER, HEAD_DDSNIPER, FUNC_INIT_SNIPER, -1, -1, 500, 80, 0x00004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSNIPERRIFLE, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000 - chr 0x00000081, 0x05, 0x0197, BODY_DDSNIPER, HEAD_RANDOM, FUNC_INIT_SNIPER, -1, -1, 500, 80, 0x00004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSNIPERRIFLE, 0x0005, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000 - chr 0x00000081, 0x06, 0x0198, BODY_DDSNIPER, HEAD_DDSNIPER, FUNC_INIT_SNIPER, -1, -1, 500, 80, 0x00004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSNIPERRIFLE, 0x0006, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000 - tag 0x8e, 2 - tag 0x8f, 2 - weapon 0x0100, MODEL_CHRCMP150, 0x019a, 0x00100000, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x019a, 0x00100000, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - link_collectibles -1, -2 - chr 0x00010401, CHR_NEGOTIATOR, 0x022b, BODY_SECRETARY, HEAD_SECRETARY, GFUNC_IDLE, -1, -1, 500, 50, 0x00004408, 0x00000000, 0x10, 0x00, -1, 0, 0x00000000 - chr 0x00000001, 0x4e, 0x0229, BODY_DD_GUARD, HEAD_JON, GFUNC_IDLE, -1, -1, 500, 150, 0xc0004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x004e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000001, 0x4f, 0x022a, BODY_DD_GUARD, HEAD_BEAU1, GFUNC_IDLE, -1, -1, 500, 150, 0x80004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x004f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000201, 0x08, 0x00b4, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE2_GUARD, -1, -1, 500, 50, 0x80204208, 0x04000040, 0x20, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0008, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000201, 0x09, 0x022f, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE2_GUARD, -1, -1, 500, 50, 0x80284208, 0x00000040, 0x20, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000201, 0x0a, 0x019b, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE2_GUARD, -1, -1, 500, 50, 0x80284208, 0x04000040, 0x20, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000201, 0x0b, 0x00b8, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE2_GUARD, -1, -1, 500, 50, 0x80284208, 0x00000040, 0x20, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000201, 0x0c, 0x0231, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE2_GUARD, -1, -1, 500, 50, 0x80284208, 0x04000040, 0x20, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000201, 0x0d, 0x0232, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE2_GUARD, -1, -1, 500, 50, 0x80284208, 0x00000040, 0x20, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000201, 0x23, 0x01b1, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4003000, 0x00000000, 0x20, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0023, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000201, 0x24, 0x01b2, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4003000, 0x04000000, 0x20, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0024, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000201, 0x25, 0x01b3, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4003000, 0x00000000, 0x20, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0025, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000201, 0x26, 0x01b4, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4003000, 0x04000000, 0x20, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0026, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000201, 0x27, 0x01b5, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4003100, 0x00000000, 0x20, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0027, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000201, 0x28, 0x01b6, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4003100, 0x04000000, 0x20, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0028, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000201, 0x29, 0x01b7, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4003100, 0x00000000, 0x20, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0029, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000201, 0x2a, 0x01b8, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4003100, 0x04000000, 0x20, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x002a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000201, 0x2b, 0x01b9, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc400b000, 0x00000000, 0x20, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x002b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000201, 0x2c, 0x01ba, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc400b000, 0x04000000, 0x20, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x002c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000201, 0x2d, 0x01bb, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc400b000, 0x00000000, 0x20, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x002d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000201, 0x2e, 0x01bc, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc400b000, 0x04000000, 0x20, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x002e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000261, 0x2f, 0x01bd, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc000e000, 0x00000000, 0x20, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x002f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000261, 0x30, 0x01be, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc000e000, 0x04000000, 0x20, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0030, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000201, 0x31, 0x01bf, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc000e000, 0x00000000, 0x20, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0031, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000201, 0x32, 0x01c0, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc000e000, 0x04000000, 0x20, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0032, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000201, 0x33, 0x01c1, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4003100, 0x00000000, 0x20, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0033, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000201, 0x34, 0x01c2, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4003100, 0x04000000, 0x20, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0034, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000201, 0x35, 0x01c3, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4003000, 0x00000000, 0x20, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0035, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000201, 0x36, 0x01c4, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4003000, 0x04000000, 0x20, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0036, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x3d, 0x01cb, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4003000, 0x00000000, 0x20, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x003d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000201, 0x37, 0x01c5, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4206200, 0x00000000, 0x20, 0x09, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0037, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000201, 0x38, 0x01c6, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4206200, 0x04000000, 0x20, 0x09, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0038, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000201, 0x39, 0x01c7, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4206200, 0x00000000, 0x20, 0x09, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0039, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x3a, 0x01c8, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE2_GUARD, -1, -1, 500, 50, 0xc4003000, 0x04000000, 0x20, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x003a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x3b, 0x01c9, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE2_GUARD, -1, -1, 500, 50, 0xc4003000, 0x00000000, 0x20, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x003b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x3c, 0x01ca, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE2_GUARD, -1, -1, 500, 50, 0xc4003000, 0x04000000, 0x20, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x003c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x3e, 0x01cc, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE2_GUARD, -1, -1, 500, 50, 0xc4009000, 0x00000000, 0x20, 0x0b, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x003e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x3f, 0x01cd, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE2_GUARD, -1, -1, 500, 50, 0xc4009000, 0x04000000, 0x20, 0x0b, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x003f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x40, 0x01ce, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE2_GUARD, -1, -1, 500, 50, 0xc4009000, 0x00000000, 0x20, 0x0b, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0040, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x41, 0x01cf, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc0005000, 0x04000000, 0x20, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0041, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x42, 0x01d0, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc0005000, 0x00000000, 0x20, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0042, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x43, 0x01d1, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_BASEMENT_GUARD, -1, -1, 500, 50, 0x80000201, 0x04000000, 0x20, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0043, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x44, 0x01d2, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_BASEMENT_GUARD, -1, -1, 500, 50, 0xc0005000, 0x00000000, 0x20, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0044, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x45, 0x01d3, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_BASEMENT_GUARD, -1, -1, 500, 50, 0xc0005000, 0x04000000, 0x20, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0045, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x46, 0x01d4, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_BASEMENT_GUARD, -1, -1, 500, 50, 0xd0082000, 0x00000000, 0x20, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0046, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x47, 0x01d5, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_BASEMENT_GUARD, -1, -1, 500, 50, 0xd0082000, 0x04000000, 0x20, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0047, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x48, 0x01d6, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_BASEMENT_GUARD, 0x0233, -1, 500, 50, 0xc1082000, 0x00000000, 0x20, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0048, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x49, 0x01d7, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_BASEMENT_GUARD, 0x00d2, -1, 500, 50, 0xc1082000, 0x04000000, 0x20, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0049, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x4a, 0x01d8, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_BASEMENT_GUARD, -1, -1, 500, 50, 0xd0082000, 0x00000000, 0x20, 0x0f, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x004a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x4b, 0x01d9, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_BASEMENT_GUARD, -1, -1, 500, 50, 0xd0082000, 0x04000000, 0x20, 0x0f, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x004b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00010400, 0x51, 0x00dc, BODY_CARRINGTON, HEAD_CARRINGTON, FUNC_CARRINGTON, -1, -1, 500, 50, 0x00000000, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000 - chr 0x0000c000, 0x52, 0x022c, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_HACKER, -1, -1, 500, 30, 0x00004408, 0x00000000, 0x20, 0x00, 0x8d, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0052, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x0000c000, 0x53, 0x022d, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_HACKER, -1, -1, 500, 30, 0x00004408, 0x04000000, 0x20, 0x00, 0x8b, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0053, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x0000c000, 0x54, 0x022e, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_HACKER, -1, -1, 500, 30, 0x00004408, 0x00000000, 0x20, 0x00, 0x8c, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0054, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x4c, 0x0096, BODY_DD_GUARD, HEAD_RANDOM, FUNC_PATH01, -1, -1, 500, 50, 0xc000d000, 0x04000000, 0x20, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x004c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x4d, 0x0085, BODY_DD_GUARD, HEAD_RANDOM, FUNC_PATH02, -1, -1, 500, 50, 0xc000d000, 0x00000000, 0x20, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x004d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00010400, 0x55, 0x0234, BODY_CISOLDIER, HEAD_RANDOM, FUNC_CISOLIDER, -1, -1, 500, 50, 0x40005000, 0x00000000, 0x80, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSNIPERRIFLE, 0x0055, 0x00004000, 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x0151, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x0152, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x0155, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x0156, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x0157, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x0158, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x0159, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x015a, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x015b, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x015c, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x015e, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x0161, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x015f, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x0162, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x0164, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x0166, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x0167, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x0168, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x0169, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x016a, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x016b, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x0165, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x016c, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x016d, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x015d, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x016e, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x016f, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x0160, 0x00020262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x93, 2 - tag 0x94, 2 - door 0x0100, MODEL_AIVILLADOOR2A, 0x0170, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000080, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AIVILLADOOR2A, 0x0171, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000080, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AIVILLADOOR2A, 0x0172, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AIVILLADOOR2A, 0x0173, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x90, 2 - tag 0x91, 2 - door 0x0100, MODEL_AIVILLADOOR2A, 0x0174, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000080, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AIVILLADOOR2A, 0x0175, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000080, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AIVILLADOOR2A, 0x017c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AIVILLADOOR2A, 0x017d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x92, 1 - door 0x0100, MODEL_AIVILLADOOR2A, 0x0176, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000080, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x06, 2 - tag 0x07, 2 - door 0x0100, MODEL_AIVILLADOOR2A, 0x0189, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AIVILLADOOR2A, 0x018a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AIVILLADOOR2A, 0x018b, 0x30000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000600, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AIVILLADOOR2A, 0x018c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x018d, 0x04000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x018e, 0x04000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x95, 1 - door 0x0100, MODEL_AIVILLADOOR2A, 0x0177, 0x30000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000080, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000600, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x97, 2 - tag 0x98, 2 - door 0x0100, MODEL_AIVILLADOOR2A, 0x0179, 0x90000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000080, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000600, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AIVILLADOOR2A, 0x0178, 0xb0000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000080, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AIVILLADOOR2A, 0x018f, 0x90000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000600, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AIVILLADOOR2A, 0x0190, 0xb0000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x96, 1 - door 0x0100, MODEL_AIVILLADOOR2A, 0x017b, 0x30000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000080, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000600, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x1e, 12 - tag 0x1f, 12 - tag 0x20, 12 - tag 0x21, 12 - tag 0x22, 12 - tag 0x23, 12 - tag 0x24, 12 - tag 0x25, 12 - tag 0x26, 12 - tag 0x27, 12 - tag 0x28, 12 - tag 0x29, 12 - glass 0x003a, MODEL_AIVILLABOT1, 0x00e5, 0x00200008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT2, 0x00e6, 0x00200008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x00e7, 0x00200008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x00e8, 0x00200008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT2, 0x00e9, 0x00200008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x00ea, 0x00200008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x00eb, 0x00200008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT2, 0x00ec, 0x00200008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT3, 0x00ed, 0x00200008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x00ee, 0x00200008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x00ef, 0x00200008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x00f0, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x2a, 6 - tag 0x2b, 6 - tag 0x2c, 6 - tag 0x2d, 6 - tag 0x2e, 6 - tag 0x2f, 6 - glass 0x003a, MODEL_AIVILLABOT2, 0x00f1, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x00f2, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x00f3, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT2, 0x00f4, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x00f5, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x00f6, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x30, 12 - tag 0x31, 12 - tag 0x32, 12 - tag 0x33, 12 - tag 0x34, 12 - tag 0x35, 12 - tag 0x36, 12 - tag 0x37, 12 - tag 0x38, 12 - tag 0x39, 12 - tag 0x3a, 12 - tag 0x3b, 12 - glass 0x003a, MODEL_AIVILLABOT2, 0x00f7, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT3, 0x00f8, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x00f9, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x00fa, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x00fb, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT2, 0x00fc, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x00fd, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x00fe, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT2, 0x00ff, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x0100, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x0101, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT2, 0x0102, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x3c, 6 - tag 0x3d, 6 - tag 0x3e, 6 - tag 0x3f, 6 - tag 0x40, 6 - tag 0x41, 6 - glass 0x003a, MODEL_AIVILLABOT3, 0x0103, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x0104, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x0105, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x0106, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT3, 0x0107, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x0108, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x42, 12 - tag 0x43, 12 - tag 0x44, 12 - tag 0x45, 12 - tag 0x46, 12 - tag 0x47, 12 - tag 0x48, 12 - tag 0x49, 12 - tag 0x4a, 12 - tag 0x4b, 12 - tag 0x4c, 12 - tag 0x4d, 12 - glass 0x003a, MODEL_AIVILLABOT1, 0x0109, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x010a, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x010b, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT3, 0x010c, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x010d, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x010e, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x010f, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x0110, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x0111, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x0112, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT2, 0x0113, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x0114, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x4e, 6 - tag 0x4f, 6 - tag 0x50, 6 - tag 0x51, 6 - tag 0x52, 6 - tag 0x53, 6 - glass 0x003a, MODEL_AIVILLABOT1, 0x0115, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT2, 0x0116, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x0117, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x0118, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT2, 0x0119, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT3, 0x011a, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x54, 6 - tag 0x55, 6 - tag 0x56, 6 - tag 0x57, 6 - tag 0x58, 6 - tag 0x59, 6 - glass 0x003a, MODEL_AIVILLABOT1, 0x011b, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT2, 0x011c, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x011d, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT3, 0x011e, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT2, 0x011f, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x0120, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x5a, 12 - tag 0x5b, 12 - tag 0x5c, 12 - tag 0x5d, 12 - tag 0x5e, 12 - tag 0x5f, 12 - tag 0x60, 12 - tag 0x61, 12 - tag 0x62, 12 - tag 0x63, 12 - tag 0x64, 12 - tag 0x65, 12 - glass 0x003a, MODEL_AIVILLABOT1, 0x0121, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT2, 0x0122, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT3, 0x0123, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x0124, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x0125, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x0126, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT3, 0x0127, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x0128, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x0129, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x012a, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x012b, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT2, 0x012c, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x66, 6 - tag 0x67, 6 - tag 0x68, 6 - tag 0x69, 6 - tag 0x6a, 6 - tag 0x6b, 6 - glass 0x003a, MODEL_AIVILLABOT1, 0x012d, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x012e, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT2, 0x012f, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x0130, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x0131, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT2, 0x0132, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x6c, 12 - tag 0x6d, 12 - tag 0x6e, 12 - tag 0x6f, 12 - tag 0x70, 12 - tag 0x71, 12 - tag 0x72, 12 - tag 0x73, 12 - tag 0x74, 12 - tag 0x75, 12 - tag 0x76, 12 - tag 0x77, 12 - glass 0x003a, MODEL_AIVILLABOT3, 0x0133, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT2, 0x0134, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x0135, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x0136, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT2, 0x0137, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x0138, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x0139, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT2, 0x013a, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT3, 0x013b, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x013c, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT2, 0x013d, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x013e, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x78, 6 - tag 0x79, 6 - tag 0x7a, 6 - tag 0x7b, 6 - tag 0x7c, 6 - tag 0x7d, 6 - glass 0x003a, MODEL_AIVILLABOT3, 0x013f, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT2, 0x0140, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT3, 0x0141, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT2, 0x0142, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x0143, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x0144, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x7e, 12 - tag 0x7f, 12 - tag 0x80, 12 - tag 0x81, 12 - tag 0x82, 12 - tag 0x83, 12 - tag 0x84, 12 - tag 0x85, 12 - tag 0x86, 12 - tag 0x87, 12 - tag 0x88, 12 - glass 0x003a, MODEL_AIVILLABOT2, 0x0145, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x0146, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x0147, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT2, 0x0148, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT3, 0x0149, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x014a, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x014b, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x014c, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT3, 0x014d, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x014e, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x003a, MODEL_AIVILLABOT1, 0x014f, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x0f, 1 - autogun 0x0100, MODEL_AIVILLAWINDMILL, 0x0191, 0x00020408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0x00000000, 0x00020000, 0xfffe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000da, 0x000a0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - object 0x0100, MODEL_CV_SOFA, 0x019c, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_CV_SOFA, 0x019d, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_CV_SOFA, 0x019e, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_CV_SOFA, 0x019f, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_CV_SOFA, 0x01a1, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_CV_SOFA, 0x01a2, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_CV_SOFA, 0x01a3, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_CV_SOFA, 0x01a4, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01e5, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01e6, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - ammocrate 0x0080, MODEL_MULTI_AMMO_CRATE, 0xffff, 0x00028000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_DEVASTATOR - object 0x0100, MODEL_A51_CRATE2, 0x01e0, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01e1, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01eb, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - ammocrate 0x0080, MODEL_MULTI_AMMO_CRATE, 0xffff, 0x00028000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_DEVASTATOR - object 0x0100, MODEL_A51_CRATE2, 0x01dc, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01dd, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - ammocrate 0x0080, MODEL_MULTI_AMMO_CRATE, 0xffff, 0x00028000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_SMG - object 0x0100, MODEL_A51_CRATE2, 0x01de, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01df, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - ammocrate 0x0080, MODEL_MULTI_AMMO_CRATE, 0xffff, 0x00028000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_SMG - object 0x0100, MODEL_A51_CRATE2, 0x01ea, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01da, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - ammocrate 0x0080, MODEL_MULTI_AMMO_CRATE, 0xffff, 0x00028000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_SMG - object 0x0100, MODEL_A51_CRATE2, 0x01db, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - ammocrate 0x0080, MODEL_MULTI_AMMO_CRATE, 0xffff, 0x00028000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_DEVASTATOR - object 0x0100, MODEL_A51_CRATE2, 0x01e7, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01e2, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - ammocrate 0x0080, MODEL_MULTI_AMMO_CRATE, 0xffff, 0x00028000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_SMG - object 0x0100, MODEL_A51_CRATE2, 0x01e3, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - ammocrate 0x0080, MODEL_MULTI_AMMO_CRATE, 0xffff, 0x00028000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_SMG - object 0x0100, MODEL_A51_CRATE2, 0x01e4, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - ammocrate 0x0080, MODEL_MULTI_AMMO_CRATE, 0xffff, 0x00028000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_SMG - object 0x0100, MODEL_A51_CRATE2, 0x01e9, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01e8, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01ed, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x01ee, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00cc, MODEL_CV_TABLE, 0x01a7, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00cc, MODEL_CV_TABLE, 0x01a8, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_CV_COFFEE_TABLE, 0x01ae, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_CV_COFFEE_TABLE, 0x01ab, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_CV_COFFEE_TABLE, 0x01ac, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x00, 1 - object 0x0100, MODEL_DROPSHIP, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x01, 1 - weapon 0x0100, MODEL_CHRDATATHIEF, 0x00bf, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000 - rename_object -1, 0x0e, 0x201b, 0x201b, 0x201b, 0x201b, 0x201b, 0x0000, 0x0000 // "PC gun" - tag 0x89, 1 - weapon 0x0100, MODEL_CHRDATATHIEF, 0x00bf, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000 - rename_object -1, 0x0e, 0x201b, 0x201b, 0x201b, 0x201b, 0x201b, 0x0000, 0x0000 // "PC gun" - tag 0x02, 1 - weapon 0x0100, MODEL_CHRDATATHIEF, 0x00c0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000 - rename_object -1, 0x15, 0x201c, 0x201c, 0x201c, 0x201c, 0x201c, 0x0000, 0x0000 // "Sniper rifle" - tag 0x8a, 1 - weapon 0x0100, MODEL_CHRDATATHIEF, 0x00c0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000 - rename_object -1, 0x15, 0x201c, 0x201c, 0x201c, 0x201c, 0x201c, 0x0000, 0x0000 // "Sniper rifle" - object 0x00cc, MODEL_CV_TABLE, 0x01ef, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x8c, 1 - object 0x0100, MODEL_CV_CHAIR4, 0x01f0, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00cc, MODEL_CV_TABLE, 0x01f1, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_CV_CHAIR4, 0x01f2, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00cc, MODEL_CV_TABLE, 0x01f4, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x8d, 1 - object 0x0100, MODEL_CV_CHAIR4, 0x01f3, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00cc, MODEL_CV_TABLE, 0x01f5, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x8b, 1 - object 0x0100, MODEL_CV_CHAIR4, 0x01f6, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x0b, 4 - tag 0x0c, 4 - tag 0x0d, 4 - tag 0x0e, 4 - singlemonitor 0x0100, MODEL_GOODPC, 0x01f9, 0x000004e1, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_GOODPC, 0x01fa, 0x000004e1, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_GOODPC, 0x01f8, 0x000004e1, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_GOODPC, 0x01f7, 0x000004e1, 0x00000001, 0x00000000, 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, 0xffffff03 - tag 0x04, 3 - tag 0x03, 3 - tag 0x05, 3 - multimonitor 0x0099, MODEL_CIHUB, 0x01fc, 0x00000002, 0x00000801, 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, 0x03000000 - multimonitor 0x0099, MODEL_CIHUB, 0x01fb, 0x00000002, 0x00000801, 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, 0x03000000 - multimonitor 0x0099, MODEL_CIHUB, 0x01fd, 0x00000002, 0x00000801, 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, 0x03000000 - door 0x0100, MODEL_AIVILLADOOR2A, 0x017f, 0xb0000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000600, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AIVILLADOOR2A, 0x0180, 0x90000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x09, 1 - door 0x0100, MODEL_AIVILLADOOR2A, 0x0187, 0x30000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000040, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000600, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AIVILLADOOR2A, 0x0188, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000040, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x08, 1 - door 0x0100, MODEL_AIVILLADOOR2A, 0x0183, 0x30000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000040, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000600, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AIVILLADOOR2A, 0x0184, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000040, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AIVILLADOOR2A, 0x0185, 0x30000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000600, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AIVILLADOOR2A, 0x0186, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x0a, 1 - key 0x0080, MODEL_KEYCARD, 0x004b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000040 - rename_object -1, 0x4a, 0x201e, 0x201f, 0x2020, 0x2021, 0x2022, 0x0000, 0x0000 // "Obtain door key." - object 0x0100, MODEL_CV_SOFA, 0x01a5, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_CV_SOFA, 0x01a6, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_CV_COFFEE_TABLE, 0x01af, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x014c, MODEL_DD_PLANTRUBBER, 0x01fe, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_PLANTSPIDER, 0x01ff, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0280, MODEL_DD_PLANTSPIKE, 0x0200, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x014c, MODEL_DD_PLANTRUBBER, 0x0201, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x014c, MODEL_DD_PLANTSPIDER, 0x0202, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x014c, MODEL_DD_PLANTSPIKE, 0x0203, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_PLANTRUBBER, 0x0204, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0180, MODEL_DD_PLANTSPIDER, 0x0205, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x014c, MODEL_DD_PLANTSPIKE, 0x0206, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x014c, MODEL_DD_PLANTRUBBER, 0x0207, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_PLANTSPIDER, 0x0208, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0180, MODEL_DD_PLANTSPIKE, 0x0209, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x014c, MODEL_DD_PLANTRUBBER, 0x020a, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_PLANTSPIDER, 0x020b, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x014c, MODEL_DD_PLANTSPIKE, 0x020c, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0133, MODEL_DD_PLANTSPIDER, 0x020d, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_PLANTSPIKE, 0x020e, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_PLANTRUBBER, 0x020f, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_PLANTSPIDER, 0x0210, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x014c, MODEL_DD_PLANTSPIKE, 0x0211, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0280, MODEL_DD_PLANTSPIKE, 0x0212, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_PLANTSPIDER, 0x0213, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0180, MODEL_DD_PLANTSPIKE, 0x0214, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0180, MODEL_DD_PLANTSPIKE, 0x0215, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0080, MODEL_DD_PLANTSPIKE, 0x0216, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0080, MODEL_DD_PLANTSPIKE, 0x0217, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0080, MODEL_DD_PLANTSPIKE, 0x0218, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x021a, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x021b, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00cc, MODEL_CV_TABLE, 0x01b0, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00cc, MODEL_CV_CHAIR1, 0x021c, 0x00000501, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00cc, MODEL_CV_CHAIR1, 0x021d, 0x00000501, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00cc, MODEL_CV_CHAIR1, 0x021e, 0x00000501, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00cc, MODEL_CV_CHAIR1, 0x021f, 0x00000501, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00cc, MODEL_CV_CHAIR1, 0x0220, 0x00000501, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00cc, MODEL_CV_CHAIR1, 0x0221, 0x00000501, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00cc, MODEL_CV_CHAIR1, 0x0222, 0x00000501, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00cc, MODEL_CV_CHAIR1, 0x0223, 0x00000501, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00cc, MODEL_CV_CHAIR1, 0x0224, 0x00000501, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00cc, MODEL_CV_CHAIR1, 0x0225, 0x00000501, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x0219, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_VILLASTOOL, 0x0237, 0x00000101, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_CV_F_BED, 0x0226, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_CV_CABINET, 0x0227, 0x00000501, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_CV_CABINET, 0x0228, 0x00000501, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x10, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x0238, 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 0x11, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x0239, 0x00000001, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000 - object 0x0100, MODEL_A51_CRATE2, 0x01ec, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - weapon 0x0100, MODEL_CHRDEVASTATOR, 0xffff, 0x40028000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DEVASTATOR, 0x00ffffff, 0x00000000 - tag 0x99, -1 - endprops - -intro: - spawn 0x00be - ammo AMMOTYPE_RIFLE, 100 - ammo AMMOTYPE_SMG, 100 - ammo AMMOTYPE_DEVASTATOR, 3 - intro_weapon WEAPON_UNARMED, -1 - intro_weapon WEAPON_RTRACKER, -1 - endintro - -path00: - pad 0x0096 - pad 0x008a - pad 0x008b - pad 0x008c - pad 0x0087 - pad 0x0088 - pad 0x0089 - pad 0x0083 - pad 0x0084 - pad 0x0085 - endpath - -path01: - pad 0x0085 - pad 0x0084 - pad 0x0083 - pad 0x0089 - pad 0x0088 - pad 0x0087 - pad 0x008c - pad 0x008b - pad 0x008a - pad 0x0096 - endpath - -func1001_objectives_failed_msg: - yield - set_function CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG - endfunction - -func1400_setup_counterop: - yield - set_chr_alliance CHR_COUNTEROP, 0x20 - set_function CHR_SELF, GFUNC_REBUILD_GROUPS - endfunction - -func1002_intro_from_menu: - set_stage_flag STAGEFLAG_PLAYING_INTRO_FROM_MENU - set_function CHR_SELF, FUNC_INTRO - endfunction - -func1002_intro: - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - camera_movement 0x0171 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - if_stage_flag_eq STAGEFLAG_PLAYING_INTRO_FROM_MENU, TRUE, /*goto*/ 0x2e - if_difficulty_lt DIFF_PA, /*goto*/ 0x2d - label 0x2e - animation 0x0172, -1, -1, 0x0600, CHR_JOANNA, 4 - remove_chr CHR_NEGOTIATOR - set_music_track MUSIC_VILLA_INTRO3 - goto_next 0x06 - label 0x2d - set_music_track MUSIC_VILLA_INTRO2 - animation 0x0172, -1, -1, 0x0600, CHR_NEGOTIATOR, 4 - label 0x06 - set_chr_flag_bank3 CHR_TAKER1, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_TAKER1, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_TAKER1, CHRFLAG2_00020000 - animation 0x0173, -1, -1, 0x0600, CHR_TAKER1, 4 - set_chr_flag_bank3 CHR_TAKER2, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_TAKER2, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_TAKER2, CHRFLAG2_00020000 - animation 0x0174, -1, -1, 0x0600, CHR_TAKER2, 4 - show_object OBJ_DROPSHIP - set_object_flag_bank1 OBJ_DROPSHIP, OBJECTFLAG1_04000000 - set_object_flag_bank2 OBJ_DROPSHIP, OBJECTFLAG2_00000010 - object_do_animation 0x0175, OBJ_DROPSHIP, 0x04ff, 0xff - restart_timer - fade_to_color 0x000000ff, 0 - fade_to_color 0x00000000, 110 - set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE - - .macro wait_until time loopid - beginloop \loopid - if_controller_button_pressed /*goto*/ 0x56 - if_timer_gt \time, /*goto*/ 0x06 - endloop \loopid - - label 0x06 - .endm - - wait_until 205, 0xab - speak CHR_JOANNA, 0x2027, 0x73ff, CHANNEL_4, COLOR_09_BLUE // "Agent Dark Mission Log, 1846 hours. Last night we ..." - - wait_until 680, 0x66 - play_sound 0x0161, CHANNEL_7 - - wait_until 687, 0x67 - play_sound 0x0162, CHANNEL_6 - - wait_until 708, 0x68 - play_sound 0x0163, CHANNEL_7 - - wait_until 716, 0x69 - play_sound 0x0164, CHANNEL_7 - - wait_until 914, 0x6a - play_sound 0x0171, CHANNEL_7 - - wait_until 1010, 0x6b - play_sound 0x0172, CHANNEL_7 - - wait_until 1048, 0x6c - play_sound 0x0173, CHANNEL_7 - - wait_until 1075, 0x6d - play_sound 0x0161, CHANNEL_7 - - wait_until 1100, 0xac - speak CHR_JOANNA, 0x2028, 0x7400, CHANNEL_4, COLOR_09_BLUE // "Unfortunately, we don't have it. Daniel and Dr. Ca..." - - wait_until 1118, 0x6e - play_sound 0x0162, CHANNEL_7 - - wait_until 1148, 0x6f - play_sound 0x0163, CHANNEL_7 - - wait_until 1175, 0x70 - play_sound 0x0161, CHANNEL_7 - - wait_until 1193, 0x71 - play_sound 0x0163, CHANNEL_7 - - wait_until 1214, 0x72 - play_sound 0x0161, CHANNEL_7 - - wait_until 1313, 0x73 - play_sound 0x0164, CHANNEL_7 - - wait_until 1313, 0x74 - play_sound 0x0163, CHANNEL_6 - - wait_until 1331, 0x75 - play_sound 0x0174, CHANNEL_7 - - wait_until 1348, 0x76 - play_sound 0x0161, CHANNEL_7 - - wait_until 1366, 0x77 - play_sound 0x0162, CHANNEL_7 - - wait_until 1386, 0x78 - play_sound 0x0163, CHANNEL_7 - - wait_until 1390, 0x79 - play_sound 0x0164, CHANNEL_7 - - wait_until 1450, 0x7a - play_sound 0x0161, CHANNEL_7 - - wait_until 1458, 0x7b - play_sound 0x0164, CHANNEL_7 - - wait_until 1519, 0x7c - play_sound 0x0162, CHANNEL_7 - - wait_until 1544, 0x7d - play_sound 0x0161, CHANNEL_7 - - wait_until 1554, 0x7e - play_sound 0x0164, CHANNEL_6 - - wait_until 1592, 0x7f - play_sound 0x0162, CHANNEL_7 - - wait_until 1618, 0x81 - play_sound 0x0163, CHANNEL_7 - - wait_until 1645, 0x82 - play_sound 0x0162, CHANNEL_7 - - wait_until 1654, 0x83 - play_sound 0x0164, CHANNEL_6 - - wait_until 1657, 0x84 - play_sound 0x0161, CHANNEL_6 - - wait_until 1679, 0x85 - play_sound 0x0164, CHANNEL_6 - - wait_until 1683, 0x86 - play_sound 0x0162, CHANNEL_6 - - wait_until 1692, 0x87 - play_sound 0x0163, CHANNEL_6 - - wait_until 1716, 0x88 - play_sound 0x0164, CHANNEL_6 - - beginloop 0x08 - if_camera_animating /*goto*/ 0x2d - goto_next 0x56 - label 0x2d - if_controller_button_pressed /*goto*/ 0x56 - label 0x2d - endloop 0x08 - - label 0x56 - if_controller_button_pressed /*goto*/ 0x56 - camera_movement 0x01b7 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - if_stage_flag_eq STAGEFLAG_PLAYING_INTRO_FROM_MENU, TRUE, /*goto*/ 0x2e - if_difficulty_lt DIFF_PA, /*goto*/ 0x2d - label 0x2e - animation 0x01b8, -1, -1, 0x0600, CHR_JOANNA, 4 - goto_next 0x06 - label 0x2d - animation 0x01b8, -1, -1, 0x0600, CHR_NEGOTIATOR, 4 - label 0x06 - - set_chr_flag_bank3 CHR_TAKER1, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_TAKER1, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_TAKER1, CHRFLAG2_00020000 - animation 0x01b9, -1, -1, 0x0600, CHR_TAKER1, 4 - - set_chr_flag_bank3 CHR_TAKER2, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_TAKER2, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_TAKER2, CHRFLAG2_00020000 - animation 0x01ba, -1, -1, 0x0600, CHR_TAKER2, 4 - - restart_timer - - wait_until 50, 0xaa - speak CHR_JOANNA, 0x2029, 0x7401, CHANNEL_4, COLOR_09_BLUE // "Hopefully our phoney negotiator ploy will give me ..." - - restart_timer - wait_until 295, 0x89 - play_sound 0x0179, CHANNEL_6 - - wait_until 302, 0x8a - play_sound 0x017a, CHANNEL_7 - - wait_until 333, 0x8b - play_sound 0x017b, CHANNEL_7 - - wait_until 338, 0x8c - play_sound 0x017a, CHANNEL_6 - - wait_until 344, 0x8d - play_sound 0x017c, CHANNEL_7 - - wait_until 353, 0x8e - play_sound 0x0179, CHANNEL_6 - - wait_until 372, 0x8f - play_sound 0x017a, CHANNEL_6 - - wait_until 412, 0x90 - play_sound 0x017a, CHANNEL_6 - - wait_until 415, 0x91 - play_sound 0x017b, CHANNEL_7 - - wait_until 466, 0x92 - play_sound 0x0179, CHANNEL_6 - - wait_until 472, 0x93 - play_sound 0x017c, CHANNEL_7 - - wait_until 515, 0x94 - play_sound 0x017a, CHANNEL_6 - - wait_until 533, 0x95 - play_sound 0x017b, CHANNEL_6 - - wait_until 535, 0x96 - - wait_until 561, 0x97 - play_sound 0x017b, CHANNEL_6 - - wait_until 570, 0x98 - play_sound 0x017c, CHANNEL_7 - - wait_until 572, 0x99 - - beginloop 0x09 - if_camera_animating /*goto*/ 0x2d - goto_next 0x56 - label 0x2d - if_controller_button_pressed /*goto*/ 0x56 - label 0x2d - endloop 0x09 - - label 0x56 - if_stage_flag_eq STAGEFLAG_PLAYING_INTRO_FROM_MENU, TRUE, /*goto*/ 0x4f - if_difficulty_lt DIFF_PA, /*goto*/ 0x4e - goto_next 0x4f - label 0x4e - camera_movement 0x01bb - cmd0175 60 - if_controller_button_pressed /*goto*/ 0x56 - - set_chr_flag_bank3 CHR_NEGOTIATOR, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_NEGOTIATOR, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_NEGOTIATOR, CHRFLAG2_00020000 - animation 0x0001, -1, -1, 0x0600, CHR_NEGOTIATOR, 4 - - set_chr_flag_bank3 CHR_TAKER1, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_TAKER1, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_TAKER1, CHRFLAG2_00020000 - animation 0x0001, -1, -1, 0x0600, CHR_TAKER1, 4 - - set_chr_flag_bank3 CHR_TAKER2, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_TAKER2, CHRFLAG3_HIDDEN - animation 0x0001, -1, -1, 0x0600, CHR_TAKER2, 4 - - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x01bc, -1, -1, 0x0600, CHR_JOANNA, 4 - - show_object OBJ_DROPSHIP - set_object_flag_bank1 OBJ_DROPSHIP, OBJECTFLAG1_04000000 - set_object_flag_bank2 OBJ_DROPSHIP, OBJECTFLAG2_00000010 - object_do_animation 0x01bd, OBJ_DROPSHIP, 0x04ff, 0xff - - restart_timer - - wait_until 238, 0x9e - play_sound 0x046e, CHANNEL_6 - - wait_until 305, 0x9f - play_sound 0x046f, CHANNEL_6 - - wait_until 313, 0xa0 - play_sound 0x04ae, CHANNEL_7 - - wait_until 350, 0xa1 - play_sound 0x0085, CHANNEL_6 - - wait_until 380, 0xa2 - play_sound 0x0161, CHANNEL_6 - - wait_until 381, 0xa3 - play_sound 0x0162, CHANNEL_7 - - wait_until 400, 0xa4 - play_sound 0x0163, CHANNEL_6 - - wait_until 429, 0xa5 - play_sound 0x0164, CHANNEL_6 - - beginloop 0x0a - if_camera_animating /*goto*/ 0x2d - goto_next 0x56 - label 0x2d - if_controller_button_pressed /*goto*/ 0x56 - label 0x2d - endloop 0x0a - - label 0x56 - set_stage_flag STAGEFLAG_INTRO_FINISHED - label 0x06 - 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 - - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x01bc, -2, -1, 0x0600, CHR_JOANNA, 2 - - unset_chr_flag_bank3 CHR_NEGOTIATOR, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_NEGOTIATOR, CHRFLAG2_00020000 - animation 0x01b8, -2, -1, 0x0600, CHR_NEGOTIATOR, 2 - - unset_chr_flag_bank3 CHR_TAKER1, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_TAKER1, CHRFLAG2_00020000 - animation 0x01b9, -2, -1, 0x0600, CHR_TAKER1, 2 - - unset_chr_flag_bank3 CHR_TAKER2, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_TAKER2, CHRFLAG2_00020000 - animation 0x01ba, -2, -1, 0x0600, CHR_TAKER2, 2 - - hide_object OBJ_DROPSHIP - restart_default_music - reset_ambience - play_x_music CHANNEL_10, 30 - unset_stage_flag STAGEFLAG_PLAYING_INTRO_FROM_MENU - enter_firstperson - yield - animation 0x0001, -1, -1, 0x0200, CHR_NEGOTIATOR, 2 - animation 0x0001, -1, -1, 0x0200, CHR_TAKER1, 2 - animation 0x0001, -1, -1, 0x0200, CHR_TAKER2, 2 - set_function CHR_TAKER1, FUNC_INIT_TAKER - set_function CHR_TAKER2, FUNC_INIT_TAKER - set_function CHR_NEGOTIATOR, FUNC_NEGOTIATOR - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_function CHR_SELF, GFUNC_IDLE - label 0x4f - camera_movement 0x01be - cmd0175 60 - hide_object OBJ_DROPSHIP - if_controller_button_pressed /*goto*/ 0x56 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x01bf, -1, -1, 0x0600, CHR_JOANNA, 4 - set_chr_flag_bank3 CHR_TAKER1, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_TAKER1, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_TAKER1, CHRFLAG2_00020000 - animation 0x01c0, -1, -1, 0x0600, CHR_TAKER1, 4 - set_chr_flag_bank3 CHR_TAKER2, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_TAKER2, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_TAKER2, CHRFLAG2_00020000 - animation 0x01c1, -1, -1, 0x0600, CHR_TAKER2, 4 - restart_timer - label 0xa6 - yield - if_controller_button_pressed /*goto*/ 0x56 - if_timer_gt 17, /*goto*/ 0x06 - goto_first 0xa6 - - label 0x06 - play_sound 0x0179, CHANNEL_6 - label 0xa7 - yield - if_controller_button_pressed /*goto*/ 0x56 - if_timer_gt 60, /*goto*/ 0x06 - goto_first 0xa7 - - label 0x06 - play_sound 0x017a, CHANNEL_6 - label 0xa8 - yield - if_controller_button_pressed /*goto*/ 0x56 - if_timer_gt 96, /*goto*/ 0x06 - goto_first 0xa8 - - label 0x06 - play_sound 0x017b, CHANNEL_6 - label 0xa9 - yield - if_controller_button_pressed /*goto*/ 0x56 - if_timer_gt 144, /*goto*/ 0x06 - goto_first 0xa9 - - label 0x06 - play_sound 0x017c, CHANNEL_6 - label 0x0b - yield - if_camera_animating /*goto*/ 0x2d - goto_next 0x56 - label 0x2d - if_controller_button_pressed /*goto*/ 0x56 - label 0x2d - goto_first 0x0b - - label 0x56 - set_stage_flag STAGEFLAG_INTRO_FINISHED - label 0x06 - 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 - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x01bf, -2, -1, 0x0600, CHR_JOANNA, 2 - unset_chr_flag_bank3 CHR_TAKER1, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_TAKER1, CHRFLAG2_00020000 - set_chr_flag_bank3 CHR_TAKER1, CHRFLAG3_00000001 - animation 0x01c0, -2, -1, 0x0600, CHR_TAKER1, 2 - unset_chr_flag_bank3 CHR_TAKER2, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_TAKER2, CHRFLAG2_00020000 - set_chr_flag_bank3 CHR_TAKER2, CHRFLAG3_00000001 - animation 0x01c1, -2, -1, 0x0600, CHR_TAKER2, 2 - hide_object OBJ_DROPSHIP - restart_default_music - reset_ambience - play_x_music CHANNEL_10, 30 - enter_firstperson - yield - set_function CHR_TAKER1, FUNC_TAKER - set_function CHR_TAKER2, FUNC_TAKER - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0c02_outro_from_menu: - set_function CHR_CARRINGTON, GFUNC_IDLE - set_function CHR_SELF, FUNC_OUTRO - endfunction - -func0408_outro: - camera_movement 0x017a - set_music_track MUSIC_VILLA_OUTRO - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0xf1, CHRFLAG3_HIDDEN - set_function CHR_P1P2, GFUNC_IDLE - set_chr_flag_bank3 CHR_CARRINGTON, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_CARRINGTON, CHRFLAG3_UNEXPLODABLE - - set_chr_flag_bank3 CHR_P1P2, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_P1P2, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_P1P2, CHRFLAG2_00020000 - animation 0x017c, -1, -1, 0x0600, CHR_P1P2, 4 - - set_chr_flag_bank3 CHR_CARRINGTON, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_CARRINGTON, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_CARRINGTON, CHRFLAG2_00020000 - animation 0x017b, -1, -1, 0x0600, CHR_CARRINGTON, 4 - - show_nonessential_chrs FALSE - restart_timer - set_cutscene_weapon CHR_P1P2, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_P1P2, WEAPON_NONE, WEAPON_NONE - - .macro outro_wait_until time msg loopid - beginloop \loopid - dprint \msg - if_controller_button_pressed /*goto*/ 0x56 - if_timer_gt \time, /*goto*/ 0x06 - endloop \loopid - label 0x06 - .endm - - outro_wait_until 14 "1\n" 0x66 - play_sound 0x80d0, CHANNEL_7 - - outro_wait_until 36 "2\n" 0x67 - play_sound 0x80d1, CHANNEL_6 - - outro_wait_until 40 "3\n" 0x68 - speak CHR_P1P2, 0x202a, 0x7402, CHANNEL_4, COLOR_09_BLUE // "Sir? Are you injured?" - - outro_wait_until 58 "4\n" 0xad - play_sound 0x80d2, CHANNEL_7 - - outro_wait_until 80 "5\n" 0x69 - play_sound 0x80d3, CHANNEL_7 - - outro_wait_until 102 "6\n" 0x6a - play_sound 0x80d0, CHANNEL_7 - - outro_wait_until 142 "7\n" 0x6b - play_sound 0x80d1, CHANNEL_7 - - outro_wait_until 164 "8\n" 0x6c - play_sound 0x80cc, CHANNEL_7 - - outro_wait_until 165 "9\n" 0xae - speak CHR_P1P2, 0x202b, 0x7403, CHANNEL_4, COLOR_05_GREEN // "No, Joanna, I'm okay, but those dataDyne thugs mad..." - - outro_wait_until 195 "10\n" 0x6d - play_sound 0x80cd, CHANNEL_7 - - outro_wait_until 213 "11\n" 0x6e - play_sound 0x80ce, CHANNEL_7 - - outro_wait_until 231 "12\n" 0x6f - play_sound 0x80cf, CHANNEL_7 - - outro_wait_until 235 "13\n" 0x70 - play_sound 0x80cc, CHANNEL_7 - - // @bug: No check for button presses for about 8 seconds while Carrington is - // saying the above line. - label 0xaf - yield - dprint "14\n" - if_timer_gt 738, /*goto*/ 0x06 - goto_first 0xaf - - label 0x06 - speak CHR_P1P2, 0x202c, 0x7404, CHANNEL_4, COLOR_09_BLUE // "It's not your fault, sir. I should have been quick..." - - outro_wait_until 956 "15\n" 0xb0 - speak CHR_P1P2, 0x202d, 0x7405, CHANNEL_4, COLOR_05_GREEN // "Don't blame yourself, Joanna. Dr. Caroll told me t..." - - outro_wait_until 2280 "22\n" 0xb1 - speak CHR_P1P2, 0x202e, 0x7406, CHANNEL_4, COLOR_09_BLUE // "That won't be a problem, sir. So, did Dr. Caroll h..." - - outro_wait_until 2457 "16\n" 0x71 - play_sound 0x80cc, CHANNEL_7 - - outro_wait_until 2496 "17\n" 0x72 - play_sound 0x80cd, CHANNEL_7 - - outro_wait_until 2620 "26\n" 0x7a - speak CHR_P1P2, 0x202f, 0x7407, CHANNEL_5, COLOR_05_GREEN // "Oh, yes, indeed. He certainly did, and I'll brief ..." - - outro_wait_until 2730 "18\n" 0x73 - play_sound 0x80ce, CHANNEL_7 - - outro_wait_until 2808 "19\n" 0x74 - play_sound 0x80cf, CHANNEL_7 - - outro_wait_until 2861 "20\n" 0x75 - play_sound 0x80cc, CHANNEL_7 - - outro_wait_until 3030 "21\n" 0x76 - play_sound 0x80d1, CHANNEL_7 - - outro_wait_until 3098 "23\n" 0x77 - play_sound 0x80cd, CHANNEL_7 - - outro_wait_until 3194 "24\n" 0x78 - play_sound 0x80ce, CHANNEL_7 - - outro_wait_until 3276 "25\n" 0x79 - play_sound 0x80cf, CHANNEL_7 - - outro_wait_until 3370 "27\n" 0x7b - play_sound 0x80cc, CHANNEL_7 - - outro_wait_until 3463 "28\n" 0x7c - play_sound 0x80cd, CHANNEL_7 - - outro_wait_until 3503 "29\n" 0x7d - play_sound 0x80ce, CHANNEL_7 - - outro_wait_until 3545 "30\n" 0x7e - play_sound 0x80cf, CHANNEL_7 - - beginloop 0x08 - if_camera_animating /*goto*/ 0x2d - goto_next 0x56 - label 0x2d - if_controller_button_pressed /*goto*/ 0x56 - label 0x2d - endloop 0x08 - - label 0x56 - label 0x06 - dprint "32\n" - mute_channel CHANNEL_7 - mute_channel CHANNEL_6 - mute_channel CHANNEL_5 - restart_default_music - reset_ambience - end_level - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1003_give_items: - yield - yield - yield - yield - label 0x04 - if_difficulty_lt DIFF_PA, /*goto*/ 0x06 - - // PA - give_object_to_chr 0x01, CHR_JOANNA - give_object_to_chr 0x89, CHR_VELVET - chr_draw_weapon CHR_JOANNA, WEAPON_UNARMED - chr_draw_weapon CHR_VELVET, WEAPON_UNARMED - hide_object 0x02 - hide_object 0x8a - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x08 - set_function CHR_SELF, GFUNC_IDLE - - // A and SA - label 0x06 - give_object_to_chr 0x02, CHR_JOANNA - give_object_to_chr 0x8a, CHR_VELVET - chr_draw_weapon CHR_JOANNA, WEAPON_SNIPERRIFLE - chr_draw_weapon CHR_VELVET, WEAPON_SNIPERRIFLE - hide_object 0x01 - hide_object 0x89 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x08 - set_function CHR_SELF, GFUNC_IDLE - - // Velvet doesn't exist - label 0x08 - hide_object 0x8a - hide_object 0x89 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1004_check_negotiator: - if_difficulty_lt DIFF_PA, /*goto*/ 0x04 - goto_next 0x2d - - // A and SA - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_NEGOTIATOR_ESCAPED, TRUE, /*goto*/ 0x2d - if_chr_dying CHR_NEGOTIATOR, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - message CHR_JOANNA, 0x200b // "Negotiator has been killed." - set_stage_flag STAGEFLAG_NEGOTIATOR_DEAD - - // PA - label 0x2d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0401_init_taker: - set_chr_health CHR_SELF, 1 - if_difficulty_gt DIFF_SA, /*goto*/ 0x2d - unset_self_flag_bankx CHRFLAG0_80000000, BANK_0 - label 0x2d - set_function CHR_SELF, FUNC_TAKER - endfunction - -func0402_taker: - set_self_flag_bank3 CHRFLAG3_00000040 - yield - yield - if_difficulty_lt DIFF_PA, /*goto*/ 0x2d - - // PA - set_onshot_function GFUNC_ALERTED - goto_next 0x06 - - // A and SA - label 0x2d - set_onshot_function FUNC_TAKER - - // All difficulties - label 0x06 - if_just_injured CHR_SELF, /*goto*/ 0x61 - goto_next 0x03 - - // Wait for injury recovery - beginloop 0x61 - if_chr_stopped /*goto*/ 0x2d - endloop 0x61 - - // Injury recovered - label 0x2d - goto_next 0x6f - - label 0x03 - if_difficulty_gt DIFF_SA, /*goto*/ 0x2d - if_self_flag_bankx_eq CHRFLAG0_04000000, TRUE, BANK_0, /*goto*/ 0x6f - set_self_flag_bankx CHRFLAG0_04000000, BANK_0 - label 0x2d - restart_timer - if_difficulty_lt DIFF_PA, /*goto*/ 0x63 - - label 0x60 - if_self_flag_bankx_eq CHRFLAG0_NOHEAR, TRUE, BANK_0, /*goto*/ 0x06 - set_target_chr CHR_VELVET - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x06 - goto_next 0x03 - label 0x06 - set_target_chr CHR_JOANNA - label 0x03 - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x05 - - beginloop 0x05 - if_chr_distance_gt 1000, /*goto*/ 0x2e - if_chr_distance_lt 300, /*goto*/ 0x06 - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x06 - if_chr_weapon_equipped CHR_JOANNA, WEAPON_LAPTOPGUN, /*goto*/ 0x0b - label 0x2d - if_timer_gt 600, /*goto*/ 0x06 - endloop 0x05 - - // Jo got away - label 0x2e - set_return_function CHR_SELF, GFUNC_ALERTED - set_function CHR_SELF, GFUNC_ALERTED - - // Jo got too close - label 0x06 - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x09 - label 0x09 - yield - if_chr_stopped /*goto*/ 0x06 - goto_first 0x09 - - label 0x06 - goto_first 0x03 - - // Laptop gun equipped - label 0x0b - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - say_quip CHR_JOANNA, 0x12, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 - restart_timer - animation 0x0202, 0, -1, 0x100a, CHR_SELF, 2 - - beginloop 0x5f - if_timer_gt 180, /*goto*/ 0x5e - endloop 0x5f - - label 0x5e - goto_first 0x60 - - label 0x63 - restart_timer - set_target_chr CHR_NEGOTIATOR - label 0x03 - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x04 - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - dprint "AIMING AT ME\n" - if_chr_distance_to_pad_lt CHR_P1P2, 200, 0x0236, /*goto*/ 0x06 - label 0x2d - if_self_flag_bankx_eq CHRFLAG0_00200000, TRUE, BANK_0, /*goto*/ 0x06 - set_target_chr CHR_NEGOTIATOR - if_chr_death_animation_finished CHR_NEGOTIATOR, /*goto*/ 0x10 - if_chr_dying CHR_NEGOTIATOR, /*goto*/ 0x10 - if_difficulty_lt DIFF_SA, /*goto*/ 0x2d - if_timer_gt 600, /*goto*/ 0x06 - reloop 0x04 - - label 0x2d - if_timer_gt 900, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - set_chr_flag_bankx CHR_TAKER1, CHRFLAG0_00200000, BANK_0 - set_chr_flag_bankx CHR_TAKER2, CHRFLAG0_00200000, BANK_0 - restart_timer - - beginloop 0x0c - if_chr_death_animation_finished CHR_NEGOTIATOR, /*goto*/ 0x10 - if_chr_dying CHR_NEGOTIATOR, /*goto*/ 0x10 - if_difficulty_lt DIFF_SA, /*goto*/ 0x2d - if_timer_gt 600, /*goto*/ 0x06 - reloop 0x0c - - label 0x2d - if_timer_gt 1200, /*goto*/ 0x06 - endloop 0x0c - - // Shoot - label 0x6f - label 0x06 - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x08 - - beginloop 0x08 - if_chr_death_animation_finished CHR_NEGOTIATOR, /*goto*/ 0x06 - if_chr_dying CHR_NEGOTIATOR, /*goto*/ 0x06 - if_chr_stopped /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - if_chr_death_animation_finished CHR_NEGOTIATOR, /*goto*/ 0x10 - if_chr_dying CHR_NEGOTIATOR, /*goto*/ 0x10 - goto_first 0x03 - - label 0x10 - try_walk_to_target_chr /*goto*/ 0x0d - - beginloop 0x0d - if_self_flag_bankx_eq CHRFLAG0_NOHEAR, FALSE, BANK_0, /*goto*/ 0x06 - if_chr_distance_lt 200, /*goto*/ 0x2d - reloop 0x0d - - label 0x06 - if_chr_distance_lt 200, /*goto*/ 0x2d - if_chr_stopped /*goto*/ 0x2d - endloop 0x0d - - label 0x2d - if_self_flag_bankx_eq CHRFLAG0_NOHEAR, TRUE, BANK_0, /*goto*/ 0x06 - animation 0x01fd, 0, -1, 0x000a, CHR_SELF, 2 - goto_next 0x0e - label 0x06 - animation 0x0232, 0, -1, 0x000a, CHR_SELF, 2 - - beginloop 0x0e - if_shot_near_chr 0x00, /*goto*/ 0x2e - if_chr_stopped /*goto*/ 0x2d - endloop 0x0e - - label 0x2d - if_self_flag_bankx_eq CHRFLAG0_NOHEAR, TRUE, BANK_0, /*goto*/ 0x2d - walk_to_pad 0x004f - goto_next 0x11 - label 0x2d - walk_to_pad 0x004f - - beginloop 0x11 - if_shot_near_chr 0x00, /*goto*/ 0x2e - if_chr_stopped /*goto*/ 0x2d - endloop 0x11 - - label 0x2d - remove_chr CHR_SELF - set_function CHR_SELF, GFUNC_IDLE - - label 0x2e - stop_chr - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100f_check_takers_dead: - beginloop 0x04 - if_chr_dying CHR_TAKER1, /*goto*/ 0x2d - if_chr_death_animation_finished CHR_TAKER1, /*goto*/ 0x2d - if_chr_unloaded CHR_TAKER1, /*goto*/ 0x2d - reloop 0x04 - - label 0x2d - if_chr_dying CHR_TAKER2, /*goto*/ 0x2d - if_chr_death_animation_finished CHR_TAKER2, /*goto*/ 0x2d - if_chr_unloaded CHR_TAKER2, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - set_stage_flag STAGEFLAG_TAKERS_DEAD - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0403_negotiator: - set_chr_health CHR_SELF, 1 - stop_chr - - beginloop 0x09 - if_stage_flag_eq STAGEFLAG_TAKERS_DEAD, TRUE, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - run_to_pad 0x004f - - beginloop 0x08 - dprint "RUN TO PAD\n" - if_chr_stopped /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - message CHR_JOANNA, 0x200d // "Negotiator has escaped to safety." - set_stage_flag STAGEFLAG_NEGOTIATOR_ESCAPED - stop_music_channel CHANNEL_1 - remove_chr CHR_SELF - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1005_toggle_snipers: - if_difficulty_lt DIFF_PA, /*goto*/ 0x2d - goto_next 0x2e - - // A and SA - label 0x2d - hide_chr CHR_SNIPER1 - hide_chr CHR_SNIPER2 - hide_chr CHR_SNIPER3 - hide_chr CHR_SNIPER4 - hide_chr CHR_SNIPER5 - hide_chr CHR_SNIPER6 - hide_chr CHR_SNIPER7 - hide_chr CHR_SNIPER8 - - beginloop 0x08 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x002b, /*goto*/ 0x06 - endloop 0x08 - - // PA - label 0x2e - hide_chr CHR_SNIPER1 - hide_chr CHR_SNIPER2 - hide_chr CHR_SNIPER3 - hide_chr CHR_SNIPER4 - hide_chr CHR_SNIPER6 - hide_chr CHR_SNIPER7 - set_function CHR_SNIPER5, FUNC_ENABLE_SNIPER - set_function CHR_SNIPER8, FUNC_ENABLE_SNIPER - - // Room 0x004e is the dock, ramp, and wooden floor at the top of the ramp. - // @bug: When using small characters or play as Elvis cheats, the height - // criteria is not met so the snipers cannot be unhidden. - beginloop 0x09 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_y CHR_P1P2, -500, OPERATOR_LESS_THAN, /*goto*/ 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x004e, /*goto*/ 0x06 - label 0x2d - endloop 0x09 - - // All difficulties - label 0x06 - show_chr CHR_SNIPER1 - yield - show_chr CHR_SNIPER2 - yield - show_chr CHR_SNIPER3 - yield - show_chr CHR_SNIPER4 - yield - show_chr CHR_SNIPER6 - yield - show_chr CHR_SNIPER7 - yield - if_difficulty_lt DIFF_PA, /*goto*/ 0x2d - goto_next 0x06 - - // A and SA - label 0x2d - yield - show_chr CHR_SNIPER5 - yield - show_chr CHR_SNIPER8 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - - // All difficulties - label 0x06 - set_function CHR_SNIPER1, FUNC_ENABLE_SNIPER - set_function CHR_SNIPER2, FUNC_ENABLE_SNIPER - set_function CHR_SNIPER3, FUNC_ENABLE_SNIPER - set_function CHR_SNIPER4, FUNC_ENABLE_SNIPER - set_function CHR_SNIPER5, FUNC_ENABLE_SNIPER - set_function CHR_SNIPER6, FUNC_ENABLE_SNIPER - set_function CHR_SNIPER7, FUNC_ENABLE_SNIPER - set_function CHR_SNIPER8, FUNC_ENABLE_SNIPER - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0404_sniper: - stop_chr - set_onshot_function FUNC_SNIPER - set_target_chr CHR_JOANNA - if_chr_dying CHR_SELF, /*goto*/ 0x64 - if_self_flag_bankx_eq CHRFLAG0_08000000, TRUE, BANK_0, /*goto*/ 0x04 - - beginloop 0x60 - if_near_miss /*goto*/ 0x04 - if_stage_flag_eq STAGEFLAG_TAKERS_DEAD, TRUE, /*goto*/ 0x2d - endloop 0x60 - - label 0x2d - restart_timer - - beginloop 0x11 - if_near_miss /*goto*/ 0x04 - if_chr_in_view /*goto*/ 0x04 - if_timer_gt 300, /*goto*/ 0x04 - endloop 0x11 - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - dprint "START\n" - if_target_chr_in_sight /*goto*/ 0x58 - - // Choose a direction to face - call_rng - if_rand_lt 64, /*goto*/ 0x59 - if_rand_lt 128, /*goto*/ 0x5a - if_rand_lt 196, /*goto*/ 0x5b - try_face_entity ENTITYTYPE_DIRECTION, 0x0000, /*goto*/ 0x06 - reloop 0x04 - - label 0x59 - try_face_entity ENTITYTYPE_DIRECTION, 0x4000, /*goto*/ 0x06 - reloop 0x04 - - label 0x5a - try_face_entity ENTITYTYPE_DIRECTION, 0x8000, /*goto*/ 0x06 - reloop 0x04 - - label 0x5b - try_face_entity ENTITYTYPE_DIRECTION, 0xc000, /*goto*/ 0x06 - reloop 0x04 - - // Not actually running to a pad. Just waiting 2 seconds for the change - // in direction, or until detected player. - label 0x06 - dprint "RUN TO PAD\n" - restart_timer - - beginloop 0x0a - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x58 - if_saw_death 0x00, /*goto*/ 0x58 - if_shot_near_chr 0x00, /*goto*/ 0x58 - dprint "FACE\n" - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x0a - - // 2 seconds passed - label 0x06 - restart_timer - - label 0x10 - // 4 in 255 chance of looking around, - // and the animation used is random too. - call_rng - if_rand_gt 3, /*goto*/ 0x0b - call_rng - if_rand_lt 64, /*goto*/ 0x59 - if_rand_lt 128, /*goto*/ 0x5a - if_rand_lt 196, /*goto*/ 0x5b - animation ANIM_LOOK_AROUND_025B, 0, -1, 0x500a, CHR_SELF, 2 - goto_next 0x0b - label 0x59 - animation ANIM_LOOK_AROUND_025C, 0, -1, 0x500a, CHR_SELF, 2 - goto_next 0x0b - label 0x5a - animation ANIM_LOOK_AROUND_025D, 0, -1, 0x500a, CHR_SELF, 2 - goto_next 0x0b - label 0x5b - animation ANIM_LOOK_AROUND_025E, 0, -1, 0x500a, CHR_SELF, 2 - - label 0x0b - yield - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x58 - if_saw_death 0x00, /*goto*/ 0x58 - if_shot_near_chr 0x00, /*goto*/ 0x58 - dprint "RUN\n" - call_rng - if_rand_gt 3, /*goto*/ 0x2d - if_timer_gt 600, /*goto*/ 0x06 - label 0x2d - if_chr_idle /*goto*/ 0x2d - goto_first 0x10 - - label 0x2d - goto_first 0x0b - - label 0x06 - goto_first 0x04 - - // Detected player - label 0x58 - if_in_disarm_range /*goto*/ 0x2d - reloop 0x04 - - label 0x2d - restart_timer - label 0x06 - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x08 - reloop 0x04 - - label 0x08 - yield - label 0x06 - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x09 - reloop 0x04 - - beginloop 0x09 - if_chr_stopped /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - endloop 0x04 - - label 0x64 - dprint "SNIPE DIE\n" - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1006_check_snipers_dead: - beginloop 0x04 - if_chr_dying CHR_SNIPER1, /*goto*/ 0x2d - if_chr_death_animation_finished CHR_SNIPER1, /*goto*/ 0x2d - reloop 0x04 - - label 0x2d - if_chr_dying CHR_SNIPER2, /*goto*/ 0x2d - if_chr_death_animation_finished CHR_SNIPER2, /*goto*/ 0x2d - reloop 0x04 - - label 0x2d - if_chr_dying CHR_SNIPER3, /*goto*/ 0x2d - if_chr_death_animation_finished CHR_SNIPER3, /*goto*/ 0x2d - reloop 0x04 - - label 0x2d - if_chr_dying CHR_SNIPER4, /*goto*/ 0x2d - if_chr_death_animation_finished CHR_SNIPER4, /*goto*/ 0x2d - reloop 0x04 - - label 0x2d - if_chr_dying CHR_SNIPER5, /*goto*/ 0x2d - if_chr_death_animation_finished CHR_SNIPER5, /*goto*/ 0x2d - reloop 0x04 - - label 0x2d - if_chr_dying CHR_SNIPER6, /*goto*/ 0x2d - if_chr_death_animation_finished CHR_SNIPER6, /*goto*/ 0x2d - reloop 0x04 - - label 0x2d - if_chr_dying CHR_SNIPER7, /*goto*/ 0x2d - if_chr_death_animation_finished CHR_SNIPER7, /*goto*/ 0x2d - reloop 0x04 - - label 0x2d - if_chr_dying CHR_SNIPER8, /*goto*/ 0x2d - if_chr_death_animation_finished CHR_SNIPER8, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - message CHR_JOANNA, 0x200c // "Snipers have been eliminated." - set_stage_flag STAGEFLAG_SNIPERS_DEAD - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1007_cooling_switch: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, OBJ_COOLING_SWITCH, /*goto*/ 0x06 - reloop 0x04 - - label 0x06 - assign_sound 0x043a, CHANNEL_7 - control_sound_from_object CHANNEL_7, OBJ_COOLING_SWITCH, TRUE - if_stage_flag_eq STAGEFLAG_COOLING_ACTIVE, TRUE, /*goto*/ 0x06 - message CHR_P1P2, 0x200e // "Cooling systems have been activated." - set_stage_flag STAGEFLAG_COOLING_ACTIVE - assign_sound 0x8148, CHANNEL_1 - control_sound_from_object CHANNEL_1, OBJ_COOLING_SWITCH, TRUE - restart_timer - - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x2d - endloop 0x08 - - label 0x2d - assign_sound 0x811c, CHANNEL_1 - play_sound_from_object CHANNEL_1, OBJ_COOLING_SWITCH, 0x04b0, 0x0640 - reloop 0x04 - - label 0x06 - mute_channel CHANNEL_1 - assign_sound 0x043a, CHANNEL_7 - control_sound_from_object CHANNEL_7, OBJ_COOLING_SWITCH, TRUE - if_stage_flag_eq STAGEFLAG_WINDMILL_ACTIVATED, FALSE, /*goto*/ 0x2d - message CHR_P1P2, 0x2030 // "Operation denied - windmill is active." - goto_next 0x67 - label 0x2d - assign_sound 0x8149, CHANNEL_1 - control_sound_from_object CHANNEL_1, OBJ_COOLING_SWITCH, TRUE - message CHR_P1P2, 0x200f // "Cooling systems have been deactivated." - unset_stage_flag STAGEFLAG_COOLING_ACTIVE - label 0x67 - restart_timer - - beginloop 0x09 - if_timer_gt 120, /*goto*/ 0x2d - endloop 0x09 - - label 0x2d - endloop 0x04 - - endfunction - -func1008_power_switch: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, OBJ_POWER_SWITCH, /*goto*/ 0x06 - reloop 0x04 - - label 0x06 - assign_sound 0x043a, CHANNEL_7 - control_sound_from_object CHANNEL_7, OBJ_POWER_SWITCH, TRUE - if_stage_flag_eq STAGEFLAG_POWER_ACTIVE, TRUE, /*goto*/ 0x06 - message CHR_P1P2, 0x2010 // "Power systems have been activated." - set_stage_flag STAGEFLAG_POWER_ACTIVE - assign_sound 0x8148, CHANNEL_0 - control_sound_from_object CHANNEL_0, OBJ_POWER_SWITCH, TRUE - restart_timer - - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x2d - endloop 0x08 - - label 0x2d - assign_sound 0x8146, CHANNEL_0 - play_sound_from_object CHANNEL_0, OBJ_POWER_SWITCH, 0x04b0, 0x0640 - reloop 0x04 - - label 0x06 - mute_channel CHANNEL_0 - assign_sound 0x043a, CHANNEL_7 - control_sound_from_object CHANNEL_7, OBJ_POWER_SWITCH, TRUE - if_stage_flag_eq STAGEFLAG_WINDMILL_ACTIVATED, FALSE, /*goto*/ 0x2d - message CHR_P1P2, 0x2030 // "Operation denied - windmill is active." - goto_next 0x67 - label 0x2d - assign_sound 0x8149, CHANNEL_0 - control_sound_from_object CHANNEL_0, OBJ_POWER_SWITCH, TRUE - message CHR_P1P2, 0x2011 // "Power systems have been deactivated." - unset_stage_flag STAGEFLAG_POWER_ACTIVE - label 0x67 - restart_timer - - beginloop 0x09 - if_timer_gt 120, /*goto*/ 0x2d - endloop 0x09 - - label 0x2d - endloop 0x04 - - endfunction - -func1009_windmill_switch: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, OBJ_WINDMILL_SWITCH, /*goto*/ 0x06 - reloop 0x04 - - label 0x06 - if_stage_flag_eq STAGEFLAG_COOLING_ACTIVE, FALSE, /*goto*/ 0x06 - if_stage_flag_eq STAGEFLAG_POWER_ACTIVE, FALSE, /*goto*/ 0x06 - - // Activating - assign_sound 0x043a, CHANNEL_7 - control_sound_from_object CHANNEL_7, OBJ_WINDMILL_SWITCH, TRUE - assign_sound 0x8148, CHANNEL_2 - control_sound_from_object CHANNEL_2, OBJ_WINDMILL_SWITCH, TRUE - restart_timer - - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x2d - endloop 0x08 - - label 0x2d - assign_sound 0x0438, CHANNEL_2 - play_sound_from_object CHANNEL_2, OBJ_WINDMILL_SWITCH, 0x0708, 0x0960 - message CHR_P1P2, 0x2012 // "Windmill has been reactivated." - yield - set_stage_flag STAGEFLAG_WINDMILL_ACTIVATED - set_object_flag_bank1 OBJ_WINDMILL, OBJECTFLAG1_20000000 - unlock_door 0x06, 0x02 - unlock_door 0x07, 0x02 - set_function CHR_SELF, GFUNC_IDLE - - // Cooling and power not active - label 0x06 - assign_sound 0x043e, CHANNEL_7 - control_sound_from_object CHANNEL_7, OBJ_WINDMILL_SWITCH, TRUE - restart_timer - - beginloop 0x09 - if_timer_gt 120, /*goto*/ 0x2d - endloop 0x09 - - label 0x2d - endloop 0x04 - - endfunction - -func100a_check_switches_destroyed: - beginloop 0x04 - if_object_in_good_condition 0x03, /*goto*/ 0x2d - if_stage_flag_eq STAGEFLAG_COOLING_ACTIVE, TRUE, /*goto*/ 0x2d - message CHR_JOANNA, 0x2015 // "Critical mission object has been destroyed." - set_stage_flag STAGEFLAG_WINDMILL_SWITCH_DESTROYED - set_function CHR_SELF, GFUNC_IDLE - - label 0x2d - if_object_in_good_condition 0x04, /*goto*/ 0x2d - if_stage_flag_eq STAGEFLAG_POWER_ACTIVE, TRUE, /*goto*/ 0x2d - message CHR_JOANNA, 0x2015 // "Critical mission object has been destroyed." - set_stage_flag STAGEFLAG_WINDMILL_SWITCH_DESTROYED - set_function CHR_SELF, GFUNC_IDLE - - label 0x2d - if_object_in_good_condition 0x05, /*goto*/ 0x2d - if_stage_flag_eq STAGEFLAG_WINDMILL_ACTIVATED, TRUE, /*goto*/ 0x2d - message CHR_JOANNA, 0x2015 // "Critical mission object has been destroyed." - set_stage_flag STAGEFLAG_WINDMILL_SWITCH_DESTROYED - set_function CHR_SELF, GFUNC_IDLE - - label 0x2d - endloop 0x04 - - endfunction - -func100b_invoke_hackers: - yield - yield - yield - yield - yield - hide_chr CHR_HACKER1 - hide_chr CHR_HACKER2 - hide_chr CHR_HACKER3 - if_difficulty_lt DIFF_PA, /*goto*/ 0x2d - goto_next 0x04 - - // A or SA - exit - label 0x2d - set_function CHR_SELF, GFUNC_IDLE - - // PA - wait for windmill - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_WINDMILL_ACTIVATED, TRUE, /*goto*/ 0x06 - endloop 0x04 - - // Wait 10 seconds - label 0x06 - restart_timer - - beginloop 0x08 - if_timer_gt 600, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - speak CHR_JOANNA, 0x2016, 0x819f, CHANNEL_4, COLOR_05_GREEN // "Joanna! It's Grimshaw. We've got hackers at the vi..." - set_stage_flag STAGEFLAG_HACKERS_STARTED - set_object_flag_bank2 0x0b, OBJECTFLAG2_RTRACKED_YELLOW - set_object_flag_bank2 0x0d, OBJECTFLAG2_RTRACKED_YELLOW - show_chr CHR_HACKER1 - yield - show_chr CHR_HACKER2 - yield - show_chr CHR_HACKER3 - yield - set_function CHR_HACKER1, FUNC_HACKER - set_function CHR_HACKER2, FUNC_HACKER - set_function CHR_HACKER3, FUNC_HACKER - unset_chr_flag_bank3 CHR_HACKER1, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_HACKER2, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_HACKER3, CHRFLAG3_HIDDEN - cmd0145_rebuild_groups - cmd0146_rebuild_groups - play_x_music CHANNEL_10, 60 - set_countdown_timer 60 - show_countdown_timer - start_countdown_timer - - beginloop 0x09 - if_stage_flag_eq STAGEFLAG_HACKERS_DEAD, TRUE, /*goto*/ 0x2d - if_countdown_timer_lt 1, /*goto*/ 0x06 - endloop 0x09 - - // Timer expired - label 0x06 - message CHR_JOANNA, 0x2017 // "Hackers have uploaded vital data." - set_stage_flag STAGEFLAG_HACKERS_SUCCEEDED - - // Hackers dead - label 0x2d - hide_countdown_timer - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0406_init_hacker: - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0405_hacker: - animation ANIM_SITTING_TYPING, 0, -1, 0x1400, CHR_SELF, 2 - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_stage_flag_eq STAGEFLAG_HACKERS_SUCCEEDED, TRUE, /*goto*/ 0x2d - if_chr_sees_player /*goto*/ 0x09 - endloop 0x04 - - // Hackers succeeded - label 0x2d - run_to_pad 0x0070 - - beginloop 0x08 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_sees_player /*goto*/ 0x09 - if_chr_stopped /*goto*/ 0x06 - endloop 0x08 - - // Reached pad - label 0x06 - stop_chr - remove_chr CHR_SELF - set_function CHR_SELF, GFUNC_IDLE - - // Sees player - label 0x09 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func100c_check_hackers_dead: - if_difficulty_lt DIFF_PA, /*goto*/ 0x0d - - beginloop 0x04 - // Wait for hackers to start - if_stage_flag_eq STAGEFLAG_HACKERS_STARTED, TRUE, /*goto*/ 0x2d - reloop 0x04 - - // Wait until they're all dead - label 0x2d - yield - yield - yield - yield - yield - yield - if_chr_dying CHR_HACKER1, /*goto*/ 0x2d - if_chr_death_animation_finished CHR_HACKER1, /*goto*/ 0x2d - if_chr_unloaded CHR_HACKER1, /*goto*/ 0x2d - reloop 0x04 - - label 0x2d - if_chr_dying CHR_HACKER2, /*goto*/ 0x2d - if_chr_death_animation_finished CHR_HACKER2, /*goto*/ 0x2d - if_chr_unloaded CHR_HACKER2, /*goto*/ 0x2d - reloop 0x04 - - label 0x2d - if_chr_dying CHR_HACKER3, /*goto*/ 0x2d - if_chr_death_animation_finished CHR_HACKER3, /*goto*/ 0x2d - if_chr_unloaded CHR_HACKER3, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - if_stage_flag_eq STAGEFLAG_HACKERS_SUCCEEDED, TRUE, /*goto*/ 0x2d - message CHR_JOANNA, 0x2018 // "Hackers have been eliminated." - set_stage_flag STAGEFLAG_HACKERS_DEAD - - // Hackers succeeded - label 0x2d - label 0x0d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100e_check_objectives_complete: - // @bug: This loop waits until the door is fully open, which allows the - // player to enter the cellar while closing the door behind them and then - // mess with Carrington. - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_door_state 0x09, DOORSTATE_OPEN, /*goto*/ 0x2d - if_door_state 0x08, DOORSTATE_OPEN, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - message CHR_P1P2, 0x2019 // "Carrington has been rescued." - set_stage_flag STAGEFLAG_CARRINGTON_RESCUED - yield - yield - set_invincible CHR_JOANNA - revoke_control CHR_JOANNA, 4 - hide_countdown_timer - stop_countdown_timer - if_all_objectives_complete /*goto*/ 0x5c - message CHR_JOANNA, 0x201a // "All objectives not completed - mission failed." - - // If all objectives aren't complete, the player is shown the message, but - // if the objective completes within the next 4 seconds you pass the level - // anyway. - label 0x2d - restart_timer - - beginloop 0x5d - if_timer_gt 280, /*goto*/ 0x5c - endloop 0x5d - - label 0x5c - if_all_objectives_complete /*goto*/ 0x2d - - // Mission failed - objectives incomplete - end_level - set_function CHR_SELF, GFUNC_IDLE - - label 0x2d - 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 - - // Mission failed - players dead - label 0x2d - end_level - set_function CHR_SELF, GFUNC_IDLE - - label 0x06 - if_chr_dying CHR_CARRINGTON, /*goto*/ 0x2d - if_chr_death_animation_finished CHR_CARRINGTON, /*goto*/ 0x2d - if_chr_unloaded CHR_CARRINGTON, /*goto*/ 0x2d - - // Mission complete - set_function CHR_SELF, FUNC_OUTRO - - // Carrington died... somehow - label 0x2d - end_level - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1010_set_pa_negotiator_flag: - if_difficulty_lt DIFF_PA, /*goto*/ 0x06 - set_stage_flag STAGEFLAG_NEGOTIATOR_ESCAPED - label 0x06 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1011_setup_snipers: - set_chr_special_death_animation CHR_SNIPER7, 0x01 - set_chr_special_death_animation CHR_SNIPER4, 0x02 - set_chr_special_death_animation CHR_SNIPER5, 0x03 - set_chr_special_death_animation CHR_SNIPER3, 0x04 - set_chr_flag_bank3 CHR_SNIPER3, CHRFLAG3_HAS_SPECIAL_DEATH_ANIMATION - set_chr_flag_bank3 CHR_SNIPER4, CHRFLAG3_HAS_SPECIAL_DEATH_ANIMATION - set_chr_flag_bank3 CHR_SNIPER5, CHRFLAG3_HAS_SPECIAL_DEATH_ANIMATION - set_chr_flag_bank3 CHR_SNIPER7, CHRFLAG3_HAS_SPECIAL_DEATH_ANIMATION - set_chr_flag_bank3 CHR_SNIPER1, CHRFLAG3_HAS_SPECIAL_DEATH_ANIMATION - set_chr_flag_bank3 CHR_SNIPER2, CHRFLAG3_HAS_SPECIAL_DEATH_ANIMATION - set_chr_flag_bank3 CHR_SNIPER6, CHRFLAG3_HAS_SPECIAL_DEATH_ANIMATION - set_chr_flag_bank3 CHR_SNIPER8, CHRFLAG3_HAS_SPECIAL_DEATH_ANIMATION - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1013_check_guard_subdued: - if_difficulty_lt DIFF_PA, /*goto*/ 0x2d - - beginloop 0x04 - if_num_subdued 0, OPERATOR_GREATER_THAN, /*goto*/ 0x06 - if_self_flag_bankx_eq CHRFLAG0_00100000, FALSE, BANK_0, /*goto*/ 0x66 - unset_stage_flag STAGEFLAG_GUARD_CAPTURED - label 0x66 - reloop 0x04 - - // Captured someone - label 0x06 - if_stage_flag_eq STAGEFLAG_GUARD_CAPTURED, TRUE, /*goto*/ 0x2e - message CHR_JOANNA, 0x201d // "Enemy guard has been subdued." - label 0x2e - unset_stage_flag STAGEFLAG_FORGOT_TO_KO_GUARD - yield - set_stage_flag STAGEFLAG_GUARD_CAPTURED - - beginloop 0x67 - if_num_subdued 1, OPERATOR_LESS_THAN, /*goto*/ 0x06 - endloop 0x67 - - label 0x06 - unset_stage_flag STAGEFLAG_GUARD_CAPTURED - endloop 0x04 - - // A and SA - label 0x2d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1014_give_keycard: - set_chr_flag_bank3 CHR_BASEMENT1, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 CHR_BASEMENT2, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 CHR_BASEMENT3, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 CHR_BASEMENT4, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 CHR_BASEMENT5, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 CHR_BASEMENT6, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 CHR_BASEMENT7, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 CHR_BASEMENT8, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 CHR_BASEMENT9, CHRFLAG3_KILLCOUNTABLE - set_object_flag_bank0 OBJ_KEYCARD, OBJECTFLAG0_00100000 - set_object_flag_bank1 OBJ_KEYCARD, OBJECTFLAG1_INVISIBLE - - // Wait until one basement guard remaining - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_ONE_BASEMENT_GUARD_REMAINING, TRUE, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - - .macro give_keycard_if_alive chr - if_chr_death_animation_finished \chr, /*goto*/ 0x2d - if_chr_dying \chr, /*goto*/ 0x2d - if_chr_unloaded \chr, /*goto*/ 0x2d - give_object_to_chr OBJ_KEYCARD, \chr - goto_next 0x09 - label 0x2d - .endm - - give_keycard_if_alive CHR_BASEMENT1 - give_keycard_if_alive CHR_BASEMENT2 - give_keycard_if_alive CHR_BASEMENT3 - give_keycard_if_alive CHR_BASEMENT4 - give_keycard_if_alive CHR_BASEMENT5 - give_keycard_if_alive CHR_BASEMENT6 - give_keycard_if_alive CHR_BASEMENT7 - give_keycard_if_alive CHR_BASEMENT8 - - give_object_to_chr OBJ_KEYCARD, CHR_BASEMENT9 - goto_next 0x09 - label 0x2d - - // Gave key - label 0x09 - unset_object_flag_bank0 OBJ_KEYCARD, OBJECTFLAG0_00100000 - unset_object_flag_bank1 OBJ_KEYCARD, OBJECTFLAG1_INVISIBLE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1015_check_computers_destroyed: - if_difficulty_lt DIFF_PA, /*goto*/ 0x09 - - beginloop 0x04 - if_object_in_good_condition OBJ_HACKERPC1, /*goto*/ 0x2d - goto_next 0x08 - label 0x2d - if_object_in_good_condition OBJ_HACKERPC2, /*goto*/ 0x2d - goto_next 0x08 - label 0x2d - if_object_in_good_condition OBJ_HACKERPC3, /*goto*/ 0x2d - goto_next 0x08 - label 0x2d - if_object_in_good_condition OBJ_HACKERPC4, /*goto*/ 0x2d - goto_next 0x08 - label 0x2d - endloop 0x04 - - label 0x08 - message CHR_JOANNA, 0x2015 // "Critical mission object has been destroyed." - set_stage_flag STAGEFLAG_HACKER_PC_DESTROYED - label 0x09 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -.macro init_guard accuracy reaction health recovery - set_chr_dodge_rating 2, 0x0a - set_accuracy \accuracy - set_reaction_speed \reaction - set_chr_health CHR_SELF, \health - set_armor 0 - set_recovery_speed \recovery - set_shield 0 -.endm - -func040a_enable_sniper: - init_guard 13, 15, 10, 15 - set_function CHR_SELF, FUNC_SNIPER - endfunction - -func040c_init_type1_guard: - init_guard 3, 15, 40, 0 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func040d_init_type2_guard: - if_difficulty_lt DIFF_PA, /*goto*/ 0x2d - init_guard 15, 15, 40, 0 - set_function CHR_SELF, GFUNC_UNALERTED - - label 0x2d - init_guard 3, 15, 40, 0 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func040b_init_basement_guard: - init_guard 13, 15, 40, 10 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func1016_msg_generator: - 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, 0x2023, 0x73ac, CHANNEL_6, COLOR_09_BLUE // "If I get the wind generator back online, I'll get ..." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1017_msg_gottobequick: - if_difficulty_lt DIFF_PA, /*goto*/ 0x2d - set_function CHR_SELF, GFUNC_IDLE - - label 0x2d - restart_timer - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_INTRO_FINISHED, TRUE, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - restart_timer - - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - speak CHR_JOANNA, 0x2024, 0x73ad, CHANNEL_6, COLOR_09_BLUE // "I've got to be quick, or they'll kill the negotiat..." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1018_msg_hidingdaniel: - // Wait for windmill activated - beginloop 0x04 - if_objective_complete 2, /*goto*/ 0x2d - reloop 0x04 - - label 0x2d - if_difficulty_lt DIFF_PA, /*goto*/ 0x08 - if_objective_complete 3, /*goto*/ 0x08 // hackers objective - endloop 0x04 - - beginloop 0x08 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0088, /*goto*/ 0x2d - endloop 0x08 - - label 0x2d - speak CHR_P1P2, 0x2025, 0x73ae, CHANNEL_6, COLOR_09_BLUE // "Here's where they must be holding Daniel." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1019_msg_hackershavetobestopped: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_HACKERS_STARTED, TRUE, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - restart_timer - - beginloop 0x08 - if_timer_gt 450, /*goto*/ 0x2d - endloop 0x08 - - label 0x2d - speak CHR_JOANNA, 0x2026, 0x73af, CHANNEL_6, COLOR_09_BLUE // "Those hackers have to be stopped before I rescue D..." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040e_start_path00: - init_guard 3, 15, 40, 0 - assign_path 0 - start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 - endfunction - -func040f_start_path01: - init_Guard 3, 15, 40, 0 - assign_path 1 - start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 - endfunction - -func101b_toggle_basement_chrs: - yield - yield - hide_chr CHR_BASEMENT1 - hide_chr CHR_BASEMENT2 - hide_chr CHR_BASEMENT3 - hide_chr CHR_BASEMENT4 - hide_chr CHR_BASEMENT5 - hide_chr CHR_BASEMENT6 - hide_chr CHR_BASEMENT7 - hide_chr CHR_BASEMENT8 - hide_chr CHR_CARRINGTON - - // Not sure which room 0x0087 is - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0087, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - show_chr CHR_BASEMENT1 - yield - show_chr CHR_BASEMENT2 - yield - show_chr CHR_BASEMENT3 - yield - show_chr CHR_BASEMENT4 - yield - show_chr CHR_BASEMENT5 - yield - show_chr CHR_BASEMENT6 - yield - show_chr CHR_BASEMENT7 - yield - show_chr CHR_BASEMENT8 - yield - yield - show_chr CHR_CARRINGTON - yield - cmd0145_rebuild_groups - cmd0146_rebuild_groups - - // Every 5 frames, check if the wine bottles are destroyed. - // There's a lot of stuff going on here without yielding. If you destroyed - // all bottles except 0x88 then you might have a choppy experience. - label 0x08 - restart_timer - - beginloop 0x09 - if_timer_gt 5, /*goto*/ 0x2d - goto_first 0x09 - - label 0x2d - if_object_in_good_condition 0x1e, /*goto*/ 0x06 - if_object_in_good_condition 0x1f, /*goto*/ 0x06 - if_object_in_good_condition 0x20, /*goto*/ 0x06 - if_object_in_good_condition 0x21, /*goto*/ 0x06 - if_object_in_good_condition 0x22, /*goto*/ 0x06 - if_object_in_good_condition 0x23, /*goto*/ 0x06 - if_object_in_good_condition 0x24, /*goto*/ 0x06 - if_object_in_good_condition 0x25, /*goto*/ 0x06 - if_object_in_good_condition 0x26, /*goto*/ 0x06 - if_object_in_good_condition 0x27, /*goto*/ 0x06 - if_object_in_good_condition 0x28, /*goto*/ 0x06 - if_object_in_good_condition 0x29, /*goto*/ 0x06 - if_object_in_good_condition 0x2a, /*goto*/ 0x06 - if_object_in_good_condition 0x2b, /*goto*/ 0x06 - if_object_in_good_condition 0x2c, /*goto*/ 0x06 - if_object_in_good_condition 0x2d, /*goto*/ 0x06 - if_object_in_good_condition 0x2e, /*goto*/ 0x06 - if_object_in_good_condition 0x2f, /*goto*/ 0x06 - if_object_in_good_condition 0x30, /*goto*/ 0x06 - if_object_in_good_condition 0x31, /*goto*/ 0x06 - if_object_in_good_condition 0x32, /*goto*/ 0x06 - if_object_in_good_condition 0x33, /*goto*/ 0x06 - if_object_in_good_condition 0x34, /*goto*/ 0x06 - if_object_in_good_condition 0x35, /*goto*/ 0x06 - if_object_in_good_condition 0x36, /*goto*/ 0x06 - if_object_in_good_condition 0x37, /*goto*/ 0x06 - if_object_in_good_condition 0x38, /*goto*/ 0x06 - if_object_in_good_condition 0x39, /*goto*/ 0x06 - if_object_in_good_condition 0x3a, /*goto*/ 0x06 - if_object_in_good_condition 0x3b, /*goto*/ 0x06 - if_object_in_good_condition 0x3c, /*goto*/ 0x06 - if_object_in_good_condition 0x3d, /*goto*/ 0x06 - if_object_in_good_condition 0x3e, /*goto*/ 0x06 - if_object_in_good_condition 0x3f, /*goto*/ 0x06 - if_object_in_good_condition 0x40, /*goto*/ 0x06 - if_object_in_good_condition 0x41, /*goto*/ 0x06 - if_object_in_good_condition 0x42, /*goto*/ 0x06 - if_object_in_good_condition 0x43, /*goto*/ 0x06 - if_object_in_good_condition 0x44, /*goto*/ 0x06 - if_object_in_good_condition 0x45, /*goto*/ 0x06 - if_object_in_good_condition 0x46, /*goto*/ 0x06 - if_object_in_good_condition 0x47, /*goto*/ 0x06 - if_object_in_good_condition 0x48, /*goto*/ 0x06 - if_object_in_good_condition 0x49, /*goto*/ 0x06 - if_object_in_good_condition 0x4a, /*goto*/ 0x06 - if_object_in_good_condition 0x4b, /*goto*/ 0x06 - if_object_in_good_condition 0x4c, /*goto*/ 0x06 - if_object_in_good_condition 0x4d, /*goto*/ 0x06 - if_object_in_good_condition 0x4e, /*goto*/ 0x06 - if_object_in_good_condition 0x4f, /*goto*/ 0x06 - if_object_in_good_condition 0x50, /*goto*/ 0x06 - if_object_in_good_condition 0x51, /*goto*/ 0x06 - if_object_in_good_condition 0x52, /*goto*/ 0x06 - if_object_in_good_condition 0x53, /*goto*/ 0x06 - if_object_in_good_condition 0x54, /*goto*/ 0x06 - if_object_in_good_condition 0x55, /*goto*/ 0x06 - if_object_in_good_condition 0x56, /*goto*/ 0x06 - if_object_in_good_condition 0x57, /*goto*/ 0x06 - if_object_in_good_condition 0x58, /*goto*/ 0x06 - if_object_in_good_condition 0x59, /*goto*/ 0x06 - if_object_in_good_condition 0x5a, /*goto*/ 0x06 - if_object_in_good_condition 0x5b, /*goto*/ 0x06 - if_object_in_good_condition 0x5c, /*goto*/ 0x06 - if_object_in_good_condition 0x5d, /*goto*/ 0x06 - if_object_in_good_condition 0x5e, /*goto*/ 0x06 - if_object_in_good_condition 0x5f, /*goto*/ 0x06 - if_object_in_good_condition 0x60, /*goto*/ 0x06 - if_object_in_good_condition 0x61, /*goto*/ 0x06 - if_object_in_good_condition 0x62, /*goto*/ 0x06 - if_object_in_good_condition 0x63, /*goto*/ 0x06 - if_object_in_good_condition 0x64, /*goto*/ 0x06 - if_object_in_good_condition 0x65, /*goto*/ 0x06 - if_object_in_good_condition 0x66, /*goto*/ 0x06 - if_object_in_good_condition 0x67, /*goto*/ 0x06 - if_object_in_good_condition 0x68, /*goto*/ 0x06 - if_object_in_good_condition 0x69, /*goto*/ 0x06 - if_object_in_good_condition 0x6a, /*goto*/ 0x06 - if_object_in_good_condition 0x6b, /*goto*/ 0x06 - if_object_in_good_condition 0x6c, /*goto*/ 0x06 - if_object_in_good_condition 0x6d, /*goto*/ 0x06 - if_object_in_good_condition 0x6e, /*goto*/ 0x06 - if_object_in_good_condition 0x6f, /*goto*/ 0x06 - if_object_in_good_condition 0x70, /*goto*/ 0x06 - if_object_in_good_condition 0x71, /*goto*/ 0x06 - if_object_in_good_condition 0x72, /*goto*/ 0x06 - if_object_in_good_condition 0x73, /*goto*/ 0x06 - if_object_in_good_condition 0x74, /*goto*/ 0x06 - if_object_in_good_condition 0x75, /*goto*/ 0x06 - if_object_in_good_condition 0x76, /*goto*/ 0x06 - if_object_in_good_condition 0x77, /*goto*/ 0x06 - if_object_in_good_condition 0x78, /*goto*/ 0x06 - if_object_in_good_condition 0x79, /*goto*/ 0x06 - if_object_in_good_condition 0x7a, /*goto*/ 0x06 - if_object_in_good_condition 0x7b, /*goto*/ 0x06 - if_object_in_good_condition 0x7c, /*goto*/ 0x06 - if_object_in_good_condition 0x7d, /*goto*/ 0x06 - if_object_in_good_condition 0x7e, /*goto*/ 0x06 - if_object_in_good_condition 0x7f, /*goto*/ 0x06 - if_object_in_good_condition 0x80, /*goto*/ 0x06 - if_object_in_good_condition 0x81, /*goto*/ 0x06 - if_object_in_good_condition 0x82, /*goto*/ 0x06 - if_object_in_good_condition 0x83, /*goto*/ 0x06 - if_object_in_good_condition 0x84, /*goto*/ 0x06 - if_object_in_good_condition 0x85, /*goto*/ 0x06 - if_object_in_good_condition 0x86, /*goto*/ 0x06 - if_object_in_good_condition 0x87, /*goto*/ 0x06 - if_object_in_good_condition 0x88, /*goto*/ 0x06 - play_sound 0x17cb, -1 - set_function CHR_SELF, GFUNC_IDLE - label 0x06 - goto_first 0x08 - - endfunction - -/** - * This function hides guards inside the villa on A and SA, then unhides them - * once you approach the villa. - */ -func101c_toggle_villa_guards: - if_difficulty_lt DIFF_PA, /*goto*/ 0x2d - set_function CHR_SELF, GFUNC_IDLE - - // A and SA - label 0x2d - hide_chr 0x23 - hide_chr 0x24 - hide_chr 0x25 - hide_chr 0x26 - hide_chr 0x27 - hide_chr 0x28 - hide_chr 0x29 - hide_chr 0x2a - hide_chr 0x2b - hide_chr 0x2c - hide_chr 0x2d - hide_chr 0x2e - hide_chr 0x2f - hide_chr 0x30 - hide_chr 0x31 - hide_chr 0x32 - hide_chr 0x33 - hide_chr 0x34 - hide_chr 0x35 - hide_chr 0x36 - hide_chr 0x37 - hide_chr 0x38 - hide_chr 0x39 - hide_chr 0x3a - hide_chr 0x3b - hide_chr 0x3c - hide_chr 0x3d - hide_chr 0x3e - hide_chr 0x3f - hide_chr 0x40 - hide_chr 0x41 - hide_chr 0x42 - - // @bug: It is possible to cross room 0x002a in a single frame on coop if - // hugging the corner tightly, which means the guards will not be unhidden. - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x002a, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - show_chr 0x23 - yield - show_chr 0x24 - yield - show_chr 0x25 - yield - show_chr 0x26 - yield - show_chr 0x27 - yield - show_chr 0x28 - yield - show_chr 0x29 - yield - show_chr 0x2a - yield - show_chr 0x2b - yield - show_chr 0x2c - yield - show_chr 0x2d - yield - show_chr 0x2e - yield - show_chr 0x2f - yield - show_chr 0x30 - yield - show_chr 0x31 - yield - show_chr 0x32 - yield - show_chr 0x33 - yield - show_chr 0x34 - yield - show_chr 0x35 - yield - show_chr 0x36 - yield - show_chr 0x37 - yield - show_chr 0x38 - yield - show_chr 0x39 - yield - show_chr 0x3a - yield - show_chr 0x3b - yield - show_chr 0x3c - yield - show_chr 0x3d - yield - show_chr 0x3e - yield - show_chr 0x3f - yield - show_chr 0x40 - yield - show_chr 0x41 - yield - show_chr 0x42 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101d_dual_cmp150: - // Probable @bug: This timer starts from the start of the intro cinema, - // rather than from when you take control of Jo. - yield - restart_timer - - // Wait 38.3 seconds or for CMP150 sniper to die - beginloop 0x04 - if_chr_dying CHR_SNIPER7, /*goto*/ 0x2d - if_timer_gt 2300, /*goto*/ 0x06 - endloop 0x04 - - label 0x2d - pause_timer - play_sound 0x04c6, -1 // "My gun!" - - beginloop 0x08 - if_chr_death_animation_finished 0x06, /*goto*/ 0x2d - endloop 0x08 - - label 0x2d - unset_object_flag_bank0 OBJ_CMP150_1, OBJECTFLAG0_00100000 - unset_object_flag_bank0 OBJ_CMP150_2, OBJECTFLAG0_00100000 - unset_object_flag_bank1 OBJ_CMP150_1, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank1 OBJ_CMP150_1, OBJECTFLAG1_INVISIBLE - - label 0x06 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0407_init_sniper: - set_chr_health CHR_SELF, 1 - stop_chr - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0410_carrington: - yield - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_UNEXPLODABLE - set_chr_health CHR_SELF, 1 - animation 0x017b, 1, 1, 0x0600, CHR_CARRINGTON, 2 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Unlock exterior doors on SA and PA. - */ -func101e_unlock_doors: - if_difficulty_lt DIFF_SA, /*goto*/ 0x2d - unlock_door 0x90, 0x80 - unlock_door 0x91, 0x80 - unlock_door 0x92, 0x80 - unlock_door 0x93, 0x80 - unlock_door 0x94, 0x80 - unlock_door 0x95, 0x80 - unlock_door 0x96, 0x80 - unlock_door 0x97, 0x80 - unlock_door 0x98, 0x80 - label 0x2d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101f_check_one_basement_guard_remaining: - .macro inc_var_if_chr_dead chr - if_chr_dying \chr, /*goto*/ 0x2d - if_chr_death_animation_finished \chr, /*goto*/ 0x2d - if_chr_unloaded \chr, /*goto*/ 0x2d - goto_next 0x06 - label 0x2d - add_var_a 1 - label 0x06 - .endm - - beginloop 0x04 - set_var_a 0 - - inc_var_if_chr_dead CHR_BASEMENT1 - inc_var_if_chr_dead CHR_BASEMENT2 - inc_var_if_chr_dead CHR_BASEMENT3 - inc_var_if_chr_dead CHR_BASEMENT4 - inc_var_if_chr_dead CHR_BASEMENT5 - inc_var_if_chr_dead CHR_BASEMENT6 - inc_var_if_chr_dead CHR_BASEMENT7 - inc_var_if_chr_dead CHR_BASEMENT8 - inc_var_if_chr_dead CHR_BASEMENT9 - - if_var_a_lt 8, /*goto*/ 0x2d - set_stage_flag STAGEFLAG_ONE_BASEMENT_GUARD_REMAINING - set_function CHR_SELF, GFUNC_IDLE - label 0x2d - endloop 0x04 - - endfunction - -/** - * Counterop only. - */ -func1420_setup_portals: - yield - configure_room_portals 0x0050 - configure_room_portals 0x0052 - configure_room_portals 0x006c - configure_room_portals 0x004d - configure_room_portals 0x0065 - configure_room_portals 0x0059 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1423_setup_lighting: - yield - set_lighting 0x0027, 0x05, 0x01 - set_lighting 0x0027, 0x06, 0x01 - set_lighting 0x000c, 0x05, 0x01 - set_lighting 0x000c, 0x06, 0x01 - set_lighting 0x0029, 0x05, 0x01 - set_lighting 0x0035, 0x05, 0x01 - set_lighting 0x0035, 0x06, 0x01 - set_lighting 0x0036, 0x06, 0x01 - set_lighting 0x0037, 0x05, 0x01 - set_lighting 0x0037, 0x06, 0x01 - set_lighting 0x0038, 0x05, 0x01 - set_lighting 0x0038, 0x06, 0x01 - set_lighting 0x0039, 0x05, 0x01 - set_lighting 0x0039, 0x06, 0x01 - set_lighting 0x003a, 0x05, 0x01 - set_lighting 0x003a, 0x06, 0x01 - set_lighting 0x003b, 0x06, 0x01 - set_lighting 0x003c, 0x06, 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 0x0043, 0x05, 0x01 - set_lighting 0x0044, 0x05, 0x01 - set_lighting 0x0045, 0x05, 0x01 - set_lighting 0x0046, 0x05, 0x01 - set_lighting 0x0046, 0x06, 0x01 - set_lighting 0x0047, 0x05, 0x01 - set_lighting 0x0048, 0x05, 0x01 - set_lighting 0x0048, 0x06, 0x01 - set_lighting 0x0049, 0x05, 0x01 - set_lighting 0x004a, 0x05, 0x01 - set_lighting 0x004b, 0x05, 0x01 - set_lighting 0x004b, 0x06, 0x01 - set_lighting 0x004c, 0x05, 0x01 - set_lighting 0x004c, 0x06, 0x01 - set_lighting 0x004e, 0x05, 0x01 - set_lighting 0x004e, 0x06, 0x01 - set_lighting 0x004f, 0x06, 0x01 - set_lighting 0x0050, 0x05, 0x01 - set_lighting 0x0050, 0x06, 0x01 - set_lighting 0x0051, 0x06, 0x01 - set_lighting 0x0053, 0x05, 0x01 - set_lighting 0x0053, 0x06, 0x01 - set_lighting 0x0054, 0x06, 0x01 - set_lighting 0x0056, 0x05, 0x01 - set_lighting 0x0056, 0x06, 0x01 - set_lighting 0x0057, 0x05, 0x01 - set_lighting 0x0059, 0x05, 0x01 - set_lighting 0x0059, 0x06, 0x01 - set_lighting 0x005a, 0x06, 0x01 - set_lighting 0x005b, 0x05, 0x01 - set_lighting 0x005b, 0x06, 0x01 - set_lighting 0x005c, 0x06, 0x01 - set_lighting 0x005d, 0x06, 0x01 - set_lighting 0x005e, 0x06, 0x01 - set_lighting 0x005f, 0x06, 0x01 - set_lighting 0x0060, 0x06, 0x01 - set_lighting 0x0061, 0x05, 0x01 - set_lighting 0x0061, 0x06, 0x01 - set_lighting 0x0062, 0x05, 0x01 - set_lighting 0x0062, 0x06, 0x01 - set_lighting 0x0063, 0x06, 0x01 - set_lighting 0x0064, 0x06, 0x01 - set_lighting 0x0065, 0x06, 0x01 - set_lighting 0x0066, 0x05, 0x01 - set_lighting 0x0066, 0x06, 0x01 - set_lighting 0x0068, 0x05, 0x01 - set_lighting 0x0068, 0x06, 0x01 - set_lighting 0x0069, 0x06, 0x01 - set_lighting 0x006a, 0x06, 0x01 - set_lighting 0x006b, 0x06, 0x01 - set_lighting 0x006c, 0x06, 0x01 - set_lighting 0x006d, 0x06, 0x01 - set_lighting 0x006e, 0x06, 0x01 - set_lighting 0x006f, 0x06, 0x01 - set_lighting 0x0070, 0x05, 0x01 - set_lighting 0x0070, 0x06, 0x01 - set_lighting 0x0071, 0x05, 0x01 - set_lighting 0x0071, 0x06, 0x01 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1021_toggle_last_basement_guard: - set_chr_flag_bank3 CHR_BASEMENT9, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_BASEMENT9, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - - beginloop 0x04 - if_difficulty_gt DIFF_SA, /*goto*/ 0x2d - if_objective_complete 0, /*goto*/ 0x2d - reloop 0x04 - - label 0x2d - if_difficulty_lt DIFF_SA, /*goto*/ 0x2d - if_objective_complete 1, /*goto*/ 0x2d - reloop 0x04 - - label 0x2d - if_objective_complete 2, /*goto*/ 0x2d - reloop 0x04 - - label 0x2d - if_difficulty_lt DIFF_PA, /*goto*/ 0x2d - if_objective_complete 3, /*goto*/ 0x2d - reloop 0x04 - - label 0x2d - if_difficulty_lt DIFF_PA, /*goto*/ 0x2d - if_objective_complete 4, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - unset_chr_flag_bank3 CHR_BASEMENT9, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_BASEMENT9, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1022_setup_rtracker: - yield - set_object_flag_bank2 OBJ_CMP150_1, OBJECTFLAG2_RTRACKED_BLUE - set_object_flag_bank2 OBJ_CMP150_2, OBJECTFLAG2_RTRACKED_BLUE - set_object_flag_bank2 OBJ_DEVASTATOR, OBJECTFLAG2_RTRACKED_BLUE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0411_cisoldier: - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - chr_drop_weapon CHR_SELF - label 0x08 - yield - animation 0x0487, -1, -1, 0x0600, CHR_CISOLDIER, 2 - yield - yield - yield - kill CHR_CISOLDIER - label 0x2d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * This should be investigated more. - */ -func1024_set_chr_flags_on_pa: - yield - if_difficulty_lt DIFF_PA, /*goto*/ 0x2d - set_chr_flag_bank2 CHR_TAKER1, CHRFLAG2_08000000 - set_chr_flag_bank2 0x0a, CHRFLAG2_08000000 - set_chr_flag_bank2 0x23, CHRFLAG2_08000000 - set_chr_flag_bank2 0x2f, CHRFLAG2_08000000 - set_chr_flag_bank2 0x34, CHRFLAG2_08000000 - set_chr_flag_bank2 0x37, CHRFLAG2_08000000 - set_chr_flag_bank2 0x3e, CHRFLAG2_08000000 - set_chr_flag_bank2 CHR_BASEMENT6, CHRFLAG2_08000000 - set_chr_flag_bank2 CHR_BASEMENT8, CHRFLAG2_08000000 - label 0x2d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1025_check_basement_entered_without_subdue: - yield - if_difficulty_lt DIFF_PA, /*goto*/ 0x0d - - beginloop 0x04 - if_objective_complete 4, /*goto*/ 0x0c - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0087, /*goto*/ 0x06 - label 0x0c - endloop 0x04 - - label 0x06 - message CHR_P1P2, 0x2031 // "Mission unsuccessful - enemy guard not captured." - set_stage_flag STAGEFLAG_FORGOT_TO_KO_GUARD - - label 0x0d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -functions: - register_function func1400_setup_counterop 0x1400 - register_function func1001_objectives_failed_msg 0x1001 - register_function func1002_intro 0x1002 - register_function func1003_give_items 0x1003 - register_function func1004_check_negotiator 0x1004 - register_function func1005_toggle_snipers 0x1005 - register_function func1006_check_snipers_dead 0x1006 - register_function func1007_cooling_switch 0x1007 - register_function func1008_power_switch 0x1008 - register_function func1009_windmill_switch 0x1009 - register_function func100a_check_switches_destroyed 0x100a - register_function func100b_invoke_hackers 0x100b - register_function func100c_check_hackers_dead 0x100c - register_function func100e_check_objectives_complete 0x100e - register_function func100f_check_takers_dead 0x100f - register_function func1010_set_pa_negotiator_flag 0x1010 - register_function func1011_setup_snipers 0x1011 - register_function func1013_check_guard_subdued 0x1013 - register_function func1014_give_keycard 0x1014 - register_function func1015_check_computers_destroyed 0x1015 - register_function func1016_msg_generator 0x1016 - register_function func1017_msg_gottobequick 0x1017 - register_function func1018_msg_hidingdaniel 0x1018 - register_function func1019_msg_hackershavetobestopped 0x1019 - register_function func101b_toggle_basement_chrs 0x101b - register_function func101c_toggle_villa_guards 0x101c - register_function func101d_dual_cmp150 0x101d - register_function func101e_unlock_doors 0x101e - register_function func101f_check_one_basement_guard_remaining 0x101f - register_function func1420_setup_portals 0x1420 - register_function func1021_toggle_last_basement_guard 0x1021 - register_function func1022_setup_rtracker 0x1022 - register_function func1423_setup_lighting 0x1423 - register_function func1024_set_chr_flags_on_pa 0x1024 - register_function func1025_check_basement_entered_without_subdue 0x1025 - - register_function func1002_intro 0x0c00 - register_function func1002_intro_from_menu 0x0c01 - register_function func0c02_outro_from_menu 0x0c02 - - register_function func0401_init_taker 0x0401 - register_function func0402_taker 0x0402 - register_function func0403_negotiator 0x0403 - register_function func0404_sniper 0x0404 - register_function func0405_hacker 0x0405 - register_function func0406_init_hacker 0x0406 - register_function func0407_init_sniper 0x0407 - register_function func0408_outro 0x0408 - register_function func1002_intro 0x0409 - register_function func040a_enable_sniper 0x040a - register_function func040b_init_basement_guard 0x040b - register_function func040c_init_type1_guard 0x040c - register_function func040d_init_type2_guard 0x040d - register_function func040e_start_path00 0x040e - register_function func040f_start_path01 0x040f - register_function func0410_carrington 0x0410 - register_function func0411_cisoldier 0x0411 - endfunctions - -paths: - register_path path00, 0, 0 - register_path path01, 1, 0 - endpaths - -.align 4 diff --git a/asm/setup/setupimp.s b/asm/setup/setupimp.s deleted file mode 100644 index 16a6a1d9a..000000000 --- a/asm/setup/setupimp.s +++ /dev/null @@ -1,3970 +0,0 @@ -# -# Defense -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -// Characters -.set CHR_CARRINGTON, 0x00 -.set CHR_HOSTAGE_DEVICE_F, 0x01 // device room - female -.set CHR_HOSTAGE_FR1, 0x02 -.set CHR_HOSTAGE_INFO_M, 0x03 // info room - male -.set CHR_HOSTAGE_HOLO, 0x04 // holo -.set CHR_HANGARGUY, 0x05 // wears hostage clothes but isn't a hostage -.set CHR_HOSTAGE_DEVICE_M, 0x06 // device room - male -.set CHR_HOSTAGE_FR2, 0x07 -.set CHR_HOSTAGE_INFO_F, 0x08 // info room - female -.set CHR_TAKER_FR1, 0x1f -.set CHR_TAKER_FR2, 0x20 -.set CHR_TAKER_HOLO1, 0x21 -.set CHR_TAKER_HOLO2, 0x22 -.set CHR_TAKER_HOLO3, 0x23 -.set CHR_TAKER_DEVICE_M, 0x24 -.set CHR_TAKER_DEVICE_F, 0x25 -.set CHR_TAKER_INFO_F, 0x26 -.set CHR_TAKER_INFO_M, 0x27 -.set CHR_BLONDE1, 0x28 -.set CHR_BLONDE2, 0x29 -.set CHR_BLONDE3, 0x2a -.set CHR_BLONDE4, 0x2b -.set CHR_BLONDE5, 0x2c -.set CHR_BLONDE6, 0x2d -.set CHR_BLONDE7, 0x30 -.set CHR_SKEDAR1, 0x31 -.set CHR_SKEDAR2, 0x32 -.set CHR_SKEDAR3, 0x33 -.set CHR_SKEDAR4, 0x34 -.set CHR_HOLOCLONE1, 0x35 -.set CHR_HOLOCLONE2, 0x36 -.set CHR_HOLOCLONE3, 0x37 -.set CHR_JONATHAN, 0x38 - -// Objects -.set OBJ_RCP120, 0x05 -.set OBJ_AUTOGUN1, 0x06 -.set OBJ_AUTOGUN2, 0x07 -.set OBJ_AUTOGUN3, 0x08 -.set OBJ_SAFEINFO, 0x09 -.set OBJ_AUTOGUN_SWITCH1, 0x0a -.set OBJ_AUTOGUN_SWITCH2, 0x0b -.set OBJ_AUTOGUN_SWITCH3, 0x0c -.set OBJ_SAFEDOOR, 0x39 -.set OBJ_SKEDAR_SHUTTLE, 0x3c -.set OBJ_RCP120_GLASS, 0x3d -.set OBJ_FR_GLASS, 0x3e -.set OBJ_DEVASTATOR, 0x45 -.set OBJ_FR_PC, 0x4e -.set OBJ_DATAUPLINK_JOANNA, 0x4f -.set OBJ_DATAUPLINK_VELVET, 0x50 - -// Stage flags -.set STAGEFLAG_00000001, 0x00000001 // never set -.set STAGEFLAG_AUTOGUN1_ACTIVE, 0x00000100 -.set STAGEFLAG_AUTOGUN2_ACTIVE, 0x00000200 -.set STAGEFLAG_AUTOGUN3_ACTIVE, 0x00000400 -.set STAGEFLAG_ENOUGH_HOSTAGES_SAVED, 0x00000800 -.set STAGEFLAG_TOO_MANY_HOSTAGES_KILLED, 0x00001000 -.set STAGEFLAG_SAFEINFO_DESTROYED, 0x00002000 -.set STAGEFLAG_BOMB_AIRBORNE, 0x00004000 -.set STAGEFLAG_CARRINGTON_DEAD, 0x00010000 -.set STAGEFLAG_HOLO_TAKERS_DEAD, 0x00040000 -.set STAGEFLAG_DEVICE_TAKERS_DEAD, 0x00080000 -.set STAGEFLAG_INFO_TAKERS_DEAD, 0x00100000 -.set STAGEFLAG_AUTOGUN_SWITCH_DESTROYED, 0x00200000 -.set STAGEFLAG_BOMB_EXPLODING_ON_GROUND, 0x00800000 -.set STAGEFLAG_TRIGGER_SHUTTLE_TAKEOFF, 0x01000000 -.set STAGEFLAG_INTRO_FINISHED, 0x02000000 -.set STAGEFLAG_VISITED_HOSTAGES_BEFORE_AUTOGUNS, 0x04000000 -.set STAGEFLAG_TRIGGER_AUTODEFENSES_MSG, 0x08000000 -.set STAGEFLAG_TRIGGER_COUNTINGONME_MSG, 0x10000000 -.set STAGEFLAG_TRIGGER_SPAWNING, 0x20000000 -.set STAGEFLAG_DROPPED_DEVASTATOR, 0x40000000 -.set STAGEFLAG_FR_PC_DESTROYED, 0x80000000 - -// Functions -.set FUNC_SPAWNER1, 0x0401 -.set FUNC_CLONE1, 0x0402 -.set FUNC_INIT_CLONE1, 0x0403 -.set FUNC_SPAWNER2, 0x0404 -.set FUNC_CLONE2, 0x0405 -.set FUNC_INIT_CLONE2, 0x0406 -.set FUNC_SPAWNER3, 0x0407 -.set FUNC_CLONE3, 0x0408 -.set FUNC_INIT_CLONE3, 0x0409 -.set FUNC_SPAWNER4, 0x040a -.set FUNC_CLONE4, 0x040b -.set FUNC_INIT_CLONE4, 0x040c -.set FUNC_SPAWNER5, 0x040d -.set FUNC_CLONE5, 0x040e -.set FUNC_INIT_CLONE5, 0x040f -.set FUNC_SPAWNER6, 0x0410 -.set FUNC_CLONE6, 0x0411 -.set FUNC_INIT_CLONE6, 0x0412 -.set FUNC_DEFEND_PAD, 0x0413 -.set FUNC_FIRINGRANGE_HOSTAGE, 0x0414 -.set FUNC_INIT_HOSTAGE_FR1, 0x0415 -.set FUNC_INIT_HOSTAGE_FR2, 0x0416 -.set FUNC_INIT_FIRINGRANGE_TAKER, 0x0419 -.set FUNC_HOSTAGE_HOLO, 0x041a -.set FUNC_INIT_HOSTAGE_HOLO, 0x041b -.set FUNC_INIT_HOLOCLONE1, 0x041c -.set FUNC_INIT_HOLOCLONE2, 0x041d -.set FUNC_INIT_HOLOCLONE3, 0x041e -.set FUNC_HOLOCLONE, 0x041f -.set FUNC_TAKER_HOLO1, 0x0420 -.set FUNC_TAKER_HOLO2, 0x0421 -.set FUNC_TAKER_HOLO3, 0x0422 -.set FUNC_INIT_SHOCK, 0x0423 -.set FUNC_HOLOCLONE_ONSHOT, 0x0424 -.set FUNC_HOSTAGE_THANK_AND_RUN, 0x0425 -.set FUNC_INIT_SAVED_HOSTAGE, 0x0426 -.set FUNC_DROP_DEVASTATOR, 0x0427 -.set FUNC_INIT_DROP_DEVASTATOR, 0x0428 -.set FUNC_SKEDAR4, 0x0429 -.set FUNC_INIT_JONATHAN, 0x042a -.set FUNC_DEVICEROOM_HOSTAGE, 0x042b -.set FUNC_INIT_HOSTAGE_DEVICE_F, 0x042c -.set FUNC_INIT_HOSTAGE_DEVICE_M, 0x042d -.set FUNC_TAKER_DEVICE_M, 0x042e -.set FUNC_INIT_TAKER_DEVICE_M, 0x042f -.set FUNC_TAKER_DEVICE_F, 0x0430 -.set FUNC_INIT_TAKER_DEVICE_F, 0x0431 -.set FUNC_TAKER_ATTACK, 0x0432 -.set FUNC_INFOROOM_HOSTAGE, 0x0433 -.set FUNC_INIT_HOSTAGE_INFO_M, 0x0434 -.set FUNC_INIT_HOSTAGE_INFO_F, 0x0435 -.set FUNC_TAKER_INFO_M, 0x0436 -.set FUNC_INIT_TAKER_INFO_M, 0x0437 -.set FUNC_TAKER_INFO_F, 0x0438 -.set FUNC_INIT_TAKER_INFO_F, 0x0439 -.set FUNC_INIT_BLONDE, 0x043b -.set FUNC_INIT_CISOLDIER, 0x043c -.set FUNC_CARRINGTON, 0x043e - -props: - briefing 0, 0x2201 - briefing 1, 0x2200 - briefing 2, 0x2202 - briefing 3, 0x2203 - - beginobjective 0, 0x2205, DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Reactivate automatic defenses" - complete_flags STAGEFLAG_AUTOGUN1_ACTIVE - complete_flags STAGEFLAG_AUTOGUN2_ACTIVE - complete_flags STAGEFLAG_AUTOGUN3_ACTIVE - fail_flags STAGEFLAG_AUTOGUN_SWITCH_DESTROYED - fail_flags STAGEFLAG_00000001 - endobjective - - beginobjective 1, 0x2206, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Release hostages" - complete_flags STAGEFLAG_ENOUGH_HOSTAGES_SAVED - fail_flags STAGEFLAG_TOO_MANY_HOSTAGES_KILLED - endobjective - - beginobjective 2, 0x2207, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Retrieve experimental weapon" - require_object_collected OBJ_RCP120 - fail_flags STAGEFLAG_FR_PC_DESTROYED - endobjective - - beginobjective 3, 0x2208, DIFFBIT_PA | DIFFBIT_PD // "Destroy sensitive information" - complete_flags STAGEFLAG_SAFEINFO_DESTROYED - endobjective - - beginobjective 4, 0x2209, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Deactivate bomb" - complete_flags STAGEFLAG_BOMB_AIRBORNE - fail_flags STAGEFLAG_BOMB_EXPLODING_ON_GROUND - fail_flags STAGEFLAG_CARRINGTON_DEAD - endobjective - - tag 0x23, 2 - tag 0x24, 2 - door 0x0100, MODEL_CIDOOR1_REF, 0x0156, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CIDOOR1_REF, 0x0157, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x43, 2 - tag 0x44, 2 - door 0x0100, MODEL_CIDOOR1_REF, 0x0158, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CIDOOR1_REF, 0x0159, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CIDOOR1_REF, 0x015b, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CIDOOR1_REF, 0x015c, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x54, 1 - door 0x0100, MODEL_CIDOOR1_REF, 0x015a, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x19, 1 - door 0x0100, MODEL_CIDOOR1_REF, 0x015d, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x51, 1 - door 0x0100, MODEL_CH_SHUTTER1, 0x0166, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000222, 0x00000004, 0x00000020, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x0167, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000222, 0x00000004, 0x00000020, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - object 0x0100, MODEL_CI_SOFA, 0x0212, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_CI_SOFA, 0x0213, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_CI_SOFA, 0x0214, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_CI_SOFA, 0x0215, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_CI_SOFA, 0x0216, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_CI_SOFA, 0x0217, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_CI_SOFA, 0x0218, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_CI_SOFA, 0x0219, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - glass 0x0100, MODEL_WINDOW, 0x019f, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x019e, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x019d, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x019c, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01a0, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01a1, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01a2, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01a3, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01a4, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01a5, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01a6, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01a7, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01c4, 0x04020b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01c5, 0x04020b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01c6, 0x04020b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01c7, 0x04020b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01a8, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01a9, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01aa, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01ab, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01ac, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01ad, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01ae, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01af, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01d1, 0x04000362, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x46, 6 - tag 0x47, 6 - tag 0x48, 6 - tag 0x49, 6 - tag 0x41, 1 - lift 0x0100, MODEL_CI_LIFT, 0x0193, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0193, 0x0194, 0xffffffff, 0x00000001, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x015e, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x015f, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x0160, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x0161, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -4, -5, 0, 0 - link_objects -4, -6, 0, 0 - link_objects -4, -7, 0, 1 - link_objects -4, -8, 0, 1 - tag 0x4a, 6 - tag 0x4b, 6 - tag 0x4c, 6 - tag 0x4d, 6 - tag 0x42, 1 - lift 0x0100, MODEL_CI_LIFT, 0x0195, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0195, 0x0196, 0xffffffff, 0x00000001, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x0164, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x0165, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x0162, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x0163, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -4, -5, 0, 0 - link_objects -4, -6, 0, 0 - link_objects -4, -7, 0, 1 - link_objects -4, -8, 0, 1 - tag 0x00, 1 - object 0x0100, MODEL_DD_CHAIR, 0x021b, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x021a, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x4e, 1 - object 0x0100, MODEL_GOODPC, 0x021c, 0x000004e1, 0x00000001, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x01, 1 - object 0x0100, MODEL_DD_CHAIR, 0x021f, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x021d, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_GOODPC, 0x021e, 0x000004e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x02, 1 - object 0x0100, MODEL_DD_CHAIR, 0x0220, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x0222, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_GOODPC, 0x0221, 0x000004e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - chr 0x00010400, 0x02, 0x00fa, BODY_CILABTECH, HEAD_CHRIST, FUNC_INIT_HOSTAGE_FR1, 0x00b7, -1, 1000, 6, 0x00000000, 0x00300000, 0x10, 0x05, -1, 0, 0x02000000 - weapon 0x0100, MODEL_CHRFALCON2, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2, 0x00ffffff, 0x00000000 - chr 0x00014400, 0x07, 0x0013, BODY_CILABTECH, HEAD_BEAU1, FUNC_INIT_HOSTAGE_FR2, 0x00b7, -1, 0, 0, 0x48000000, 0x00300000, 0x10, 0x0d, 0x00, 0, 0x00020000 - weapon 0x0100, MODEL_CHRFALCON2, 0x0007, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2, 0x00ffffff, 0x00000000 - chr 0x00010400, 0x04, 0x0103, BODY_CIFEMTECH, HEAD_SECRETARY, FUNC_INIT_HOSTAGE_HOLO, -1, -1, 1000, 6, 0x00000000, 0x00200000, 0x10, 0x05, -1, 0, 0x02000000 - chr 0x00010400, 0x01, 0x010b, BODY_CIFEMTECH, HEAD_SECRETARY, FUNC_INIT_HOSTAGE_DEVICE_F, -1, -1, 1000, 6, 0x00000000, 0x00200000, 0x10, 0x05, -1, 0, 0x02000000 - chr 0x00014400, 0x06, 0x00fd, BODY_CILABTECH, HEAD_RUSS, FUNC_INIT_HOSTAGE_DEVICE_M, -1, -1, 0, 0, 0x48000000, 0x00200000, 0x10, 0x0d, 0x01, 0, 0x00020000 - chr 0x00010400, 0x03, 0x010c, BODY_CILABTECH, HEAD_MARK2, FUNC_INIT_HOSTAGE_INFO_M, -1, -1, 1000, 6, 0x00000000, 0x00200001, 0x10, 0x05, -1, 0, 0x02000000 - chr 0x00014400, 0x08, 0x00f7, BODY_CIFEMTECH, HEAD_SECRETARY, FUNC_INIT_HOSTAGE_INFO_F, -1, -1, 0, 0, 0x00000000, 0x00200001, 0x10, 0x0d, 0x02, 0, 0x00020000 - chr 0x00000400, 0x05, 0x00fb, BODY_CILABTECH, HEAD_BRIAN, GFUNC_IDLE, 0x00fb, -1, 1000, 6, 0x00012000, 0x00300000, 0x10, 0x05, -1, 0, 0x02000000 - weapon 0x0100, MODEL_CHRFALCON2, 0x0005, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2, 0x00ffffff, 0x00000000 - chr 0x00010400, 0x00, 0x0142, BODY_CARREVENINGSUIT, HEAD_CARRINGTON, GFUNC_IDLE, 0x0142, -1, 200, 100, 0x00012000, 0x00301000, 0x10, 0x01, -1, 0, 0x00000000 - chr 0x00000000, 0x0c, 0x0133, BODY_DDSHOCK, HEAD_RANDOM, FUNC_SPAWNER1, -1, -1, 200, 100, 0x80092000, 0x00301000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000080, 0x0d, 0x0134, BODY_DDSHOCK, HEAD_RANDOM, FUNC_SPAWNER2, -1, -1, 200, 100, 0x80092000, 0x00301000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x0e, 0x0135, BODY_DDSHOCK, HEAD_RANDOM, FUNC_SPAWNER2, -1, -1, 200, 100, 0x80092000, 0x00301000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x10, 0x0137, BODY_DDSHOCK, HEAD_RANDOM, FUNC_SPAWNER3, -1, -1, 200, 100, 0x80092000, 0x00301000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0010, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x12, 0x0139, BODY_DDSHOCK, HEAD_RANDOM, FUNC_SPAWNER5, -1, -1, 200, 100, 0x80092000, 0x00301000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0012, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x13, 0x003a, BODY_DDSHOCK, HEAD_RANDOM, FUNC_SPAWNER4, -1, -1, 200, 100, 0x80092000, 0x00301000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0013, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x15, 0x013c, BODY_CISOLDIER, HEAD_RANDOM, GFUNC_IDLE, 0x013c, -1, 200, 100, 0x80012000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAR34, 0x0015, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AR34, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x16, 0x013d, BODY_CISOLDIER, HEAD_RANDOM, GFUNC_IDLE, 0x013d, -1, 200, 100, 0x80012000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAR34, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AR34, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x17, 0x013e, BODY_CISOLDIER, HEAD_RANDOM, GFUNC_IDLE, 0x013e, -1, 200, 100, 0x80012000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAR34, 0x0017, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AR34, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x18, 0x013f, BODY_CISOLDIER, HEAD_RANDOM, GFUNC_IDLE, 0x013f, -1, 200, 100, 0x80012000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAR34, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AR34, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x1b, 0x0143, BODY_CISOLDIER, HEAD_RANDOM, GFUNC_IDLE, 0x0143, -1, 200, 100, 0x80012000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAR34, 0x001b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AR34, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x1c, 0x0144, BODY_CISOLDIER, HEAD_RANDOM, GFUNC_IDLE, 0x0144, -1, 200, 100, 0x80012000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAR34, 0x001c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AR34, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x1d, 0x0145, BODY_CISOLDIER, HEAD_RANDOM, GFUNC_IDLE, 0x00b1, -1, 200, 100, 0x80012000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAR34, 0x001d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AR34, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x1e, 0x0146, BODY_CISOLDIER, HEAD_RANDOM, GFUNC_IDLE, 0x0146, -1, 200, 100, 0x80012000, 0x80300000, 0x10, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAR34, 0x001e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AR34, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x19, 0x0140, BODY_CISOLDIER, HEAD_RANDOM, GFUNC_IDLE, 0x0140, -1, 200, 100, 0x80012000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAR34, 0x0019, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AR34, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x1a, 0x0141, BODY_CISOLDIER, HEAD_RANDOM, GFUNC_IDLE, 0x0141, -1, 200, 100, 0x80012000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAR34, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AR34, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x1f, 0x014b, BODY_DDSHOCK, HEAD_RANDOM, FUNC_INIT_SHOCK, -1, -1, 200, 100, 0x00092000, 0x00300000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x001f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x20, 0x014c, BODY_DDSHOCK, HEAD_RANDOM, FUNC_INIT_SHOCK, -1, -1, 200, 100, 0x00092000, 0x00300000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0020, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x21, 0x014d, BODY_DDSHOCK, HEAD_RANDOM, FUNC_INIT_SHOCK, -1, -1, 200, 100, 0x00092000, 0x00300000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0021, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x22, 0x014e, BODY_DDSHOCK, HEAD_RANDOM, FUNC_INIT_SHOCK, -1, -1, 200, 100, 0x00092000, 0x00300000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0022, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x23, 0x014f, BODY_DDSHOCK, HEAD_RANDOM, FUNC_INIT_SHOCK, -1, -1, 200, 100, 0x00092000, 0x00300000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0023, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x24, 0x0150, BODY_DDSHOCK, HEAD_RANDOM, FUNC_INIT_TAKER_DEVICE_M, -1, -1, 200, 100, 0x00092000, 0x00300000, 0x02, 0x0f, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0024, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x25, 0x0151, BODY_DDSHOCK, HEAD_RANDOM, FUNC_INIT_TAKER_DEVICE_F, -1, -1, 200, 100, 0x00092000, 0x00300000, 0x02, 0x0f, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0025, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x26, 0x0152, BODY_DDSHOCK, HEAD_RANDOM, FUNC_INIT_TAKER_INFO_F, -1, -1, 200, 100, 0x00010000, 0x00300000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0026, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x27, 0x0153, BODY_DDSHOCK, HEAD_RANDOM, FUNC_INIT_TAKER_INFO_M, -1, -1, 200, 100, 0x00010000, 0x00300000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0027, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x14, 0x0053, BODY_DDSHOCK, HEAD_RANDOM, FUNC_SPAWNER6, -1, -1, 200, 100, 0x00010000, 0x00300000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x28, 0x0148, BODY_MRBLONDE, HEAD_MRBLONDE, GFUNC_IDLE_0009, -1, -1, 200, 100, 0xc0092000, 0x00300000, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0028, 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 0x00000200, 0x29, 0x0149, BODY_MRBLONDE, HEAD_MRBLONDE, GFUNC_IDLE_0009, -1, -1, 200, 100, 0xc0092000, 0x00300000, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0029, 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 0x00000200, 0x2a, 0x014a, BODY_MRBLONDE, HEAD_MRBLONDE, GFUNC_IDLE_0009, -1, -1, 200, 100, 0xc0092000, 0x00300000, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x002a, 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 0x00000200, 0x2b, 0x0154, BODY_MRBLONDE, HEAD_MRBLONDE, GFUNC_IDLE_0009, -1, -1, 200, 100, 0xc0092000, 0x00300000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x002b, 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 0x00000200, 0x2c, 0x0155, BODY_MRBLONDE, HEAD_MRBLONDE, GFUNC_IDLE_0009, -1, -1, 200, 100, 0xc0092000, 0x00300000, 0x02, 0x0e, -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 0x00000200, 0x2d, 0x0147, BODY_MRBLONDE, HEAD_MRBLONDE, GFUNC_IDLE_0009, -1, -1, 200, 100, 0xc0092000, 0x00300000, 0x02, 0x0e, -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 0x00000000, 0x30, 0x00ff, BODY_MRBLONDE, HEAD_MRBLONDE, GFUNC_IDLE, -1, -1, 200, 100, 0x00092000, 0x00301000, 0x02, 0x00, -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 0x00004000, 0x31, 0x0100, BODY_SKEDAR, HEAD_RANDOM, GFUNC_INVINCIBLE_AND_IDLE, -1, -1, 200, 100, 0x00092000, 0x00301000, 0x02, 0x00, -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 0x00004000, 0x32, 0x0101, BODY_SKEDAR, HEAD_RANDOM, GFUNC_INVINCIBLE_AND_IDLE, -1, -1, 200, 100, 0x00092000, 0x00301000, 0x02, 0x00, -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 0x00004000, 0x33, 0x0102, BODY_SKEDAR, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 200, 100, 0x00092000, 0x00301000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0033, 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 0x00004100, 0x34, 0x003a, BODY_SKEDAR, HEAD_RANDOM, GFUNC_STOP_AND_IDLE, -1, -1, 200, 100, 0x00092000, 0x40300000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0034, 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 0x00010100, 0x38, 0x0051, BODY_CISOLDIER, HEAD_JONATHAN, FUNC_INIT_JONATHAN, 0x0051, -1, 200, 100, 0x00012000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDY357, 0x0038, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357MAGNUM, 0x00ffffff, 0x00000000 - tag 0x06, 1 - autogun 0x00a6, MODEL_CI_ROOFGUN, 0x0235, 0x00000004, 0x00002001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00750000, 0x00000000, 0x00005555, 0xffffaaab, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000aaa, 0x00320000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x07, 1 - autogun 0x00a6, MODEL_CI_ROOFGUN, 0x0234, 0x00000004, 0x00002001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x007c0000, 0x00000000, 0x00005555, 0xffffaaab, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000aaa, 0x00320000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x08, 1 - autogun 0x00a6, MODEL_CI_ROOFGUN, 0x0233, 0x00000004, 0x00002001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00970000, 0x00000000, 0x00005555, 0xffffaaab, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000aaa, 0x00320000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x0a, 1 - multimonitor 0x0099, MODEL_CIHUB, 0x0236, 0x00000002, 0x00000001, 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, 0x03000000 - tag 0x0b, 1 - multimonitor 0x0099, MODEL_CIHUB, 0x0237, 0x00000002, 0x00000001, 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, 0x03000000 - tag 0x0c, 1 - multimonitor 0x0099, MODEL_CIHUB, 0x0238, 0x00000002, 0x00000001, 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, 0x03000000 - tag 0x0d, 1 - object 0x0100, MODEL_DROPSHIP, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x0e, 1 - object 0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x0f, 1 - object 0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x10, 1 - object 0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x11, 1 - object 0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x12, 1 - object 0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x13, 1 - object 0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x14, 1 - object 0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x15, 1 - object 0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x16, 1 - object 0x0300, MODEL_LASERCUT, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x17, 1 - object 0x0100, MODEL_LASERCUT, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x18, 1 - object 0x0100, MODEL_LASERCUT, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x52, 1 - object 0x0019, MODEL_KNOCKKNOCK, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x53, 1 - object 0x0019, MODEL_KNOCKKNOCK, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x05, 1 - weapon 0x0180, MODEL_CHRRCP120, 0x011a, 0x00100008, 0x00000000, 0x20400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_RCP120, 0x00ffffff, 0x00000000 - tag 0x09, 1 - object 0x0480, MODEL_SENSITIVEINFO, 0x010f, 0x000204e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - rename_object -1, 0x4e, 0x220a, 0x220b, 0x220c, 0x220d, 0x220e, 0x0000, 0x0000 // "Obtain sensitive info." - tag 0x4f, 1 - weapon 0x0180, MODEL_CHRDATATHIEF, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DATAUPLINK, 0x00ffffff, 0x00000000 - rename_object -1, 0x36, 0x2239, 0x223a, 0x223b, 0x223c, 0x223d, 0x0000, 0x0000 // "Obtain Data Uplink." - tag 0x50, 1 - weapon 0x0180, MODEL_CHRDATATHIEF, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DATAUPLINK, 0x00ffffff, 0x00000000 - rename_object -1, 0x36, 0x2239, 0x223a, 0x223b, 0x223c, 0x223d, 0x0000, 0x0000 // "Obtain Data Uplink." - door 0x0100, MODEL_INSTFRONTDOOR, 0x018f, 0x10000600, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_INSTFRONTDOOR, 0x0190, 0x10000600, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0168, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0169, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x016a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x016b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x016c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x016d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x016e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x016f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0170, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0171, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0172, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0173, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0174, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0175, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0176, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0177, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0178, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0179, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x017b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x017c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x017d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x017e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x017f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0180, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x0181, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000222, 0x00000004, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000400, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x0182, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000222, 0x00000004, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000400, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0183, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2_G5, 0x0184, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01b7, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01b8, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01b9, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01ba, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01bb, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01bc, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01bd, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01be, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01bf, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01c3, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x39, 1 - object 0x0100, MODEL_AIRBASE_SAFEDOOR, 0x025b, 0x000205e8, 0x00200002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000007d0, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0252, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0253, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0254, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0255, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0256, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0257, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0258, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0259, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x025a, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01d6, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01e1, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01e2, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01e5, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01e6, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01e8, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01e9, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01ea, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01eb, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01ec, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01ed, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01ee, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01ef, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01f0, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01f1, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01f3, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01f4, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01f5, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01f6, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01f7, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01fa, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01fb, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01fc, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01fd, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x01fe, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x0200, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x0201, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x0202, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x0204, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x3c, 1 - object 0x0100, MODEL_SK_SHUTTLE, 0xffff, 0x00021501, 0x00006001, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00002ee0, 0x00000000, 0x00000000, 0x0fff0000 - glass 0x0100, MODEL_DD_WINDOW, 0x01c8, 0x04000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01c9, 0x04000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01ca, 0x04000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01cb, 0x04000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01cc, 0x04000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01cd, 0x04000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x3d, 1 - glass 0x0100, MODEL_DD_WINDOW, 0x01ce, 0x04000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01cf, 0x04000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x3e, 1 - glass 0x0100, MODEL_DD_WINDOW, 0x01d0, 0x04000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - door 0x0100, MODEL_DD_GRATE, 0x0185, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00100005, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DEVICESECRETDOOR, 0x0186, 0x36000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00100005, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_GRATE, 0x0187, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00100005, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CARRINGTONSECRETDOOR, 0x0188, 0x16000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00100005, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x3f, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x0288, 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 0x0180, MODEL_CHRSHIELD, 0x0092, 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 0x45, 1 - weapon 0x0100, MODEL_CHRDEVASTATOR, 0xffff, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DEVASTATOR, 0x00ffffff, 0x00000000 - endprops - -intro: - outfit OUTFIT_FROCK - intro_weapon WEAPON_AR34, -1 - ammo AMMOTYPE_RIFLE, 200 - ammo AMMOTYPE_PISTOL, 300 - ammo AMMOTYPE_SMG, 400 - intro_weapon WEAPON_COMBATBOOST, -1 - ammo AMMOTYPE_BOOST, 2 - intro_weapon WEAPON_LASER, -1 - intro_weapon WEAPON_LASER, -1 - spawn 0x0120 - endintro - -path00: - pad 0x0113 - endpath - -func1001_objectives_failed_msg: - yield - give_object_to_chr OBJ_DATAUPLINK_JOANNA, CHR_JOANNA - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2e - give_object_to_chr OBJ_DATAUPLINK_VELVET, CHR_VELVET - - label 0x2e - set_chr_flag_bank3 CHR_CARRINGTON, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_HOSTAGE_DEVICE_F, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_HOSTAGE_FR1, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_HOSTAGE_INFO_M, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_HOSTAGE_HOLO, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_HANGARGUY, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_HOSTAGE_DEVICE_M, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_HOSTAGE_FR2, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_HOSTAGE_INFO_F, CHRFLAG3_04000000 - set_chr_flag_bank3 0x09, CHRFLAG3_04000000 - set_chr_flag_bank3 0x0a, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_HOSTAGE_FR1, CHRFLAG3_UNEXPLODABLE - set_chr_flag_bank3 CHR_HOSTAGE_FR2, CHRFLAG3_UNEXPLODABLE - set_chr_flag_bank3 CHR_TAKER_FR1, CHRFLAG3_UNEXPLODABLE - set_chr_flag_bank3 CHR_TAKER_FR2, CHRFLAG3_UNEXPLODABLE - 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 - -.macro spawner_logic initfunc clonefunc - set_self_flag_bank3 CHRFLAG3_00000002 - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_self_flag_bank3 CHRFLAG3_00040000 - - beginloop 0x0f - if_stage_flag_eq STAGEFLAG_TRIGGER_SPAWNING, TRUE, /*goto*/ 0x04 - endloop 0x0f - - beginloop 0x04 - if_never_been_onscreen /*goto*/ 0x4f - if_chr_sees_player /*goto*/ 0x0a - reloop 0x04 - - label 0x0a - set_function CHR_SELF, \clonefunc - - label 0x4f - if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x4f - reloop 0x04 - - label 0x4f - try_spawn_clone2 CHR_SELF, \initfunc, 0x00000000, /*goto*/ 0x2e - set_function CHR_SELF, \clonefunc - label 0x2e - yield - endloop 0x04 -.endm - -.macro initclone_logic templatechr clonefunc - set_chr_dodge_rating 2, 0x00 - set_accuracy 20 - set_reaction_speed 70 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 90 - set_self_flag_bankx CHRFLAG1_00080000, BANK_1 - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_00400000 - label 0x04 - try_inherit_properties \templatechr, /*goto*/ 0x08 - label 0x08 - set_chr_alliance CHR_SELF, ALLIANCE_ENEMY - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, \clonefunc -.endm - -// Spawn clones in autogun hall dead end room -func0401_spawner1: - spawner_logic FUNC_INIT_CLONE1, FUNC_CLONE1 - endfunction - -func0403_init_clone1: - initclone_logic 0x0b, FUNC_CLONE1 - endfunction - -func0402_clone1: - unset_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - run_to_pad 0x00c2 - set_return_function CHR_SELF, FUNC_CLONE1 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -// Spawn clones in vehicle maintenance area - assigned to two spawners -func0404_spawner2: - spawner_logic FUNC_INIT_CLONE2, FUNC_CLONE2 - endfunction - -func0406_init_clone2: - initclone_logic 0x0d, FUNC_CLONE2 - endfunction - -func0405_clone2: - run_to_pad 0x00b1 - set_return_function CHR_SELF, FUNC_CLONE2 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -// Spawn clones in room with pit near autogun switches -func0407_spawner3: - spawner_logic FUNC_INIT_CLONE3, FUNC_CLONE3 - endfunction - -func0409_init_clone3: - initclone_logic 0x0f, FUNC_CLONE3 - endfunction - -func0408_clone3: - run_to_pad 0x00af - set_return_function CHR_SELF, FUNC_CLONE3 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -/** - * Assigned to CI soldiers, Jon and hangar guy - */ -func0413_defend_pad: - set_onshot_function FUNC_DEFEND_PAD - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x0a - if_chr_distance_to_pad_lt CHR_SELF, 200, TARGET_PAD, /*goto*/ 0x08 - - // Distance to pad >= 200 - label 0x03 - jog_to_pad TARGET_PAD - - beginloop 0x04 - dprint "GO TO PAD\n" - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x0a - if_chr_distance_to_pad_lt CHR_SELF, 200, TARGET_PAD, /*goto*/ 0x08 - endloop 0x04 - - // At pad - label 0x08 - stop_chr - - beginloop 0x0b - dprint "AT PAD\n" - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x0a - if_chr_distance_to_pad_gt CHR_SELF, 300, TARGET_PAD, /*goto*/ 0x08 - endloop 0x0b - - label 0x08 - goto_first 0x03 - - // Detected enemy - label 0x0a - dprint "DETECTED\n" - set_onshot_function FUNC_DEFEND_PAD - set_return_function CHR_SELF, FUNC_DEFEND_PAD - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - endfunction - -func100b_setup_autoguns: - yield - set_autoturret_type OBJ_AUTOGUN1, 0xef - set_autoturret_type OBJ_AUTOGUN2, 0xef - set_autoturret_type OBJ_AUTOGUN3, 0xef - if_difficulty_lt DIFF_SA, /*goto*/ 0x2f - - // SA and PA only - restart_timer - - beginloop 0x71 - if_timer_gt 120, /*goto*/ 0x2e - endloop 0x71 - - label 0x2e - set_object_flag_bank0 OBJ_AUTOGUN1, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 OBJ_AUTOGUN2, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 OBJ_AUTOGUN3, OBJECTFLAG0_DEACTIVATED - - label 0x2f - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1004_check_hostages_killed: - set_chr_flag_bank3 CHR_HOSTAGE_DEVICE_F, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 CHR_HOSTAGE_FR1, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 CHR_HOSTAGE_INFO_M, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 CHR_HOSTAGE_HOLO, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 CHR_HOSTAGE_DEVICE_M, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 CHR_HOSTAGE_FR2, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 CHR_HOSTAGE_INFO_F, CHRFLAG3_KILLCOUNTABLE - if_difficulty_lt DIFF_SA, /*goto*/ 0x0a - if_difficulty_lt DIFF_PA, /*goto*/ 0x0b - - // PA - beginloop 0x0c - if_kill_count_gt 2, /*goto*/ 0x08 - endloop 0x0c - - // Agent - beginloop 0x0a - if_kill_count_gt 4, /*goto*/ 0x08 - endloop 0x0a - - // SA - beginloop 0x0b - if_kill_count_gt 3, /*goto*/ 0x08 - endloop 0x0b - - label 0x08 - if_stage_flag_eq STAGEFLAG_ENOUGH_HOSTAGES_SAVED, TRUE, /*goto*/ 0x2e - set_stage_flag STAGEFLAG_TOO_MANY_HOSTAGES_KILLED - message CHR_JOANNA, 0x2210 // "Too many hostages killed." - - label 0x2e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1005_check_safeinfo_destroyed: - beginloop 0x04 - if_object_in_good_condition OBJ_SAFEINFO, /*goto*/ 0x2e - goto_next 0x08 - - label 0x2e - endloop 0x04 - - label 0x08 - message CHR_JOANNA, 0x2212 // "Sensitive information has been destroyed." - set_stage_flag STAGEFLAG_SAFEINFO_DESTROYED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -.macro autogun_switch_logic switch autogun stageflag - if_difficulty_lt DIFF_SA, /*goto*/ 0x0e - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_object_in_good_condition \switch, /*goto*/ 0x2e - goto_next 0x0b - - label 0x2e - if_object_in_good_condition \autogun, /*goto*/ 0x2e - goto_next 0x0b - - label 0x2e - if_chr_activated_object CHR_P1P2, \switch, /*goto*/ 0x08 - endloop 0x04 - - // Switch activated - label 0x08 - play_sound 0x043a, CHANNEL_7 - message CHR_P1P2, 0x220f // "Automatic gun activated." - label 0x0e - unset_object_flag_bank0 \autogun, OBJECTFLAG0_DEACTIVATED - set_stage_flag \stageflag - - beginloop 0x0f - if_object_in_good_condition \autogun, /*goto*/ 0x2e - goto_next 0x0b - - label 0x2e - endloop 0x0f - - // Autogun or switch destroyed - label 0x0b - if_difficulty_lt DIFF_SA, /*goto*/ 0x11 - message CHR_JOANNA, 0x2222 // "Critical mission object has been destroyed." - set_stage_flag STAGEFLAG_AUTOGUN_SWITCH_DESTROYED - - .if \autogun == OBJ_AUTOGUN1 - set_function CHR_SELF, GFUNC_IDLE - .endif - - label 0x11 - set_function CHR_SELF, GFUNC_IDLE -.endm - -func1007_autogun_switch1: - autogun_switch_logic OBJ_AUTOGUN_SWITCH1, OBJ_AUTOGUN1, STAGEFLAG_AUTOGUN1_ACTIVE - endfunction - -func1008_autogun_switch2: - autogun_switch_logic OBJ_AUTOGUN_SWITCH2, OBJ_AUTOGUN2, STAGEFLAG_AUTOGUN2_ACTIVE - endfunction - -func1009_autogun_switch3: - autogun_switch_logic OBJ_AUTOGUN_SWITCH3, OBJ_AUTOGUN3, STAGEFLAG_AUTOGUN3_ACTIVE - endfunction - -func0c01_outro: - camera_movement 0x01a2 - set_music_track MUSIC_DEFENSE_OUTRO - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0xf1, CHRFLAG3_HIDDEN - set_function CHR_P1P2, GFUNC_IDLE - set_chr_flag_bank3 CHR_CARRINGTON, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_P1P2, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_P1P2, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_P1P2, CHRFLAG2_00020000 - animation 0x01a3, -1, -1, 0x0600, CHR_P1P2, 4 - - .macro show_object_with_animation object animation - show_object \object - set_object_flag_bank1 \object, OBJECTFLAG1_04000000 - set_object_flag_bank2 \object, OBJECTFLAG2_00000010 - object_do_animation \animation, \object, 0x04ff, 0xff - .endm - - show_object_with_animation 0x0e, 0x01a4 - show_object_with_animation 0x0f, 0x01a5 - show_object_with_animation 0x10, 0x01a6 - show_object_with_animation 0x11, 0x01a7 - show_object_with_animation 0x12, 0x01a8 - show_object_with_animation 0x13, 0x01a9 - show_object_with_animation 0x14, 0x01aa - - show_object 0x0d - unset_object_flag_bank0 0x0d, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank1 0x0d, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x0d, OBJECTFLAG2_00000010 - object_do_animation 0x01b4, 0x0d, 0x01ff, 0xff - - show_nonessential_chrs FALSE - open_door 0x51 - restart_timer - yield - set_object_flag_bank0 0x51, OBJECTFLAG0_40000000 - set_cutscene_weapon CHR_P1P2, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_P1P2, WEAPON_AR34, WEAPON_NONE - - .macro wait_until time loopid - beginloop \loopid - if_controller_button_pressed /*goto*/ 0xb8 - if_timer_gt \time, /*goto*/ 0x08 - endloop \loopid - label 0x08 - .endm - - wait_until 86, 0x73 - play_sound 0x0161, CHANNEL_10 - - wait_until 114, 0x74 - play_sound 0x0162, CHANNEL_10 - - wait_until 140, 0x75 - play_sound 0x0163, CHANNEL_10 - - wait_until 168, 0x76 - play_sound 0x0164, CHANNEL_10 - - wait_until 186, 0x77 - play_sound 0x0161, CHANNEL_10 - - beginloop 0x0a - if_camera_animating /*goto*/ 0x2e - goto_next 0xb8 - - label 0x2e - if_controller_button_pressed /*goto*/ 0xb8 - label 0x2e - endloop 0x0a - - label 0xb8 - mute_channel CHANNEL_10 - hide_object 0x0d - camera_movement 0x01ac - unset_chr_flag_bank3 CHR_SKEDAR1, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_SKEDAR2, CHRFLAG3_HIDDEN - - set_chr_flag_bank3 CHR_SKEDAR1, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_SKEDAR1, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_SKEDAR1, CHRFLAG2_00020000 - animation 0x01ad, -1, -1, 0x0600, CHR_SKEDAR1, 4 - - set_chr_flag_bank3 CHR_SKEDAR2, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_SKEDAR2, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_SKEDAR2, CHRFLAG2_00020000 - animation 0x01ae, -1, -1, 0x0600, CHR_SKEDAR2, 4 - - wait_until 16, 0x78 - play_sound 0x0530, CHANNEL_10 - - wait_until 56, 0x79 - play_sound 0x052b, CHANNEL_10 - - beginloop 0x0b - if_camera_animating /*goto*/ 0x2e - goto_next 0xb8 - - label 0x2e - if_controller_button_pressed /*goto*/ 0xb8 - label 0x2e - endloop 0x0b - - label 0xb8 - mute_channel CHANNEL_10 - camera_movement 0x0305 - set_chr_flag_bank3 CHR_P1P2, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_P1P2, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_P1P2, CHRFLAG2_00020000 - animation 0x0306, -1, -1, 0x0600, CHR_P1P2, 4 - - show_object_with_animation 0x0e, 0x0307 - show_object_with_animation 0x0f, 0x0308 - show_object_with_animation 0x10, 0x0309 - show_object_with_animation 0x11, 0x030a - show_object_with_animation 0x12, 0x030b - show_object_with_animation 0x13, 0x030c - show_object_with_animation 0x14, 0x030d - show_object_with_animation 0x0d, 0x030f - - show_object 0x16 - set_object_flag_bank1 0x16, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x16, OBJECTFLAG2_00000010 - object_do_animation 0x01b1, 0x16, 0x02ff, 0xff - - wait_until 372, 0x7a - play_sound 0x0506, CHANNEL_10 - - wait_until 382, 0x7b - play_sound 0x0048, CHANNEL_10 - - wait_until 390, 0x7c - play_sound 0x0506, CHANNEL_10 - - wait_until 400, 0x7d - play_sound 0x0049, CHANNEL_10 - - wait_until 432, 0x7e - play_sound 0x0506, CHANNEL_10 - - wait_until 442, 0x7f - play_sound 0x00d0, CHANNEL_10 - - wait_until 454, 0x80 - play_sound 0x0506, CHANNEL_10 - - wait_until 464, 0x81 - play_sound 0x0078, CHANNEL_10 - - wait_until 466, 0x82 - play_sound 0x0161, CHANNEL_10 - - wait_until 484, 0x83 - play_sound 0x0162, CHANNEL_10 - - wait_until 502, 0x84 - play_sound 0x0164, CHANNEL_10 - - wait_until 516, 0x85 - play_sound 0x0163, CHANNEL_10 - - wait_until 528, 0x86 - play_sound 0x0162, CHANNEL_10 - - wait_until 570, 0x71 - speak CHR_JOANNA, 0x2231, 0x747d, CHANNEL_10, COLOR_09_BLUE // "Get clear! I'll hold them off... You can come back..." - - wait_until 847, 0x87 - play_sound 0x0161, CHANNEL_10 - - wait_until 852, 0x88 - play_sound 0x0162, CHANNEL_10 - - wait_until 865, 0x72 - set_chr_shooting_in_cutscene CHR_JOANNA, TRUE - yield - set_chr_shooting_in_cutscene CHR_JOANNA, TRUE - yield - set_chr_shooting_in_cutscene CHR_JOANNA, TRUE - yield - set_chr_shooting_in_cutscene CHR_JOANNA, FALSE - - wait_until 870, 0x89 - - label 0x8a - set_chr_shooting_in_cutscene CHR_JOANNA, TRUE - yield - if_controller_button_pressed /*goto*/ 0xb8 - if_timer_gt 960, /*goto*/ 0x08 - goto_first 0x8a - - label 0x08 - set_chr_shooting_in_cutscene CHR_JOANNA, FALSE - speak CHR_JOANNA, 0x2232, 0x747e, CHANNEL_10, COLOR_09_BLUE // "At least, I hope you can." - - wait_until 1018, 0x8c - set_chr_shooting_in_cutscene CHR_JOANNA, TRUE - yield - set_chr_shooting_in_cutscene CHR_JOANNA, TRUE - yield - set_chr_shooting_in_cutscene CHR_JOANNA, TRUE - yield - set_chr_shooting_in_cutscene CHR_JOANNA, FALSE - - wait_until 1065, 0x94 - play_sound 0x052b, CHANNEL_7 - - label 0x0c - yield - if_camera_animating /*goto*/ 0x2e - goto_next 0xb8 - label 0x2e - if_controller_button_pressed /*goto*/ 0xb8 - label 0x2e - goto_first 0x0c - - label 0xb8 - mute_channel CHANNEL_10 - camera_movement 0x0310 - set_chr_flag_bank3 CHR_P1P2, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_P1P2, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_P1P2, CHRFLAG2_00020000 - animation 0x0311, -1, -1, 0x0600, CHR_P1P2, 4 - - set_chr_flag_bank3 CHR_SKEDAR1, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_SKEDAR1, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_SKEDAR1, CHRFLAG2_00020000 - animation 0x0312, -1, -1, 0x0600, CHR_SKEDAR1, 4 - - show_object_with_animation 0x0e, 0x0313 - show_object_with_animation 0x0f, 0x0314 - show_object_with_animation 0x10, 0x0315 - show_object_with_animation 0x11, 0x0316 - show_object_with_animation 0x12, 0x0317 - show_object_with_animation 0x13, 0x0318 - show_object_with_animation 0x14, 0x0319 - - wait_until 1090, 0x95 - play_sound 0x0529, CHANNEL_10 - - wait_until 1100, 0x96 - play_sound 0x052a, CHANNEL_10 - - wait_until 1264, 0x97 - play_sound 0x00e3, CHANNEL_10 - - wait_until 1280, 0x98 - play_sound 0x00e4, CHANNEL_10 - - wait_until 1315, 0x99 - play_sound 0x77ba, CHANNEL_10 - play_sound 0x00ee, CHANNEL_10 - - wait_until 1330, 0x9a - play_sound 0x00df, CHANNEL_10 - - wait_until 1350, 0x9b - set_chr_shooting_in_cutscene CHR_JOANNA, TRUE - yield - set_chr_shooting_in_cutscene CHR_JOANNA, TRUE - yield - set_chr_shooting_in_cutscene CHR_JOANNA, TRUE - yield - set_chr_shooting_in_cutscene CHR_JOANNA, FALSE - play_sound 0x77ba, CHANNEL_10 - play_sound 0x00e4, CHANNEL_10 - - beginloop 0x0d - if_camera_animating /*goto*/ 0x2e - goto_next 0xb8 - - label 0x2e - if_controller_button_pressed /*goto*/ 0xb8 - label 0x2e - endloop 0x0d - - label 0xb8 - mute_channel CHANNEL_10 - restart_default_music - reset_ambience - end_level - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1002_intro: - set_music_track MUSIC_DEFENSE_INTRO - camera_movement 0x02bc - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_function CHR_CARRINGTON, GFUNC_IDLE - set_function 0x19, GFUNC_IDLE - set_function 0x1a, GFUNC_IDLE - set_chr_flag_bank3 0x16, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_JONATHAN, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x02bd, -1, -1, 0x0600, CHR_JOANNA, 4 - set_chr_flag_bank3 CHR_CARRINGTON, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_CARRINGTON, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_CARRINGTON, CHRFLAG2_00020000 - animation 0x02be, -1, -1, 0x0600, CHR_CARRINGTON, 4 - set_chr_flag_bank3 0x19, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x19, CHRFLAG3_HIDDEN - set_chr_flag_bank2 0x19, CHRFLAG2_00020000 - animation 0x02bf, -1, -1, 0x0600, 0x19, 4 - set_chr_flag_bank3 0x1a, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x1a, CHRFLAG3_HIDDEN - set_chr_flag_bank2 0x1a, CHRFLAG2_00020000 - animation 0x02c0, -1, -1, 0x0600, 0x1a, 4 - show_object 0x0d - set_object_flag_bank1 0x0d, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x0d, OBJECTFLAG2_00000010 - object_do_animation 0x02c1, 0x0d, 0x04ff, 0xff - restart_timer - set_cutscene_weapon 0x1a, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon 0x1a, WEAPON_AR34, WEAPON_NONE - - wait_until 4, 0x71 - speak CHR_JOANNA, 0x2229, 0x7475, CHANNEL_10, COLOR_06_WHITE // "All ready, Joanna? We can't keep the Maian delegat..." - - wait_until 72, 0x72 - play_sound 0x0161, CHANNEL_10 - - wait_until 104, 0x73 - play_sound 0x0162, CHANNEL_10 - - wait_until 450, 0x74 - speak CHR_JOANNA, 0x222a, 0x7476, CHANNEL_10, COLOR_09_BLUE // "Am I ready? What do you mean? I was ready half an ..." - - wait_until 688, 0x76 - play_sound 0x0163, CHANNEL_10 - - wait_until 754, 0x77 - play_sound 0x0164, CHANNEL_10 - - wait_until 800, 0x75 - speak CHR_JOANNA, 0x222b, 0x7477, CHANNEL_10, COLOR_06_WHITE // "But you know how it is, Joanna... I had to make su..." - - wait_until 822, 0x78 - play_sound 0x0165, CHANNEL_10 - - wait_until 850, 0x79 - play_sound 0x0166, CHANNEL_10 - - wait_until 866, 0x7a - play_sound 0x0167, CHANNEL_10 - - wait_until 892, 0x7b - play_sound 0x0168, CHANNEL_10 - - wait_until 926, 0x7c - play_sound 0x0161, CHANNEL_10 - - wait_until 945, 0x7d - play_sound 0x0162, CHANNEL_10 - - wait_until 976, 0x7e - play_sound 0x0161, CHANNEL_10 - - wait_until 990, 0x7f - play_sound 0x0163, CHANNEL_10 - - wait_until 1030, 0x80 - play_sound 0x0162, CHANNEL_10 - - wait_until 1048, 0x81 - play_sound 0x0168, CHANNEL_10 - - wait_until 1102, 0x83 - play_sound 0x0167, CHANNEL_10 - - wait_until 1110, 0x84 - play_sound 0x0164, CHANNEL_10 - - wait_until 1158, 0x85 - play_sound 0x0165, CHANNEL_10 - - wait_until 1160, 0x82 - speak CHR_JOANNA, 0x222c, 0x7478, CHANNEL_10, COLOR_09_BLUE // "They should keep you away from mirrors. Nervous?" - - wait_until 1170, 0x86 - play_sound 0x0166, CHANNEL_10 - - wait_until 1224, 0x87 - play_sound 0x0167, CHANNEL_10 - - wait_until 1258, 0x88 - play_sound 0x0168, CHANNEL_10 - - wait_until 1440, 0x89 - speak CHR_JOANNA, 0x222d, 0x7479, CHANNEL_10, COLOR_06_WHITE // "Very. I've waited for this moment for so many year..." - - wait_until 1442, 0x8a - play_sound 0x0162, CHANNEL_10 - - wait_until 1450, 0x8b - play_sound 0x0161, CHANNEL_10 - - wait_until 1594, 0x8c - play_sound 0x0163, CHANNEL_10 - - wait_until 1676, 0x8d - play_sound 0x0164, CHANNEL_10 - - wait_until 1741, 0x8e - play_sound 0x0165, CHANNEL_10 - - wait_until 2252, 0x8f - play_sound 0x0166, CHANNEL_10 - - wait_until 2296, 0x90 - play_sound 0x0167, CHANNEL_10 - - wait_until 2326, 0x91 - play_sound 0x0164, CHANNEL_10 - - wait_until 2378, 0x92 - play_sound 0x0168, CHANNEL_10 - - wait_until 2383, 0x93 - play_sound 0x00b5, CHANNEL_10 - - wait_until 2410, 0x94 - speak CHR_JOANNA, 0x222e, 0x747a, CHANNEL_10, COLOR_06_WHITE // "Where did that come from?" - - wait_until 2416, 0x95 - play_sound 0x0165, CHANNEL_10 - - wait_until 2446, 0x96 - play_sound 0x0166, CHANNEL_10 - - wait_until 2510, 0x97 - play_sound 0x00ad, CHANNEL_10 - - wait_until 2566, 0x98 - play_sound 0x0161, CHANNEL_10 - - wait_until 2582, 0x99 - play_sound 0x00b2, CHANNEL_10 - - wait_until 2628, 0x9b - speak CHR_JOANNA, 0x222f, 0x747b, CHANNEL_10, COLOR_09_BLUE // "It was up on ground level..." - - wait_until 2804, 0x9c - play_sound 0x00b5, CHANNEL_10 - - wait_until 2910, 0x9e - play_sound 0x0165, CHANNEL_10 - set_cutscene_weapon 0x1a, WEAPON_NONE, WEAPON_NONE - set_cutscene_weapon CHR_JOANNA, WEAPON_AR34, WEAPON_NONE - - wait_until 2940, 0x9f - play_sound 0x03c5, CHANNEL_10 - - wait_until 2965, 0xa0 - play_sound 0x0168, CHANNEL_10 - - wait_until 2970, 0x9d - speak CHR_JOANNA, 0x2230, 0x747c, CHANNEL_10, COLOR_09_BLUE // "Looks like someone doesn't know when to quit. We'v..." - - wait_until 2984, 0xa1 - play_sound 0x0165, CHANNEL_10 - - wait_until 3000, 0xa2 - play_sound 0x0166, CHANNEL_10 - - wait_until 3106, 0xa3 - play_sound 0x0165, CHANNEL_10 - - wait_until 3125, 0xa4 - play_sound 0x0168, CHANNEL_10 - - wait_until 3142, 0xae - play_sound 0x0167, CHANNEL_10 - unset_object_flag_bank1 0x0d, OBJECTFLAG1_04000000 - - wait_until 3144, 0xa5 - play_sound 0x0166, CHANNEL_10 - - wait_until 3169, 0xa6 - play_sound 0x0167, CHANNEL_10 - - wait_until 3180, 0xaf - play_sound 0x0165, CHANNEL_10 - - wait_until 3204, 0xb0 - play_sound 0x0168, CHANNEL_10 - - wait_until 3228, 0xa7 - play_sound 0x0166, CHANNEL_10 - - wait_until 3246, 0xa8 - play_sound 0x0165, CHANNEL_10 - - wait_until 3263, 0xa9 - play_sound 0x0168, CHANNEL_10 - - wait_until 3295, 0xaa - play_sound 0x0166, CHANNEL_10 - - wait_until 3317, 0xab - play_sound 0x0165, CHANNEL_10 - - wait_until 3342, 0xac - play_sound 0x0168, CHANNEL_10 - - wait_until 3355, 0xb1 - play_sound 0x0166, CHANNEL_10 - - wait_until 3365, 0xad - play_sound 0x0165, CHANNEL_10 - - wait_until 3472, 0xb2 - play_sound 0x0164, CHANNEL_10 - - wait_until 3498, 0xb3 - play_sound 0x0165, CHANNEL_10 - - wait_until 3520, 0xb4 - play_sound 0x0166, CHANNEL_10 - - beginloop 0x0a - if_camera_animating /*goto*/ 0x2e - goto_next 0xb8 - - label 0x2e - if_controller_button_pressed /*goto*/ 0xb8 - label 0x2e - endloop 0x0a - - label 0xb8 - mute_channel CHANNEL_10 - camera_movement 0x02c2 - cmd0175 60 - unset_object_flag_bank1 0x0d, OBJECTFLAG1_04000000 - if_controller_button_pressed /*goto*/ 0xcc - unset_chr_flag_bank3 CHR_SKEDAR4, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_SKEDAR4, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_SKEDAR4, CHRFLAG2_00020000 - animation 0x02c3, -1, -1, 0x0600, CHR_SKEDAR4, 4 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x02c4, -1, -1, 0x0600, CHR_JOANNA, 4 - show_object 0x52 - set_object_flag_bank1 0x52, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x52, OBJECTFLAG2_00000010 - object_do_animation 0x02c5, 0x52, 0x04ff, 0xff - show_object 0x53 - set_object_flag_bank1 0x53, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x53, OBJECTFLAG2_00000010 - object_do_animation 0x02c6, 0x53, 0x04ff, 0xff - restart_timer - - .macro wait_until2 time loopid - beginloop \loopid - if_controller_button_pressed /*goto*/ 0xcc - if_timer_gt \time, /*goto*/ 0x08 - endloop \loopid - label 0x08 - .endm - - wait_until2 8, 0x62 - play_sound 0x052a, CHANNEL_10 - - wait_until2 26, 0x65 - play_sound 0x05a0, CHANNEL_10 - - wait_until2 38, 0x63 - play_sound 0x00e3, CHANNEL_10 - - wait_until2 43, 0x64 - play_sound 0x00e4, CHANNEL_10 - - wait_until2 63, 0x66 - play_sound 0x05a1, CHANNEL_10 - - wait_until2 160, 0x67 - play_sound 0x0161, CHANNEL_10 - - wait_until2 202, 0x68 - play_sound 0x0162, CHANNEL_10 - - wait_until2 238, 0x69 - play_sound 0x0163, CHANNEL_10 - - wait_until2 255, 0x6a - play_sound 0x0164, CHANNEL_10 - - wait_until2 259, 0x6b - play_sound 0x0530, CHANNEL_10 - - wait_until2 441, 0x6c - play_sound 0x0163, CHANNEL_10 - - wait_until2 454, 0x6d - play_sound 0x0164, CHANNEL_10 - - wait_until2 522, 0x6e - play_sound 0x05c7, CHANNEL_10 - - wait_until2 546, 0x6f - play_sound 0x05c6, CHANNEL_10 - - wait_until2 610, 0x70 - play_sound 0x05c5, CHANNEL_10 - - beginloop 0x0b - if_camera_animating /*goto*/ 0x2e - goto_next 0xcc - - label 0x2e - if_controller_button_pressed /*goto*/ 0xcc - label 0x2e - endloop 0x0b - - label 0xcc - mute_channel CHANNEL_7 - mute_channel CHANNEL_6 - mute_channel CHANNEL_5 - mute_channel CHANNEL_10 - set_cutscene_weapon CHR_JOANNA, WEAPON_AR34, WEAPON_NONE - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x02c4, -2, -1, 0x0600, CHR_JOANNA, 2 - unset_chr_flag_bank3 CHR_CARRINGTON, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_CARRINGTON, CHRFLAG2_00020000 - animation 0x02be, -2, -1, 0x0600, CHR_CARRINGTON, 2 - unset_chr_flag_bank3 0x19, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 0x19, CHRFLAG2_00020000 - animation 0x02bf, -2, -1, 0x0600, 0x19, 2 - unset_chr_flag_bank3 0x1a, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 0x1a, CHRFLAG2_00020000 - animation 0x02c0, -2, -1, 0x0600, 0x1a, 2 - unset_chr_flag_bank3 CHR_SKEDAR4, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_SKEDAR4, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_SKEDAR4, CHRFLAG2_00020000 - animation 0x02c3, -2, -1, 0x0600, CHR_SKEDAR4, 2 - unset_object_flag_bank1 0x0d, OBJECTFLAG1_04000000 - set_object_flag_bank0 0x0d, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank2 0x0d, OBJECTFLAG2_00000010 - object_do_animation 0x01b4, 0x0d, 0x01ff, 0xff - show_object 0x52 - set_object_flag_bank1 0x52, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x52, OBJECTFLAG2_00000010 - object_do_animation 0x02c5, 0x52, 0x04ff, 0xfe - show_object 0x53 - set_object_flag_bank1 0x53, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x53, OBJECTFLAG2_00000010 - object_do_animation 0x02c6, 0x53, 0x04ff, 0xfe - set_stage_flag STAGEFLAG_INTRO_FINISHED - restart_default_music - reset_ambience - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - remove_chr 0x19 - remove_chr 0x1a - set_function 0x19, GFUNC_IDLE - set_function 0x1a, GFUNC_IDLE - unset_chr_flag_bank3 0x16, CHRFLAG3_HIDDEN - enter_firstperson - yield - set_function CHR_CARRINGTON, FUNC_CARRINGTON - set_function CHR_SKEDAR4, FUNC_SKEDAR4 - unset_chr_flag_bank3 CHR_JONATHAN, CHRFLAG3_HIDDEN - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1003_hide_blondes_and_skedar: - label 0x04 - set_chr_flag_bank3 CHR_BLONDE7, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_SKEDAR1, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_SKEDAR2, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_SKEDAR3, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_SKEDAR1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_SKEDAR2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_SKEDAR3, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_BLONDE1, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_BLONDE2, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_BLONDE3, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_BLONDE4, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_BLONDE5, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_BLONDE6, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_BLONDE1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_BLONDE2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_BLONDE3, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_BLONDE4, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_BLONDE5, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_BLONDE6, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100c_check_carrington_dead: - beginloop 0x04 - if_chr_dying CHR_CARRINGTON, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - message CHR_JOANNA, 0x2213 // "Carrington has been killed." - set_stage_flag STAGEFLAG_CARRINGTON_DEAD - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0415_init_hostage_fr1: - set_var_a 5 - set_chr_health CHR_SELF, 1 - set_accuracy 0 - set_function CHR_SELF, FUNC_FIRINGRANGE_HOSTAGE - endfunction - -func0416_init_hostage_fr2: - set_var_a 7 - set_chr_health CHR_SELF, 1 - set_accuracy 0 - set_function CHR_SELF, FUNC_FIRINGRANGE_HOSTAGE - endfunction - -func0414_firingrange_hostage: - set_onshot_function FUNC_FIRINGRANGE_HOSTAGE - if_chr_dying CHR_SELF, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2e - if_chr_unloaded CHR_SELF, /*goto*/ 0x2e - goto_next 0x04 - - label 0x2e - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - beginloop 0x04 - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x0a - goto_next 0x12 - - label 0x03 - jog_to_pad TARGET_PAD - - beginloop 0x04 - dprint "GO TO PAD\n" - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x0a - goto_next 0x12 - endloop 0x04 - - label 0x08 - stop_chr - - beginloop 0x0b - dprint "AT PAD\n" - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x0a - goto_next 0x12 - endloop 0x0b - - label 0x08 - goto_first 0x03 - - label 0x0a - dprint "DETECTED\n" - set_return_function CHR_SELF, FUNC_FIRINGRANGE_HOSTAGE - set_onshot_function FUNC_FIRINGRANGE_HOSTAGE - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - set_function CHR_SELF, GFUNC_IDLE - - // Enemy not detected - label 0x12 - set_function CHR_SELF, FUNC_INIT_SAVED_HOSTAGE - endfunction - -func100e_setup_firingrange: - set_chr_flag_bank3 CHR_HOSTAGE_FR1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_HOSTAGE_FR2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_TAKER_FR1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_TAKER_FR2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - - // Wait until guns complete or failed, or skip this check if Agent - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_difficulty_lt DIFF_SA, /*goto*/ 0x2e - if_objective_complete 0, /*goto*/ 0x2e - if_stage_flag_eq STAGEFLAG_AUTOGUN_SWITCH_DESTROYED, TRUE, /*goto*/ 0x2e - if_stage_flag_eq STAGEFLAG_00000001, TRUE, /*goto*/ 0x2e - reloop 0x04 - - // Wait until player in foyer area - label 0x2e - if_chr_in_room CHR_P1P2, 0x00, 0x0006, /*goto*/ 0x2e - if_chr_in_room CHR_P1P2, 0x00, 0x0005, /*goto*/ 0x2e - endloop 0x04 - - // Configure FR takers and hostages - label 0x2e - set_function CHR_TAKER_FR1, FUNC_INIT_FIRINGRANGE_TAKER - set_function CHR_TAKER_FR2, FUNC_INIT_FIRINGRANGE_TAKER - set_chr_flag_bankx CHR_HOSTAGE_FR1, CHRFLAG0_00002000, BANK_0 - set_chr_flag_bankx CHR_HOSTAGE_FR2, CHRFLAG0_00002000, BANK_0 - restart_timer - - // Wait until player in firing range entrance or door is opening - beginloop 0x0a - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0007, /*goto*/ 0x08 - if_door_state 0x23, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2f - endloop 0x0a - - // Wait for player to enter room, or 10 seconds - label 0x2f - restart_timer - - beginloop 0x71 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0007, /*goto*/ 0x08 - if_timer_gt 600, /*goto*/ 0x08 - endloop 0x71 - - // Unset invincible on hostages and takers - label 0x08 - destroy_object OBJ_FR_GLASS - unset_chr_flag_bank3 CHR_HOSTAGE_FR1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 CHR_HOSTAGE_FR2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 CHR_TAKER_FR1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 CHR_TAKER_FR2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0419_init_firingrange_taker: - set_return_function CHR_SELF, GFUNC_UNALERTED - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func041b_init_hostage_holo: - set_var_a 3 - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, FUNC_HOSTAGE_HOLO - endfunction - -func041a_hostage_holo: - set_self_flag_bank3 CHRFLAG3_00000002 - set_self_flag_bank3 CHRFLAG3_00040000 - set_onshot_function FUNC_HOSTAGE_HOLO - if_chr_dying CHR_SELF, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2e - if_chr_unloaded CHR_SELF, /*goto*/ 0x2e - goto_next 0x04 - - // Dying - label 0x2e - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - // Alive - wait until holo room door opened - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_door_state 0x43, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x2e - if_door_state 0x44, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - if_objective_complete 0, /*goto*/ 0x2e - set_stage_flag STAGEFLAG_VISITED_HOSTAGES_BEFORE_AUTOGUNS - - label 0x2e - assign_sound 0x1b0e, CHANNEL_6 - play_sound_from_entity CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01 - restart_timer - - // Wait until player in sight, or 2 seconds - beginloop 0x0a - set_target_chr CHR_JOANNA - if_chr_sees_player /*goto*/ 0x08 - set_target_chr CHR_VELVET - if_chr_sees_player /*goto*/ 0x08 - if_timer_gt 120, /*goto*/ 0x08 - endloop 0x0a - - label 0x08 - assign_sound 0x1b0f, CHANNEL_7 - play_sound_from_entity CHANNEL_7, CHR_SELF, 0x0bb8, 0x1770, 0x01 - label 0x08 - label 0x08 - try_spawn_chr BODY_CIFEMTECH, HEAD_SECRETARY, 0x0104, FUNC_INIT_HOLOCLONE1, 0x00002010, /*goto*/ 0x2e - label 0x2e - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - try_spawn_chr BODY_CIFEMTECH, HEAD_SECRETARY, 0x0105, FUNC_INIT_HOLOCLONE2, 0x00002010, /*goto*/ 0x2e - label 0x2e - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - try_spawn_chr BODY_CIFEMTECH, HEAD_SECRETARY, 0x0106, FUNC_INIT_HOLOCLONE3, 0x00002010, /*goto*/ 0x2e - label 0x2e - set_function CHR_TAKER_HOLO1, FUNC_TAKER_HOLO1 - set_function CHR_TAKER_HOLO2, FUNC_TAKER_HOLO2 - set_function CHR_TAKER_HOLO3, FUNC_TAKER_HOLO3 - jog_to_pad 0x0107 - - beginloop 0x0b - if_chr_stopped /*goto*/ 0x08 - endloop 0x0b - - label 0x08 - - label 0x12 - animation ANIM_COWER_0229, -1, -1, 0x100a, CHR_SELF, 2 - - beginloop 0x10 - if_stage_flag_eq STAGEFLAG_HOLO_TAKERS_DEAD, TRUE, /*goto*/ 0x08 - if_chr_stopped /*goto*/ 0x2e - endloop 0x10 - - label 0x2e - goto_first 0x12 - - label 0x08 - set_function CHR_SELF, FUNC_INIT_SAVED_HOSTAGE - endfunction - -func041c_init_holoclone1: - set_chr_alliance CHR_SELF, ALLIANCE_ALLY - cmd0145_rebuild_groups - cmd0146_rebuild_groups - play_sound 0x05bc, CHANNEL_9 - set_onshot_function FUNC_HOLOCLONE_ONSHOT - set_chr_health CHR_SELF, 1 - set_chr_id CHR_HOLOCLONE1 - jog_to_pad 0x0108 - set_function CHR_SELF, FUNC_HOLOCLONE - endfunction - -func041d_init_holoclone2: - set_chr_alliance CHR_SELF, ALLIANCE_ALLY - cmd0145_rebuild_groups - cmd0146_rebuild_groups - play_sound 0x05bc, CHANNEL_5 - set_onshot_function FUNC_HOLOCLONE_ONSHOT - set_chr_health CHR_SELF, 1 - set_chr_id CHR_HOLOCLONE2 - jog_to_pad 0x0109 - set_function CHR_SELF, FUNC_HOLOCLONE - endfunction - -func041e_init_holoclone3: - set_chr_alliance CHR_SELF, ALLIANCE_ALLY - cmd0145_rebuild_groups - cmd0146_rebuild_groups - play_sound 0x05bc, CHANNEL_6 - set_onshot_function FUNC_HOLOCLONE_ONSHOT - set_chr_health CHR_SELF, 1 - set_chr_id CHR_HOLOCLONE3 - jog_to_pad 0x010a - set_function CHR_SELF, FUNC_HOLOCLONE - endfunction - -func041f_holoclone_onshot: - play_sound 0x05bb, CHANNEL_6 - drop_gun_and_fade_out - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func041f_holoclone: - beginloop 0x0b - if_chr_stopped /*goto*/ 0x08 - endloop 0x0b - - label 0x08 - - label 0x12 - animation ANIM_COWER_0229, -1, -1, 0x100a, CHR_SELF, 2 - - beginloop 0x10 - if_chr_stopped /*goto*/ 0x2e - endloop 0x10 - - label 0x2e - goto_first 0x12 - - endfunction - -.macro holo_taker_logic holoclone - restart_timer - animation ANIM_SURPRISED_0202, 0, -1, 0x0010, CHR_SELF, 2 - - beginloop 0xba - set_target_chr CHR_JOANNA - if_chr_sees_player /*goto*/ 0xbb - set_target_chr CHR_VELVET - if_chr_sees_player /*goto*/ 0xbb - if_timer_gt 60, /*goto*/ 0xbb - endloop 0xba - - label 0xbb - set_self_flag_bank3 CHRFLAG3_00000040 - set_accuracy 50 - set_target_chr \holoclone - label 0x04 - yield - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0xb9 - label 0xb9 - say_quip CHR_JOANNA, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00 - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x0a - - beginloop 0x0a - if_chr_stopped /*goto*/ 0x08 - endloop 0x0a - - label 0x08 - set_onshot_function GFUNC_UNALERTED - set_return_function CHR_SELF, GFUNC_UNALERTED - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR -.endm - -func0420_taker_holo1: - set_self_flag_bank3 CHRFLAG3_00040000 - holo_taker_logic CHR_HOLOCLONE1 - endfunction - -func0421_taker_holo2: - set_self_flag_bank3 CHRFLAG3_00040000 - assign_sound 0x025b, CHANNEL_6 - play_sound_from_entity CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01 - holo_taker_logic CHR_HOLOCLONE2 - endfunction - -func0422_taker_holo3: - set_self_flag_bank3 CHRFLAG3_00040000 - holo_taker_logic CHR_HOLOCLONE3 - endfunction - -func0423_init_shock: - set_chr_dodge_rating 2, 0x00 - set_accuracy 20 - set_reaction_speed 70 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 90 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0426_init_saved_hostage: - set_onshot_function FUNC_HOSTAGE_THANK_AND_RUN - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2e - if_chr_dying CHR_SELF, /*goto*/ 0x2e - if_chr_unloaded CHR_SELF, /*goto*/ 0x2e - set_chr_alliance CHR_SELF, 0x80 - set_armor 80 - set_chr_health CHR_SELF, 1 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, FUNC_HOSTAGE_THANK_AND_RUN - - label 0x2e - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0425_hostage_thank_and_run: - set_onshot_function FUNC_HOSTAGE_THANK_AND_RUN - if_chr_dying CHR_SELF, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2e - if_chr_unloaded CHR_SELF, /*goto*/ 0x2e - goto_next 0x03 - - label 0x2e - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - label 0x03 - set_target_chr CHR_VELVET - if_chr_sees_player /*goto*/ 0x2e - set_follow_chr CHR_JOANNA - goto_next 0x08 - - label 0x2e - set_follow_chr CHR_VELVET - - label 0x08 - restart_timer - label 0x0a - try_face_entity 0x0200, 0x0000, /*goto*/ 0x0b - - beginloop 0x0b - if_timer_gt 60, /*goto*/ 0x08 - endloop 0x0b - - label 0x08 - if_sound_finished CHANNEL_6, /*goto*/ 0x08 - if_timer_gt 200, /*goto*/ 0x2f - goto_first 0x0b - - label 0x08 - play_chr_specific_quip BANK_3, CHANNEL_6 - animation ANIM_TALKING_0231, 0, -1, 0x1010, CHR_SELF, 2 - label 0x2f - restart_timer - - beginloop 0x71 - if_timer_gt 120, /*goto*/ 0x2e - endloop 0x71 - - label 0x2e - run_to_pad 0x00b7 - - beginloop 0x11 - if_chr_stopped /*goto*/ 0x10 - endloop 0x11 - - // Unreachable - set_target_chr FOLLOW_CHR - - beginloop 0x10 - set_target_chr CHR_JOANNA - if_chr_sees_player /*goto*/ 0x2e - set_target_chr CHR_COUNTEROP - if_chr_sees_player /*goto*/ 0x2e - set_target_chr CHR_VELVET - if_chr_sees_player /*goto*/ 0x2e - if_chr_distance_gt 500, /*goto*/ 0x08 - label 0x2e - endloop 0x10 - - label 0x08 - unset_self_flag_bank3 CHRFLAG3_KILLCOUNTABLE - remove_chr CHR_SELF - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0428_init_drop_devastator: - unset_self_flag_bank3 CHRFLAG3_KILLCOUNTABLE - set_onshot_function FUNC_HOSTAGE_THANK_AND_RUN - set_chr_alliance CHR_SELF, 0x80 - set_chr_health CHR_SELF, 40 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, FUNC_DROP_DEVASTATOR - endfunction - -func0427_drop_devastator: - set_onshot_function FUNC_HOSTAGE_THANK_AND_RUN - if_stage_flag_eq STAGEFLAG_DROPPED_DEVASTATOR, TRUE, /*goto*/ 0x2e - set_stage_flag STAGEFLAG_DROPPED_DEVASTATOR - goto_next 0x08 - - // Other hostage already dropped Devastator - label 0x2e - set_function CHR_SELF, FUNC_HOSTAGE_THANK_AND_RUN - - label 0x08 - if_chr_dying CHR_SELF, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2e - if_chr_unloaded CHR_SELF, /*goto*/ 0x2e - goto_next 0x03 - - label 0x2e - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - label 0x03 - set_target_chr CHR_VELVET - if_chr_sees_player /*goto*/ 0x2e - set_follow_chr CHR_JOANNA - goto_next 0x08 - - label 0x2e - set_follow_chr CHR_VELVET - - label 0x08 - restart_timer - label 0x0a - try_face_entity 0x0200, 0x0000, /*goto*/ 0x0b - - beginloop 0x0b - if_timer_gt 60, /*goto*/ 0x08 - endloop 0x0b - - label 0x08 - give_object_to_chr OBJ_DEVASTATOR, CHR_SELF - yield - drop_concealed_items CHR_SELF - play_chr_specific_quip BANK_3, CHANNEL_6 - animation ANIM_TALKING_0231, 0, -1, 0x1010, CHR_SELF, 2 - restart_timer - - beginloop 0x71 - if_timer_gt 120, /*goto*/ 0x2e - endloop 0x71 - - label 0x2e - run_to_pad 0x00b7 - - beginloop 0x11 - if_chr_stopped /*goto*/ 0x10 - endloop 0x11 - - // Unreachable - set_target_chr FOLLOW_CHR - - beginloop 0x10 - if_chr_sees_player /*goto*/ 0x2e - if_chr_distance_gt 500, /*goto*/ 0x08 - label 0x2e - endloop 0x10 - - label 0x08 - remove_chr CHR_SELF - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100f_check_holo_takers_dead: - beginloop 0x03 - if_chr_dying CHR_TAKER_HOLO1, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_TAKER_HOLO1, /*goto*/ 0x2e - if_chr_unloaded CHR_TAKER_HOLO1, /*goto*/ 0x2e - reloop 0x03 - - label 0x2e - if_chr_dying CHR_TAKER_HOLO2, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_TAKER_HOLO2, /*goto*/ 0x2e - if_chr_unloaded CHR_TAKER_HOLO2, /*goto*/ 0x2e - reloop 0x03 - - label 0x2e - if_chr_dying CHR_TAKER_HOLO3, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_TAKER_HOLO3, /*goto*/ 0x2e - if_chr_unloaded CHR_TAKER_HOLO3, /*goto*/ 0x2e - endloop 0x03 - - label 0x2e - set_stage_flag STAGEFLAG_HOLO_TAKERS_DEAD - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1010_check_device_takers_dead: - beginloop 0x03 - if_chr_dying CHR_TAKER_DEVICE_M, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_TAKER_DEVICE_M, /*goto*/ 0x2e - if_chr_unloaded CHR_TAKER_DEVICE_M, /*goto*/ 0x2e - reloop 0x03 - - label 0x2e - if_chr_dying CHR_TAKER_DEVICE_F, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_TAKER_DEVICE_F, /*goto*/ 0x2e - if_chr_unloaded CHR_TAKER_DEVICE_F, /*goto*/ 0x2e - endloop 0x03 - - label 0x2e - set_stage_flag STAGEFLAG_DEVICE_TAKERS_DEAD - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1011_check_info_takers_dead: - beginloop 0x03 - if_chr_dying CHR_TAKER_INFO_F, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_TAKER_INFO_F, /*goto*/ 0x2e - if_chr_unloaded CHR_TAKER_INFO_F, /*goto*/ 0x2e - reloop 0x03 - - label 0x2e - if_chr_dying CHR_TAKER_INFO_M, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_TAKER_INFO_M, /*goto*/ 0x2e - if_chr_unloaded CHR_TAKER_INFO_M, /*goto*/ 0x2e - endloop 0x03 - - label 0x2e - set_stage_flag STAGEFLAG_INFO_TAKERS_DEAD - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func042c_init_hostage_device_f: - set_var_a 1 - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, FUNC_DEVICEROOM_HOSTAGE - endfunction - -func042d_init_hostage_device_m: - set_var_a 6 - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, FUNC_DEVICEROOM_HOSTAGE - endfunction - -func042b_deviceroom_hostage: - set_onshot_function FUNC_DEVICEROOM_HOSTAGE - if_chr_dying CHR_SELF, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2e - if_chr_unloaded CHR_SELF, /*goto*/ 0x2e - goto_next 0x12 - - label 0x2e - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - label 0x12 - set_target_chr CHR_JOANNA - if_chr_sees_player /*goto*/ 0x2e - set_target_chr CHR_VELVET - if_chr_sees_player /*goto*/ 0x2e - stop_chr - goto_next 0x10 - - label 0x2e - animation ANIM_SURRENDER_002E, 0, 193, 0x1010, CHR_SELF, 2 - - beginloop 0x10 - if_stage_flag_eq STAGEFLAG_DEVICE_TAKERS_DEAD, TRUE, /*goto*/ 0x08 - if_chr_stopped /*goto*/ 0x2e - endloop 0x10 - - label 0x2e - goto_first 0x12 - - label 0x08 - set_function CHR_SELF, FUNC_INIT_SAVED_HOSTAGE - endfunction - -func042f_init_taker_device_m: - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, FUNC_TAKER_DEVICE_M - endfunction - -func042e_taker_device_m: - set_onshot_function FUNC_TAKER_DEVICE_M - if_chr_dying CHR_SELF, /*goto*/ 0x2e - if_chr_dying CHR_SELF, /*goto*/ 0x2e - if_chr_dying CHR_SELF, /*goto*/ 0x2e - goto_next 0x08 - - // Dying - label 0x2e - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x08 - set_self_flag_bank3 CHRFLAG3_00020000 - - beginloop 0x0a - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x08 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x08 - endloop 0x0a - - label 0x08 - if_objective_complete 0, /*goto*/ 0x2e - set_stage_flag STAGEFLAG_VISITED_HOSTAGES_BEFORE_AUTOGUNS - - label 0x2e - set_group_alertness 100 - assign_sound 0x025b, CHANNEL_6 - play_sound_from_entity CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01 - restart_timer - animation ANIM_SURPRISED_0202, 0, -1, 0x0010, CHR_SELF, 2 - - beginloop 0xba - if_timer_gt 60, /*goto*/ 0xbb - endloop 0xba - - label 0xbb - set_self_flag_bank3 CHRFLAG3_00000040 - set_accuracy 50 - set_target_chr CHR_HOSTAGE_DEVICE_M - set_function CHR_SELF, FUNC_TAKER_ATTACK - endfunction - -func0431_init_taker_device_f: - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, FUNC_TAKER_DEVICE_F - endfunction - -func0430_taker_device_f: - set_onshot_function FUNC_TAKER_DEVICE_F - if_chr_dying CHR_SELF, /*goto*/ 0x2e - if_chr_dying CHR_SELF, /*goto*/ 0x2e - if_chr_dying CHR_SELF, /*goto*/ 0x2e - goto_next 0x08 - - // Dying - label 0x2e - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x08 - set_self_flag_bank3 CHRFLAG3_00020000 - - beginloop 0x0a - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x08 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x08 - endloop 0x0a - - label 0x08 - set_group_alertness 100 - set_self_flag_bankx CHRFLAG1_00000020, BANK_1 - restart_timer - animation ANIM_RELOAD_0209, 0, -1, 0x1010, CHR_SELF, 2 - - beginloop 0xbc - if_self_flag_bankx_eq CHRFLAG1_00000020, FALSE, BANK_1, /*goto*/ 0x08 - if_timer_lt 120, /*goto*/ 0x08 - assign_sound 0x80f6, CHANNEL_7 - play_sound_from_entity CHANNEL_7, CHR_SELF, 0x0bb8, 0x1770, 0x01 - unset_self_flag_bankx CHRFLAG1_00000020, BANK_1 - label 0x08 - if_chr_stopped /*goto*/ 0x2e - endloop 0xbc - - label 0x2e - set_self_flag_bank3 CHRFLAG3_00000040 - set_accuracy 50 - set_target_chr CHR_HOSTAGE_DEVICE_F - set_function CHR_SELF, FUNC_TAKER_ATTACK - endfunction - -func0432_taker_attack: - set_onshot_function FUNC_TAKER_ATTACK - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2e - if_chr_dying CHR_SELF, /*goto*/ 0x2e - if_chr_unloaded CHR_SELF, /*goto*/ 0x2e - goto_next 0x08 - - // Dying - label 0x2e - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x08 - if_just_injured CHR_SELF, /*goto*/ 0x2e - goto_next 0x04 - - // Injured - label 0x2e - restart_timer - - beginloop 0x71 - if_chr_stopped /*goto*/ 0x04 - if_timer_gt 180, /*goto*/ 0x04 - endloop 0x71 - - // Healthy - label 0x04 - yield - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0xb9 - label 0xb9 - say_quip CHR_JOANNA, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00 - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x0a - - beginloop 0x0a - if_chr_stopped /*goto*/ 0x08 - endloop 0x0a - - label 0x08 - label 0x0f - set_onshot_function GFUNC_UNALERTED - set_return_function CHR_SELF, GFUNC_UNALERTED - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - endfunction - -func0434_init_hostage_info_m: - set_var_a 2 - set_armor 10 - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, FUNC_INFOROOM_HOSTAGE - endfunction - -func0435_init_hostage_info_f: - set_var_a 8 - set_armor 10 - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, FUNC_INFOROOM_HOSTAGE - endfunction - -func0433_inforoom_hostage: - set_onshot_function FUNC_INFOROOM_HOSTAGE - if_chr_dying CHR_SELF, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2e - if_chr_unloaded CHR_SELF, /*goto*/ 0x2e - goto_next 0x04 - - label 0x2e - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - beginloop 0x04 - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x08 - endloop 0x04 - - label 0x08 - if_objective_complete 0, /*goto*/ 0x2e - set_stage_flag STAGEFLAG_VISITED_HOSTAGES_BEFORE_AUTOGUNS - - // This flag is assigned at random to one of the two hostages - label 0x2e - if_self_flag_bankx_eq CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x0e - - // Flag not set - run and cower - run_to_pad 0x010d - - beginloop 0x0a - if_stage_flag_eq STAGEFLAG_INFO_TAKERS_DEAD, TRUE, /*goto*/ 0x0d - if_chr_stopped /*goto*/ 0x12 - endloop 0x0a - - label 0x12 - animation ANIM_COWER_0229, -1, -1, 0x100a, CHR_SELF, 2 - - beginloop 0x10 - if_stage_flag_eq STAGEFLAG_INFO_TAKERS_DEAD, TRUE, /*goto*/ 0x0d - if_chr_stopped /*goto*/ 0x2e - endloop 0x10 - - label 0x2e - goto_first 0x12 - - // Flag was set - fight hostage taker - label 0x0e - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x2e - goto_next 0x0d - - label 0x2e - unset_self_flag_bankx CHRFLAG0_00000004, BANK_0 - set_onshot_function FUNC_INFOROOM_HOSTAGE - set_return_function CHR_SELF, FUNC_INFOROOM_HOSTAGE - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - - label 0x0d - if_kill_count_gt 1, /*goto*/ 0x2e - set_function CHR_SELF, FUNC_INIT_DROP_DEVASTATOR - - label 0x2e - set_function CHR_SELF, FUNC_INIT_SAVED_HOSTAGE - endfunction - -func1012_info_room: - beginloop 0x04 - if_door_state 0x19, DOORSTATE_OPEN, /*goto*/ 0x2e - endloop 0x04 - - // One hostage is randomly given chrflag0_00000004, which allows that - // hostage to fight the taker. - label 0x2e - call_rng - if_rand_gt 128, /*goto*/ 0x0a - - set_chr_flag_bankx CHR_HOSTAGE_INFO_M, CHRFLAG0_00002000, BANK_0 - set_chr_flag_bankx CHR_HOSTAGE_INFO_F, CHRFLAG0_00002000, BANK_0 - set_chr_flag_bankx CHR_HOSTAGE_INFO_M, CHRFLAG0_00000004, BANK_0 - set_chr_health CHR_TAKER_INFO_M, 10 - goto_next 0x2e - - label 0x0a - set_chr_flag_bankx CHR_HOSTAGE_INFO_M, CHRFLAG0_00002000, BANK_0 - set_chr_flag_bankx CHR_HOSTAGE_INFO_F, CHRFLAG0_00002000, BANK_0 - set_chr_flag_bankx CHR_HOSTAGE_INFO_F, CHRFLAG0_00000004, BANK_0 - set_chr_health CHR_TAKER_INFO_F, 10 - - label 0x2e - restart_timer - - beginloop 0x0b - if_timer_gt 60, /*goto*/ 0x08 - endloop 0x0b - - label 0x08 - set_chr_flag_bankx CHR_TAKER_INFO_F, CHRFLAG0_00002000, BANK_0 - set_chr_flag_bankx CHR_TAKER_INFO_M, CHRFLAG0_00002000, BANK_0 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0437_init_taker_info_m: - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, FUNC_TAKER_INFO_M - endfunction - -func0436_taker_info_m: - set_onshot_function FUNC_TAKER_INFO_M - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2e - if_chr_dying CHR_SELF, /*goto*/ 0x2e - if_chr_unloaded CHR_SELF, /*goto*/ 0x2e - goto_next 0x08 - - // Dying - label 0x2e - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x08 - - beginloop 0x0a - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x08 - endloop 0x0a - - label 0x08 - set_self_flag_bank3 CHRFLAG3_00000040 - set_accuracy 50 - set_target_chr CHR_HOSTAGE_INFO_M - set_function CHR_SELF, FUNC_TAKER_ATTACK - endfunction - -func0439_init_taker_info_f: - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, FUNC_TAKER_INFO_F - endfunction - -func0438_taker_info_f: - set_onshot_function FUNC_TAKER_INFO_F - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2e - if_chr_dying CHR_SELF, /*goto*/ 0x2e - if_chr_unloaded CHR_SELF, /*goto*/ 0x2e - goto_next 0x08 - - // Dying - label 0x2e - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x08 - - beginloop 0x0a - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x08 - endloop 0x0a - - label 0x08 - set_self_flag_bank3 CHRFLAG3_00000040 - set_accuracy 20 - set_target_chr CHR_HOSTAGE_INFO_F - set_function CHR_SELF, FUNC_TAKER_ATTACK - endfunction - -func1013_check_hostages_saved: - yield - yield - - beginloop 0x0a - if_chr_dying CHR_HOSTAGE_FR1, /*goto*/ 0x2f - if_chr_death_animation_finished CHR_HOSTAGE_FR1, /*goto*/ 0x2f - if_chr_unloaded CHR_HOSTAGE_FR1, /*goto*/ 0x2f - goto_next 0x2e - - // FR1 hostage dead - label 0x2f - if_chr_dying CHR_HOSTAGE_FR2, /*goto*/ 0x2f - if_chr_death_animation_finished CHR_HOSTAGE_FR2, /*goto*/ 0x2f - if_chr_unloaded CHR_HOSTAGE_FR2, /*goto*/ 0x2f - - // FR1 hostage alive - label 0x2e - if_chr_dying CHR_TAKER_FR1, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_TAKER_FR1, /*goto*/ 0x2e - if_chr_unloaded CHR_TAKER_FR1, /*goto*/ 0x2e - endloop 0x0a - - // FR1 hostage alive and FR1 taker dead - label 0x2e - if_chr_dying CHR_TAKER_FR2, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_TAKER_FR2, /*goto*/ 0x2e - if_chr_unloaded CHR_TAKER_FR2, /*goto*/ 0x2e - goto_first 0x0a - - // Both FR hostages dead - label 0x2f - - // Both FR takers dead - label 0x2e - if_stage_flag_eq STAGEFLAG_DEVICE_TAKERS_DEAD, TRUE, /*goto*/ 0x2e - if_chr_dying CHR_HOSTAGE_DEVICE_F, /*goto*/ 0x2f - if_chr_death_animation_finished CHR_HOSTAGE_DEVICE_F, /*goto*/ 0x2f - if_chr_unloaded CHR_HOSTAGE_DEVICE_F, /*goto*/ 0x2f - goto_first 0x0a - - label 0x2f - if_chr_dying CHR_HOSTAGE_DEVICE_M, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_HOSTAGE_DEVICE_M, /*goto*/ 0x2e - if_chr_unloaded CHR_HOSTAGE_DEVICE_M, /*goto*/ 0x2e - goto_first 0x0a - - // FR and device room done - label 0x2e - if_stage_flag_eq STAGEFLAG_INFO_TAKERS_DEAD, TRUE, /*goto*/ 0x2e - if_chr_dying CHR_HOSTAGE_INFO_M, /*goto*/ 0x2f - if_chr_death_animation_finished CHR_HOSTAGE_INFO_M, /*goto*/ 0x2f - if_chr_unloaded CHR_HOSTAGE_INFO_M, /*goto*/ 0x2f - goto_first 0x0a - - label 0x2f - if_chr_dying CHR_HOSTAGE_INFO_F, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_HOSTAGE_INFO_F, /*goto*/ 0x2e - if_chr_unloaded CHR_HOSTAGE_INFO_F, /*goto*/ 0x2e - goto_first 0x0a - - // FR, device and info rooms done - label 0x2e - if_stage_flag_eq STAGEFLAG_HOLO_TAKERS_DEAD, TRUE, /*goto*/ 0x2e - if_chr_dying CHR_HOSTAGE_HOLO, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_HOSTAGE_HOLO, /*goto*/ 0x2e - if_chr_unloaded CHR_HOSTAGE_HOLO, /*goto*/ 0x2e - goto_first 0x0a - - // All rooms done - label 0x2e - if_stage_flag_eq STAGEFLAG_TOO_MANY_HOSTAGES_KILLED, TRUE, /*goto*/ 0x2e - message CHR_JOANNA, 0x2211 // "Hostages have been saved." - set_stage_flag STAGEFLAG_ENOUGH_HOSTAGES_SAVED - - label 0x2e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1014_carrington_messages: - restart_timer - - beginloop 0x03 - if_chr_dying CHR_CARRINGTON, /*goto*/ 0xd9 - if_stage_flag_eq STAGEFLAG_INTRO_FINISHED, TRUE, /*goto*/ 0x2e - endloop 0x03 - - .macro carrington_sanity_checks - if_chr_dying CHR_CARRINGTON, /*goto*/ 0xd9 - if_chr_dying CHR_JOANNA, /*goto*/ 0x05 - goto_next 0x06 - - label 0x05 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0xd9 - label 0x06 - .endm - - label 0x2e - yield - label 0x08 - restart_timer - - beginloop 0x0a - carrington_sanity_checks - if_difficulty_lt DIFF_SA, /*goto*/ 0x08 - if_timer_gt 180, /*goto*/ 0x08 - endloop 0x0a - - label 0x08 - restart_timer - if_difficulty_lt DIFF_SA, /*goto*/ 0x0d - speak CHR_JOANNA, 0x2214, 0x8193, CHANNEL_6, COLOR_06_WHITE // "Joanna - we're under attack." - - beginloop 0x0b - carrington_sanity_checks - if_timer_gt 180, /*goto*/ 0x08 - endloop 0x0b - - label 0x08 - speak CHR_JOANNA, 0x2215, 0x8194, CHANNEL_6, COLOR_06_WHITE // "Get the guns back on line - hurry." - - beginloop 0x0c - carrington_sanity_checks - if_timer_gt 180, /*goto*/ 0x0d - endloop 0x0c - - beginloop 0x0d - set_stage_flag STAGEFLAG_TRIGGER_AUTODEFENSES_MSG - carrington_sanity_checks - if_difficulty_lt DIFF_SA, /*goto*/ 0x08 - if_objective_complete 0, /*goto*/ 0x08 - endloop 0x0d - - label 0x08 - set_chr_flag_bank3 CHR_CARRINGTON, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_CARRINGTON, CHRFLAG3_HIDDEN - unlock_door 0x23, 0x04 - unlock_door 0x24, 0x04 - restart_timer - - beginloop 0xbd - carrington_sanity_checks - if_timer_gt 180, /*goto*/ 0xda - endloop 0xbd - - label 0xda - restart_timer - speak CHR_JOANNA, 0x2216, 0x8195, CHANNEL_6, COLOR_06_WHITE // "The Skedar have taken hostages." - - beginloop 0x0e - carrington_sanity_checks - if_timer_gt 180, /*goto*/ 0x08 - endloop 0x0e - - label 0x08 - restart_timer - speak CHR_JOANNA, 0x2217, 0x8196, CHANNEL_6, COLOR_06_WHITE // "Get up to the offices and save them." - - beginloop 0x0f - carrington_sanity_checks - if_timer_gt 180, /*goto*/ 0x10 - endloop 0x0f - - label 0x10 - set_stage_flag STAGEFLAG_TRIGGER_COUNTINGONME_MSG - yield - carrington_sanity_checks - if_objective_complete 1, /*goto*/ 0x08 - goto_first 0x10 - - label 0x08 - restart_timer - - beginloop 0xbe - carrington_sanity_checks - if_timer_gt 300, /*goto*/ 0x08 - reloop 0xbe - - label 0x08 - if_sound_finished CHANNEL_6, /*goto*/ 0x08 - endloop 0xbe - - label 0x08 - restart_timer - speak CHR_JOANNA, 0x2218, 0x8197, CHANNEL_6, COLOR_06_WHITE // "They're using a new form of shield technology." - - beginloop 0x11 - carrington_sanity_checks - if_timer_gt 180, /*goto*/ 0x08 - endloop 0x11 - - label 0x08 - restart_timer - speak CHR_JOANNA, 0x2219, 0x8198, CHANNEL_6, COLOR_06_WHITE // "Foster was working on a new weapon which may be us..." - - beginloop 0x12 - carrington_sanity_checks - if_timer_gt 180, /*goto*/ 0xbf - endloop 0x12 - - beginloop 0xbf - carrington_sanity_checks - if_objective_complete 2, /*goto*/ 0x08 - endloop 0xbf - - label 0x08 - if_difficulty_lt DIFF_PA, /*goto*/ 0xdb - restart_timer - - beginloop 0xc0 - carrington_sanity_checks - if_timer_gt 180, /*goto*/ 0x08 - endloop 0xc0 - - label 0x08 - restart_timer - speak CHR_JOANNA, 0x221a, 0x8199, CHANNEL_6, COLOR_06_WHITE // "Damn it. My office... If they get access..." - - beginloop 0xc1 - carrington_sanity_checks - if_timer_gt 240, /*goto*/ 0x08 - endloop 0xc1 - - label 0x08 - restart_timer - speak CHR_JOANNA, 0x221b, 0x819a, CHANNEL_6, COLOR_06_WHITE // "Get there first, Jo, and destroy the files." - - beginloop 0xc2 - carrington_sanity_checks - if_timer_gt 180, /*goto*/ 0xc3 - endloop 0xc2 - - beginloop 0xc3 - carrington_sanity_checks - if_objective_complete 3, /*goto*/ 0x08 - endloop 0xc3 - - label 0x08 - label 0xdb - - // Wait until no one in skedar shuttle area - beginloop 0x71 - if_chr_in_room CHR_JOANNA, 0x00, 0x0045, /*goto*/ 0x2e - if_chr_in_room CHR_JOANNA, 0x00, 0x0047, /*goto*/ 0x2e - if_chr_in_room CHR_JOANNA, 0x00, 0x004d, /*goto*/ 0x2e - if_chr_in_room CHR_JOANNA, 0x00, 0x0055, /*goto*/ 0x2e - if_chr_in_room CHR_JOANNA, 0x00, 0x0046, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0xe5 - if_chr_in_room CHR_VELVET, 0x00, 0x0045, /*goto*/ 0x2e - if_chr_in_room CHR_VELVET, 0x00, 0x0047, /*goto*/ 0x2e - if_chr_in_room CHR_VELVET, 0x00, 0x004d, /*goto*/ 0x2e - if_chr_in_room CHR_VELVET, 0x00, 0x0055, /*goto*/ 0x2e - if_chr_in_room CHR_VELVET, 0x00, 0x0046, /*goto*/ 0x2e - label 0xe5 - if_chr_death_animation_finished CHR_COUNTEROP, /*goto*/ 0xe5 - if_chr_in_room CHR_COUNTEROP, 0x00, 0x0045, /*goto*/ 0x2e - if_chr_in_room CHR_COUNTEROP, 0x00, 0x0047, /*goto*/ 0x2e - if_chr_in_room CHR_COUNTEROP, 0x00, 0x004d, /*goto*/ 0x2e - if_chr_in_room CHR_COUNTEROP, 0x00, 0x0055, /*goto*/ 0x2e - if_chr_in_room CHR_COUNTEROP, 0x00, 0x0046, /*goto*/ 0x2e - label 0xe5 - goto_next 0x08 - - label 0x2e - endloop 0x71 - - label 0x08 - restart_timer - - beginloop 0xc4 - carrington_sanity_checks - if_timer_gt 180, /*goto*/ 0x08 - endloop 0xc4 - - label 0x08 - restart_timer - speak CHR_JOANNA, 0x221c, 0x819b, CHANNEL_6, COLOR_06_WHITE // "Things are desperate. They've planted a bomb." - - beginloop 0xc5 - carrington_sanity_checks - if_timer_gt 180, /*goto*/ 0x08 - endloop 0xc5 - - label 0x08 - restart_timer - speak CHR_JOANNA, 0x221d, 0x819c, CHANNEL_6, COLOR_06_WHITE // "Find it and get it out of the building." - - beginloop 0xc6 - carrington_sanity_checks - if_timer_gt 180, /*goto*/ 0x08 - endloop 0xc6 - - label 0x08 - play_x_music CHANNEL_10, 120 - set_countdown_timer 120 - show_countdown_timer - start_countdown_timer - - beginloop 0xc7 - if_stage_flag_eq STAGEFLAG_TRIGGER_SHUTTLE_TAKEOFF, TRUE, /*goto*/ 0x2e - if_countdown_timer_lt 1, /*goto*/ 0x08 - endloop 0xc7 - - label 0x08 - set_stage_flag STAGEFLAG_BOMB_EXPLODING_ON_GROUND - hide_countdown_timer - label 0x2e - restart_timer - - beginloop 0xc8 - if_timer_gt 300, /*goto*/ 0x2e - endloop 0xc8 - - label 0x2e - carrington_sanity_checks - restart_timer - speak CHR_JOANNA, 0x2220, 0x819d, CHANNEL_6, COLOR_06_WHITE // "Well done, Joanna. We're nearly clear..." - - beginloop 0xc9 - if_timer_gt 180, /*goto*/ 0x08 - endloop 0xc9 - - label 0x08 - carrington_sanity_checks - speak CHR_JOANNA, 0x2221, 0x819e, CHANNEL_6, COLOR_06_WHITE // "The last dropship is waiting for you. Hurry." - - beginloop 0xca - if_timer_gt 180, /*goto*/ 0xcb - endloop 0xca - - beginloop 0xcb - consider_coop_for_p1p2_chr CHR_SELF - if_all_objectives_complete /*goto*/ 0x2e - reloop 0xcb - - label 0x2e - if_chr_in_room CHR_P1P2, 0x00, 0x0054, /*goto*/ 0x2e - if_chr_in_room CHR_P1P2, 0x00, 0x0053, /*goto*/ 0x2e - endloop 0xcb - - label 0x2e - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x2e - if_chr_dying CHR_JOANNA, /*goto*/ 0x2e - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x2e - goto_next 0x08 - - label 0x2e - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2e - if_chr_dying CHR_VELVET, /*goto*/ 0x2e - if_chr_unloaded CHR_VELVET, /*goto*/ 0x2e - goto_next 0x08 - - label 0x2e - end_level - set_function CHR_SELF, GFUNC_IDLE - - label 0x08 - set_invincible CHR_JOANNA - set_function CHR_SELF, 0x0418 - - label 0xd9 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1015_firingrange_pc: - beginloop 0x0a - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, OBJ_FR_PC, /*goto*/ 0x08 - if_object_in_good_condition OBJ_FR_PC, /*goto*/ 0x2e - goto_next 0x2f - - label 0x2e - reloop 0x0a - - label 0x2f - message CHR_JOANNA, 0x2222 // "Critical mission object has been destroyed." - set_stage_flag STAGEFLAG_FR_PC_DESTROYED - set_function CHR_SELF, GFUNC_IDLE - - label 0x08 - play_sound 0x8116, -1 - if_objective_complete 1, /*goto*/ 0x08 - message CHR_P1P2, 0x221e // "Access denied - authorization failure." - restart_timer - - beginloop 0x0b - if_timer_gt 120, /*goto*/ 0x2e - endloop 0x0b - - label 0x2e - endloop 0x0a - - label 0x08 - message CHR_P1P2, 0x221f // "Emergency overrides have been engaged." - unset_object_flag_bank0 OBJ_RCP120, OBJECTFLAG0_00100000 - unset_object_flag_bank0 OBJ_RCP120_GLASS, OBJECTFLAG0_INVINCIBLE - destroy_object OBJ_RCP120_GLASS - set_function CHR_SELF, GFUNC_IDLE - endfunction - -.macro topspawner_logic initfunc clonefunc - set_self_flag_bank3 CHRFLAG3_00000002 - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_self_flag_bank3 CHRFLAG3_00040000 - - beginloop 0x04 - if_objective_complete 1, /*goto*/ 0x2e - reloop 0x04 - - label 0x2e - dprint "OBJECTIVE DONE\n" - if_never_been_onscreen /*goto*/ 0x4f - if_chr_sees_player /*goto*/ 0x0a - reloop 0x04 - - label 0x0a - set_function CHR_SELF, \clonefunc - - label 0x4f - unset_self_flag_bank3 CHRFLAG3_HIDDEN - if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x4f - goto_first 0x04 - - label 0x4f - try_spawn_clone2 CHR_SELF, \initfunc, 0x00000000, /*goto*/ 0x2e - set_function CHR_SELF, \clonefunc - - label 0x2e - yield - endloop 0x04 -.endm - -.macro inittopclone_logic templatechr clonefunc - set_chr_dodge_rating 2, 0x00 - set_accuracy 20 - set_reaction_speed 70 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 90 - set_self_flag_bankx CHRFLAG1_00080000, BANK_1 - label 0x04 - try_inherit_properties \templatechr, /*goto*/ 0x08 - label 0x08 - set_chr_alliance CHR_SELF, ALLIANCE_ENEMY - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, \clonefunc -.endm - -// Spawner at top of ramp at start -func040a_spawner4: - topspawner_logic FUNC_INIT_CLONE4, FUNC_CLONE4 - endfunction - -func040c_init_clone4: - inittopclone_logic 0x11, FUNC_CLONE4 - endfunction - -func040b_clone4: - set_target_chr CHR_JOANNA - try_run_to_target_chr /*goto*/ 0x2e - label 0x2e - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -// Spawner at helipad -func040d_spawner5: - topspawner_logic FUNC_INIT_CLONE5, FUNC_CLONE5 - endfunction - -func040f_init_clone5: - inittopclone_logic 0x12, FUNC_CLONE5 - endfunction - -func040e_clone5: - call_rng - if_rand_gt 128, /*goto*/ 0x08 - run_to_pad 0x005b - goto_next 0x2e - - label 0x08 - run_to_pad 0x0069 - - label 0x2e - set_return_function CHR_SELF, FUNC_CLONE5 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -/** - * When the autoguns are completed, the game removes a single shock guard from - * the tunnels area. - * - * Looks like the intention is to remove the bottom spawners once the autogun - * objective is done, then remove the top spawners once the hostages are done, - * but due to changed chr IDs and a probable incorrect goto, this function - * fails pretty bad at achieving this. - */ -func1016_remove_spawners: - beginloop 0x0a - if_difficulty_lt DIFF_SA, /*goto*/ 0x2e - if_objective_complete 0, /*goto*/ 0x2e - endloop 0x0a - - // Unreachable - label 0x08 - remove_chr 0x0c - remove_chr 0x0e - remove_chr 0x10 - - beginloop 0x0b - if_objective_complete 1, /*goto*/ 0x2e - endloop 0x0b - - // Agent, or autoguns complete - label 0x2e - remove_chr 0x0b // invalid chr ID - remove_chr 0x0d // black guard - remove_chr 0x0f // invalid chr ID - - beginloop 0x0c - if_objective_complete 2, /*goto*/ 0x2e - endloop 0x0c - - label 0x2e - label 0x0d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -// Spawner outside Jo's office -func0410_spawner6: - set_self_flag_bank3 CHRFLAG3_00000002 - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_self_flag_bank3 CHRFLAG3_00040000 - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_objective_complete 2, /*goto*/ 0x2e - reloop 0x04 - - label 0x2e - if_chr_in_room CHR_P1P2, 0x00, 0x000c, /*goto*/ 0x2e - reloop 0x04 - - label 0x2e - dprint "OBJECTIVE DONE\n" - if_never_been_onscreen /*goto*/ 0x4f - if_chr_sees_player /*goto*/ 0x0a - reloop 0x04 - - label 0x0a - set_function CHR_SELF, FUNC_CLONE6 - - label 0x4f - if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x4f - reloop 0x04 - - label 0x4f - try_spawn_clone2 CHR_SELF, FUNC_INIT_CLONE6, 0x00000000, /*goto*/ 0x2e - set_function CHR_SELF, FUNC_CLONE6 - - label 0x2e - yield - endloop 0x04 - - endfunction - -func0412_init_clone6: - inittopclone_logic 0x13, FUNC_CLONE6 - endfunction - -func0411_clone6: - set_target_chr CHR_JOANNA - try_run_to_target_chr /*goto*/ 0x2e - label 0x2e - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -func1022_skedar_shuttle: - beginloop 0x12 - if_difficulty_lt DIFF_PA, /*goto*/ 0x2e - if_objective_complete 3, /*goto*/ 0x08 - reloop 0x12 - - label 0x2e - if_objective_complete 2, /*goto*/ 0x08 - endloop 0x12 - - label 0x08 - - beginloop 0x71 - if_chr_in_room CHR_JOANNA, 0x00, 0x0045, /*goto*/ 0x2e - if_chr_in_room CHR_JOANNA, 0x00, 0x0047, /*goto*/ 0x2e - if_chr_in_room CHR_JOANNA, 0x00, 0x004d, /*goto*/ 0x2e - if_chr_in_room CHR_JOANNA, 0x00, 0x0055, /*goto*/ 0x2e - if_chr_in_room CHR_JOANNA, 0x00, 0x0046, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0xe5 - if_chr_in_room CHR_VELVET, 0x00, 0x0045, /*goto*/ 0x2e - if_chr_in_room CHR_VELVET, 0x00, 0x0047, /*goto*/ 0x2e - if_chr_in_room CHR_VELVET, 0x00, 0x004d, /*goto*/ 0x2e - if_chr_in_room CHR_VELVET, 0x00, 0x0055, /*goto*/ 0x2e - if_chr_in_room CHR_VELVET, 0x00, 0x0046, /*goto*/ 0x2e - label 0xe5 - if_chr_death_animation_finished CHR_COUNTEROP, /*goto*/ 0xe5 - if_chr_in_room CHR_COUNTEROP, 0x00, 0x0045, /*goto*/ 0x2e - if_chr_in_room CHR_COUNTEROP, 0x00, 0x0047, /*goto*/ 0x2e - if_chr_in_room CHR_COUNTEROP, 0x00, 0x004d, /*goto*/ 0x2e - if_chr_in_room CHR_COUNTEROP, 0x00, 0x0055, /*goto*/ 0x2e - if_chr_in_room CHR_COUNTEROP, 0x00, 0x0046, /*goto*/ 0x2e - label 0xe5 - goto_next 0x08 - - label 0x2e - endloop 0x71 - - label 0x08 - show_object OBJ_SKEDAR_SHUTTLE - set_object_flag_bank1 OBJ_SKEDAR_SHUTTLE, OBJECTFLAG1_04000000 - set_object_flag_bank2 OBJ_SKEDAR_SHUTTLE, OBJECTFLAG2_00000010 - object_do_animation 0x045a, OBJ_SKEDAR_SHUTTLE, 0x04ff, 0xff - set_object_part_visible OBJ_SKEDAR_SHUTTLE, FALSE - set_object_flag_bank0 OBJ_SKEDAR_SHUTTLE, OBJECTFLAG0_00000100 - - unset_chr_flag_bank3 CHR_BLONDE1, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_BLONDE2, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_BLONDE3, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_BLONDE4, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_BLONDE5, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_BLONDE6, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_BLONDE1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 CHR_BLONDE2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 CHR_BLONDE3, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 CHR_BLONDE4, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 CHR_BLONDE5, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 CHR_BLONDE6, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function CHR_BLONDE1, FUNC_INIT_BLONDE - set_function CHR_BLONDE2, FUNC_INIT_BLONDE - set_function CHR_BLONDE3, FUNC_INIT_BLONDE - set_function CHR_BLONDE4, FUNC_INIT_BLONDE - set_function CHR_BLONDE5, FUNC_INIT_BLONDE - set_function CHR_BLONDE6, FUNC_INIT_BLONDE - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_BOMB_EXPLODING_ON_GROUND, TRUE, /*goto*/ 0x2e - if_stage_flag_eq STAGEFLAG_TRIGGER_SHUTTLE_TAKEOFF, TRUE, /*goto*/ 0x0a - object_do_animation 0x045a, OBJ_SKEDAR_SHUTTLE, 0x04ff, 0xff - endloop 0x04 - - // Bomb exploding while on ground - label 0x2e - hide_countdown_timer - stop_countdown_timer - destroy_object OBJ_SKEDAR_SHUTTLE - explosions_around_chr CHR_JOANNA - restart_timer - - beginloop 0x72 - if_timer_gt 60, /*goto*/ 0x2e - endloop 0x72 - - label 0x2e - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2f - explosions_around_chr CHR_VELVET - - goto_next 0x41 - label 0x2f - if_chr_death_animation_finished CHR_COUNTEROP, /*goto*/ 0x41 - explosions_around_chr CHR_COUNTEROP - - label 0x41 - restart_timer - - beginloop 0x73 - if_timer_gt 90, /*goto*/ 0x2e - endloop 0x73 - - label 0x2e - end_level - set_function CHR_SELF, GFUNC_IDLE - - // Bomb deactivated - label 0x0a - hide_countdown_timer - stop_countdown_timer - object_do_animation 0x045b, OBJ_SKEDAR_SHUTTLE, 0x08ff, 0xff - assign_sound 0x810a, CHANNEL_3 - play_sound_from_object CHANNEL_3, OBJ_SKEDAR_SHUTTLE, 0x0708, 0x0bb8 - restart_timer - - beginloop 0x0b - dprint "OBJ\n" - if_timer_gt 60, /*goto*/ 0x2e - endloop 0x0b - - label 0x2e - assign_sound 0x810b, CHANNEL_4 - play_sound_from_object CHANNEL_4, OBJ_SKEDAR_SHUTTLE, 0x0708, 0x0bb8 - - beginloop 0x0d - dprint "OBJ\n" - if_timer_gt 200, /*goto*/ 0x08 - endloop 0x0d - - label 0x08 - dprint "OBJECTIVE DONE\n" - set_stage_flag STAGEFLAG_BOMB_AIRBORNE - restart_timer - - beginloop 0x0c - if_timer_gt 240, /*goto*/ 0x2e - endloop 0x0c - - label 0x2e - set_object_health OBJ_SKEDAR_SHUTTLE, 0 - mute_channel CHANNEL_3 - mute_channel CHANNEL_4 - destroy_object OBJ_SKEDAR_SHUTTLE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func043a_unused: - set_chr_health CHR_SELF, 1 - - beginloop 0x12 - if_objective_complete 3, /*goto*/ 0x08 - endloop 0x12 - - label 0x08 - - beginloop 0x04 - endloop 0x04 - - endfunction - -unregistered_function1: - // All of these objects have been removed :\ - // Wait for all 4 objects destroyed - beginloop 0x04 - if_object_in_good_condition 0x1f, /*goto*/ 0x08 - goto_next 0x2e - label 0x08 - reloop 0x04 - - label 0x2e - if_object_in_good_condition 0x20, /*goto*/ 0x08 - goto_next 0x2e - label 0x08 - reloop 0x04 - - label 0x2e - if_object_in_good_condition 0x21, /*goto*/ 0x08 - goto_next 0x2e - label 0x08 - reloop 0x04 - - label 0x2e - if_object_in_good_condition 0x22, /*goto*/ 0x08 - goto_next 0x2e - label 0x08 - endloop 0x04 - - label 0x2e - restart_timer - - beginloop 0x71 - if_timer_gt 60, /*goto*/ 0x2e - endloop 0x71 - - label 0x2e - set_stage_flag STAGEFLAG_TRIGGER_SHUTTLE_TAKEOFF - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func043b_init_blonde: - set_chr_dodge_rating 2, 0x00 - set_accuracy 20 - set_reaction_speed 70 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 90 - set_return_function CHR_SELF, GFUNC_UNALERTED - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func043c_init_cisolder: - set_chr_dodge_rating 2, 0x00 - set_accuracy 20 - set_reaction_speed 70 - set_chr_health CHR_SELF, 40 - set_armor 90 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, FUNC_DEFEND_PAD - endfunction - -func043d_unused: - set_chr_dodge_rating 2, 0x00 - set_accuracy 30 - set_reaction_speed 70 - set_chr_health CHR_SELF, 40 - set_armor 90 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func043e_carrington: - set_onshot_function FUNC_CARRINGTON - jog_to_pad 0x0142 - - beginloop 0x04 - if_chr_stopped /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - stop_chr - - beginloop 0x0a - endloop 0x0a - - endfunction - -func0429_skedar4: - stop_chr - set_accuracy 40 - set_reaction_speed 70 - set_chr_health CHR_SELF, 40 - set_armor 160 - set_recovery_speed 0 - set_shield 0 - jog_to_pad 0x000c - set_function CHR_SELF, GFUNC_RELATED_TO_SPAWNING - endfunction - -func1018_hurt_carrington: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_VISITED_HOSTAGES_BEFORE_AUTOGUNS, TRUE, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - restart_timer - - beginloop 0x0a - if_timer_gt 600, /*goto*/ 0x08 - endloop 0x0a - - label 0x08 - damage_chr CHR_CARRINGTON, 18 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1019_setup_safeinfo: - label 0x08 - unset_object_flag_bank0 OBJ_SAFEDOOR, OBJECTFLAG0_INVINCIBLE - unset_object_flag_bank0 OBJ_SAFEINFO, OBJECTFLAG0_INVINCIBLE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101b_msg_autodefenses: - if_difficulty_lt DIFF_SA, /*goto*/ 0x0a - - beginloop 0x04 - if_sound_finished CHANNEL_6, /*goto*/ 0x2f - reloop 0x04 - - label 0x2f - if_stage_flag_eq STAGEFLAG_TRIGGER_AUTODEFENSES_MSG, TRUE, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - yield - yield - speak CHR_JOANNA, 0x2223, 0x73d8, CHANNEL_6, COLOR_09_BLUE // "The autodefenses will really help me out." - label 0x0a - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101c_msg_fosterworkingon: - beginloop 0x04 - if_objective_complete 1, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - restart_timer - - beginloop 0x0a - if_sound_finished CHANNEL_6, /*goto*/ 0x2f - reloop 0x04 - - label 0x2f - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0009, /*goto*/ 0x2e - endloop 0x0a - - label 0x2e - speak CHR_P1P2, 0x2224, 0x73d9, CHANNEL_6, COLOR_09_BLUE // "So this is what Foster was working on." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101d_msg_countingonme: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_TRIGGER_COUNTINGONME_MSG, TRUE, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - restart_timer - - beginloop 0x0a - if_sound_finished CHANNEL_6, /*goto*/ 0x2f - goto_first 0x04 - - label 0x2f - if_timer_gt 180, /*goto*/ 0x2e - endloop 0x0a - - label 0x2e - speak CHR_JOANNA, 0x2225, 0x73da, CHANNEL_6, COLOR_09_BLUE // "I'll have to go carefully... The hostages are coun..." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * This message is not played because no condition breaks out of the loop. - */ -func101e_msg_wontknow: - beginloop 0x04 - endloop 0x04 - - label 0x2e - speak CHR_JOANNA, 0x2226, 0x73db, CHANNEL_6, COLOR_09_BLUE // "Well, at least I won't know if I'm doing anything ..." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101f_configure_cisoldiers: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_INTRO_FINISHED, TRUE, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - set_function CHR_JONATHAN, FUNC_INIT_JONATHAN - set_function 0x15, FUNC_INIT_CISOLDIER - set_function 0x16, FUNC_INIT_CISOLDIER - set_function 0x17, FUNC_INIT_CISOLDIER - set_function 0x18, FUNC_INIT_CISOLDIER - set_function 0x19, FUNC_INIT_CISOLDIER - set_function 0x1a, FUNC_INIT_CISOLDIER - set_function 0x1b, FUNC_INIT_CISOLDIER - set_function 0x1c, FUNC_INIT_CISOLDIER - set_function 0x1d, FUNC_INIT_CISOLDIER - set_function 0x1e, FUNC_INIT_CISOLDIER - set_function CHR_HANGARGUY, FUNC_INIT_CISOLDIER - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1020_trigger_spawning: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_INTRO_FINISHED, TRUE, /*goto*/ 0x2e - endloop 0x04 - - // Wait 15 seconds - label 0x2e - restart_timer - - beginloop 0x0a - if_timer_gt 900, /*goto*/ 0x2e - endloop 0x0a - - label 0x2e - set_stage_flag STAGEFLAG_TRIGGER_SPAWNING - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func042a_init_jonathan: - set_accuracy 100 - set_reaction_speed 100 - set_chr_health CHR_SELF, 40 - set_armor 1200 - set_recovery_speed 100 - set_function CHR_SELF, FUNC_DEFEND_PAD - endfunction - -func1021_setup_jonathan: - yield - if_eeprom_flag_is_set EEPROMFLAG_DEFENSE_JON, /*goto*/ 0x08 - remove_chr CHR_JONATHAN - label 0x08 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1023_check_skeder_shuttle_destroyed: - beginloop 0x12 - if_difficulty_lt DIFF_PA, /*goto*/ 0x2e - if_objective_complete 3, /*goto*/ 0x08 - reloop 0x12 - - label 0x2e - if_objective_complete 2, /*goto*/ 0x08 - endloop 0x12 - - beginloop 0x04 - if_object_in_good_condition OBJ_SKEDAR_SHUTTLE, /*goto*/ 0x08 - goto_next 0x2e - - label 0x08 - goto_first 0x04 - - // Shuttle destroyed - label 0x2e - restart_timer - - beginloop 0x0a - if_timer_gt 30, /*goto*/ 0x2e - endloop 0x0a - - label 0x2e - if_stage_flag_eq STAGEFLAG_BOMB_AIRBORNE, TRUE, /*goto*/ 0x0f - message CHR_JOANNA, 0x2227 // "The bomb has been detonated..." - set_stage_flag STAGEFLAG_BOMB_EXPLODING_ON_GROUND - explosions_around_chr CHR_JOANNA - restart_timer - - beginloop 0x72 - if_timer_gt 60, /*goto*/ 0x2e - endloop 0x72 - - label 0x2e - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2f - explosions_around_chr CHR_VELVET - goto_next 0x41 - - label 0x2f - if_chr_death_animation_finished CHR_COUNTEROP, /*goto*/ 0x41 - explosions_around_chr CHR_COUNTEROP - - label 0x41 - restart_timer - - beginloop 0x73 - if_timer_gt 90, /*goto*/ 0x2e - endloop 0x73 - - label 0x2e - end_level - set_function CHR_SELF, GFUNC_IDLE - - label 0x0f - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1024_setup_lifts: - activate_lift 1, 0x41 - activate_lift 2, 0x42 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1025_lift_door_sounds: - beginloop 0xe4 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, 0x46, /*goto*/ 0x2e - if_chr_activated_object CHR_P1P2, 0x47, /*goto*/ 0x2e - if_chr_activated_object CHR_P1P2, 0x48, /*goto*/ 0x2e - if_chr_activated_object CHR_P1P2, 0x49, /*goto*/ 0x2e - if_chr_activated_object CHR_P1P2, 0x4a, /*goto*/ 0x2e - if_chr_activated_object CHR_P1P2, 0x4b, /*goto*/ 0x2e - if_chr_activated_object CHR_P1P2, 0x4c, /*goto*/ 0x2e - if_chr_activated_object CHR_P1P2, 0x4d, /*goto*/ 0x2e - reloop 0xe4 - - label 0x2e - play_sound 0x81b0, -1 - restart_timer - - beginloop 0x0a - if_timer_gt 120, /*goto*/ 0x08 - endloop 0x0a - - label 0x08 - endloop 0xe4 - - endfunction - -func100e_setup_firingrange_doors: - // Wait until firing range doors opened - beginloop 0xe4 - if_door_state 0x23, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x2e - if_door_state 0x23, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x2e - endloop 0xe4 - - // Unset some flags on them - label 0x2e - unset_object_flag_bank1 0x23, OBJECTFLAG1_20000000 - unset_object_flag_bank1 0x24, OBJECTFLAG1_20000000 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1027_uplink: - beginloop 0x04 - if_object_in_good_condition OBJ_SKEDAR_SHUTTLE, /*goto*/ 0x2f - goto_next 0x0f - - label 0x2f - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_activated_object TARGET_CHR, OBJ_SKEDAR_SHUTTLE, /*goto*/ 0x2e - reloop 0x04 - - // Activated - label 0x08 - if_chr_weapon_equipped TARGET_CHR, WEAPON_DATAUPLINK, /*goto*/ 0x2e - play_sound 0x8116, -1 - message TARGET_CHR, 0x2233 // "You need the Data Uplink." - reloop 0x04 - - // Activated with uplink - label 0x2e - message TARGET_CHR, 0x2234 // "Connection has been made." - restart_timer - - beginloop 0x0a - if_object_in_good_condition OBJ_SKEDAR_SHUTTLE, /*goto*/ 0x2f - goto_next 0x0f - - label 0x2f - if_timer_gt 60, /*goto*/ 0x08 - if_chr_in_room TARGET_CHR, 0x00, 0x0045, /*goto*/ 0x2e - goto_next 0x0b - - label 0x2e - if_chr_weapon_equipped TARGET_CHR, WEAPON_DATAUPLINK, /*goto*/ 0x2e - goto_next 0x0b - - label 0x2e - endloop 0x0a - - // 1 second since uplink - label 0x08 - message TARGET_CHR, 0x2235 // "Bypassing security systems." - restart_timer - assign_sound 0x01bf, CHANNEL_5 - control_sound_from_object CHANNEL_5, OBJ_SKEDAR_SHUTTLE, TRUE - - beginloop 0x13 - if_object_in_good_condition OBJ_SKEDAR_SHUTTLE, /*goto*/ 0x2f - goto_next 0x0f - - label 0x2f - if_timer_gt 400, /*goto*/ 0x08 - if_chr_in_room TARGET_CHR, 0x00, 0x0045, /*goto*/ 0x2e - goto_next 0x0b - - label 0x2e - if_chr_weapon_equipped TARGET_CHR, WEAPON_DATAUPLINK, /*goto*/ 0x2e - goto_next 0x0b - - label 0x2e - endloop 0x13 - - // 7.66 seconds since uplink - label 0x08 - mute_channel CHANNEL_5 - assign_sound 0x01c1, CHANNEL_6 - control_sound_from_object CHANNEL_6, OBJ_SKEDAR_SHUTTLE, TRUE - message TARGET_CHR, 0x2236 // "Virus has been downloaded successfully." - yield - message TARGET_CHR, 0x2237 // "Ship's engines have been activated." - set_stage_flag STAGEFLAG_TRIGGER_SHUTTLE_TAKEOFF - - beginloop 0x14 - if_timer_gt 90, /*goto*/ 0x08 - endloop 0x14 - - label 0x08 - set_function CHR_SELF, GFUNC_IDLE - reloop 0x04 - - // Connection broken - label 0x0b - message TARGET_CHR, 0x2238 // "Connection to ship has been broken." - mute_channel CHANNEL_5 - assign_sound 0x01c0, CHANNEL_6 - control_sound_from_object CHANNEL_6, OBJ_SKEDAR_SHUTTLE, TRUE - restart_timer - - beginloop 0x15 - if_timer_gt 120, /*goto*/ 0x08 - endloop 0x15 - - label 0x08 - mute_channel CHANNEL_6 - endloop 0x04 - - label 0x0f - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1028_shuttle_immunity: - beginloop 0xe4 - if_stage_flag_eq STAGEFLAG_TRIGGER_SHUTTLE_TAKEOFF, TRUE, /*goto*/ 0x08 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0045, /*goto*/ 0x2e - if_chr_in_room CHR_P1P2, 0x00, 0x0046, /*goto*/ 0x2e - if_chr_in_room CHR_P1P2, 0x00, 0x0047, /*goto*/ 0x2e - if_chr_in_room CHR_P1P2, 0x00, 0x004d, /*goto*/ 0x2e - if_chr_in_room CHR_P1P2, 0x00, 0x004e, /*goto*/ 0x2e - if_chr_in_room CHR_P1P2, 0x00, 0x0055, /*goto*/ 0x2e - reloop 0xe4 - - label 0x2e - unset_object_flag_bank0 OBJ_SKEDAR_SHUTTLE, OBJECTFLAG0_INVINCIBLE - endloop 0xe4 - - label 0x08 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1029_setup_rtracker: - yield - set_object_flag_bank2 OBJ_DEVASTATOR, OBJECTFLAG2_RTRACKED_BLUE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func102a_setup_lighting: - yield - set_lighting 0x0045, 0x06, 0x01 - set_lighting 0x0046, 0x06, 0x01 - set_lighting 0x0047, 0x06, 0x01 - set_lighting 0x0048, 0x06, 0x01 - set_lighting 0x0055, 0x06, 0x01 - set_lighting 0x0056, 0x06, 0x01 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func102b_safedoor_immunity: - if_difficulty_lt DIFF_PA, /*goto*/ 0x10 - set_object_flag_bank0 OBJ_SAFEDOOR, OBJECTFLAG0_INVINCIBLE - - beginloop 0x04 - if_objective_complete 2, /*goto*/ 0x2e - reloop 0x04 - - label 0x2e - if_object_in_good_condition OBJ_SAFEDOOR, /*goto*/ 0x2e - set_function CHR_SELF, GFUNC_IDLE - - label 0x2e - if_chr_in_room CHR_JOANNA, 0x00, 0x000c, /*goto*/ 0x2e - goto_next 0x0b - - label 0x2e - if_chr_weapon_equipped CHR_JOANNA, WEAPON_LASER, /*goto*/ 0x0f - - // Jo not in office room or laser not equipped - label 0x0b - if_chr_in_room CHR_VELVET, 0x00, 0x000c, /*goto*/ 0x2e - goto_next 0x0e - - label 0x2e - if_chr_weapon_equipped CHR_VELVET, WEAPON_LASER, /*goto*/ 0x0f - - // No one in office room with laser equipped - label 0x0e - set_object_flag_bank0 OBJ_SAFEDOOR, OBJECTFLAG0_INVINCIBLE - reloop 0x04 - - label 0x0f - unset_object_flag_bank0 OBJ_SAFEDOOR, OBJECTFLAG0_INVINCIBLE - endloop 0x04 - - // A and SA - label 0x10 - set_object_flag_bank0 OBJ_SAFEDOOR, OBJECTFLAG0_INVINCIBLE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func102c_door_flags: - yield - if_chr_death_animation_finished CHR_COUNTEROP, /*goto*/ 0x0f - lock_door 0x23, 0x40 - lock_door 0x24, 0x40 - set_object_flag_bank1 0x23, OBJECTFLAG1_00000004 - set_object_flag_bank1 0x24, OBJECTFLAG1_00000004 - lock_door 0x43, 0x40 - lock_door 0x44, 0x40 - set_object_flag_bank1 0x43, OBJECTFLAG1_00000004 - set_object_flag_bank1 0x44, OBJECTFLAG1_00000004 - lock_door 0x54, 0x40 - set_object_flag_bank1 0x54, OBJECTFLAG1_00000004 - lock_door 0x19, 0x40 - set_object_flag_bank1 0x19, OBJECTFLAG1_00000004 - - beginloop 0xe4 - if_chr_activated_object CHR_JOANNA, 0x23, /*goto*/ 0x0a - if_chr_activated_object CHR_JOANNA, 0x23, /*goto*/ 0x0a - if_chr_activated_object CHR_JOANNA, 0x43, /*goto*/ 0x0b - if_chr_activated_object CHR_JOANNA, 0x44, /*goto*/ 0x0b - if_chr_activated_object CHR_JOANNA, 0x54, /*goto*/ 0x0c - if_chr_activated_object CHR_JOANNA, 0x19, /*goto*/ 0x0d - reloop 0xe4 - - label 0x0a - unlock_door 0x23, 0x40 - unlock_door 0x24, 0x40 - open_door 0x23 - reloop 0xe4 - - label 0x0b - unlock_door 0x43, 0x40 - unlock_door 0x44, 0x40 - open_door 0x43 - reloop 0xe4 - - label 0x0c - unlock_door 0x54, 0x40 - open_door 0x54 - reloop 0xe4 - - label 0x0d - unlock_door 0x19, 0x40 - open_door 0x19 - endloop 0xe4 - - label 0x0f - set_function CHR_SELF, GFUNC_IDLE - endfunction - -unregistered_function2: - beginloop 0x03 - restart_timer - - // Wait 10 seconds - beginloop 0x0a - if_timer_gt 600, /*goto*/ 0x2e - endloop 0x0a - - label 0x2e - animation 0x02c3, -1, -1, 0x0600, 0x34, 4 - endloop 0x03 - - endfunction - -unregistered_function3: - beginloop 0x03 - if_chr_unloaded CHR_TAKER_INFO_F, /*goto*/ 0x11 - if_chr_unloaded CHR_TAKER_INFO_M, /*goto*/ 0x12 - reloop 0x03 - - label 0x11 - damage_chr CHR_TAKER_INFO_F, 18 - reloop 0x03 - - label 0x12 - damage_chr CHR_TAKER_INFO_M, 18 - endloop 0x03 - - endfunction - -func102d_firingrange_taker_invincibility: - beginloop 0x03 - if_chr_death_animation_finished CHR_TAKER_FR1, /*goto*/ 0x2e - if_chr_dying CHR_TAKER_FR1, /*goto*/ 0x2e - if_chr_unloaded CHR_TAKER_FR1, /*goto*/ 0x2e - if_chr_in_room CHR_TAKER_FR1, 0x00, 0x0007, /*goto*/ 0x2e - if_chr_in_room CHR_TAKER_FR1, 0x00, 0x0008, /*goto*/ 0x2e - if_chr_in_room CHR_TAKER_FR1, 0x00, 0x0009, /*goto*/ 0x2e - if_chr_in_room CHR_TAKER_FR1, 0x00, 0x000a, /*goto*/ 0x2e - unset_chr_flag_bank3 CHR_TAKER_FR1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - - label 0x2e - if_chr_death_animation_finished CHR_TAKER_FR2, /*goto*/ 0x2e - if_chr_dying CHR_TAKER_FR2, /*goto*/ 0x2e - if_chr_unloaded CHR_TAKER_FR2, /*goto*/ 0x2e - if_chr_in_room CHR_TAKER_FR2, 0x00, 0x0007, /*goto*/ 0x2e - if_chr_in_room CHR_TAKER_FR2, 0x00, 0x0008, /*goto*/ 0x2e - if_chr_in_room CHR_TAKER_FR2, 0x00, 0x0009, /*goto*/ 0x2e - if_chr_in_room CHR_TAKER_FR2, 0x00, 0x000a, /*goto*/ 0x2e - unset_chr_flag_bank3 CHR_TAKER_FR2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - - label 0x2e - endloop 0x03 - - endfunction - -functions: - register_function func1400_setup_counterop 0x1400 - register_function func1001_objectives_failed_msg 0x1001 - register_function func1002_intro 0x1002 - register_function func1003_hide_blondes_and_skedar 0x1003 - register_function func1004_check_hostages_killed 0x1004 - register_function func1005_check_safeinfo_destroyed 0x1005 - register_function func1007_autogun_switch1 0x1007 - register_function func1008_autogun_switch2 0x1008 - register_function func1009_autogun_switch3 0x1009 - register_function func100b_setup_autoguns 0x100b - register_function func100c_check_carrington_dead 0x100c - register_function func100e_setup_firingrange 0x100e - register_function func100f_check_holo_takers_dead 0x100f - register_function func1010_check_device_takers_dead 0x1010 - register_function func1011_check_info_takers_dead 0x1011 - register_function func1012_info_room 0x1012 - register_function func1013_check_hostages_saved 0x1013 - register_function func1014_carrington_messages 0x1014 - register_function func1015_firingrange_pc 0x1015 - register_function func1016_remove_spawners 0x1016 - register_function func1018_hurt_carrington 0x1018 - register_function func1019_setup_safeinfo 0x1019 - register_function func101b_msg_autodefenses 0x101b - register_function func101c_msg_fosterworkingon 0x101c - register_function func101d_msg_countingonme 0x101d - register_function func101e_msg_wontknow 0x101e - register_function func101f_configure_cisoldiers 0x101f - register_function func1020_trigger_spawning 0x1020 - register_function func1021_setup_jonathan 0x1021 - register_function func1022_skedar_shuttle 0x1022 - register_function func1023_check_skeder_shuttle_destroyed 0x1023 - register_function func1024_setup_lifts 0x1024 - register_function func1025_lift_door_sounds 0x1025 - register_function func100e_setup_firingrange_doors 0x1026 - register_function func1027_uplink 0x1027 - register_function func1028_shuttle_immunity 0x1028 - register_function func1029_setup_rtracker 0x1029 - register_function func102a_setup_lighting 0x102a - register_function func102b_safedoor_immunity 0x102b - register_function func102c_door_flags 0x102c - register_function func102d_firingrange_taker_invincibility 0x102d - register_function func1002_intro 0x0c00 - register_function func0c01_outro 0x0c01 - register_function func1002_intro 0x0417 - register_function func0c01_outro 0x0418 - register_function func0414_firingrange_hostage 0x0414 - register_function func0415_init_hostage_fr1 0x0415 - register_function func0416_init_hostage_fr2 0x0416 - register_function func0401_spawner1 0x0401 - register_function func0404_spawner2 0x0404 - register_function func0407_spawner3 0x0407 - register_function func040a_spawner4 0x040a - register_function func040d_spawner5 0x040d - register_function func0410_spawner6 0x0410 - register_function func0402_clone1 0x0402 - register_function func0403_init_clone1 0x0403 - register_function func0405_clone2 0x0405 - register_function func0406_init_clone2 0x0406 - register_function func0408_clone3 0x0408 - register_function func0409_init_clone3 0x0409 - register_function func040b_clone4 0x040b - register_function func040c_init_clone4 0x040c - register_function func040e_clone5 0x040e - register_function func040f_init_clone5 0x040f - register_function func0411_clone6 0x0411 - register_function func0412_init_clone6 0x0412 - register_function func0413_defend_pad 0x0413 - register_function func0419_init_firingrange_taker 0x0419 - register_function func041a_hostage_holo 0x041a - register_function func041b_init_hostage_holo 0x041b - register_function func041c_init_holoclone1 0x041c - register_function func041d_init_holoclone2 0x041d - register_function func041e_init_holoclone3 0x041e - register_function func041f_holoclone 0x041f - register_function func0420_taker_holo1 0x0420 - register_function func0421_taker_holo2 0x0421 - register_function func0422_taker_holo3 0x0422 - register_function func0423_init_shock 0x0423 - register_function func0425_hostage_thank_and_run 0x0425 - register_function func0426_init_saved_hostage 0x0426 - register_function func0427_drop_devastator 0x0427 - register_function func0428_init_drop_devastator 0x0428 - register_function func0429_skedar4 0x0429 - register_function func042a_init_jonathan 0x042a - register_function func041f_holoclone_onshot 0x0424 - register_function func042b_deviceroom_hostage 0x042b - register_function func042c_init_hostage_device_f 0x042c - register_function func042d_init_hostage_device_m 0x042d - register_function func042e_taker_device_m 0x042e - register_function func042f_init_taker_device_m 0x042f - register_function func0430_taker_device_f 0x0430 - register_function func0431_init_taker_device_f 0x0431 - register_function func0432_taker_attack 0x0432 - register_function func0433_inforoom_hostage 0x0433 - register_function func0434_init_hostage_info_m 0x0434 - register_function func0435_init_hostage_info_f 0x0435 - register_function func0436_taker_info_m 0x0436 - register_function func0437_init_taker_info_m 0x0437 - register_function func0438_taker_info_f 0x0438 - register_function func0439_init_taker_info_f 0x0439 - register_function func043a_unused 0x043a - register_function func043b_init_blonde 0x043b - register_function func043c_init_cisolder 0x043c - register_function func043d_unused 0x043d - register_function func043e_carrington 0x043e - endfunctions - -paths: - register_path path00, 0, 2 - endpaths - -.align 4 diff --git a/asm/setup/setupjun.s b/asm/setup/setupjun.s deleted file mode 100644 index 97aeb6f68..000000000 --- a/asm/setup/setupjun.s +++ /dev/null @@ -1,22 +0,0 @@ -# -# Temple (MP) -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - intro_weapon WEAPON_NONE, -1 - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setuplam.s b/asm/setup/setuplam.s deleted file mode 100644 index d6dd4a62f..000000000 --- a/asm/setup/setuplam.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Stage ID 0x50 -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setuplee.s b/asm/setup/setuplee.s deleted file mode 100644 index 23751dec1..000000000 --- a/asm/setup/setuplee.s +++ /dev/null @@ -1,3771 +0,0 @@ -# -# Attack Ship -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -// Characters -.set CHR_ELVIS, 0x00 -.set CHR_KNIFEABLE_SKEDAR, 0x01 -.set CHR_SUSPENDEDANIM1, 0x0d -.set CHR_SUSPENDEDANIM2, 0x0e -.set CHR_SUSPENDEDANIM3, 0x0f -.set CHR_SUSPENDEDANIM4, 0x10 -.set CHR_BRIDGE1, 0x25 -.set CHR_BRIDGE2, 0x26 -.set CHR_BRIDGE3, 0x2d -.set CHR_MAIAN1, 0x2e -.set CHR_MAIAN2, 0x2f -.set CHR_MAIAN3, 0x30 -.set CHR_BRIDGESPAWNER1, 0x31 -.set CHR_BRIDGESPAWNER2, 0x32 -.set CHR_CASS, 0x33 -.set CHR_INTRO_SKEDAR, 0x34 -.set CHR_SHY_SKEDAR, 0x35 // hides behind the lift at the start - -// Objects -.set OBJ_HANGARDOOR1, 0x00 -.set OBJ_HANGARDOOR2, 0x01 -.set OBJ_HANGARDOOR3, 0x02 -.set OBJ_HANGARDOOR4, 0x03 -.set OBJ_SHIELDCONSOLE1, 0x04 -.set OBJ_SHIELDCONSOLE2, 0x05 -.set OBJ_SHIELDCONSOLE3, 0x06 -.set OBJ_HANGARDOORCONSOLE, 0x09 -.set OBJ_HANGARLIFT_ELVIS, 0x0c -.set OBJ_HANGARLIFT_JO, 0x0e -.set OBJ_AR34, 0x18 -.set OBJ_ENGINE1, 0x19 -.set OBJ_ENGINE2, 0x1a -.set OBJ_PREBRIDGELIFT, 0x22 -.set OBJ_BRIDGELIFT, 0x23 -.set OBJ_HANGAR_SHUTTLE, 0x2c -.set OBJ_MAULER1, 0x43 -.set OBJ_MAULER2, 0x44 -.set OBJ_OUTRO_SHUTTLE, 0x45 -.set OBJ_NECKLACE, 0x4a - -// Stage flags -.set STAGEFLAG_ENTERED_BRIDGELIFT, 0x00000001 -.set STAGEFLAG_SAID_LOOKOUT, 0x00000002 -.set STAGEFLAG_SHIELDS_DISABLED, 0x00000100 -.set STAGEFLAG_HANGAR_DOORS_OPEN, 0x00000200 -.set STAGEFLAG_NAVIGATION_ROOM_DONE, 0x00000400 -.set STAGEFLAG_ELVIS_DEAD, 0x00000800 -.set STAGEFLAG_ENTERED_SLAYER_AREA, 0x00001000 -.set STAGEFLAG_TRIGGER_HANGAR_MAIANS, 0x00002000 -.set STAGEFLAG_HANGAR_ALARM_ACTIVATED, 0x00004000 -.set STAGEFLAG_HANGAR_KILLS_DONE, 0x00008000 -.set STAGEFLAG_ENGINES_DESTROYED, 0x00010000 -.set STAGEFLAG_ENTERED_BRIDGE, 0x00020000 -.set STAGEFLAG_ELVIS_COMING_TO_BRIDGE, 0x00040000 -.set STAGEFLAG_TRIGGER_BRIDGE_SPAWNING, 0x00080000 -.set STAGEFLAG_BRIDGE_CAPTURED, 0x00100000 -.set STAGEFLAG_SAID_GETSHIELDSDOWN, 0x00200000 -.set STAGEFLAG_INTRO_FINISHED, 0x00400000 -.set STAGEFLAG_CASS_AT_PAD, 0x00800000 -.set STAGEFLAG_SHY_SKEDAR_READY, 0x01000000 -.set STAGEFLAG_02000000, 0x02000000 -.set STAGEFLAG_SAID_GO_ON_AHEAD, 0x04000000 -.set STAGEFLAG_HANGAR_DOOR_CONSOLE_DESTROYED, 0x08000000 -.set STAGEFLAG_MET_ELVIS, 0x10000000 -.set STAGEFLAG_AMMO_WASTED, 0x20000000 -.set STAGEFLAG_CASS_SCREAMING, 0x40000000 -.set STAGEFLAG_BRIDGE_DOORS_UNLOCKED, 0x80000000 - -// Functions -.set FUNC_INIT_KNIFEABLE_SKEDAR, 0x0407 -.set FUNC_KNIFEABLE_SKEDAR, 0x0408 -.set FUNC_ELVIS_FOLLOW, 0x0409 -.set FUNC_ELVIS_GO_TO_HANGAR_LIFT, 0x040a -.set FUNC_INIT_CASS, 0x040b -.set FUNC_ELVIS_RUN_FROM_ENGINEROOM, 0x040c -.set FUNC_ELVIS_WAIT_FOR_HANGAR_ENTRY, 0x040d -.set FUNC_ELVIS_GIVE_AR34, 0x040e -.set FUNC_INIT_SKEDAR, 0x040f -.set FUNC_WAKE_SUSPENDEDANIM_SKEDAR, 0x0410 -.set FUNC_HANGARSPAWNER, 0x0412 -.set FUNC_INIT_HANGARCLONE, 0x0413 -.set FUNC_HANGARCLONE, 0x0414 -.set FUNC_INIT_BRIDGECLONE, 0x0416 -.set FUNC_INIT_BRIDGESPAWNER_REVEAL, 0x0417 -.set FUNC_INIT_HANGAR_MAIAN, 0x0418 -.set FUNC_HANGAR_MAIAN, 0x0419 -.set FUNC_BRIDGECLONE, 0x041a -.set FUNC_ELVIS_AT_BRIDGE, 0x041b -.set FUNC_ELVIS_OUTSIDE_PREBRIDGELIFT, 0x041c -.set FUNC_INIT_ELVIS_OUTSIDE_PREBRIDGELIFT, 0x041d -.set FUNC_INIT_BRIDGE1AND2, 0x041e -.set FUNC_CLOAK_AND_REMOVE, 0x041f -.set FUNC_INIT_BRIDGE3, 0x0420 -.set FUNC_BRIDGE_SKEDAR, 0x0421 -.set FUNC_CASS, 0x0422 -.set FUNC_SHY_SKEDAR, 0x0423 -.set FUNC_SHY_SKEDAR_WAIT, 0x0424 -.set FUNC_INIT_SHY_SKEDAR, 0x0425 -.set FUNC_OUTRO, 0x0426 -.set FUNC_SET_CLOAKED, 0x0427 -.set FUNC_SET_UNCLOAKED, 0x0428 - -props: - briefing 0, 0x2601 - briefing 1, 0x2600 - briefing 2, 0x2602 - briefing 3, 0x2603 - - beginobjective 0, 0x2605, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Disable shield system" - complete_flags STAGEFLAG_SHIELDS_DISABLED - fail_flags STAGEFLAG_AMMO_WASTED - endobjective - - beginobjective 1, 0x2606, DIFFBIT_PA | DIFFBIT_PD // "Open hangar doors" - complete_flags STAGEFLAG_HANGAR_DOORS_OPEN - fail_flags STAGEFLAG_HANGAR_DOOR_CONSOLE_DESTROYED - endobjective - - beginobjective 2, 0x2607, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Access navigational systems" - complete_flags STAGEFLAG_NAVIGATION_ROOM_DONE - fail_flags STAGEFLAG_ELVIS_DEAD - endobjective - - beginobjective 3, 0x2608, DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Sabotage engine systems" - complete_flags STAGEFLAG_ENGINES_DESTROYED - endobjective - - beginobjective 4, 0x2609, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Gain control of bridge" - complete_flags STAGEFLAG_BRIDGE_CAPTURED - endobjective - - tag 0x2f, 5 - tag 0x30, 5 - tag 0x25, 2 - tag 0x23, 1 - lift 0x0100, MODEL_SK_LIFT, 0x018c, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x018c, 0x018d, 0xffffffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00008000, 0x000a0000, 0x1f000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x0180, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x0181, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -2, -3, 0, 0 - link_objects -2, -4, 0, 0 - chr 0x00000200, 0x01, 0x01cf, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_KNIFEABLE_SKEDAR, -1, -1, 1000, 8, 0x00000000, 0x00000080, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0001, 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, 0x35, 0x00e8, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SHY_SKEDAR, -1, -1, 1000, 6, 0x00002000, 0x00000080, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0035, 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 0x00000200, 0x05, 0x01cd, BODY_SKEDAR, HEAD_RANDOM, 0x0401, -1, -1, 100, 200, 0x40012000, 0x00000000, 0x02, 0x01, -1, 0, 0x02000400 - weapon 0x0100, MODEL_CHRMAULER, 0x0005, 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 0x00000200, 0x06, 0x01ce, BODY_SKEDAR, HEAD_RANDOM, 0x0402, -1, -1, 100, 200, 0x40012000, 0x00000000, 0x02, 0x01, -1, 0, 0x02000400 - weapon 0x0100, MODEL_CHRMAULER, 0x0006, 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, 0x07, 0x00b1, BODY_SKEDAR, HEAD_RANDOM, FUNC_HANGARSPAWNER, -1, -1, 1000, 200, 0x40012000, 0x00004000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0007, 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, 0x08, 0x00ae, BODY_SKEDAR, HEAD_RANDOM, FUNC_HANGARSPAWNER, -1, -1, 1000, 200, 0x00002000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0008, 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, 0x09, 0x01d0, BODY_SKEDAR, HEAD_RANDOM, FUNC_HANGARSPAWNER, -1, -1, 1000, 200, 0x40002000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0009, 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, 0x0a, 0x010d, BODY_SKEDAR, HEAD_RANDOM, FUNC_HANGARSPAWNER, -1, -1, 1000, 200, 0x00002000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x000a, 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 0x00010000, 0x2e, 0x01d8, BODY_ELVIS1, HEAD_MAIAN_S, FUNC_INIT_HANGAR_MAIAN, 0x00b4, -1, 1000, 200, 0x00002000, 0x40304000, 0x10, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAIANSMG, 0x002e, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CALLISTONTG, 0x00ffffff, 0x00000000 - chr 0x00010000, 0x2f, 0x01d9, BODY_ELVIS1, HEAD_MAIAN_S, FUNC_INIT_HANGAR_MAIAN, 0x00b4, -1, 1000, 200, 0x00002000, 0x40304000, 0x10, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAIANSMG, 0x002f, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CALLISTONTG, 0x00ffffff, 0x00000000 - chr 0x00010100, 0x30, 0x01f5, BODY_ELVIS1, HEAD_MAIAN_S, GFUNC_IDLE, 0x00b4, -1, 1000, 200, 0x00002000, 0x40304000, 0x02, 0x01, -1, 0, 0x00000000 - chr 0x00010400, 0x00, 0x00fe, BODY_ELVISWAISTCOAT, HEAD_ELVIS, FUNC_ELVIS_WAIT_FOR_HANGAR_ENTRY, -1, -1, 1000, 200, 0x00002000, 0x80304000, 0x80, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAIANPISTOL, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PHOENIX, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRMAIANPISTOL, 0x0000, 0x10004000, 0x00000000, 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 - weapon 0x0100, MODEL_CHRPCGUN, 0x001d, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AR34, 0x00ffffff, 0x00000000 - tag 0x18, -1 - chr 0x00000080, 0x02, 0x00d6, BODY_SKEDAR, HEAD_RANDOM, GFUNC_IDLE_0009, -1, -1, 1000, 200, 0x00002000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0002, 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 0x00000080, 0x37, 0x00d0, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40002000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0037, 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 0x00000200, 0x0b, 0x0020, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x000b, 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 0x00000200, 0x0c, 0x001f, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x000c, 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, 0x0d, 0x004b, BODY_SKEDAR, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x80, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x000d, 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, 0x0e, 0x004c, BODY_SKEDAR, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x80, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x000e, 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, 0x0f, 0x004d, BODY_SKEDAR, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x80, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x000f, 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, 0x10, 0x004e, BODY_SKEDAR, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x80, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0010, 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 0x00000200, 0x11, 0x0028, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0011, 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 0x00000200, 0x12, 0x0044, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0012, 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 0x00000200, 0x13, 0x0039, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0013, 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 0x00000200, 0x14, 0x0035, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0014, 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 0x00000200, 0x15, 0x0036, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0015, 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 0x00000200, 0x16, 0x0052, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0016, 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 0x00000200, 0x17, 0x0051, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0017, 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 0x00000200, 0x18, 0x0053, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0018, 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 0x00000200, 0x19, 0x0054, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0019, 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 0x00000200, 0x1a, 0x01db, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x001a, 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 0x00000200, 0x1b, 0x005e, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x001b, 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 0x00000200, 0x1c, 0x0059, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x001c, 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 0x00000200, 0x1d, 0x0056, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x001d, 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 0x00000200, 0x1e, 0x005f, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x001e, 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 0x00000200, 0x1f, 0x0055, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x001f, 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 0x00000200, 0x20, 0x0060, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0020, 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 0x00000200, 0x21, 0x0068, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0021, 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 0x00000200, 0x22, 0x0069, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0022, 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 0x00000200, 0x25, 0x0089, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_BRIDGE1AND2, -1, -1, 1000, 200, 0x50012000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0025, 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 0x00000200, 0x26, 0x0088, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_BRIDGE1AND2, -1, -1, 1000, 200, 0x50012000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0026, 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 0x00004200, 0x2d, 0x00a4, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_BRIDGE3, -1, -1, 1000, 200, 0x50012000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x002d, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAULER, 0x00ffffff, 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 - link_collectibles -1, -2 - tag 0x43, -3 - tag 0x44, -3 - chr 0x00000000, 0x31, 0x0095, BODY_SKEDAR, HEAD_RANDOM, 0x0415, -1, -1, 1000, 200, 0x00002000, 0x00000000, 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 0x00000000, 0x32, 0x0096, BODY_SKEDAR, HEAD_RANDOM, 0x0415, -1, -1, 1000, 200, 0x00002004, 0x00000000, 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, 0x00db, BODY_CASSANDRA, HEAD_CASSANDRA, FUNC_INIT_CASS, -1, -1, 1000, 200, 0x50012000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - chr 0x00004000, 0x34, 0x00e3, BODY_SKEDAR, 0x00, GFUNC_IDLE, -1, -1, 1000, 200, 0x50012000, 0x00000080, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0034, 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 0x00000200, 0x27, 0x0002, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0027, 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 0x00000200, 0x28, 0x0006, BODY_SKEDAR, HEAD_RANDOM, 0x0403, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0028, 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 0x00000200, 0x29, 0x0008, BODY_SKEDAR, HEAD_RANDOM, 0x0406, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0029, 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 0x00000200, 0x2a, 0x0005, BODY_SKEDAR, HEAD_RANDOM, 0x0404, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x002a, 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 0x00000200, 0x2b, 0x000d, BODY_SKEDAR, HEAD_RANDOM, 0x0405, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x002b, 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 0x00000200, 0x2c, 0x006b, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x0f, -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 - tag 0x4a, 1 - key 0x0100, MODEL_CHRCHAIN, 0x0033, 0x01244000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000008 - rename_object -1, 0x50, 0x2632, 0x2633, 0x2634, 0x2635, 0x2636, 0x0000, 0x0000 // "Obtain De Vries' necklace." - tag 0x3f, 2 - tag 0x40, 2 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x016a, 0x10000400, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00320000, 0x0001aaaa, 0x00008000, 0x00000000, 0x00000080, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x016b, 0x10000400, 0x30000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00320000, 0x0001aaaa, 0x00008000, 0x00000000, 0x00000080, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x016c, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x016d, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x016e, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x016f, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x0174, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x0175, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x0176, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x0177, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x41, 2 - tag 0x42, 2 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x0178, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x0179, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x017a, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x017b, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x017c, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x017d, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x0189, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000040, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x0188, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000040, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x0186, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000040, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x0187, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000040, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x48, 2 - tag 0x49, 2 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x0185, 0x10000400, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000040, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x0184, 0x10000400, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000040, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x46, 2 - tag 0x47, 2 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x018a, 0x10000400, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000040, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x018b, 0x10000400, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000040, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x0114, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x0115, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x0116, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x0117, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x0118, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x0119, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x011a, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x011b, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x011c, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x011d, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x011e, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x011f, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x0120, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x0121, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x0122, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x0123, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x0124, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x0125, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x0126, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x0127, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x0128, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x0129, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x012a, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x012b, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x012c, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x012d, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x012e, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x012f, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_HULLDOOR1, 0x0134, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00780000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x0000000a, 0x00000000, 0x0000ea60, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_HULLDOOR2, 0x0135, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00780000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x0000000a, 0x00000000, 0x0000ea60, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_HULLDOOR3, 0x0136, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000bd1f, 0x0000bd1f, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_HULLDOOR4, 0x0137, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000bd1f, 0x0000bd1f, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffd, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_HULLDOOR1, 0x0138, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00780000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x0000000a, 0x00000000, 0x0000ea60, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_HULLDOOR2, 0x0139, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00780000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x0000000a, 0x00000000, 0x0000ea60, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_HULLDOOR3, 0x013a, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000bd1f, 0x0000bd1f, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_HULLDOOR4, 0x013b, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000bd1f, 0x0000bd1f, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffd, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_HULLDOOR1, 0x013c, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00780000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x0000000a, 0x00000000, 0x0000ea60, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_HULLDOOR2, 0x013d, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00780000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x0000000a, 0x00000000, 0x0000ea60, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_HULLDOOR3, 0x013e, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000bd1f, 0x0000bd1f, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_HULLDOOR4, 0x013f, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000bd1f, 0x0000bd1f, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffd, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x0f, 2 - tag 0x10, 2 - door 0x0100, MODEL_SK_CRYOPOD1_BOT, 0x0144, 0x00000400, 0x20000000, 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, 0x00000002, 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, 0x0145, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x11, 2 - tag 0x12, 2 - door 0x0100, MODEL_SK_CRYOPOD1_TOP, 0x0146, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_CRYOPOD1_BOT, 0x0147, 0x00000400, 0x20000000, 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, 0x00000002, 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 0x13, 2 - tag 0x14, 2 - door 0x0100, MODEL_SK_CRYOPOD1_BOT, 0x0148, 0x00000400, 0x20000000, 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, 0x00000002, 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, 0x0149, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x15, 2 - tag 0x16, 2 - door 0x0100, MODEL_SK_CRYOPOD1_TOP, 0x014a, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_CRYOPOD1_BOT, 0x014b, 0x00000400, 0x20000000, 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, 0x00000002, 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_HANGARDOOR_BOT, 0x014d, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x00000444, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001e00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_HANGARDOOR_TOP, 0x014c, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x00000444, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_HANGARDOOR_BOT, 0x014e, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x00000444, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001e00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_HANGARDOOR_TOP, 0x014f, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x00000444, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_HANGARDOOR_BOT, 0x0150, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x00000444, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001e00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_HANGARDOOR_TOP, 0x0151, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x00000444, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_HANGARDOOR_BOT, 0x0152, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x00000444, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001e00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_HANGARDOOR_TOP, 0x0153, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x00000444, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x24, 1 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x0154, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x0155, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x17, 1 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x0156, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000003c0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x0157, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000003c0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x0158, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000004, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x0159, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000004, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x015a, 0x10000400, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000004, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x015b, 0x10000400, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000004, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x31, 6 - tag 0x32, 6 - tag 0x33, 8 - tag 0x34, 8 - tag 0x2a, 1 - lift 0x0100, MODEL_SK_LIFT, 0x0194, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0194, 0x0195, 0xffffffff, 0x00000001, 0x00000005, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00030000, 0x00050000, 0x1f000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x015c, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00320000, 0x0001aaaa, 0x00008000, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR1, 0x015d, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00320000, 0x0001aaaa, 0x00008000, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -2, -3, 0, 0 - link_objects -2, -4, 0, 0 - door 0x0100, MODEL_SK_HANGARDOOR_BOT, 0x015e, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x000a0000, 0x000a0000, 0x00008000, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_HANGARDOOR_TOP, 0x015f, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x000a0000, 0x000a0000, 0x00008000, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -2, -7, 0, 1 - link_objects -2, -8, 0, 1 - tag 0x35, 6 - tag 0x36, 6 - tag 0x37, 8 - tag 0x38, 8 - tag 0x2b, 1 - lift 0x0100, MODEL_SK_LIFT, 0x0196, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0196, 0x0197, 0xffffffff, 0x00000001, 0x00000005, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00030000, 0x00050000, 0x1f000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x0160, 0x10000400, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x000a0000, 0x00005555, 0x00001999, 0x00000000, 0x00000080, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x0161, 0x10000400, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x000a0000, 0x00005555, 0x00001999, 0x00000000, 0x00000080, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -2, -3, 0, 0 - link_objects -2, -4, 0, 0 - door 0x0100, MODEL_SK_HANGARDOOR_BOT, 0x0162, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x000a0000, 0x000a0000, 0x00008000, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_HANGARDOOR_TOP, 0x0163, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x000a0000, 0x000a0000, 0x00008000, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -2, -7, 0, 1 - link_objects -2, -8, 0, 1 - tag 0x39, 5 - tag 0x3a, 5 - tag 0x29, 2 - tag 0x0e, 1 - lift 0x0100, MODEL_SK_LIFT, 0x0193, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0193, 0x0192, 0xffffffff, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00008000, 0x00050000, 0x1f000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_HANGARDOORB_BOT, 0x0166, 0x12000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x000a0000, 0x000a0000, 0x00008000, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_HANGARDOORB_TOP, 0x0167, 0x12000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x000a0000, 0x000a0000, 0x00008000, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -2, -3, 0, 1 - link_objects -2, -4, 0, 1 - tag 0x3b, 5 - tag 0x3c, 5 - tag 0x28, 2 - tag 0x0c, 1 - lift 0x0100, MODEL_SK_LIFT, 0x0190, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0190, 0x0191, 0xffffffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00008000, 0x00050000, 0x1f000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_HANGARDOORB_BOT, 0x0164, 0x12000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x000a0000, 0x000a0000, 0x00008000, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_HANGARDOORB_TOP, 0x0165, 0x12000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x000a0000, 0x000a0000, 0x00008000, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -2, -3, 0, 0 - link_objects -2, -4, 0, 0 - tag 0x3d, 5 - tag 0x3e, 5 - tag 0x26, 2 - tag 0x22, 1 - lift 0x0100, MODEL_SK_LIFT, 0x018e, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x018e, 0x018f, 0xffffffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00004000, 0x00028000, 0x1f000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x0182, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_DOOR2, 0x0183, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -2, -3, 0, 0 - link_objects -2, -4, 0, 0 - vent_fan 0x0100, MODEL_SK_SHIP_HOLO1, 0x0110, 0x000204e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000222, 0x00000000, 0x00000002, 0x01000000 - vent_fan 0x0100, MODEL_SK_SHIP_HOLO2, 0x0112, 0x000204e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000222, 0x00000000, 0x00000002, 0x01000000 - vent_fan 0x0100, MODEL_SK_SHIP_HOLO2, 0x0113, 0x000204e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000222, 0x00000000, 0x00000002, 0x01000000 - tag 0x00, 4 - tag 0x01, 4 - tag 0x02, 4 - tag 0x03, 4 - door 0x0100, MODEL_SK_SHIP_HULLDOOR1, 0x0140, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00780000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x0000000a, 0x00000000, 0x0000ea60, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_HULLDOOR2, 0x0141, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00780000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x0000000a, 0x00000000, 0x0000ea60, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_HULLDOOR3, 0x0142, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x0000bd1f, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_SK_SHIP_HULLDOOR4, 0x0143, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x0000bd1f, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffd, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x09, 1 - multimonitor 0x00cc, MODEL_SK_CONSOLE2, 0x01f1, 0x00000101, 0x00000001, 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, 0x15141400 - multimonitor 0x00cc, MODEL_SK_CONSOLE2, 0x01f2, 0x00000101, 0x00000001, 0x00000000, 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, 0x15141400 - weapon 0x0100, MODEL_CHRSKROCKET, 0x01d2, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SLAYER, 0x00ffffff, 0x00000000 - tag 0x04, 3 - tag 0x05, 3 - tag 0x06, 3 - multimonitor 0x00cc, MODEL_SK_CONSOLE2, 0x01f0, 0x00000101, 0x00000001, 0x00000000, 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, 0x15141400 - multimonitor 0x00cc, MODEL_SK_CONSOLE2, 0x01ef, 0x00000101, 0x00000001, 0x00000000, 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, 0x15141400 - multimonitor 0x00cc, MODEL_SK_CONSOLE2, 0x01ee, 0x00000101, 0x00000001, 0x00000000, 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, 0x15141400 - tinted_glass 0x0100, MODEL_SK_WINDOW1, 0x01ca, 0x14020f62, 0x00304100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00c801f4, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_SK_WINDOW1, 0x01cb, 0x14020f62, 0x00304100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00c801f4, 0x0000ffff, 0x00000000 - tag 0x19, 2 - tag 0x1a, 2 - object 0x0100, MODEL_ENGINEPART, 0x01ea, 0x000001e8, 0x00202000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_ENGINEPART, 0x01e9, 0x000001e8, 0x00202000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x1b, 6 - tag 0x1c, 6 - tag 0x1d, 6 - tag 0x1e, 6 - tag 0x1f, 6 - tag 0x20, 6 - glass 0x0100, MODEL_DD_WINDOW, 0x019d, 0x14020f62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000bb8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x019e, 0x14020f62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000bb8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x019f, 0x14020f62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000bb8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01a0, 0x14020f62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000bb8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01a1, 0x14020f62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000bb8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x01a2, 0x14020f62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000bb8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x21, 1 - object 0x0002, MODEL_SK_SHUTTLE, 0x01dc, 0x012604e1, 0x80086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x2c, 1 - object 0x0100, MODEL_SK_SHUTTLE, 0xffff, 0x00021501, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x45, 1 - object 0x0100, MODEL_SK_SHUTTLE, 0xffff, 0x00021501, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x2d, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x01f3, 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 0x2e, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x0030, 0x00004001, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000 - endprops - -intro: - intro_weapon WEAPON_COMBATKNIFE, -1 - ammo AMMOTYPE_KNIFE, 1 - ammo AMMOTYPE_ROCKET, 2 - ammo AMMOTYPE_RIFLE, 400 - ammo AMMOTYPE_PISTOL, 10 - outfit OUTFIT_FROCK_RIPPED - spawn 0x00d9 - endintro - -path00: - pad 0x01d5 - pad 0x01d4 - endpath - -path01: - pad 0x01d7 - pad 0x01d6 - endpath - -path02: - pad 0x0006 - pad 0x0000 - endpath - -path03: - pad 0x0005 - pad 0x000d - endpath - -path04: - pad 0x01de - pad 0x000c - endpath - -path05: - pad 0x0008 - pad 0x005c - endpath - -func1001_objectives_failed_msg: - yield - set_function CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG - endfunction - -func1400_setup_counterop: - set_object_flag_bank0 OBJ_HANGARLIFT_ELVIS, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 OBJ_HANGARLIFT_JO, OBJECTFLAG0_DEACTIVATED - yield - set_chr_alliance CHR_COUNTEROP, ALLIANCE_ENEMY - set_function CHR_SELF, GFUNC_REBUILD_GROUPS - endfunction - -func1019_check_shields_lowered: - beginloop 0x04 - if_object_in_good_condition OBJ_SHIELDCONSOLE1, /*goto*/ 0x06 - if_object_in_good_condition OBJ_SHIELDCONSOLE2, /*goto*/ 0x06 - if_object_in_good_condition OBJ_SHIELDCONSOLE3, /*goto*/ 0x06 - message CHR_JOANNA, 0x260a // "Ship's shields have been lowered." - set_stage_flag STAGEFLAG_SHIELDS_DISABLED - if_difficulty_lt DIFF_PA, /*goto*/ 0x09 - restart_timer - - beginloop 0x08 - if_chr_in_room CHR_JOANNA, 0x00, 0x0002, /*goto*/ 0x2c - endloop 0x08 - - label 0x2c - speak CHR_JOANNA, 0x2611, 0x81a1, CHANNEL_6, COLOR_04_ORANGE // "You've got to open the hangar doors so we can dock..." - set_function CHR_SELF, GFUNC_IDLE - - label 0x06 - endloop 0x04 - - label 0x09 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1004_check_hangar_doors_opened: - yield - set_object_flag_bank0 OBJ_HANGARDOOR1, OBJECTFLAG0_02000000 - set_object_flag_bank0 OBJ_HANGARDOOR2, OBJECTFLAG0_02000000 - set_object_flag_bank0 OBJ_HANGARDOOR3, OBJECTFLAG0_02000000 - set_object_flag_bank0 OBJ_HANGARDOOR4, OBJECTFLAG0_02000000 - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_difficulty_lt DIFF_PA, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, OBJ_HANGARDOORCONSOLE, /*goto*/ 0x06 - if_object_in_good_condition OBJ_HANGARDOORCONSOLE, /*goto*/ 0x2d - - // Console destroyed - message CHR_JOANNA, 0x2630 // "Critical mission object destroyed." - set_stage_flag STAGEFLAG_HANGAR_DOOR_CONSOLE_DESTROYED - set_function CHR_SELF, GFUNC_IDLE - - // Console healthy - label 0x2d - reloop 0x04 - - // A and SA - label 0x2c - if_stage_flag_eq STAGEFLAG_SHIELDS_DISABLED, TRUE, /*goto*/ 0x03 - reloop 0x04 - - // Console activated - label 0x06 - if_stage_flag_eq STAGEFLAG_SHIELDS_DISABLED, TRUE, /*goto*/ 0x2c - message CHR_JOANNA, 0x262f // "Hangar doors locked - shields still active." - restart_timer - - beginloop 0x65 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x65 - - label 0x06 - endloop 0x04 - - // PA - console activated after shields disabled - label 0x2c - message CHR_P1P2, 0x260b // "Hangar doors have been opened." - set_stage_flag STAGEFLAG_HANGAR_DOORS_OPEN - - // A and SA once shields disabled, or follow through from above - label 0x03 - open_door OBJ_HANGARDOOR1 - open_door OBJ_HANGARDOOR2 - open_door OBJ_HANGARDOOR3 - open_door OBJ_HANGARDOOR4 - set_object_flag_bank0 OBJ_HANGARDOOR1, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_HANGARDOOR2, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_HANGARDOOR3, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_HANGARDOOR4, OBJECTFLAG0_40000000 - restart_timer - - beginloop 0x09 - if_timer_gt 600, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - restart_timer - - beginloop 0x0a - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x0a - - label 0x06 - set_stage_flag STAGEFLAG_TRIGGER_HANGAR_MAIANS - - label 0x08 - yield - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040d_elvis_wait_for_hangar_entry: - set_self_flag_bank3 CHRFLAG3_00040000 - set_accuracy 100 - set_reaction_speed 100 - set_armor 200 - set_alertness 100 - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_00080000 - set_self_flag_bank3 CHRFLAG3_NOAUTOAIM - - beginloop 0x04 - if_difficulty_lt DIFF_PA, /*goto*/ 0x2c - if_stage_flag_eq STAGEFLAG_HANGAR_DOORS_OPEN, TRUE, /*goto*/ 0x06 - reloop 0x04 - - label 0x2c - if_stage_flag_eq STAGEFLAG_SHIELDS_DISABLED, TRUE, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - - beginloop 0x65 - set_target_chr CHR_JOANNA - if_chr_sees_player /*goto*/ 0x2c - set_target_chr CHR_VELVET - if_chr_sees_player /*goto*/ 0x2c - set_target_chr CHR_COUNTEROP - if_chr_sees_player /*goto*/ 0x2c - goto_next 0x06 - - label 0x2c - endloop 0x65 - - label 0x06 - unset_self_flag_bank3 CHRFLAG3_HIDDEN - unset_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - yield - yield - yield - yield - set_function CHR_SELF, FUNC_ELVIS_GIVE_AR34 - endfunction - -func040e_elvis_give_ar34: - set_onshot_function FUNC_ELVIS_GIVE_AR34 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2c - if_chr_dying CHR_SELF, /*goto*/ 0x2c - if_chr_unloaded CHR_SELF, /*goto*/ 0x2c - goto_next 0x06 - - label 0x2c - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - label 0x06 - stop_chr - - // Wait until player in sight - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - set_follow_chr CHR_P1P2 - if_chr_sees_player /*goto*/ 0x2c - endloop 0x04 - - label 0x2c - - beginloop 0x08 - if_chr_sees_player /*goto*/ 0x2c - endloop 0x08 - - // Run towards player - label 0x0a - restart_timer - try_run_to_target_chr /*goto*/ 0x09 - - beginloop 0x09 - set_target_chr FOLLOW_CHR - if_timer_gt 60, /*goto*/ 0x2c - if_chr_distance_lt 200, /*goto*/ 0x06 - reloop 0x09 - - label 0x06 - if_chr_sees_player /*goto*/ 0x06 - endloop 0x09 - - label 0x2c - goto_first 0x0a - - // Talk - label 0x06 - set_chr_alliance CHR_SELF, ALLIANCE_ALLY - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_stage_flag STAGEFLAG_MET_ELVIS - speak CHR_P1P2, 0x2613, 0x12e1, CHANNEL_6, COLOR_04_ORANGE // "Good to see you, Joanna." - animation ANIM_TALKING_0231, 0, -1, 0x1010, CHR_SELF, 2 - - beginloop 0x0c - if_timer_gt 180, /*goto*/ 0x06 - endloop 0x0c - - label 0x06 - speak CHR_P1P2, 0x2614, 0x12e2, CHANNEL_6, COLOR_04_ORANGE // "Take this - you should find it useful..." - give_object_to_chr OBJ_AR34, FOLLOW_CHR - message FOLLOW_CHR, 0x2615 // "Received AR34 assault rifle." - restart_timer - - beginloop 0x0d - if_timer_gt 180, /*goto*/ 0x06 - endloop 0x0d - - label 0x06 - set_stage_flag STAGEFLAG_HANGAR_ALARM_ACTIVATED - activate_alarm - restart_timer - - beginloop 0x0e - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x0e - - label 0x06 - label 0x0f - yield - set_function CHR_SELF, FUNC_ELVIS_FOLLOW - endfunction - -/** - * Follow player. - * If entered nav room, do that objective. - * If arrived at prebridge lift, assign another function. - */ -func0409_elvis_follow: - set_self_flag_bank3 CHRFLAG3_00000040 - set_onshot_function FUNC_ELVIS_FOLLOW - set_return_function CHR_SELF, FUNC_ELVIS_FOLLOW - if_chr_dying CHR_SELF, /*goto*/ 0x2c - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2c - if_chr_unloaded CHR_SELF, /*goto*/ 0x2c - goto_next 0x06 - - // Dying - label 0x2c - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x06 - if_just_injured CHR_SELF, /*goto*/ 0x2c - goto_next 0x06 - - // Injured - label 0x2c - restart_timer - say_quip CHR_JOANNA, 0x29, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00 - dprint "INJURED\n" - - beginloop 0xc1 - if_timer_gt 180, /*goto*/ 0x06 - if_chr_stopped /*goto*/ 0x06 - endloop 0xc1 - - // Healthy - label 0x06 - dprint "INJUREDFIN\n" - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08 - set_target_chr FOLLOW_CHR - if_chr_distance_lt 200, /*goto*/ 0x06 - - label 0x03 - set_target_chr FOLLOW_CHR - restart_timer - if_chr_distance_gt 500, /*goto*/ 0x06 - try_run_to_target_chr_with_hand_up /*goto*/ 0x04 - - // Distance < 200 or distance > 500 - label 0x06 - try_run_to_target_chr /*goto*/ 0x04 - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_NAVIGATION_ROOM_DONE, TRUE, /*goto*/ 0x2c - if_chr_in_room CHR_ELVIS, 0x00, 0x003e, /*goto*/ 0xb5 - label 0x2c - if_stage_flag_eq STAGEFLAG_SAID_GO_ON_AHEAD, TRUE, /*goto*/ 0x2c - if_chr_in_room CHR_ELVIS, 0x00, 0x006c, /*goto*/ 0xc4 - label 0x2c - dprint "GO TO PAD\n" - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08 - set_target_chr FOLLOW_CHR - if_chr_distance_lt 200, /*goto*/ 0x06 - if_timer_gt 60, /*goto*/ 0x2c - endloop 0x04 - - // Running for 1 second - do distance checks again - label 0x2c - goto_first 0x03 - - // At player - label 0x06 - stop_chr - - beginloop 0x09 - if_stage_flag_eq STAGEFLAG_NAVIGATION_ROOM_DONE, TRUE, /*goto*/ 0x2c - if_chr_in_room CHR_ELVIS, 0x00, 0x003e, /*goto*/ 0xb5 - label 0x2c - if_stage_flag_eq STAGEFLAG_SAID_GO_ON_AHEAD, TRUE, /*goto*/ 0x2c - if_chr_in_room CHR_ELVIS, 0x00, 0x006c, /*goto*/ 0xc4 - label 0x2c - dprint "AT PAD\n" - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08 - set_target_chr FOLLOW_CHR - if_chr_distance_gt 300, /*goto*/ 0x06 - endloop 0x09 - - // Player moved away - do distance checks and start following - label 0x06 - goto_first 0x03 - - // Enemy detected - label 0x08 - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x2c - if_chr_dying TARGET_CHR, /*goto*/ 0x2c - if_chr_unloaded TARGET_CHR, /*goto*/ 0x2c - if_target_chrs_field_0x17e_is_different /*goto*/ 0x06 - label 0x2c - goto_first 0x03 - - label 0x06 - dprint "DETECTED\n" - call_rng - if_rand_lt 85, /*goto*/ 0x65 - if_rand_lt 170, /*goto*/ 0x66 - say_quip CHR_JOANNA, 0x26, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00 - goto_next 0x2c - label 0x65 - say_quip CHR_JOANNA, 0x27, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00 - goto_next 0x2c - label 0x66 - say_quip CHR_JOANNA, 0x28, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00 - label 0x2c - set_return_function CHR_SELF, FUNC_ELVIS_FOLLOW - set_onshot_function FUNC_ELVIS_FOLLOW - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - - // Elvis in nav room - label 0xb5 - jog_to_pad 0x0034 - - beginloop 0x0f - if_chr_stopped /*goto*/ 0x2c - endloop 0x0f - - label 0x2c - restart_timer - animation ANIM_OPERATE_0221, 0, -1, 0x0010, CHR_SELF, 2 - - beginloop 0x10 - if_timer_gt 180, /*goto*/ 0x06 - endloop 0x10 - - label 0x06 - do_special_animation -1 - message CHR_JOANNA, 0x260d // "Navigational information has been retrieved." - speak FOLLOW_CHR, 0x261f, 0x12e4, CHANNEL_6, COLOR_04_ORANGE // "Time to head upwards..." - restart_timer - set_stage_flag STAGEFLAG_NAVIGATION_ROOM_DONE - - beginloop 0x79 - if_timer_gt 90, /*goto*/ 0x06 - endloop 0x79 - - label 0x06 - mute_channel CHANNEL_6 - goto_first 0x03 - - // Elvis outside prebridgelift - label 0xc4 - set_function CHR_SELF, FUNC_INIT_ELVIS_OUTSIDE_PREBRIDGELIFT - endfunction - -func041d_init_elvis_outside_prebridgelift: - set_onshot_function FUNC_ELVIS_OUTSIDE_PREBRIDGELIFT - set_armor 600 - set_function CHR_SELF, FUNC_ELVIS_OUTSIDE_PREBRIDGELIFT - endfunction - -func041c_elvis_outside_prebridgelift: - set_onshot_function FUNC_ELVIS_OUTSIDE_PREBRIDGELIFT - if_chr_dying CHR_SELF, /*goto*/ 0x2c - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2c - if_chr_unloaded CHR_SELF, /*goto*/ 0x2c - goto_next 0x06 - - // Dying - label 0x2c - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x06 - stop_chr - set_target_chr FOLLOW_CHR - set_stage_flag STAGEFLAG_SAID_GO_ON_AHEAD - if_stage_flag_eq STAGEFLAG_ENTERED_BRIDGELIFT, TRUE, /*goto*/ 0x2c - speak FOLLOW_CHR, 0x261a, 0x14dc, CHANNEL_6, COLOR_04_ORANGE // "You go on ahead, Jo. I'll secure the perimeter. We..." - label 0x2c - run_to_pad 0x0063 - - beginloop 0x09 - if_chr_stopped /*goto*/ 0x0b - endloop 0x09 - - label 0x0b - stop_chr - - beginloop 0x0c - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08 - endloop 0x0c - - label 0x08 - dprint "DETECTED\n" - set_onshot_function FUNC_ELVIS_OUTSIDE_PREBRIDGELIFT - set_return_function CHR_SELF, FUNC_ELVIS_OUTSIDE_PREBRIDGELIFT - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - endfunction - -func040a_elvis_go_to_hangar_lift: - set_onshot_function FUNC_ELVIS_GO_TO_HANGAR_LIFT - if_chr_dying CHR_SELF, /*goto*/ 0x2c - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2c - if_chr_unloaded CHR_SELF, /*goto*/ 0x2c - goto_next 0x06 - - // Dying - label 0x2c - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x06 - - label 0x03 - set_target_chr CHR_JOANNA - restart_timer - if_var_a_lt 50, /*goto*/ 0x06 - goto_next 0xc3 - - label 0x06 - try_run_to_target_chr /*goto*/ 0x04 - - beginloop 0x04 - if_timer_gt 60, /*goto*/ 0x2c - if_chr_distance_lt 200, /*goto*/ 0x06 - endloop 0x04 - - label 0x2c - goto_first 0x03 - - // At player - label 0x06 - speak CHR_JOANNA, 0x2616, 0x12e4, CHANNEL_6, COLOR_04_ORANGE // "Time to head upwards. I'll take this lift; you tak..." - animation ANIM_TALKING_0231, 0, -1, 0x1010, CHR_SELF, 2 - set_var_a 50 - - beginloop 0x0c - if_timer_gt 180, /*goto*/ 0xc3 - endloop 0x0c - - // Done talk - label 0xc3 - restart_timer - run_to_pad 0x00b2 - - beginloop 0x0d - if_chr_stopped /*goto*/ 0x06 - endloop 0x0d - - label 0x06 - stop_chr - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func041b_elvis_at_bridge: - stop_chr - set_onshot_function FUNC_ELVIS_AT_BRIDGE - if_chr_dying CHR_SELF, /*goto*/ 0x2c - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2c - if_chr_unloaded CHR_SELF, /*goto*/ 0x2c - goto_next 0x06 - - // Dying - label 0x2c - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x06 - label 0x06 - if_var_a_lt 100, /*goto*/ 0x06 - goto_next 0x2c - - label 0x06 - set_var_a 100 - label 0x2c - - beginloop 0x65 - if_sound_finished CHANNEL_6, /*goto*/ 0x2c - endloop 0x65 - - label 0x2c - run_to_pad 0x008a - restart_timer - - beginloop 0x09 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08 - if_chr_stopped /*goto*/ 0x0b - if_stage_flag_eq STAGEFLAG_SAID_LOOKOUT, TRUE, /*goto*/ 0x06 - if_timer_gt 180, /*goto*/ 0x2c - label 0x06 - reloop 0x09 - - label 0x2c - speak TARGET_CHR, 0x2618, 0x12e3, CHANNEL_6, COLOR_04_ORANGE // "Look out, Joanna! I think we've made them angry..." - set_stage_flag STAGEFLAG_SAID_LOOKOUT - endloop 0x09 - - // Reached pad - label 0x0b - stop_chr - - beginloop 0x0c - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08 - endloop 0x0c - - label 0x08 - dprint "DETECTED\n" - set_onshot_function FUNC_ELVIS_AT_BRIDGE - set_return_function CHR_SELF, FUNC_ELVIS_AT_BRIDGE - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - endfunction - -func1005_check_elvis_dead: - beginloop 0x04 - if_chr_dying CHR_ELVIS, /*goto*/ 0x2c - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0x2c - if_chr_unloaded CHR_ELVIS, /*goto*/ 0x2c - endloop 0x04 - - label 0x2c - message CHR_JOANNA, 0x260c // "Elvis has been killed." - set_stage_flag STAGEFLAG_ELVIS_DEAD - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040f_init_skedar: - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x0d - if_chr_dying CHR_SELF, /*goto*/ 0x0d - if_chr_unloaded CHR_SELF, /*goto*/ 0x0d - - // Alive - set_accuracy 20 - set_reaction_speed 75 - set_chr_health CHR_SELF, 10 - set_armor 190 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, GFUNC_RELATED_TO_SPAWNING - - // Dying or dead - label 0x0d - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0410_wake_suspendedanim_skedar: - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2c - if_chr_dying CHR_SELF, /*goto*/ 0x2c - if_chr_unloaded CHR_SELF, /*goto*/ 0x2c - goto_next 0x06 - - label 0x2c - set_function CHR_SELF, GFUNC_IDLE - - label 0x06 - set_accuracy 20 - set_reaction_speed 75 - set_chr_health CHR_SELF, 10 - set_armor 190 - set_recovery_speed 0 - set_shield 0 - set_target_chr CHR_JOANNA - try_walk_to_target_chr /*goto*/ 0x2c - - label 0x2c - set_onshot_function GFUNC_RELATED_TO_SPAWNING - set_function CHR_SELF, GFUNC_RELATED_TO_SPAWNING - endfunction - -func1006_wake_slayer_skedar: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0033, /*goto*/ 0x2c - endloop 0x04 - - label 0x2c - restart_timer - - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x08 - - // 1 - label 0x06 - unlock_door 0x0f, 0x02 - unlock_door 0x10, 0x02 - open_door 0x0f - set_chr_alliance CHR_SUSPENDEDANIM1, ALLIANCE_ENEMY - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SUSPENDEDANIM1, FUNC_WAKE_SUSPENDEDANIM_SKEDAR - restart_timer - - beginloop 0x09 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x09 - - // 2 - label 0x06 - unlock_door 0x13, 0x02 - unlock_door 0x14, 0x02 - open_door 0x13 - - if_chr_death_animation_finished CHR_SUSPENDEDANIM3, /*goto*/ 0x2c - if_chr_dying CHR_SUSPENDEDANIM3, /*goto*/ 0x2c - if_chr_unloaded CHR_SUSPENDEDANIM3, /*goto*/ 0x2c - set_function CHR_SUSPENDEDANIM3, FUNC_WAKE_SUSPENDEDANIM_SKEDAR - - set_chr_alliance CHR_SUSPENDEDANIM3, ALLIANCE_ENEMY - cmd0145_rebuild_groups - cmd0146_rebuild_groups - - // Wait until player coming back from Slayer area - label 0x2c - - beginloop 0x0a - consider_coop_for_p1p2_chr CHR_SELF - if_stage_flag_eq STAGEFLAG_ENTERED_SLAYER_AREA, TRUE, /*goto*/ 0x2c - reloop 0x0a - - label 0x2c - if_chr_in_room CHR_P1P2, 0x00, 0x0033, /*goto*/ 0x2c - endloop 0x0a - - // 3 - label 0x2c - unlock_door 0x11, 0x02 - unlock_door 0x12, 0x02 - unlock_door 0x15, 0x02 - unlock_door 0x16, 0x02 - open_door 0x11 - open_door 0x15 - set_function CHR_SUSPENDEDANIM2, FUNC_WAKE_SUSPENDEDANIM_SKEDAR - set_chr_alliance CHR_SUSPENDEDANIM2, ALLIANCE_ENEMY - cmd0145_rebuild_groups - cmd0146_rebuild_groups - - // 4 - set_function CHR_SUSPENDEDANIM4, FUNC_WAKE_SUSPENDEDANIM_SKEDAR - set_chr_alliance CHR_SUSPENDEDANIM4, ALLIANCE_ENEMY - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1007_check_entered_slayer_area: - beginloop 0x08 - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x2c - if_chr_in_room CHR_JOANNA, 0x00, 0x003a, /*goto*/ 0x2c - if_chr_in_room CHR_JOANNA, 0x00, 0x003b, /*goto*/ 0x2c - reloop 0x08 - - label 0x2c - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2d - if_chr_in_room CHR_VELVET, 0x00, 0x003a, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x003b, /*goto*/ 0x06 - endloop 0x08 - - label 0x2d - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x0d - label 0x06 - set_stage_flag STAGEFLAG_ENTERED_SLAYER_AREA - label 0x0d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1008_hangar_lifts: - set_object_flag_bank0 OBJ_HANGARLIFT_ELVIS, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 OBJ_HANGARLIFT_JO, OBJECTFLAG0_DEACTIVATED - - // Wait until kills done - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_HANGAR_KILLS_DONE, TRUE, /*goto*/ 0x2c - endloop 0x08 - - // Activate Jo's lift so it starts going to bottom - label 0x2c - dprint "UN\n" - unset_object_flag_bank0 OBJ_HANGARLIFT_JO, OBJECTFLAG0_DEACTIVATED - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - - // Wait until lift stopped at bottom - beginloop 0x65 - dprint "DA\n" - if_lift_stationary OBJ_HANGARLIFT_JO, /*goto*/ 0x66 - endloop 0x65 - - // Deactivate lift and open door - label 0x66 - set_object_flag_bank0 0x39, OBJECTFLAG0_40000000 - set_object_flag_bank0 0x3a, OBJECTFLAG0_40000000 - unset_object_flag_bank0 OBJ_HANGARLIFT_JO, OBJECTFLAG0_DEACTIVATED - open_door 0x39 - open_door 0x3a - yield - set_object_flag_bank0 OBJ_HANGARLIFT_JO, OBJECTFLAG0_DEACTIVATED - - beginloop 0x67 - dprint "TR\n" - consider_coop_for_p1p2_chr CHR_SELF - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x2c - if_chr_in_room CHR_JOANNA, 0x00, 0x0018, /*goto*/ 0x2c - if_door_state 0x39, DOORSTATE_CLOSED | DOORSTATE_CLOSING, /*goto*/ 0x2d - if_door_state 0x3a, DOORSTATE_CLOSED | DOORSTATE_CLOSING, /*goto*/ 0x2d - endloop 0x67 - - // Door closing automatically - reopen it - label 0x2d - dprint "PE\n" - goto_first 0x66 - - // Jo has entered the lift, or Jo dead in co-op - label 0x2c - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2c - if_chr_in_room CHR_VELVET, 0x00, 0x0018, /*goto*/ 0x2c - goto_first 0x67 - - // Jo or Velvet is in the lift - activate it - // Note the lift naturally waits 5 seconds at each stop, - // hence the 5 second wait if entered as soon as the door opens. - label 0x2c - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP - unset_object_flag_bank0 0x39, OBJECTFLAG0_40000000 - unset_object_flag_bank0 0x3a, OBJECTFLAG0_40000000 - unset_object_flag_bank0 OBJ_HANGARLIFT_JO, OBJECTFLAG0_DEACTIVATED - - // Wait until Y coordinate >= 400 - beginloop 0x09 - dprint "PU\n" - consider_coop_for_p1p2_chr CHR_SELF - if_chr_death_animation_finished CHR_P1P2, /*goto*/ 0x2c - if_chr_y CHR_P1P2, 400, OPERATOR_LESS_THAN, /*goto*/ 0x2c - goto_next 0x0a - - label 0x2c - endloop 0x09 - - // Wait until lift stopped at top - beginloop 0x0a - if_lift_stationary OBJ_HANGARLIFT_JO, /*goto*/ 0x2c - endloop 0x0a - - label 0x2c - set_object_flag_bank0 OBJ_HANGARLIFT_JO, OBJECTFLAG0_DEACTIVATED - unset_object_flag_bank0 OBJ_HANGARLIFT_ELVIS, OBJECTFLAG0_DEACTIVATED - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0x2c - if_chr_unloaded CHR_ELVIS, /*goto*/ 0x2c - if_chr_dying CHR_ELVIS, /*goto*/ 0x2c - set_function CHR_ELVIS, GFUNC_STOP_AND_IDLE - yield - if_chr_y CHR_ELVIS, 400, OPERATOR_LESS_THAN, /*goto*/ 0x06 - goto_next 0x2c - - // Warp Elvis to his lift - label 0x06 - - beginloop 0x5c - chr_move_to_pad CHR_ELVIS, 0x00ad, 0x00, /*goto*/ 0x2c - chr_move_to_pad CHR_ELVIS, 0x01e6, 0x00, /*goto*/ 0x2c - chr_move_to_pad CHR_ELVIS, 0x01e7, 0x00, /*goto*/ 0x2c - endloop 0x5c - - // Activate his lift and wait 2 seconds - label 0x2c - unset_object_flag_bank0 OBJ_HANGARLIFT_ELVIS, OBJECTFLAG0_DEACTIVATED - restart_timer - - beginloop 0x0b - if_timer_gt 120, /*goto*/ 0x0c - endloop 0x0b - - // Wait for lift to stop at top - beginloop 0x0c - if_lift_stationary OBJ_HANGARLIFT_ELVIS, /*goto*/ 0x2c - endloop 0x0c - - label 0x2c - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0x2c - if_chr_unloaded CHR_ELVIS, /*goto*/ 0x2c - if_chr_dying CHR_ELVIS, /*goto*/ 0x2c - set_function CHR_ELVIS, FUNC_ELVIS_FOLLOW - label 0x2c - - // Check Elvis actually rode the lift up, and if not then go into a loop - // attempting to warp him. - beginloop 0x64 - set_object_flag_bank0 OBJ_HANGARLIFT_ELVIS, OBJECTFLAG0_DEACTIVATED - unset_object_flag_bank0 0x3b, OBJECTFLAG0_02000000 - unset_object_flag_bank0 0x3c, OBJECTFLAG0_02000000 - unset_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP - if_chr_y CHR_ELVIS, 400, OPERATOR_LESS_THAN, /*goto*/ 0x06 - goto_next 0x68 - - // Handle case where Elvis is still in the hangar for some reason - label 0x06 - set_function CHR_ELVIS, FUNC_SET_CLOAKED - - beginloop 0x6d - chr_move_to_pad CHR_ELVIS, 0x0012, 0x01, /*goto*/ 0x2c - endloop 0x6d - - label 0x2c - set_function CHR_ELVIS, FUNC_SET_UNCLOAKED - endloop 0x64 - - // Elvis is at top now - // For buddy or counterop who might still be in the hangar, - // wait for lift to be called from hangar - beginloop 0x68 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, 0x3b, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, 0x3c, /*goto*/ 0x2c - if_chr_activated_object CHR_COUNTEROP, 0x3b, /*goto*/ 0x2c - if_chr_activated_object CHR_COUNTEROP, 0x3c, /*goto*/ 0x2c - endloop 0x68 - - // Bring Elvis's lift down - label 0x2c - play_sound 0x81a6, -1 - unset_object_flag_bank0 OBJ_HANGARLIFT_ELVIS, OBJECTFLAG0_DEACTIVATED - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - - // Wait for it to arrive at bottom - beginloop 0x69 - if_lift_stationary OBJ_HANGARLIFT_ELVIS, /*goto*/ 0x2c - endloop 0x69 - - // Wait for lift to be moving again (upwards) - label 0x2c - - beginloop 0x6a - if_lift_stationary OBJ_HANGARLIFT_ELVIS, /*goto*/ 0x06 - goto_next 0x2c - - label 0x06 - endloop 0x6a - - label 0x2c - yield - yield - yield - yield - - // Wait for lift stopped at top - beginloop 0x6b - if_lift_stationary OBJ_HANGARLIFT_ELVIS, /*goto*/ 0x2c - endloop 0x6b - - // Go back to waiting for lift to be called from hangar - label 0x2c - goto_first 0x64 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0407_init_knifeable_skedar: - set_armor 160 - set_self_flag_bankx CHRFLAG1_00080000, BANK_1 - set_self_flag_bank3 CHRFLAG3_00040000 - set_function CHR_SELF, FUNC_KNIFEABLE_SKEDAR - endfunction - -func0408_knifeable_skedar: - set_onshot_function FUNC_KNIFEABLE_SKEDAR - if_just_injured CHR_SELF, /*goto*/ 0x0c - label 0x08 - yield - label 0x2c - restart_timer - set_target_chr CHR_CASS - try_face_entity 0x0200, 0x0000, /*goto*/ 0x04 - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_stage_flag_eq STAGEFLAG_CASS_AT_PAD, TRUE, /*goto*/ 0x06 - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x0c - set_target_chr CHR_CASS - if_just_injured CHR_SELF, /*goto*/ 0x0c - endloop 0x04 - - // Cass at pad - wait 2 seconds - label 0x06 - restart_timer - - beginloop 0x09 - if_timer_gt 120, /*goto*/ 0x2c - endloop 0x09 - - // Move to spot where Cass dies - label 0x2c - set_target_chr CHR_P1P2 - jog_to_pad 0x00dd - - beginloop 0x0a - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_stopped /*goto*/ 0x06 - if_target_chr_in_sight /*goto*/ 0x0c - if_just_injured CHR_SELF, /*goto*/ 0x0c - endloop 0x0a - - // Face away from player and wait 10 seconds - label 0x06 - restart_timer - set_target_chr CHR_CASS - try_face_entity ENTITYTYPE_PAD, 0x00ef, /*goto*/ 0x0b - - beginloop 0x0b - consider_coop_for_p1p2_chr CHR_SELF - if_timer_gt 600, /*goto*/ 0x06 - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x0c - if_just_injured CHR_SELF, /*goto*/ 0x0c - set_target_chr CHR_CASS - endloop 0x0b - - // Go to holding cell - label 0x06 - set_view_distance 100 - jog_to_pad 0x00d9 - - beginloop 0x0a - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_just_injured CHR_SELF, /*goto*/ 0x0c - dprint "WAITING TWO\n" - if_chr_stopped /*goto*/ 0x0d - label 0x06 - if_target_chr_in_sight /*goto*/ 0x0c - label 0x2c - endloop 0x0a - - // Saw player or got injured - label 0x0c - set_return_function CHR_SELF, GFUNC_UNALERTED - set_function CHR_SELF, GFUNC_UNALERTED - - // Arrived at cell - wait 20 seconds - label 0x0d - restart_timer - - beginloop 0x0e - if_timer_gt 1200, /*goto*/ 0x2c - endloop 0x0e - - // Go back to Cass spot - label 0x2c - jog_to_pad 0x00dd - - beginloop 0x0f - if_chr_stopped /*goto*/ 0x2c - endloop 0x0f - - // Become idle - label 0x2c - stop_chr - set_return_function CHR_SELF, GFUNC_UNALERTED - set_function CHR_SELF, GFUNC_UNALERTED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Door is the second door. The one to the main room. - */ -func1009_keep_door_open_in_intro: - beginloop 0xc2 - if_stage_flag_eq STAGEFLAG_INTRO_FINISHED, TRUE, /*goto*/ 0x06 - if_door_state 0x17, DOORSTATE_CLOSED | DOORSTATE_CLOSING, /*goto*/ 0x2c - reloop 0xc2 - - // Door closed - label 0x2c - open_door 0x17 - endloop 0xc2 - - // Intro finished - label 0x06 - yield - yield - - beginloop 0x04 - if_door_state 0x17, DOORSTATE_CLOSING, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - set_chr_flag_bankx CHR_KNIFEABLE_SKEDAR, CHRFLAG0_00002000, BANK_0 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -.macro init_path pathid - set_accuracy 20 - set_reaction_speed 75 - set_chr_health CHR_SELF, 10 - set_armor 190 - set_recovery_speed 0 - set_shield 0 - assign_path \pathid - start_path - set_function CHR_SELF, GFUNC_RELATED_TO_SPAWNING -.endm - -func0401_start_path00: - init_path 0 - endfunction - -func0402_start_path01: - init_path 1 - endfunction - -func0403_start_path02: - init_path 2 - endfunction - -func0404_start_path03: - init_path 3 - endfunction - -func0405_start_path04: - init_path 4 - endfunction - -func0406_start_path05: - init_path 5 - endfunction - -func0412_hangarspawner: - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_KILLCOUNTABLE - set_self_flag_bank3 CHRFLAG3_00000002 - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_self_flag_bank3 CHRFLAG3_00040000 - set_var_a 0 - - beginloop 0xc2 - if_stage_flag_eq STAGEFLAG_HANGAR_ALARM_ACTIVATED, TRUE, /*goto*/ 0x04 - endloop 0xc2 - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_HANGAR_KILLS_DONE, FALSE, /*goto*/ 0x2c - yield - yield - yield - yield - yield - goto_next 0x08 - - // Still killing - label 0x2c - if_never_been_onscreen /*goto*/ 0x4d - if_chr_sees_player /*goto*/ 0x08 - reloop 0x04 - - // Seen player, or kills done - label 0x08 - unset_self_flag_bank3 CHRFLAG3_HIDDEN - set_function CHR_SELF, FUNC_HANGARCLONE - - // chrflag3_00000008 was unset - label 0x4d - if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x4d - reloop 0x04 - - // Clone dead - label 0x4d - try_spawn_clone2 CHR_SELF, FUNC_INIT_HANGARCLONE, 0x00000000, /*goto*/ 0x2c - set_function CHR_SELF, FUNC_HANGARCLONE - label 0x2c - add_var_a 1 - yield - endloop 0x04 - - endfunction - -func0413_init_hangarclone: - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_00400000 - set_self_flag_bankx CHRFLAG1_00080000, BANK_1 - label 0x04 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - try_inherit_properties 0x07, /*goto*/ 0x06 - label 0x06 - set_function CHR_SELF, FUNC_HANGARCLONE - endfunction - -func0414_hangarclone: - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_KILLCOUNTABLE - run_to_pad 0x00b4 - set_return_function CHR_SELF, FUNC_HANGARCLONE - - beginloop 0x03 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x2c - endloop 0x03 - - label 0x2c - set_onshot_function FUNC_HANGARCLONE - set_return_function CHR_SELF, FUNC_HANGARCLONE - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - endfunction - -func0419_hangar_maian: - set_onshot_function FUNC_HANGAR_MAIAN - set_self_flag_bank3 CHRFLAG3_NOAUTOAIM - if_chr_dying CHR_SELF, /*goto*/ 0x2c - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2c - if_chr_unloaded CHR_SELF, /*goto*/ 0x2c - goto_next 0x06 - - label 0x2c - set_function CHR_SELF, GFUNC_IDLE - - label 0x06 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08 - - // @bug: Shoddy programming here. The jump to label 0x06 is likely supposed - // to go to the label 0x06 just prior to "AT PAD", but that is not the next - // label from here. Also, SPEED_RUN will always be used because SPEED_JOG - // lacks a goto_next 0x04. - if_chr_distance_to_pad_lt CHR_SELF, 200, TARGET_PAD, /*goto*/ 0x06 - - // Distance to pad >= 200 - label 0x03 - restart_timer - if_chr_distance_to_pad_gt CHR_SELF, 500, TARGET_PAD, /*goto*/ 0x06 - go_to_target_pad SPEED_JOG - - // Intended: Distance to pad > 500 - // Actual: Always executes - label 0x06 - go_to_target_pad SPEED_RUN - - beginloop 0x04 - dprint "GO TO PAD\n" - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08 - if_chr_distance_to_pad_lt CHR_SELF, 200, TARGET_PAD, /*goto*/ 0x06 - if_timer_gt 60, /*goto*/ 0x2c - endloop 0x04 - - label 0x2c - goto_first 0x03 - - // Distance to pad < 200 - label 0x06 - stop_chr - - // Wait at pad for enemy - beginloop 0x09 - dprint "AT PAD\n" - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08 - if_chr_distance_to_pad_gt CHR_SELF, 300, TARGET_PAD, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - goto_first 0x03 - - // Enemy detected - label 0x08 - dprint "DETECTED\n" - set_return_function CHR_SELF, FUNC_HANGAR_MAIAN - set_onshot_function FUNC_HANGAR_MAIAN - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - - // Everything below here is unreachable - label 0xb5 - jog_to_pad 0x0034 - - beginloop 0x0f - if_chr_stopped /*goto*/ 0x2c - endloop 0x0f - - label 0x2c - restart_timer - animation ANIM_SNEEZE, 0, 193, 0x0010, CHR_SELF, 2 - - beginloop 0x10 - if_timer_gt 180, /*goto*/ 0x06 - endloop 0x10 - - label 0x06 - message CHR_JOANNA, 0x260d // "Navigational information has been retrieved." - set_stage_flag STAGEFLAG_NAVIGATION_ROOM_DONE - goto_first 0x03 - - endfunction - -func0418_init_hangar_maian: - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_self_flag_bank3 CHRFLAG3_00040000 - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_TRIGGER_HANGAR_MAIANS, TRUE, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - unset_self_flag_bank3 CHRFLAG3_HIDDEN - set_armor 200 - set_reaction_speed 100 - set_function CHR_SELF, FUNC_HANGAR_MAIAN - endfunction - -func100a_check_hangar_kills_done: - yield - beginloop 0xc2 - if_stage_flag_eq STAGEFLAG_MET_ELVIS, TRUE, /*goto*/ 0x2c - endloop 0xc2 - - label 0x2c - restart_timer - - // Wait 2 minutes, or: - // A = 6 kills - // SA = 8 kills - // PA = 10 kills - beginloop 0x04 - if_timer_gt 7200, /*goto*/ 0x2c - if_difficulty_lt DIFF_SA, /*goto*/ 0x65 - if_difficulty_lt DIFF_PA, /*goto*/ 0x66 - - // PA - if_kill_count_gt 9, /*goto*/ 0x2c - reloop 0x04 - - // A - label 0x65 - if_kill_count_gt 5, /*goto*/ 0x2c - reloop 0x04 - - // SA - label 0x66 - if_kill_count_gt 7, /*goto*/ 0x2c - endloop 0x04 - - label 0x2c - set_stage_flag STAGEFLAG_HANGAR_KILLS_DONE - set_function CHR_ELVIS, FUNC_ELVIS_GO_TO_HANGAR_LIFT - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100b_msg_getshieldsdown: - restart_timer - - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_INTRO_FINISHED, TRUE, /*goto*/ 0x2c - endloop 0x08 - - label 0x2c - restart_timer - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_CASS_SCREAMING, TRUE, /*goto*/ 0x2c - endloop 0x04 - - label 0x2c - restart_timer - - beginloop 0xc2 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0xc2 - - label 0x06 - speak CHR_JOANNA, 0x2610, 0x81a0, CHANNEL_6, COLOR_04_ORANGE // "Outside, Joanna. Get the shields down and we can h..." - set_stage_flag STAGEFLAG_SAID_GETSHIELDSDOWN - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100c_engineroom: - set_lights_state 0x0067, 0x04, 0x46, 0xff, 0xfa - - // Wait until both engines destroyed - beginloop 0x04 - if_object_in_good_condition OBJ_ENGINE1, /*goto*/ 0x2c - if_object_in_good_condition OBJ_ENGINE2, /*goto*/ 0x2c - goto_next 0x06 - - label 0x2c - endloop 0x04 - - label 0x06 - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0x2c - if_chr_dying CHR_ELVIS, /*goto*/ 0x2c - if_chr_unloaded CHR_ELVIS, /*goto*/ 0x2c - set_function CHR_ELVIS, FUNC_ELVIS_RUN_FROM_ENGINEROOM - play_x_music CHANNEL_10, 10 - speak CHR_JOANNA, 0x262e, 0x73d7, CHANNEL_6, COLOR_04_ORANGE // "We have to get out of here!" - label 0x2c - set_countdown_timer 10 - show_countdown_timer - start_countdown_timer - - beginloop 0x65 - if_countdown_timer_lt 1, /*goto*/ 0x2c - endloop 0x65 - - // Timer expired - label 0x2c - unset_object_flag_bank0 0x1b, OBJECTFLAG0_INVINCIBLE - unset_object_flag_bank0 0x1c, OBJECTFLAG0_INVINCIBLE - unset_object_flag_bank0 0x1d, OBJECTFLAG0_INVINCIBLE - unset_object_flag_bank0 0x1e, OBJECTFLAG0_INVINCIBLE - unset_object_flag_bank0 0x1f, OBJECTFLAG0_INVINCIBLE - unset_object_flag_bank0 0x20, OBJECTFLAG0_INVINCIBLE - set_object_flag_bank1 0x1b, OBJECTFLAG1_80000000 - set_object_flag_bank1 0x1c, OBJECTFLAG1_80000000 - set_object_flag_bank1 0x1d, OBJECTFLAG1_80000000 - set_object_flag_bank1 0x1e, OBJECTFLAG1_80000000 - set_object_flag_bank1 0x1f, OBJECTFLAG1_80000000 - set_object_flag_bank1 0x20, OBJECTFLAG1_80000000 - label 0x06 - hide_countdown_timer - unset_object_flag_bank0 0x21, OBJECTFLAG0_INVINCIBLE - destroy_object 0x21 - destroy_object 0x1b - destroy_object 0x1c - destroy_object 0x1d - destroy_object 0x1e - destroy_object 0x1f - destroy_object 0x20 - message CHR_JOANNA, 0x2617 // "Engines have been disabled." - set_stage_flag STAGEFLAG_ENGINES_DESTROYED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * This is the lift BEFORE the bridge lift. - * - * The lift moves automatically until you ride it up, then it stays at the top - * unless called from below. - */ -func100d_prebridgelift: - // Wait until Y >= 2600 - beginloop 0x09 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_y CHR_P1P2, 2600, OPERATOR_LESS_THAN, /*goto*/ 0x2c - goto_next 0x0a - - label 0x2c - endloop 0x09 - - // Wait until lift stopped at top - beginloop 0x0a - if_lift_stationary OBJ_PREBRIDGELIFT, /*goto*/ 0x2c - endloop 0x0a - - // Deactivate lift - label 0x2c - label 0x64 - set_object_flag_bank0 OBJ_PREBRIDGELIFT, OBJECTFLAG0_DEACTIVATED - unset_object_flag_bank0 0x3d, OBJECTFLAG0_02000000 - unset_object_flag_bank0 0x3e, OBJECTFLAG0_02000000 - - // Wait until lift called at bottom by buddy or counterop - beginloop 0x68 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, 0x3d, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, 0x3e, /*goto*/ 0x2c - if_chr_activated_object CHR_COUNTEROP, 0x3d, /*goto*/ 0x2c - if_chr_activated_object CHR_COUNTEROP, 0x3e, /*goto*/ 0x2c - endloop 0x68 - - // Activate lift - label 0x2c - play_sound 0x81a6, -1 - unset_object_flag_bank0 OBJ_PREBRIDGELIFT, OBJECTFLAG0_DEACTIVATED - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - - // Wait until stopped at bottom - beginloop 0x69 - if_lift_stationary OBJ_PREBRIDGELIFT, /*goto*/ 0x2c - endloop 0x69 - - label 0x2c - - // Wait until moving (upwards) - beginloop 0x6a - if_lift_stationary OBJ_PREBRIDGELIFT, /*goto*/ 0x06 - goto_next 0x2c - - label 0x06 - endloop 0x6a - - label 0x2c - yield - yield - yield - yield - - // Wait until stopped at top - beginloop 0x6b - if_lift_stationary OBJ_PREBRIDGELIFT, /*goto*/ 0x2c - endloop 0x6b - - label 0x2c - goto_first 0x64 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100e_bridgelift: - // Wait until Y >= 3600 - beginloop 0x09 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_y CHR_P1P2, 3600, OPERATOR_LESS_THAN, /*goto*/ 0x2c - goto_next 0x0a - - label 0x2c - endloop 0x09 - - // Wait until lift stopped at top - beginloop 0x0a - if_lift_stationary OBJ_BRIDGELIFT, /*goto*/ 0x2c - endloop 0x0a - - label 0x2c - set_stage_flag STAGEFLAG_ENTERED_BRIDGE - - // Deactive lift - label 0x64 - set_object_flag_bank0 OBJ_BRIDGELIFT, OBJECTFLAG0_DEACTIVATED - unset_object_flag_bank0 0x2f, OBJECTFLAG0_02000000 - unset_object_flag_bank0 0x30, OBJECTFLAG0_02000000 - - // Wait until lift called from below by buddy or counterop - beginloop 0x68 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, 0x2f, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, 0x30, /*goto*/ 0x2c - if_chr_activated_object CHR_COUNTEROP, 0x2f, /*goto*/ 0x2c - if_chr_activated_object CHR_COUNTEROP, 0x30, /*goto*/ 0x2c - endloop 0x68 - - // Activate lift - label 0x2c - play_sound 0x81a6, -1 - unset_object_flag_bank0 OBJ_BRIDGELIFT, OBJECTFLAG0_DEACTIVATED - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - - // Wait until lift stopped - beginloop 0x69 - if_lift_stationary OBJ_BRIDGELIFT, /*goto*/ 0x2c - endloop 0x69 - - label 0x2c - - // Wait until lift moving again (upwards) - beginloop 0x6a - if_lift_stationary OBJ_BRIDGELIFT, /*goto*/ 0x06 - goto_next 0x2c - - label 0x06 - endloop 0x6a - - label 0x2c - yield - yield - yield - yield - - // Wait until lift stopped at top - beginloop 0x6b - if_lift_stationary OBJ_BRIDGELIFT, /*goto*/ 0x2c - endloop 0x6b - - label 0x2c - goto_first 0x64 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Assigned to the two Skedar behind the bridge doors who must be killed to end - * the level. - */ -func0415_bridgespawner: - set_accuracy 20 - set_reaction_speed 75 - set_chr_health CHR_SELF, 10 - set_armor 190 - set_recovery_speed 0 - set_shield 0 - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_KILLCOUNTABLE - set_self_flag_bank3 CHRFLAG3_00000002 - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_chr_cloaked CHR_SELF, TRUE, FALSE - set_self_flag_bank3 CHRFLAG3_00040000 - set_var_a 0 - - beginloop 0xc2 - if_stage_flag_eq STAGEFLAG_TRIGGER_BRIDGE_SPAWNING, TRUE, /*goto*/ 0x04 - endloop 0xc2 - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_BRIDGE_DOORS_UNLOCKED, TRUE, /*goto*/ 0x06 - if_var_a_lt 2, /*goto*/ 0x2c - - // Doors are unlocked (have been spawning for over a minute) - label 0x06 - restart_timer - - beginloop 0x65 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x65 - - label 0x06 - goto_next 0x08 - - // var_a is 0 or 1 - label 0x2c - if_never_been_onscreen /*goto*/ 0x4d - if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x2c - if_chr_dying CHR_CLONE, /*goto*/ 0x2c - if_chr_unloaded CHR_CLONE, /*goto*/ 0x2c - label 0x2c - if_chr_sees_player /*goto*/ 0x08 - endloop 0x04 - - // Been spawning for 61 seconds, or Skedar can see player - // Unhide and uncloak - label 0x08 - unset_self_flag_bank3 CHRFLAG3_HIDDEN - yield - set_chr_cloaked CHR_SELF, FALSE, TRUE - set_function CHR_SELF, FUNC_INIT_BRIDGESPAWNER_REVEAL - - // chrflag3_00000008 was unset - // 1 in 256 chance of spawning on any given frame (or script invocation?) - // or after 5 seconds just spawn one anyway. - label 0x4d - restart_timer - - beginloop 0x10 - call_rng - if_timer_gt 300, /*goto*/ 0x2c - if_rand_lt 1, /*goto*/ 0x2c - endloop 0x10 - - // Check clone is dead - label 0x2c - if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x4d - if_chr_dying CHR_CLONE, /*goto*/ 0x4d - if_chr_unloaded CHR_CLONE, /*goto*/ 0x4d - goto_first 0x04 - - // Spawn - label 0x4d - try_spawn_clone2 CHR_SELF, FUNC_INIT_BRIDGECLONE, 0x00000000, /*goto*/ 0x2c - unset_self_flag_bank3 CHRFLAG3_HIDDEN - yield - set_chr_cloaked CHR_SELF, FALSE, TRUE - set_function CHR_SELF, FUNC_INIT_BRIDGESPAWNER_REVEAL - - label 0x2c - add_var_a 1 - yield - goto_first 0x04 - - endfunction - -func0416_init_bridgeclone: - set_chr_cloaked CHR_SELF, FALSE, TRUE - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_00400000 - set_accuracy 20 - set_reaction_speed 75 - set_chr_health CHR_SELF, 10 - set_armor 190 - set_recovery_speed 0 - set_shield 0 - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_KILLCOUNTABLE - set_self_flag_bankx CHRFLAG1_00080000, BANK_1 - label 0x04 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - - if_self_flag_bankx_eq CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x2c - try_inherit_properties CHR_BRIDGESPAWNER1, /*goto*/ 0x06 - - label 0x06 - goto_next 0x06 - - label 0x2c - try_inherit_properties CHR_BRIDGESPAWNER2, /*goto*/ 0x06 - - label 0x06 - set_armor 40 - set_function CHR_SELF, FUNC_BRIDGECLONE - endfunction - -/** - * Assigned to the two bridge spawners when they stop sending clones and reveal - * themselves. Kill count isn't actually used to check if they're dead, so this - * function isn't necessary. - */ -func0417_init_spawner_reveal: - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_KILLCOUNTABLE - set_function CHR_SELF, FUNC_BRIDGECLONE - endfunction - -func041a_bridgeclone: - set_onshot_function FUNC_BRIDGECLONE - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2c - if_chr_dying CHR_SELF, /*goto*/ 0x2c - if_chr_unloaded CHR_SELF, /*goto*/ 0x2c - goto_next 0x06 - - // Dying - label 0x2c - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x06 - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_00020000 - if_self_flag_bankx_eq CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x2c - set_target_chr CHR_ELVIS - goto_next 0xc2 - - label 0x2c - call_rng - if_rand_gt 128, /*goto*/ 0x2c - set_target_chr CHR_VELVET - if_chr_dying CHR_VELVET, /*goto*/ 0x2c - goto_next 0xc2 - - label 0x2c - set_target_chr CHR_JOANNA - label 0x03 - - beginloop 0xc2 - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x2c - if_chr_dying TARGET_CHR, /*goto*/ 0x2c - if_chr_unloaded TARGET_CHR, /*goto*/ 0x2c - goto_next 0x06 - - label 0x2c - if_enemy_distance_lt_and_los 1000, /*goto*/ 0x06 - endloop 0xc2 - - // Has target - walk towards for 2 seconds - label 0x06 - if_chr_distance_lt 150, /*goto*/ 0x2e - label 0xc5 - restart_timer - try_walk_to_target_chr /*goto*/ 0x08 - - beginloop 0x08 - if_chr_dying CHR_SELF, /*goto*/ 0xb8 - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x10 - if_chr_dying TARGET_CHR, /*goto*/ 0x10 - if_chr_unloaded TARGET_CHR, /*goto*/ 0x10 - if_timer_gt 120, /*goto*/ 0x09 - endloop 0x08 - - label 0x09 - restart_timer - try_run_to_target_chr /*goto*/ 0x0a - - // Start running - beginloop 0x0a - if_chr_dying CHR_SELF, /*goto*/ 0xb8 - 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*/ 0x2c - if_chr_distance_lt 150, /*goto*/ 0x2e - label 0x2c - if_chr_distance_lt 50, /*goto*/ 0x2e - if_timer_gt 14, /*goto*/ 0x06 - endloop 0x0a - - label 0x06 - goto_first 0x09 - - // Close to target - face them - label 0x2e - 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, 0x0001, /*goto*/ 0x0b - - beginloop 0x0b - if_chr_dying CHR_SELF, /*goto*/ 0xb8 - 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 15, /*goto*/ 0x06 - endloop 0x0b - - // Attempt punch or kick - label 0x06 - try_punch_or_kick /*goto*/ 0x2f - goto_first 0x03 - - beginloop 0x2f - if_chr_dying CHR_SELF, /*goto*/ 0xb8 - 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 0x2f - - // Attack finished - label 0x06 - goto_first 0x03 - - // Target chr dying - label 0x10 - stop_chr - - beginloop 0x0f - if_chr_dying CHR_SELF, /*goto*/ 0xb8 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x06 - endloop 0x0f - - label 0x06 - goto_first 0xc2 - - label 0xb8 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100f_bridge_entry: - // Wait until 3 bridge Skedar dead - beginloop 0x09 - if_chr_dying CHR_BRIDGE1, /*goto*/ 0x2c - if_chr_death_animation_finished CHR_BRIDGE1, /*goto*/ 0x2c - if_chr_unloaded CHR_BRIDGE1, /*goto*/ 0x2c - reloop 0x09 - - label 0x2c - if_chr_dying CHR_BRIDGE2, /*goto*/ 0x2c - if_chr_death_animation_finished CHR_BRIDGE2, /*goto*/ 0x2c - if_chr_unloaded CHR_BRIDGE2, /*goto*/ 0x2c - reloop 0x09 - - label 0x2c - if_chr_dying CHR_BRIDGE3, /*goto*/ 0x2c - if_chr_death_animation_finished CHR_BRIDGE3, /*goto*/ 0x2c - if_chr_unloaded CHR_BRIDGE3, /*goto*/ 0x2c - endloop 0x09 - - label 0x2c - label 0x2c - label 0x06 - restart_timer - - // Wait 11.66 seconds - beginloop 0x0a - if_timer_gt 700, /*goto*/ 0x06 - endloop 0x0a - - label 0x06 - set_stage_flag STAGEFLAG_ELVIS_COMING_TO_BRIDGE - set_function CHR_ELVIS, GFUNC_STOP_AND_IDLE - yield - if_chr_y CHR_ELVIS, 3500, OPERATOR_LESS_THAN, /*goto*/ 0x65 - goto_next 0x2c - - // Elvis is somewhere below - warp him up - beginloop 0x65 - chr_move_to_pad CHR_ELVIS, 0x00a7, 0x01, /*goto*/ 0x2c - endloop 0x65 - - label 0x2c - set_function CHR_ELVIS, FUNC_ELVIS_AT_BRIDGE - restart_timer - - // Wait another 11.66 seconds - beginloop 0x08 - if_timer_gt 700, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - set_stage_flag STAGEFLAG_TRIGGER_BRIDGE_SPAWNING - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1010_check_bridge_captured: - beginloop 0xc2 - if_stage_flag_eq STAGEFLAG_TRIGGER_BRIDGE_SPAWNING, TRUE, /*goto*/ 0x2c - endloop 0xc2 - - // Wait for 2 spawner skedar to be killed. If 60 seconds have passed, - // unlock the bridge doors in case they've gotten stuck or became unalert - // or something. - label 0x2c - restart_timer - - beginloop 0x09 - if_stage_flag_eq STAGEFLAG_BRIDGE_DOORS_UNLOCKED, TRUE, /*goto*/ 0x2c - if_timer_gt 3600, /*goto*/ 0x0d - label 0x2c - if_chr_death_animation_finished CHR_BRIDGESPAWNER1, /*goto*/ 0x2c - if_chr_dying CHR_BRIDGESPAWNER1, /*goto*/ 0x2c - if_chr_unloaded CHR_BRIDGESPAWNER1, /*goto*/ 0x2c - reloop 0x09 - - label 0x2c - if_chr_death_animation_finished CHR_BRIDGESPAWNER2, /*goto*/ 0x2c - if_chr_dying CHR_BRIDGESPAWNER2, /*goto*/ 0x2c - if_chr_unloaded CHR_BRIDGESPAWNER2, /*goto*/ 0x2c - endloop 0x09 - - // 60 seconds elapsed - label 0x0d - set_stage_flag STAGEFLAG_BRIDGE_DOORS_UNLOCKED - unlock_door 0x46, 0x40 - unlock_door 0x47, 0x40 - unlock_door 0x48, 0x40 - unlock_door 0x49, 0x40 - goto_first 0x09 - - label 0x2c - message CHR_JOANNA, 0x2619 // "Bridge has been captured." - set_stage_flag STAGEFLAG_BRIDGE_CAPTURED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1011_check_end_level: - beginloop 0x09 - if_all_objectives_complete /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - restart_timer - - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x2c - if_chr_dying CHR_JOANNA, /*goto*/ 0x2c - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x2c - goto_next 0x06 - - label 0x2c - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2c - if_chr_dying CHR_VELVET, /*goto*/ 0x2c - if_chr_unloaded CHR_VELVET, /*goto*/ 0x2c - goto_next 0x06 - - // Both players dead - label 0x2c - end_level - set_function CHR_SELF, GFUNC_IDLE - - // Either buddy is alive - label 0x06 - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0x2c - if_chr_dying CHR_ELVIS, /*goto*/ 0x2c - if_chr_unloaded CHR_ELVIS, /*goto*/ 0x2c - - // Mission complete - set_invincible CHR_JOANNA - set_function CHR_SELF, FUNC_OUTRO - - // Elvis dead - label 0x2c - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1003_intro: - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_music_track MUSIC_ATTACKSHIP_INTRO - camera_movement 0x01c2 - cmd0175 60 - - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x01c3, -1, -1, 0x0600, CHR_JOANNA, 4 - - set_chr_flag_bank3 CHR_CASS, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_CASS, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_CASS, CHRFLAG2_00020000 - animation 0x01c4, -1, -1, 0x0600, CHR_CASS, 4 - - set_chr_flag_bank3 CHR_INTRO_SKEDAR, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_INTRO_SKEDAR, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_INTRO_SKEDAR, CHRFLAG2_00020000 - animation 0x01c5, -1, -1, 0x0600, CHR_INTRO_SKEDAR, 4 - - restart_timer - set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE - - .macro wait_until time loopid - beginloop \loopid - if_controller_button_pressed /*goto*/ 0xb0 - if_timer_gt \time, /*goto*/ 0x06 - endloop \loopid - label 0x06 - .endm - - wait_until 60, 0x9a - play_sound 0x0171, CHANNEL_10 - - wait_until 120, 0xac - play_sound 0x775a, CHANNEL_10 - - wait_until 136, 0x9b - play_sound 0x0172, CHANNEL_10 - - wait_until 186, 0x9c - play_sound 0x0173, CHANNEL_10 - - wait_until 226, 0x9d - play_sound 0x0174, CHANNEL_10 - - wait_until 320, 0x9e - speak CHR_JOANNA, 0x2620, 0x747f, CHANNEL_10, COLOR_09_BLUE // "Oohhh... I'd better not be where I think I am." - - wait_until 505, 0x9f - play_sound 0x0427, CHANNEL_10 - - wait_until 600, 0xa0 - speak CHR_JOANNA, 0x2621, 0x7480, CHANNEL_10, COLOR_04_ORANGE // "And it's worse than that, my dear. Just look who y..." - - wait_until 1000, 0xa1 - speak CHR_JOANNA, 0x2622, 0x7481, CHANNEL_10, COLOR_09_BLUE // "You! I thought you'd managed to escape. We found n..." - - wait_until 1018, 0xa2 - play_sound 0x0175, CHANNEL_10 - - wait_until 1142, 0xa3 - play_sound 0x0176, CHANNEL_10 - - wait_until 1168, 0xa4 - play_sound 0x0177, CHANNEL_10 - - wait_until 1210, 0xa5 - play_sound 0x0178, CHANNEL_10 - - wait_until 1260, 0xa6 - play_sound 0x0171, CHANNEL_10 - - wait_until 1298, 0xa7 - play_sound 0x0172, CHANNEL_10 - - wait_until 1358, 0x65 - play_sound 0x0173, CHANNEL_10 - - wait_until 1396, 0x66 - play_sound 0x0172, CHANNEL_10 - - wait_until 1400, 0xa8 - speak CHR_JOANNA, 0x2623, 0x7482, CHANNEL_10, COLOR_04_ORANGE // "You couldn't find me. But there was no hiding from..." - - wait_until 1520, 0x67 - play_sound 0x0176, CHANNEL_10 - - wait_until 1592, 0x68 - play_sound 0x0177, CHANNEL_10 - - wait_until 1600, 0x69 - play_sound 0x0174, CHANNEL_10 - - wait_until 1656, 0x6a - play_sound 0x0175, CHANNEL_10 - - wait_until 1728, 0x6b - play_sound 0x0178, CHANNEL_10 - - wait_until 1734, 0x6c - play_sound 0x0172, CHANNEL_10 - - wait_until 1770, 0x6e - play_sound 0x0173, CHANNEL_10 - - wait_until 1810, 0x61 - open_door 0x17 - play_sound 0x801e, CHANNEL_10 - play_sound 0x0530, CHANNEL_10 - - wait_until 1870, 0x6f - speak CHR_JOANNA, 0x2624, 0x7483, CHANNEL_10, COLOR_04_ORANGE // "This is it. Wait there! I'll make a distraction; i..." - - wait_until 1874, 0x70 - play_sound 0x0174, CHANNEL_10 - - wait_until 1930, 0x71 - play_sound 0x0175, CHANNEL_10 - - wait_until 1986, 0x72 - play_sound 0x05a2, CHANNEL_10 - - wait_until 2040, 0x73 - play_sound 0x05a3, CHANNEL_10 - - wait_until 2108, 0x74 - play_sound 0x05a2, CHANNEL_10 - - wait_until 2168, 0x75 - play_sound 0x05a3, CHANNEL_10 - - wait_until 2226, 0x76 - play_sound 0x0531, CHANNEL_10 - - wait_until 2232, 0x77 - play_sound 0x05a2, CHANNEL_10 - - wait_until 2300, 0x62 - close_door 0x17 - - wait_until 2346, 0x78 - - wait_until 2424, 0x79 - play_sound 0x05a3, CHANNEL_10 - - wait_until 2468, 0x7a - play_sound 0x0530, CHANNEL_10 - - wait_until 2474, 0x7b - play_sound 0x05a2, CHANNEL_10 - - wait_until 2560, 0x7c - play_sound 0x0176, CHANNEL_10 - - wait_until 2580, 0x7d - play_sound 0x0177, CHANNEL_10 - - wait_until 2581, 0x7e - speak CHR_JOANNA, 0x2625, 0x7484, CHANNEL_10, COLOR_09_BLUE // "Why are you doing this, Cassandra?" - - wait_until 2614, 0x7f - play_sound 0x0171, CHANNEL_10 - - wait_until 2648, 0x80 - play_sound 0x0178, CHANNEL_10 - - wait_until 2670, 0x81 - play_sound 0x0172, CHANNEL_10 - - wait_until 2708, 0x82 - play_sound 0x0173, CHANNEL_10 - - wait_until 2736, 0x83 - play_sound 0x0174, CHANNEL_10 - - wait_until 2780, 0x84 - play_sound 0x0175, CHANNEL_10 - - wait_until 2790, 0x85 - speak CHR_JOANNA, 0x2626, 0x7485, CHANNEL_10, COLOR_04_ORANGE // "The Skedar used me, Joanna. You are my best chance..." - - wait_until 2792, 0x86 - play_sound 0x0172, CHANNEL_10 - - wait_until 2834, 0x87 - play_sound 0x0176, CHANNEL_10 - - wait_until 3016, 0x88 - play_sound 0x01dc, CHANNEL_10 - - wait_until 3068, 0x89 - play_sound 0x043a, CHANNEL_10 - play_sound 0x043d, CHANNEL_10 - - wait_until 3186, 0x63 - open_door 0x24 - - wait_until 3238, 0x8a - play_sound 0x0177, CHANNEL_10 - - wait_until 3258, 0x8b - play_sound 0x0172, CHANNEL_10 - - wait_until 3280, 0x8c - play_sound 0x0173, CHANNEL_10 - close_door 0x24 - - wait_until 3313, 0x8d - play_sound 0x052a, CHANNEL_10 - speak CHR_JOANNA, 0x2627, 0x7c86, CHANNEL_10, COLOR_04_ORANGE // "Eeeeaaarrrrggghhh!!!" - - beginloop 0x08 - if_camera_animating /*goto*/ 0x2c - goto_next 0xb0 - - label 0x2c - if_controller_button_pressed /*goto*/ 0xb0 - label 0x2c - endloop 0x08 - - label 0xb0 - label 0x06 - set_stage_flag STAGEFLAG_INTRO_FINISHED - open_door 0x17 - mute_channel CHANNEL_10 - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x01c3, -2, -1, 0x0600, CHR_JOANNA, 2 - - unset_chr_flag_bank3 CHR_CASS, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_CASS, CHRFLAG2_00020000 - set_chr_flag_bank3 CHR_CASS, CHRFLAG3_00000001 - animation 0x01c4, -2, -1, 0x0600, CHR_CASS, 2 - - unset_chr_flag_bank3 CHR_INTRO_SKEDAR, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_INTRO_SKEDAR, CHRFLAG2_00020000 - set_chr_flag_bank3 CHR_INTRO_SKEDAR, CHRFLAG3_00000001 - animation 0x01c5, -2, -1, 0x0600, CHR_INTRO_SKEDAR, 2 - - remove_chr CHR_INTRO_SKEDAR - set_function CHR_SHY_SKEDAR, FUNC_SHY_SKEDAR_WAIT - enter_firstperson - yield - chr_move_to_pad CHR_CASS, 0x00df, 0x01, /*goto*/ 0x2c - label 0x2c - set_function CHR_CASS, FUNC_CASS - restart_default_music - reset_ambience - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0c01_outro: - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x2c - set_target_chr CHR_JOANNA - goto_next 0x06 - - label 0x2c - set_target_chr CHR_VELVET - label 0x06 - hide_object 0x2c - camera_movement 0x01e1 - set_music_track MUSIC_ATTACKSHIP_OUTRO - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0xf1, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_P1P2, CHRFLAG3_HIDDEN - - 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 0x01e2, -1, -1, 0x0600, TARGET_CHR, 4 - - set_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function CHR_ELVIS, GFUNC_IDLE - 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 0x01e3, -1, -1, 0x0600, CHR_ELVIS, 4 - - show_object OBJ_OUTRO_SHUTTLE - set_object_flag_bank1 OBJ_OUTRO_SHUTTLE, OBJECTFLAG1_04000000 - set_object_flag_bank2 OBJ_OUTRO_SHUTTLE, OBJECTFLAG2_00000010 - object_do_animation 0x01e4, OBJ_OUTRO_SHUTTLE, 0x04ff, 0xff - set_object_part_visible OBJ_OUTRO_SHUTTLE, FALSE - - show_nonessential_chrs FALSE - restart_timer - set_cutscene_weapon TARGET_CHR, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon TARGET_CHR, WEAPON_NONE, WEAPON_NONE - set_cutscene_weapon CHR_ELVIS, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_ELVIS, WEAPON_NONE, WEAPON_NONE - - wait_until 38, 0x65 - play_sound 0x00f9, CHANNEL_10 - - wait_until 140, 0x66 - play_sound 0x00fd, CHANNEL_10 - - wait_until 150, 0xa9 - speak CHR_JOANNA, 0x2628, 0x7487, CHANNEL_10, COLOR_09_BLUE // "Wow. That's the first time I've seen another plane..." - - wait_until 368, 0x67 - play_sound 0x00fa, CHANNEL_10 - play_sound 0x00fb, CHANNEL_10 - - wait_until 540, 0x69 - play_sound 0x00fe, CHANNEL_10 - - wait_until 550, 0x6b - play_sound 0x00fc, CHANNEL_10 - - wait_until 580, 0x6c - play_sound 0x00f9, CHANNEL_10 - play_sound 0x00fb, CHANNEL_10 - - wait_until 690, 0x6e - speak CHR_JOANNA, 0x2629, 0x7488, CHANNEL_10, COLOR_04_ORANGE // "Hmmmm?" - - wait_until 850, 0x6f - speak CHR_JOANNA, 0x262a, 0x7489, CHANNEL_10, COLOR_04_ORANGE // "I don't... I don't believe it!" - - wait_until 963, 0x70 - play_sound 0x80d4, CHANNEL_10 - - wait_until 972, 0x71 - play_sound 0x80d8, CHANNEL_10 - - wait_until 988, 0x61 - play_sound 0x80db, CHANNEL_10 - - wait_until 1000, 0x72 - speak CHR_JOANNA, 0x262b, 0x748a, CHANNEL_10, COLOR_09_BLUE // "Elvis? What is it?" - - wait_until 1030, 0x73 - play_sound 0x80da, CHANNEL_10 - - wait_until 1045, 0x74 - play_sound 0x80d8, CHANNEL_10 - - wait_until 1065, 0x75 - play_sound 0x80d9, CHANNEL_10 - - wait_until 1085, 0x76 - play_sound 0x80da, CHANNEL_10 - - wait_until 1200, 0x77 - speak CHR_JOANNA, 0x262c, 0x748b, CHANNEL_10, COLOR_09_BLUE // "Where are you going?" - - wait_until 1237, 0x78 - play_sound 0x80db, CHANNEL_10 - - wait_until 1260, 0x79 - play_sound 0x80d8, CHANNEL_10 - - wait_until 1280, 0x7a - play_sound 0x80d9, CHANNEL_10 - - wait_until 1300, 0x7b - play_sound 0x80da, CHANNEL_10 - - wait_until 1301, 0x62 - speak CHR_JOANNA, 0x262d, 0x748c, CHANNEL_10, COLOR_04_ORANGE // "We have to get down to the surface! Follow me!" - open_door OBJ_HANGARDOOR1 - open_door OBJ_HANGARDOOR2 - open_door OBJ_HANGARDOOR3 - open_door OBJ_HANGARDOOR4 - set_object_flag_bank0 OBJ_HANGARDOOR1, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_HANGARDOOR2, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_HANGARDOOR3, OBJECTFLAG0_40000000 - set_object_flag_bank0 OBJ_HANGARDOOR4, OBJECTFLAG0_40000000 - - beginloop 0x08 - if_camera_animating /*goto*/ 0x2c - goto_next 0xb0 - - label 0x2c - if_controller_button_pressed /*goto*/ 0xb0 - label 0x2c - endloop 0x08 - - label 0xb0 - mute_channel CHANNEL_10 - end_level - set_function CHR_SELF, GFUNC_IDLE - endfunction - -.macro init_skedar function - set_accuracy 20 - set_reaction_speed 75 - set_chr_health CHR_SELF, 10 - set_armor 190 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, \function -.endm - -func041e_init_bridge1and2: - init_skedar FUNC_BRIDGE_SKEDAR - endfunction - -func0425_init_shy_skedar: - init_skedar GFUNC_IDLE - endfunction - -func0420_init_bridge3: - init_skedar FUNC_BRIDGE_SKEDAR - endfunction - -/** - * Assigned to the 3 Skedar on the bridge. - */ -func0421_bridge_skedar: - set_onshot_function FUNC_BRIDGE_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 0x2c - - // Dying - label 0x06 - set_onshot_function GFUNC_IDLE - restart_timer - - beginloop 0x53 - if_timer_gt 15, /*goto*/ 0x06 - endloop 0x53 - - 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 0x2c - if_just_injured CHR_SELF, /*goto*/ 0x06 - goto_next 0x08 - - // Injured - label 0x06 - set_view_distance 100 - - // Not injured - label 0x08 - set_self_flag_bank3 CHRFLAG3_00000040 - label 0xc6 - 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*/ 0xc7 - label 0x06 - kneel - - beginloop 0xc7 - consider_coop_for_p1p2_chr CHR_SELF - label 0x2c - set_target_chr CHR_P1P2 - if_player_looking_at_something_maybe 0x00, 0x00, 0x01, /*goto*/ 0x06 - if_target_chr_in_sight /*goto*/ 0xc8 - label 0x06 - if_shot_near_chr 0x00, /*goto*/ 0xc8 - if_near_miss /*goto*/ 0xc9 - label 0x2c - set_target_chr CHR_P1P2 - reloop 0xc7 - - label 0x06 - if_player_looking_at_something_maybe 0x00, 0x00, 0x01, /*goto*/ 0x2c - if_target_chr_in_sight /*goto*/ 0xc8 - label 0x2c - set_target_chr CHR_JOANNA - endloop 0xc7 - - label 0xc8 - set_view_distance 100 - if_self_flag_bankx_eq CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x2c - set_self_flag_bankx CHRFLAG0_00000004, BANK_0 - say_quip CHR_JOANNA, 0x0b, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00 - label 0x2c - goto_next 0xca - - // Unreachable - cmd0184 0x5a64 - - // Reachable from below - beginloop 0xcb - if_chr_stopped /*goto*/ 0xcc - endloop 0xcb - - label 0xcc - restart_timer - stop_chr - - beginloop 0xb4 - if_timer_gt 120, /*goto*/ 0x2c - endloop 0xb4 - - label 0x2c - label 0x06 - goto_first 0xc6 - - // Near miss - label 0xc9 - set_view_distance 100 - restart_timer - if_self_flag_bankx_eq CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0xcd - set_self_flag_bankx CHRFLAG0_00000004, BANK_0 - - label 0xcd - 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*/ 0xce - label 0x06 - if_timer_gt 60, /*goto*/ 0xcf - if_rand_lt 4, /*goto*/ 0xcf - goto_first 0xcd - - label 0xcf - if_chr_sees_player /*goto*/ 0xce - goto_first 0xc6 - - label 0xce - goto_first 0xc8 - - label 0xd0 - restart_timer - - beginloop 0xd1 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_sees_player /*goto*/ 0xce - if_timer_gt 300, /*goto*/ 0x06 - endloop 0xd1 - - label 0x06 - goto_first 0xc6 - - label 0xce - goto_first 0xc8 - - label 0xca - if_self_flag_bankx_eq CHRFLAG0_00002000, FALSE, BANK_0, /*goto*/ 0x60 - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0xb1 - label 0xb1 - say_quip CHR_JOANNA, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00 - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x06 - goto_next 0x2c - - label 0x60 - cmd0184 0x283c - dprint "FIRE FULL\n" - label 0x06 - goto_first 0xcb - - label 0x2c - goto_first 0xcc - - endfunction - -func1013_msg_gottogetshieldsdown: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_SAID_GETSHIELDSDOWN, TRUE, /*goto*/ 0x2c - endloop 0x04 - - label 0x2c - restart_timer - - beginloop 0x08 - if_timer_gt 300, /*goto*/ 0x2c - endloop 0x08 - - label 0x2c - speak CHR_JOANNA, 0x261b, 0x73dc, CHANNEL_6, COLOR_09_BLUE // "I've got to get those shields down to let Elvis in..." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1014_msg_hangarbaydoors: - if_difficulty_lt DIFF_PA, /*goto*/ 0x09 - restart_timer - - beginloop 0x04 - if_objective_complete 0, /*goto*/ 0x2c - endloop 0x04 - - label 0x2c - restart_timer - - beginloop 0x08 - if_timer_gt 240, /*goto*/ 0x2c - endloop 0x08 - - label 0x2c - speak CHR_JOANNA, 0x261c, 0x73dd, CHANNEL_6, COLOR_09_BLUE // "Now only the hangar bay doors are in the way." - - label 0x09 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1015_msg_starmaps: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x003e, /*goto*/ 0x2c - endloop 0x04 - - label 0x2c - speak CHR_P1P2, 0x261d, 0x73de, CHANNEL_6, COLOR_09_BLUE // "This machine contains the Skedar star maps." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1016_msg_ifwecontrolthebridge: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x006f, /*goto*/ 0x2c - endloop 0x04 - - label 0x2c - set_stage_flag STAGEFLAG_ENTERED_BRIDGELIFT - unset_chr_flag_bank3 CHR_BRIDGE1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 CHR_BRIDGE2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 CHR_BRIDGE3, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - speak CHR_P1P2, 0x261e, 0x73df, CHANNEL_6, COLOR_09_BLUE // "If we control the bridge, then the ship is ours." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0422_cass: - set_onshot_function GFUNC_IDLE - set_self_flag_bank3 CHRFLAG3_00040000 - run_to_pad 0x01dd - - beginloop 0x08 - if_chr_distance_to_pad_lt CHR_SELF, 300, 0x01dd, /*goto*/ 0x06 - if_chr_stopped /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - stop_chr - set_stage_flag STAGEFLAG_CASS_AT_PAD - - // @bug: Looks like there's a missing goto_first 0x09 here. - // With that statement, it would loop waiting for the Skedar to be ready. - // As it stands, the check is pointless and Cass will do the screams and die - // even if the Skedar is not ready. - label 0x09 - yield - if_stage_flag_eq STAGEFLAG_SHY_SKEDAR_READY, TRUE, /*goto*/ 0x2c - - label 0x2c - play_sound 0x7c86, CHANNEL_10 - set_stage_flag STAGEFLAG_CASS_SCREAMING - - beginloop 0xc2 - damage_chr CHR_SELF, 18 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2c - if_chr_dying CHR_SELF, /*goto*/ 0x2c - if_chr_unloaded CHR_SELF, /*goto*/ 0x2c - endloop 0xc2 - - label 0x2c - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0423_shy_skedar: - set_onshot_function FUNC_INIT_SKEDAR - set_self_flag_bank3 CHRFLAG3_00000040 - set_self_flag_bank3 CHRFLAG3_00040000 - set_target_chr CHR_CASS - goto_next 0x2c - - if_self_flag_bankx_eq CHRFLAG0_00008000, TRUE, BANK_0, /*goto*/ 0x03 - label 0xc2 - chr_move_to_pad CHR_SELF, 0x00e0, 0x01, /*goto*/ 0x2c - - // Warp failed or not available - so run - label 0x03 - set_target_chr CHR_CASS - restart_timer - try_run_to_target_chr /*goto*/ 0x08 - - beginloop 0x08 - if_chr_stopped /*goto*/ 0x06 - if_chr_distance_to_pad_lt CHR_SELF, 100, 0x00da, /*goto*/ 0x2d - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x08 - - // Stopped, or running for 1 second - label 0x06 - set_target_chr CHR_CASS - goto_first 0x03 - - // Warped to pad 0x00e0 successfully - run rest of the way - label 0x2c - run_to_pad 0x00da - - beginloop 0x09 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x2d - if_chr_distance_to_pad_lt CHR_SELF, 200, 0x00da, /*goto*/ 0x2d - if_chr_stopped /*goto*/ 0x2d - endloop 0x09 - - // At pad - // The first time through this function, STAGEFLAG_SHY_SKEDAR_READY will - // be set. The second time through this function, stageflag 02000000 will - // be set. - label 0x2d - if_stage_flag_eq STAGEFLAG_SHY_SKEDAR_READY, TRUE, /*goto*/ 0x2c - set_stage_flag STAGEFLAG_SHY_SKEDAR_READY - goto_next 0x2d - - label 0x2c - set_stage_flag STAGEFLAG_02000000 - - // Set target chr based on who it can see - label 0x2d - stop_chr - set_target_chr CHR_JOANNA - if_chr_sees_player /*goto*/ 0x2c - set_target_chr CHR_VELVET - if_chr_sees_player /*goto*/ 0x2c - set_target_chr CHR_COUNTEROP - if_chr_sees_player /*goto*/ 0x2c - - label 0x2c - stop_chr - set_onshot_function FUNC_INIT_SKEDAR - set_return_function CHR_SELF, FUNC_INIT_SKEDAR - set_function CHR_SELF, FUNC_INIT_SKEDAR - endfunction - -func0423_shy_skedar_wait: - set_onshot_function FUNC_SHY_SKEDAR - set_target_chr CHR_CASS - set_self_flag_bankx CHRFLAG0_00008000, BANK_0 - restart_timer - - beginloop 0x08 - if_timer_gt 180, /*goto*/ 0x2c - endloop 0x08 - - label 0x2c - set_function CHR_SELF, FUNC_SHY_SKEDAR - endfunction - -func141b_setup_lifts: - activate_lift 1, 0x25 - activate_lift 2, 0x26 - activate_lift 4, 0x28 - activate_lift 5, 0x29 - activate_lift 6, 0x2a - activate_lift 7, 0x2b - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * In PA room where the hangar door console is. Once console is activated, or - * when hangar alarm is activated, the Skedar behind the door is alerted. - */ -func1017_pa_skedar_alertness: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_HANGAR_DOORS_OPEN, TRUE, /*goto*/ 0x2c - if_stage_flag_eq STAGEFLAG_HANGAR_ALARM_ACTIVATED, TRUE, /*goto*/ 0x2c - endloop 0x04 - - label 0x2c - restart_timer - - beginloop 0x08 - if_timer_gt 300, /*goto*/ 0x2c - endloop 0x08 - - label 0x2c - set_function 0x02, GFUNC_ALERTED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1012_update_elvis_target_chr: - beginloop 0x04 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x09 - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x08 - goto_next 0x09 - - // Unreachable - reloop 0x04 - - // Jo dead - label 0x08 - set_chr_target_chr CHR_ELVIS, CHR_VELVET - reloop 0x04 - - // Velvet dead or both alive - label 0x09 - set_chr_target_chr CHR_ELVIS, CHR_JOANNA - endloop 0x04 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Note Elvis is still hidden, hence why he doesn't appear until shields are - * down. - */ -func1018_place_elvis_in_hangar: - label 0x04 - if_difficulty_lt DIFF_PA, /*goto*/ 0x03 - set_function CHR_SELF, GFUNC_IDLE - - // A and SA - beginloop 0x03 - chr_move_to_pad CHR_ELVIS, 0x0103, 0x01, /*goto*/ 0x2c - endloop 0x03 - - label 0x2c - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1002_hangar_shuttle: - yield - show_object OBJ_HANGAR_SHUTTLE - set_object_flag_bank2 OBJ_HANGAR_SHUTTLE, OBJECTFLAG2_00000010 - set_object_part_visible OBJ_HANGAR_SHUTTLE, FALSE - - label 0x09 - restart_timer - - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_BRIDGE_CAPTURED, TRUE, /*goto*/ 0x06 - if_objective_complete 4, /*goto*/ 0x06 - object_do_animation 0x045c, OBJ_HANGAR_SHUTTLE, 0x08ff, 0xff - endloop 0x08 - - label 0x2c - goto_first 0x09 - - label 0x06 - hide_object OBJ_HANGAR_SHUTTLE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101a_kill_maian: - yield - damage_chr CHR_MAIAN3, 18 - yield - damage_chr CHR_MAIAN3, 18 - yield - damage_chr CHR_MAIAN3, 18 - yield - damage_chr CHR_MAIAN3, 18 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101c_lift_door_sounds: - beginloop 0xc2 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, 0x2f, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, 0x30, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, 0x31, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, 0x32, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, 0x33, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, 0x34, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, 0x35, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, 0x36, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, 0x37, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, 0x38, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, 0x39, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, 0x3a, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, 0x3d, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, 0x3e, /*goto*/ 0x2c - endloop 0xc2 - - label 0x2c - dprint "SOUND\n" - play_sound 0x81a6, -1 - restart_timer - - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - goto_first 0xc2 - - endfunction - -func101d_unlock_doors: - if_difficulty_lt DIFF_SA, /*goto*/ 0x2c - if_difficulty_lt DIFF_PA, /*goto*/ 0x06 - - // PA - unlock door to console on other side of hangar - unlock_door 0x35, 0x80 - unlock_door 0x36, 0x80 - - // SA and PA - unlock door to engine room - label 0x06 - unlock_door 0x3f, 0x80 - unlock_door 0x40, 0x80 - - // All difficulties - label 0x2c - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101e_bridge_music: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_JOANNA, 0x00, 0x006e, /*goto*/ 0x2c - endloop 0x04 - - label 0x2c - play_x_music CHANNEL_10, 60 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040c_elvis_run_from_engineroom: - set_onshot_function FUNC_ELVIS_RUN_FROM_ENGINEROOM - run_to_pad 0x005c - - beginloop 0x08 - if_chr_stopped /*goto*/ 0x2c - if_stage_flag_eq STAGEFLAG_ENGINES_DESTROYED, TRUE, /*goto*/ 0x2c - endloop 0x08 - - label 0x2c - set_function CHR_SELF, FUNC_ELVIS_FOLLOW - endfunction - -func101f_enable_bridge_skedar: - lock_door 0x41, 0x80 - lock_door 0x42, 0x80 - set_object_flag_bank1 0x41, OBJECTFLAG1_10000000 - set_object_flag_bank1 0x42, OBJECTFLAG1_08000000 - set_object_flag_bank1 0x41, OBJECTFLAG1_20000000 - set_object_flag_bank1 0x42, OBJECTFLAG1_20000000 - - // Wait until first 4 objectives complete - beginloop 0x04 - if_objective_complete 0, /*goto*/ 0x2c - reloop 0x04 - - label 0x2c - if_difficulty_lt DIFF_PA, /*goto*/ 0x2c - if_objective_complete 1, /*goto*/ 0x2c - reloop 0x04 - - label 0x2c - if_objective_complete 2, /*goto*/ 0x2c - reloop 0x04 - - label 0x2c - if_difficulty_lt DIFF_SA, /*goto*/ 0x2c - if_objective_complete 3, /*goto*/ 0x2c - reloop 0x04 - - label 0x2c - unlock_door 0x41, 0x80 - unlock_door 0x42, 0x80 - unset_object_flag_bank1 0x41, OBJECTFLAG1_10000000 - unset_object_flag_bank1 0x42, OBJECTFLAG1_08000000 - unset_object_flag_bank1 0x41, OBJECTFLAG1_20000000 - unset_object_flag_bank1 0x42, OBJECTFLAG1_20000000 - show_chr 0x21 - show_chr 0x22 - show_chr CHR_BRIDGE1 - show_chr CHR_BRIDGE2 - show_chr CHR_BRIDGE3 - show_chr CHR_BRIDGESPAWNER1 - show_chr CHR_BRIDGESPAWNER2 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1020_engine_hum_noise: - yield - assign_sound 0x81a5, CHANNEL_0 - play_sound_from_object CHANNEL_0, 0x1b, 0x07d0, 0x0fa0 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1021_check_ammo_wasted: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_SHIELDS_DISABLED, TRUE, /*goto*/ 0x0d - consider_coop_for_p1p2_chr CHR_SELF - if_chr_weapon_equipped CHR_P1P2, WEAPON_MAULER, /*goto*/ 0x65 - endloop 0x04 - - // Mauler equipped - beginloop 0x65 - if_stage_flag_eq STAGEFLAG_SHIELDS_DISABLED, TRUE, /*goto*/ 0x0d - if_ammo_quantity_lt CHR_P1P2, AMMOTYPE_PISTOL, 1, /*goto*/ 0x2c - endloop 0x65 - - // Ammo wasted - label 0x2c - set_stage_flag STAGEFLAG_AMMO_WASTED - message CHR_JOANNA, 0x2631 // "Ammo depleted - consoles can't be destroyed." - - beginloop 0x66 - if_stage_flag_eq STAGEFLAG_SHIELDS_DISABLED, TRUE, /*goto*/ 0x2c - endloop 0x66 - - label 0x2c - unset_stage_flag STAGEFLAG_AMMO_WASTED - - // Shields disabled - label 0x0d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1022_setup_rtracker: - // @bug: The Slayer is not R-tracked - yield - set_object_flag_bank2 OBJ_MAULER1, OBJECTFLAG2_RTRACKED_BLUE - set_object_flag_bank2 OBJ_MAULER2, OBJECTFLAG2_RTRACKED_BLUE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040b_init_cass: - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1024_set_bridge_skedar_invincible: - set_chr_flag_bank3 CHR_BRIDGE1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_BRIDGE2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_BRIDGE3, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_BRIDGE1, CHRFLAG3_UNEXPLODABLE - set_chr_flag_bank3 CHR_BRIDGE2, CHRFLAG3_UNEXPLODABLE - set_chr_flag_bank3 CHR_BRIDGE3, CHRFLAG3_UNEXPLODABLE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Wait 10 seconds then set a flag on Joanna which enables buddy to warp to her. - */ -unregistered_function1: - restart_timer - - beginloop 0x04 - if_timer_gt 600, /*goto*/ 0x2c - endloop 0x04 - - label 0x2c - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1423_setup_lighting: - yield - set_lighting 0x0000, 0x09, 0x01 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1025_toggle_chrs: - yield - hide_chr 0x0b - hide_chr 0x0c - hide_chr CHR_SUSPENDEDANIM1 - hide_chr CHR_SUSPENDEDANIM2 - hide_chr CHR_SUSPENDEDANIM3 - hide_chr CHR_SUSPENDEDANIM4 - hide_chr 0x11 - hide_chr 0x12 - hide_chr 0x13 - hide_chr 0x14 - hide_chr 0x15 - hide_chr 0x16 - hide_chr 0x17 - hide_chr 0x18 - hide_chr 0x19 - hide_chr 0x1a - hide_chr 0x1b - hide_chr 0x1c - hide_chr 0x1d - hide_chr 0x1e - hide_chr 0x1f - hide_chr 0x20 - hide_chr 0x27 - hide_chr 0x28 - hide_chr 0x29 - hide_chr 0x2a - hide_chr 0x2b - hide_chr 0x2c - hide_chr 0x21 - hide_chr 0x22 - hide_chr CHR_BRIDGE1 - hide_chr CHR_BRIDGE2 - hide_chr CHR_BRIDGE3 - hide_chr CHR_BRIDGESPAWNER1 - hide_chr CHR_BRIDGESPAWNER2 - - beginloop 0x08 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_y CHR_P1P2, 450, OPERATOR_LESS_THAN, /*goto*/ 0x2c - goto_next 0x06 - - label 0x2c - endloop 0x08 - - label 0x06 - show_chr 0x0b - yield - show_chr 0x0c - yield - show_chr CHR_SUSPENDEDANIM1 - yield - show_chr CHR_SUSPENDEDANIM2 - yield - show_chr CHR_SUSPENDEDANIM3 - yield - show_chr CHR_SUSPENDEDANIM4 - yield - show_chr 0x11 - yield - show_chr 0x12 - yield - show_chr 0x13 - yield - show_chr 0x14 - yield - show_chr 0x15 - yield - show_chr 0x16 - yield - show_chr 0x17 - yield - show_chr 0x18 - yield - show_chr 0x19 - yield - show_chr 0x1a - yield - show_chr 0x1b - yield - show_chr 0x1c - yield - show_chr 0x1d - yield - show_chr 0x1e - yield - show_chr 0x1f - yield - show_chr 0x20 - yield - show_chr 0x27 - yield - show_chr 0x28 - yield - show_chr 0x29 - yield - show_chr 0x2a - yield - show_chr 0x2b - yield - show_chr 0x2c - yield - set_function CHR_MAIAN1, FUNC_CLOAK_AND_REMOVE - set_function CHR_MAIAN2, FUNC_CLOAK_AND_REMOVE - set_function 0x07, FUNC_CLOAK_AND_REMOVE - set_function 0x08, FUNC_CLOAK_AND_REMOVE - set_function 0x09, FUNC_CLOAK_AND_REMOVE - set_function 0x0a, FUNC_CLOAK_AND_REMOVE - cmd0145_rebuild_groups - cmd0146_rebuild_groups - - beginloop 0x09 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_y CHR_P1P2, 550, OPERATOR_LESS_THAN, /*goto*/ 0x2c - goto_next 0x06 - - label 0x2c - endloop 0x09 - - label 0x06 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func041f_cloak_and_remove: - set_onshot_function FUNC_CLOAK_AND_REMOVE - set_chr_cloaked CHR_SELF, TRUE, FALSE - restart_timer - - beginloop 0x04 - if_timer_gt 120, /*goto*/ 0x2c - endloop 0x04 - - label 0x2c - remove_chr CHR_SELF - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1026_hide_necklace: - yield - if_difficulty_lt DIFF_PA, /*goto*/ 0x2c - set_function CHR_SELF, GFUNC_IDLE - - // A and SA - label 0x2c - hide_object OBJ_NECKLACE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0427_set_cloaked: - stop_chr - set_chr_cloaked CHR_SELF, TRUE, TRUE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0428_set_uncloaked: - stop_chr - set_chr_cloaked CHR_SELF, FALSE, TRUE - set_function CHR_SELF, FUNC_ELVIS_FOLLOW - endfunction - -functions: - register_function func1400_setup_counterop 0x1400 - register_function func1001_objectives_failed_msg 0x1001 - register_function func1002_hangar_shuttle 0x1002 - register_function func1003_intro 0x1003 - register_function func1004_check_hangar_doors_opened 0x1004 - register_function func1005_check_elvis_dead 0x1005 - register_function func1006_wake_slayer_skedar 0x1006 - register_function func1007_check_entered_slayer_area 0x1007 - register_function func1008_hangar_lifts 0x1008 - register_function func1009_keep_door_open_in_intro 0x1009 - register_function func100a_check_hangar_kills_done 0x100a - register_function func100b_msg_getshieldsdown 0x100b - register_function func100c_engineroom 0x100c - register_function func100d_prebridgelift 0x100d - register_function func100e_bridgelift 0x100e - register_function func100f_bridge_entry 0x100f - register_function func1010_check_bridge_captured 0x1010 - register_function func1011_check_end_level 0x1011 - register_function func1012_update_elvis_target_chr 0x1012 - register_function func1013_msg_gottogetshieldsdown 0x1013 - register_function func1014_msg_hangarbaydoors 0x1014 - register_function func1015_msg_starmaps 0x1015 - register_function func1016_msg_ifwecontrolthebridge 0x1016 - register_function func1017_pa_skedar_alertness 0x1017 - register_function func1018_place_elvis_in_hangar 0x1018 - register_function func1002_hangar_shuttle 0x1019 // duplicate registration and same ID as below - register_function func1019_check_shields_lowered 0x1019 - register_function func101a_kill_maian 0x101a - register_function func141b_setup_lifts 0x141b - register_function func101c_lift_door_sounds 0x101c - register_function func101d_unlock_doors 0x101d - register_function func101e_bridge_music 0x101e - register_function func101f_enable_bridge_skedar 0x101f - register_function func1020_engine_hum_noise 0x1020 - register_function func1021_check_ammo_wasted 0x1021 - register_function func1022_setup_rtracker 0x1022 - register_function func1423_setup_lighting 0x1423 - register_function func1024_set_bridge_skedar_invincible 0x1024 - register_function func1025_toggle_chrs 0x1025 - register_function func1026_hide_necklace 0x1026 - register_function func1003_intro 0x0c00 - register_function func0c01_outro 0x0c01 - register_function func0c01_outro 0x0426 - register_function func040f_init_skedar 0x040f - register_function func0410_wake_suspendedanim_skedar 0x0410 - register_function func040d_elvis_wait_for_hangar_entry 0x040d - register_function func040e_elvis_give_ar34 0x040e - register_function func0409_elvis_follow 0x0409 - register_function func040a_elvis_go_to_hangar_lift 0x040a - register_function func040b_init_cass 0x040b - register_function func040c_elvis_run_from_engineroom 0x040c - register_function func0401_start_path00 0x0401 - register_function func0402_start_path01 0x0402 - register_function func0403_start_path02 0x0403 - register_function func0404_start_path03 0x0404 - register_function func0405_start_path04 0x0405 - register_function func0406_start_path05 0x0406 - register_function func0407_init_knifeable_skedar 0x0407 - register_function func0408_knifeable_skedar 0x0408 - register_function func0412_hangarspawner 0x0412 - register_function func0413_init_hangarclone 0x0413 - register_function func0414_hangarclone 0x0414 - register_function func0415_bridgespawner 0x0415 - register_function func0416_init_bridgeclone 0x0416 - register_function func0417_init_spawner_reveal 0x0417 - register_function func0418_init_hangar_maian 0x0418 - register_function func0419_hangar_maian 0x0419 - register_function func0415_bridgespawner 0x0415 // duplicate registration - register_function func0416_init_bridgeclone 0x0416 // duplicate registration - register_function func0417_init_spawner_reveal 0x0417 // duplicate registration - register_function func041a_bridgeclone 0x041a - register_function func041b_elvis_at_bridge 0x041b - register_function func041c_elvis_outside_prebridgelift 0x041c - register_function func041d_init_elvis_outside_prebridgelift 0x041d - register_function func041f_cloak_and_remove 0x041f - register_function func041e_init_bridge1and2 0x041e - register_function func0420_init_bridge3 0x0420 - register_function func0421_bridge_skedar 0x0421 - register_function func0422_cass 0x0422 - register_function func0423_shy_skedar 0x0423 - register_function func0423_shy_skedar_wait 0x0424 - register_function func0425_init_shy_skedar 0x0425 - register_function func0427_set_cloaked 0x0427 - register_function func0428_set_uncloaked 0x0428 - endfunctions - -paths: - register_path path00, 0, 0 - register_path path01, 1, 0 - register_path path02, 2, 0 - register_path path03, 3, 0 - register_path path04, 4, 0 - register_path path05, 5, 0 - endpaths - -.align 4 diff --git a/asm/setup/setuplen.s b/asm/setup/setuplen.s deleted file mode 100644 index 3f27dbf83..000000000 --- a/asm/setup/setuplen.s +++ /dev/null @@ -1,22 +0,0 @@ -# -# Stage ID 0x36 -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - intro_weapon WEAPON_NONE, -1 - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setuplip.s b/asm/setup/setuplip.s deleted file mode 100644 index a10603c3d..000000000 --- a/asm/setup/setuplip.s +++ /dev/null @@ -1,4555 +0,0 @@ -# -# Rescue -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -// Characters -.set CHR_ALIEN, 0x38 -.set CHR_DOORMAN, 0x39 -.set CHR_LABTECH_RECORDS, 0x3a -.set CHR_LABTECH_LIGHTS, 0x3b -.set CHR_LABTECH_DOORS1, 0x3c -.set CHR_LABTECH_SHOWERS, 0x3d -.set CHR_LABTECH_HARRYSMATE, 0x3e -.set CHR_LABTECH_KEYCARDGUY, 0x3f -.set CHR_BIOTECH1, 0x40 -.set CHR_BIOTECH2, 0x41 -.set CHR_LABTECH_DOORS2, 0x42 -.set CHR_MECHANIC, 0x43 -.set CHR_JONATHAN, 0x48 -.set CHR_INTRO_DEAD_GUARD, 0x49 - -// Objects -.set OBJ_LABCOAT1, 0x00 -.set OBJ_DOOR_TERMINAL, 0x02 -.set OBJ_DATAUPLINK_JOANNA, 0x05 -.set OBJ_KEYCARD, 0x06 -.set OBJ_CRATE, 0x17 -.set OBJ_WALL, 0x18 -.set OBJ_AUTOGUN, 0x19 -.set OBJ_CHAMBER1, 0x1a -.set OBJ_CHAMBER2, 0x1b -.set OBJ_CHAMBER3, 0x1c -.set OBJ_CHAMBER4, 0x1d -.set OBJ_CHAMBER5, 0x1e -.set OBJ_CHAMBER6, 0x1f -.set OBJ_CHAMBER7, 0x20 -.set OBJ_CHAMBER8, 0x21 -.set OBJ_CHAMBER1_SWITCH, 0x22 -.set OBJ_CHAMBER2_SWITCH, 0x23 -.set OBJ_CHAMBER3_SWITCH, 0x24 -.set OBJ_CHAMBER4_SWITCH, 0x25 -.set OBJ_CHAMBER5_SWITCH, 0x26 -.set OBJ_CHAMBER6_SWITCH, 0x27 -.set OBJ_CHAMBER7_SWITCH, 0x28 -.set OBJ_CHAMBER8_SWITCH, 0x29 -.set OBJ_DATAUPLINK_VELVET, 0x3a -.set OBJ_LABCOAT2, 0x3e -.set OBJ_LABCOAT3, 0x3f -.set OBJ_LABCOAT4, 0x40 -.set OBJ_LABCOAT5, 0x41 -.set OBJ_FALCON2SILENCED1, 0x4c -.set OBJ_FALCON2SILENCED2, 0x4d -.set OBJ_PHOENIX, 0x4e - -// Stage flags -.set STAGEFLAG_CHAMBER4_RAISED, 0x00000001 -.set STAGEFLAG_CHAMBER5_RAISED, 0x00000002 -.set STAGEFLAG_CHAMBER6_RAISED, 0x00000004 -.set STAGEFLAG_CHAMBER7_RAISED, 0x00000008 -.set STAGEFLAG_CHAMBER8_RAISED, 0x00000010 -.set STAGEFLAG_LOOKING_AT_CHAMBER, 0x00000020 -.set STAGEFLAG_ONE_KEYCARD_GUARD_REMAINING, 0x00000040 -.set STAGEFLAG_UPLINK_TERMINAL_DESTROYED, 0x00000080 -.set STAGEFLAG_USED_DISGUISE, 0x00000100 -.set STAGEFLAG_RECORDS_DESTROYED, 0x00000200 -.set STAGEFLAG_DOOR_VIRUS_DOWNLOADED, 0x00000400 -.set STAGEFLAG_LIGHT_VIRUS_DONE, 0x00000800 -.set STAGEFLAG_AUTOGUN_VIRUS_DONE, 0x00001000 -.set STAGEFLAG_ENTERED_LAB, 0x00002000 -.set STAGEFLAG_DISGUISE_UNCOVERED, 0x00010000 -.set STAGEFLAG_LABTECH_DEAD, 0x00020000 -.set STAGEFLAG_DOORMAN_REJECTED, 0x00040000 -.set STAGEFLAG_DOORMAN_DEAD, 0x00080000 -.set STAGEFLAG_KEYCARDGUY_ANGRY, 0x00100000 -.set STAGEFLAG_ENTERED_ELVIS_AREA, 0x00200000 -.set STAGEFLAG_RESCUED_ELVIS, 0x00400000 -.set STAGEFLAG_ELVIS_DEAD, 0x00800000 -.set STAGEFLAG_XRAY_DONE, 0x01000000 -.set STAGEFLAG_CHAMBER_SWITCH_DESTROYED, 0x02000000 -.set STAGEFLAG_CRATE_DESTROYED, 0x08000000 -.set STAGEFLAG_AUTOGUN_ACTIVATED, 0x10000000 -.set STAGEFLAG_CHAMBER1_RAISED, 0x20000000 -.set STAGEFLAG_CHAMBER2_RAISED, 0x40000000 -.set STAGEFLAG_CHAMBER3_RAISED, 0x80000000 - -// Functions -.set FUNC_LABTECH_SA_PA, 0x0410 -.set FUNC_LABTECH_AGENT, 0x0411 -.set FUNC_INIT_LABTECH, 0x0412 -.set FUNC_MECHANIC, 0x0413 -.set FUNC_INIT_MECHANIC, 0x0414 -.set FUNC_WAREHOUSE_SPAWNER, 0x0415 -.set FUNC_BECOME_UNAWARE, 0x0416 -.set FUNC_WAREHOUSE_CLONE, 0x0417 -.set FUNC_DOORMAN, 0x0418 -.set FUNC_INIT_DOORMAN, 0x0419 -.set FUNC_LABTECH_HARRYSMATE, 0x041a -.set FUNC_LABTECH_KEYCARDGUY, 0x041b -.set FUNC_LABTECH_LIGHTS, 0x041f -.set FUNC_LABTECH_DOORS, 0x0420 -.set FUNC_INIT_LABTECH_DOORS, 0x0421 -.set FUNC_LABTECH_RECORDS, 0x0422 -.set FUNC_INIT_LABTECH_RECORDS, 0x0423 -.set FUNC_ALIEN, 0x0424 -.set FUNC_HIDDENGUY, 0x0425 -.set FUNC_CHECK_LOOKING_AT_ALIEN, 0x0426 -.set FUNC_SHOCK_CLONE, 0x0427 -.set FUNC_OUTRO, 0x0428 -.set FUNC_DRAGON_GUARD, 0x042c -.set FUNC_SUPERDRAGON_GUARD, 0x042d -.set FUNC_BIOTECH_GUARD, 0x042e -.set FUNC_BIOTECH_GUARD_ALERTED, 0x042f -.set FUNC_BIOTECH2, 0x0430 -.set FUNC_BIOTECH1, 0x0431 -.set FUNC_INIT_BIOTECH1, 0x0432 -.set FUNC_INIT_BIOTECH2, 0x0433 - -props: - briefing 0, 0x2a01 - briefing 1, 0x2a00 - briefing 2, 0x2a02 - briefing 3, 0x2a03 - - beginobjective 0, 0x2a0a, DIFFBIT_PA | DIFFBIT_PD // "Destroy computer records" - complete_flags STAGEFLAG_RECORDS_DESTROYED - fail_flags STAGEFLAG_UPLINK_TERMINAL_DESTROYED - endobjective - - beginobjective 1, 0x2a0b, DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Locate conspiracy evidence" - complete_flags STAGEFLAG_XRAY_DONE - fail_flags STAGEFLAG_CHAMBER_SWITCH_DESTROYED - endobjective - - beginobjective 2, 0x2a09, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Obtain and use lab technician disguise" - complete_flags STAGEFLAG_USED_DISGUISE - fail_flags STAGEFLAG_DISGUISE_UNCOVERED - endobjective - - beginobjective 3, 0x2a0c, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Gain access to autopsy lab" - complete_flags STAGEFLAG_ENTERED_LAB - require_object_collected OBJ_KEYCARD - fail_flags STAGEFLAG_DOORMAN_REJECTED - fail_flags STAGEFLAG_DOORMAN_DEAD - endobjective - - beginobjective 4, 0x2a0d, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Rescue the crash Survivor" - complete_flags STAGEFLAG_RESCUED_ELVIS - fail_flags STAGEFLAG_ELVIS_DEAD - fail_flags STAGEFLAG_CRATE_DESTROYED - endobjective - - chr 0x00000200, 0x00, 0x039f, BODY_A51AIRMAN, HEAD_RANDOM, 0x0401, -1, -1, 1000, 20, 0x8c008800, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x01, 0x03a2, BODY_A51AIRMAN, HEAD_RANDOM, 0x0402, -1, -1, 1000, 20, 0x8c008800, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x02, 0x03a3, BODY_A51AIRMAN, HEAD_RANDOM, 0x0403, -1, -1, 1000, 20, 0x8c008800, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x03, 0x03a4, BODY_A51AIRMAN, HEAD_RANDOM, 0x0404, -1, -1, 1000, 20, 0xac008800, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0003, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x04, 0x03a5, BODY_A51AIRMAN, HEAD_RANDOM, 0x0405, -1, -1, 1000, 20, 0xac008800, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0004, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x05, 0x0386, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_GUARD, -1, -1, 2000, 20, 0xac008800, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0005, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x06, 0x0387, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_GUARD, -1, -1, 2000, 20, 0xac008800, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0006, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x07, 0x03a7, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_GUARD, -1, -1, 1000, 20, 0xa000c800, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0007, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x08, 0x03a6, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_GUARD, -1, -1, 1000, 20, 0x80008a00, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0008, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x09, 0x03a8, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_GUARD, -1, -1, 1000, 20, 0xa000c800, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0a, 0x03cb, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_GUARD, -1, -1, 1000, 20, 0xa000c800, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x000a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0b, 0x03a9, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_GUARD, -1, -1, 1000, 100, 0xc008c800, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x000b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0c, 0x03aa, BODY_A51AIRMAN, HEAD_RANDOM, 0x0406, -1, -1, 1000, 100, 0xc008c800, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0d, 0x01bb, BODY_A51AIRMAN, HEAD_RANDOM, 0x0406, -1, -1, 1000, 100, 0xc008c800, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0e, 0x01bc, BODY_A51AIRMAN, HEAD_RANDOM, 0x0406, -1, -1, 1000, 100, 0xc008c800, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0f, 0x03ab, BODY_AREA51GUARD, HEAD_RANDOM, 0x0407, -1, -1, 1000, 100, 0xc008c000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x000f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x10, 0x03ac, BODY_AREA51GUARD, HEAD_RANDOM, 0x0408, -1, -1, 1000, 100, 0xc008c000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0010, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x11, 0x03ae, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0x8000c000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0011, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00010000, 0x3a, 0x03af, BODY_LABTECH, HEAD_RANDOM, FUNC_INIT_LABTECH_RECORDS, -1, -1, 1000, 100, 0x0000c000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000 - chr 0x00000200, 0x27, 0x03bf, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, -1, -1, 100, 100, 0xc008c000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0027, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x28, 0x03c0, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, -1, -1, 100, 100, 0xc008c000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0028, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x12, 0x03b1, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0x8000c000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0012, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00014000, 0x3b, 0x03d8, BODY_LABTECH, HEAD_RANDOM, FUNC_LABTECH_LIGHTS, -1, -1, 1000, 6, 0x0000c000, 0x00000000, 0x02, 0x06, 0x3b, 0, 0x00010000 - chr 0x00000200, 0x13, 0x03b2, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0x8008c000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0013, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00010000, 0x3c, 0x03c9, BODY_LABTECH, HEAD_RANDOM, FUNC_INIT_LABTECH_DOORS, 0x03c8, -1, 1000, 100, 0x8008c000, 0x00000000, 0x20, 0x07, -1, 0, 0x00000000 - chr 0x00010000, 0x42, 0x03b3, BODY_LABTECH, HEAD_RANDOM, FUNC_INIT_LABTECH_DOORS, 0x03c9, -1, 1000, 100, 0x8008c004, 0x00000000, 0x20, 0x07, -1, 0, 0x00000000 - chr 0x00000200, 0x14, 0x00f7, BODY_AREA51GUARD, HEAD_RANDOM, 0x0409, -1, -1, 1000, 100, 0x8000c000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x15, 0x00f0, BODY_AREA51GUARD, HEAD_RANDOM, 0x040a, -1, -1, 1000, 100, 0x8000c000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0015, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00010000, 0x3d, 0x03b4, BODY_LABTECH, HEAD_RANDOM, FUNC_INIT_LABTECH, -1, -1, 1000, 100, 0x00000000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000 - chr 0x00000200, 0x18, 0x00c7, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0xc000a000, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1e, 0x0130, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, 0x0132, -1, 1000, 100, 0x800a8204, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x001e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x19, 0x0131, BODY_BIOTECH, HEAD_BIOTECH, FUNC_BIOTECH_GUARD, 0x0136, -1, 1000, 100, 0x800a8204, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRUGGUN, 0x0019, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1a, 0x013b, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, 0x013c, -1, 1000, 100, 0x800a8204, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1d, 0x0137, BODY_BIOTECH, HEAD_BIOTECH, FUNC_BIOTECH_GUARD, 0x013a, -1, 1000, 100, 0x800a8204, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRUGGUN, 0x001d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1b, 0x0123, BODY_AREA51GUARD, HEAD_RANDOM, 0x040b, -1, -1, 1000, 100, 0x8000a000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x001b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1c, 0x0124, BODY_AREA51GUARD, HEAD_RANDOM, 0x040c, -1, -1, 1000, 100, 0x8000a000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x001c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x3e, 0x03c1, BODY_LABTECH, HEAD_RANDOM, FUNC_LABTECH_HARRYSMATE, -1, -1, 1000, 100, 0x00084000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000 - chr 0x00000000, 0x3f, 0x03c2, BODY_LABTECH, HEAD_RANDOM, FUNC_LABTECH_KEYCARDGUY, -1, -1, 1000, 15, 0x00084000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000 - chr 0x00000400, 0x39, 0x0121, BODY_AREA51GUARD, HEAD_BEAU1, FUNC_INIT_DOORMAN, -1, -1, 1000, 100, 0x8008c000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0039, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x33, 0x03cc, BODY_BIOTECH, HEAD_BIOTECH, GFUNC_IDLE, -1, -1, 1000, 100, 0x80002000, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRUGGUN, 0x0033, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x34, 0x03cd, BODY_BIOTECH, HEAD_BIOTECH, GFUNC_IDLE, -1, -1, 1000, 100, 0x80002000, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRUGGUN, 0x0034, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x37, 0x03d0, BODY_AREA51GUARD, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 100, 0x8c080000, 0x00004000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0037, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x2c, 0x03d1, BODY_AREA51GUARD, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 100, 0x8c080000, 0x00004000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x002c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x2d, 0x03d2, BODY_AREA51GUARD, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 100, 0x8c080000, 0x00004000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x002d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x2e, 0x03d3, BODY_AREA51GUARD, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 100, 0x8c080000, 0x00004000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x002e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x2f, 0x03d4, BODY_BIOTECH, HEAD_BIOTECH, GFUNC_IDLE, -1, -1, 1000, 100, 0xc008a000, 0x00000000, 0x02, 0x0f, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRUGGUN, 0x002f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x30, 0x03d5, BODY_AREA51GUARD, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 100, 0xc008a000, 0x00000000, 0x02, 0x0f, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0030, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x31, 0x03d6, BODY_AREA51GUARD, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 100, 0xc008a000, 0x00000000, 0x02, 0x0f, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0031, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x32, 0x03d7, BODY_AREA51GUARD, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 100, 0xc008a000, 0x00000000, 0x02, 0x0f, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0032, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1f, 0x03b5, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0x84008000, 0x00004000, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x001f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x20, 0x03b6, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0x84008000, 0x00004000, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0020, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x21, 0x03b7, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0x84008000, 0x00004000, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0021, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x22, 0x03b8, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0x84008000, 0x00004000, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0022, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x23, 0x03b9, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0xc008c000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0023, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x24, 0x03ba, BODY_BIOTECH, HEAD_BIOTECH, FUNC_BIOTECH_GUARD, -1, -1, 1000, 100, 0xc008c000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRUGGUN, 0x0024, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x25, 0x03bb, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0xc008c000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0025, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x26, 0x03bc, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0xc008c000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0026, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000400, 0x40, 0x03be, BODY_BIOTECH, HEAD_BIOTECH, FUNC_INIT_BIOTECH1, -1, -1, 1000, 100, 0x0000c000, 0x00000000, 0x80, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSONICSCREWER, 0x0040, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_52, 0x00ffffff, 0x00000000 - chr 0x00000400, 0x41, 0x03dc, BODY_BIOTECH, HEAD_BIOTECH, FUNC_INIT_BIOTECH2, -1, -1, 1000, 100, 0x0000c000, 0x00000000, 0x80, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSONICSCREWER, 0x0041, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_52, 0x00ffffff, 0x00000000 - chr 0x00010000, 0x43, 0x01de, BODY_OVERALL, HEAD_RANDOM, FUNC_INIT_MECHANIC, -1, -1, 1000, 5, 0x0000c000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - tag 0x2f, 1 - hover_prop 0x0100, MODEL_HOVERBED, 0x03bd, 0x05120101, 0x00304300, 0x00100003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - chr 0x00000000, 0x44, 0x0196, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_HIDDENGUY, -1, -1, 1000, 100, 0x8008c600, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0044, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x47, 0x0119, BODY_AREA51GUARD, HEAD_RANDOM, 0x0429, -1, -1, 1000, 100, 0x80002000, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0047, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000400, 0x48, 0x020a, BODY_A51AIRMAN, HEAD_JONATHAN, GFUNC_IDLE, -1, -1, 1000, 100, 0x40004600, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDY357, 0x0048, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357MAGNUM, 0x00ffffff, 0x00000000 - chr 0x00000400, 0x49, 0x0197, BODY_A51AIRMAN, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 100, 0x40004600, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - chr 0x00004400, 0x38, 0x0134, BODY_ELVIS1, HEAD_ELVIS, FUNC_ALIEN, -1, -1, 2000, 100, 0xc0002400, 0x00000100, 0x80, 0x09, 0x1a, 0, 0x00010000 - door_scale 0x00008000 - tag 0x35, 1 - lift 0x0100, MODEL_A51_LIFT_STORE, 0x0334, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0334, 0x0335, 0xffffffff, 0x00000001, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x20000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51LIFTDOOR, 0x02e2, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00000000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51LIFTDOOR, 0x02e1, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00000000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -2, -3, 0, 0 - link_objects -2, -4, 0, 1 - tag 0x39, 1 - lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x0336, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0336, 0x0337, 0xffffffff, 0x00000001, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x20000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51LIFTDOOR, 0x02e4, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00080000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51LIFTDOOR, 0x02e3, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00080000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -2, -3, 0, 0 - link_objects -2, -4, 0, 1 - door_scale 0x00010000 - tag 0x00, 1 - weapon 0x0180, MODEL_LABCOAT, 0x042b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DISGUISE40, 0x00ffffff, 0x00000000 - rename_object -1, 0x40, 0x2a0f, 0x2a10, 0x2a11, 0x2a12, 0x2a13, 0x0000, 0x0000 // "Obtain lab clothes." - tag 0x3e, 1 - weapon 0x0180, MODEL_LABCOAT, 0x042c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DISGUISE40, 0x00ffffff, 0x00000000 - rename_object -1, 0x40, 0x2a0f, 0x2a10, 0x2a11, 0x2a12, 0x2a13, 0x0000, 0x0000 // "Obtain lab clothes." - tag 0x3f, 1 - weapon 0x0180, MODEL_LABCOAT, 0x042d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DISGUISE40, 0x00ffffff, 0x00000000 - rename_object -1, 0x40, 0x2a0f, 0x2a10, 0x2a11, 0x2a12, 0x2a13, 0x0000, 0x0000 // "Obtain lab clothes." - tag 0x40, 1 - weapon 0x0180, MODEL_LABCOAT, 0x042e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DISGUISE40, 0x00ffffff, 0x00000000 - rename_object -1, 0x40, 0x2a0f, 0x2a10, 0x2a11, 0x2a12, 0x2a13, 0x0000, 0x0000 // "Obtain lab clothes." - tag 0x41, 1 - weapon 0x0180, MODEL_LABCOAT, 0x042f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DISGUISE40, 0x00ffffff, 0x00000000 - rename_object -1, 0x40, 0x2a0f, 0x2a10, 0x2a11, 0x2a12, 0x2a13, 0x0000, 0x0000 // "Obtain lab clothes." - tag 0x03, 1 - singlemonitor 0x0033, MODEL_SINISTERSTATION, 0x0428, 0x000005e1, 0x00000001, 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, 0xffffff03 - tag 0x02, 1 - singlemonitor 0x0033, MODEL_SINISTERSTATION, 0x0427, 0x000005e1, 0x00000001, 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, 0xffffff03 - tag 0x01, 1 - singlemonitor 0x0033, MODEL_SINISTERSTATION, 0x0429, 0x000005e1, 0x00000001, 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, 0xffffff03 - tag 0x04, 1 - singlemonitor 0x0033, MODEL_SINISTERSTATION, 0x0426, 0x000005e1, 0x00000001, 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, 0xffffff03 - tag 0x05, 1 - weapon 0x0180, MODEL_CHRDATATHIEF, 0x00da, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DATAUPLINK, 0x00ffffff, 0x00000000 - rename_object -1, 0x36, 0x2a18, 0x2a19, 0x2a1a, 0x2a1b, 0x2a1c, 0x0000, 0x0000 // "Obtain Data Uplink." - tag 0x3a, 1 - weapon 0x0180, MODEL_CHRDATATHIEF, 0x00da, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DATAUPLINK, 0x00ffffff, 0x00000000 - rename_object -1, 0x36, 0x2a18, 0x2a19, 0x2a1a, 0x2a1b, 0x2a1c, 0x0000, 0x0000 // "Obtain Data Uplink." - tag 0x3c, 2 - tag 0x3d, 2 - singlemonitor 0x0033, MODEL_SINISTERSTATION, 0x03c6, 0x000005e1, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0033, MODEL_SINISTERSTATION, 0x03c7, 0x000005e1, 0x00000001, 0x00000000, 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, 0xffffff03 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x027f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x027e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x027d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x027c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x027a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x027b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0278, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0279, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0277, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0276, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0274, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000002, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0275, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000002, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0273, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000002, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0272, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000002, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0270, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0271, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x026f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x026e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x026c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x026d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x026b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x026a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0268, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0269, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x44, 2 - tag 0x45, 2 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0266, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0267, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x2b, 4 - tag 0x2c, 4 - tag 0x2d, 4 - tag 0x2e, 4 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02aa, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000080, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02ab, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000080, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02ac, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000080, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02ad, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000080, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x07, 2 - tag 0x08, 2 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0280, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000040, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0281, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000040, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x09, 2 - tag 0x0a, 2 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02b7, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02b8, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x0b, 2 - tag 0x0c, 2 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02b9, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02ba, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x0d, 2 - tag 0x0e, 2 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02bb, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02bc, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0283, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0282, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0284, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0285, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x028b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x028a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_GL, 0x0286, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00020004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x01f407d0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0287, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_GL, 0x0289, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00020004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x01f407d0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0288, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02a4, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02a5, 0x10000400, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00001999, 0x00000004, 0x00000020, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02a6, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_SECRET, 0x028e, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0000d555, 0x0000d555, 0x00001999, 0x00000004, 0x00000001, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x0292, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x0293, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x0294, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x0295, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51GATE_L, 0x02b5, 0x10000010, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00008000, 0x00000000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000f00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51GATE_R, 0x02b6, 0x10000010, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00004000, 0x00000000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x0299, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x0298, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x4a, 2 - tag 0x4b, 2 - door 0x0100, MODEL_A51_HORIZ_DOOR_GL, 0x02a8, 0x10000000, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00020004, 0x00000040, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x01f407d0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02a7, 0x10000000, 0x30000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000040, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x029a, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x029b, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x029c, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x029d, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x13, 1 - door 0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x029e, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x029f, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x30, 3 - tag 0x31, 3 - tag 0x11, 1 - door 0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x02a1, 0x12000010, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x02a0, 0x12000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x028c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x028d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02ae, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x028f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x12, 1 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x0290, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000080, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x0291, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02a2, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000a666, 0x0000a666, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02a3, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000a666, 0x0000a666, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - object 0x00e6, MODEL_LAB_CONTAINER, 0x031c, 0x000001e1, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x02e5, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x02e6, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE3, 0x02e7, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x02e8, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x02e9, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE3, 0x02ea, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x02eb, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x02ec, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE3, 0x02ed, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x02ee, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x02ef, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE3, 0x02f0, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x02f1, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x02f2, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE3, 0x02f3, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x02f4, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x02f5, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE3, 0x02f6, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x02f7, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - link_paths 0x00000002, 0x011101bb, 0x00000000 - link_scenery 1, 0, 2 - door 0x0100, MODEL_A51_UNEXP1, 0x0422, 0x13500d00, 0x20304300, 0x00000000, 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_A51_EXP1, 0x0421, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x18, -2 - tag 0x46, 6 - tag 0x47, 6 - tag 0x48, 8 - tag 0x49, 8 - tag 0x38, 1 - lift 0x0100, MODEL_A51_LIFT_CONTROL, 0x032a, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x032a, 0x032b, 0xffffffff, 0x00000001, 0x00000005, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x0330, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x0331, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -2, -3, 0, 0 - link_objects -2, -4, 0, 0 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x0332, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x0333, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -2, -7, 0, 1 - link_objects -2, -8, 0, 1 - tag 0x14, 2 - tag 0x15, 2 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02b3, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02b4, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x33, 2 - tag 0x34, 2 - door 0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x02af, 0x10000010, 0x30000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x02b0, 0x10000010, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0321, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0327, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02b2, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02b1, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x17, 1 - hover_prop 0x00eb, MODEL_HOVERCRATE1, 0x01c7, 0x35100101, 0x80102301, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x02010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x06, 1 - key 0x0080, MODEL_KEYCARD, 0x003f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000020 - rename_object -1, 0x47, 0x2a20, 0x2a21, 0x2a22, 0x2a23, 0x2a24, 0x0000, 0x0000 // "Obtain medlab 2 key card." - - // @bug: This keycard is given to guard 0x26 rather than being left - // unassigned. This breaks the keycard hot potato which is supposed to - // happen in the last room, because the keycard is not given to anyone until - // there's one guard left, and you can just kill guard 0x26 for it. - tag 0x10, 1 - key 0x0080, MODEL_KEYCARD, 0x0026, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000080 - rename_object -1, 0x48, 0x2a3b, 0x2a3c, 0x2a3d, 0x2a3e, 0x2a3f, 0x0000, 0x0000 // "Obtain op room key card." - - object 0x0100, MODEL_A51BOARD, 0x03c4, 0x05120101, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02bd, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02be, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02bf, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c0, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02c1, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c2, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02c3, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c4, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - glass 0x0100, MODEL_MEDLABWIN1, 0x0436, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_MEDLABWIN2, 0x0437, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_MEDLABWIN2, 0x0438, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_MEDLABWIN1, 0x0439, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_MEDLABWIN2, 0x043a, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_MEDLABWIN2, 0x043b, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0446, 0x14020b62, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0096012c, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0445, 0x14020b62, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0096012c, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x043d, 0x00420262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x043e, 0x00420262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x043f, 0x00420262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0440, 0x00420262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0441, 0x00420262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0442, 0x00420262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tag 0x19, 1 - autogun 0x00c0, MODEL_A51_ROOFGUN, 0x0405, 0x00000004, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x01080000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000da, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x1a, 2 - tag 0x22, 2 - lift 0x0100, MODEL_CHAMBER, 0x033c, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x033c, 0x033d, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x045c, 0x10000002, 0x00000001, 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, 0xffffff12 - tag 0x1c, 2 - tag 0x24, 2 - lift 0x0100, MODEL_CHAMBER, 0x0340, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0340, 0x0341, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x0459, 0x10000002, 0x00000001, 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, 0xffffff12 - tag 0x1e, 2 - tag 0x26, 2 - lift 0x0100, MODEL_CHAMBER, 0x0344, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0344, 0x0345, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x045a, 0x10000002, 0x00000001, 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, 0xffffff12 - tag 0x20, 2 - tag 0x28, 2 - lift 0x0100, MODEL_CHAMBER, 0x0348, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0348, 0x0349, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x045b, 0x10000002, 0x00000001, 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, 0xffffff12 - tag 0x1b, 2 - tag 0x23, 2 - lift 0x0100, MODEL_CHAMBER, 0x033f, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x033f, 0x033e, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x045e, 0x10000002, 0x00000001, 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, 0xffffff12 - tag 0x1d, 2 - tag 0x25, 2 - lift 0x0100, MODEL_CHAMBER, 0x0343, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0343, 0x0342, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x045f, 0x10000002, 0x00000001, 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, 0xffffff12 - tag 0x1f, 2 - tag 0x27, 2 - lift 0x0100, MODEL_CHAMBER, 0x0347, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0347, 0x0346, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x0460, 0x10000002, 0x00000001, 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, 0xffffff12 - tag 0x21, 2 - tag 0x29, 2 - lift 0x0100, MODEL_CHAMBER, 0x034b, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x034b, 0x034a, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x045d, 0x10000002, 0x00000001, 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, 0xffffff12 - tag 0x32, 1 - object 0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0461, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0462, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0463, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0464, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0465, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0466, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0467, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0468, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0469, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x046a, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x046b, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x046c, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x046d, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x046e, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x046f, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0470, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0471, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0472, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0473, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0474, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0476, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0477, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0479, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x047a, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x047b, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x047c, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x047d, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x047e, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x047f, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0480, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0481, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0482, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0483, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0484, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0485, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x3b, 1 - object 0x0100, MODEL_DD_CHAIR, 0x0486, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0487, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0488, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0489, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x0491, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x0492, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x0493, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x0494, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x0495, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x0496, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x0497, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x0498, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x0499, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x049a, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x049b, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x049c, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x049d, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x049e, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x049f, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x04a0, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x04a1, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x04a2, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x04a3, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04a4, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04a5, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04a6, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04a7, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04a8, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04a9, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04aa, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04ab, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04ac, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE3, 0x031a, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x031b, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x04b7, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x04b8, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x04b9, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x04ba, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x04bb, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x04bc, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x04bd, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x04be, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c7, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c8, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c9, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02ca, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02cb, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02cc, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02cd, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02ce, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02cf, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02d0, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02d1, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02d2, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02d3, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02d4, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02d5, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02d6, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02d7, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02d8, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02d9, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02da, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02db, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - object 0x0100, MODEL_A51TABLE, 0x04d4, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51GRATE, 0x0443, 0x000215e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x4c, 2 - tag 0x4d, 2 - weapon 0x0100, MODEL_CHRFALCON2SIL, 0x03db, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SILENCER, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRFALCON2SIL, 0x03db, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SILENCER, 0x00ffffff, 0x00000000 - link_collectibles -1, -2 - tag 0x4e, 1 - weapon 0x0100, MODEL_CHRMAIANPISTOL, 0x0389, 0x00420001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PHOENIX, 0x00ffffff, 0x00000000 - tag 0x42, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x0004, 0x00004001, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000 - tag 0x43, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x0474, 0x00000001, 0x000000c0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000 - endprops - -intro: - spawn 0x03a1 - intro_weapon WEAPON_FALCON2_SILENCER, -1 - ammo AMMOTYPE_PISTOL, 100 - intro_weapon WEAPON_XRAYSCANNER, -1 - outfit OUTFIT_DEFAULT - endintro - -path00: - pad 0x0194 - pad 0x0193 - pad 0x0196 - pad 0x0195 - endpath - -path01: - pad 0x019a - pad 0x019c - pad 0x018b - pad 0x018a - pad 0x018f - pad 0x01a0 - pad 0x0190 - pad 0x019e - pad 0x0199 - endpath - -path02: - pad 0x0190 - pad 0x019e - pad 0x0199 - pad 0x019a - pad 0x019c - pad 0x018b - pad 0x018a - pad 0x018f - pad 0x01a0 - endpath - -path03: - pad 0x018d - pad 0x0189 - pad 0x0191 - pad 0x018f - pad 0x018e - endpath - -path04: - pad 0x0185 - pad 0x0186 - pad 0x0187 - pad 0x0182 - pad 0x0188 - endpath - -path05: - pad 0x01bd - pad 0x01bc - pad 0x01bb - pad 0x01bc - pad 0x01bd - endpath - -path06: - pad 0x0111 - pad 0x010f - pad 0x011a - pad 0x0118 - pad 0x011a - pad 0x010f - pad 0x0111 - endpath - -path07: - pad 0x0112 - pad 0x0113 - pad 0x0100 - pad 0x0102 - pad 0x0104 - pad 0x0102 - pad 0x0100 - pad 0x0113 - endpath - -path08: - pad 0x00f7 - pad 0x00fa - pad 0x00fb - pad 0x00fc - pad 0x00fb - pad 0x00fa - pad 0x00f7 - pad 0x00f8 - pad 0x00f9 - pad 0x00fa - endpath - -path09: - pad 0x00f0 - pad 0x00f2 - pad 0x00f3 - pad 0x00f4 - pad 0x00f3 - pad 0x00f2 - pad 0x00f0 - pad 0x00ef - pad 0x00f3 - pad 0x00f2 - endpath - -path10: - pad 0x0123 - pad 0x0124 - endpath - -path11: - pad 0x0124 - pad 0x0123 - endpath - -path12: - pad 0x0118 - pad 0x0119 - pad 0x011a - pad 0x010d - pad 0x010e - pad 0x010f - pad 0x0110 - pad 0x0111 - pad 0x0112 - pad 0x0113 - pad 0x0114 - pad 0x0100 - pad 0x0114 - pad 0x0113 - pad 0x0112 - pad 0x0111 - pad 0x0110 - pad 0x010f - pad 0x010e - pad 0x010d - pad 0x011a - pad 0x0119 - endpath - -path13: - pad 0x00ed - pad 0x0100 - pad 0x00ed - endpath - -path14: - pad 0x0100 - pad 0x0118 - pad 0x0100 - pad 0x00ed - endpath - -func1400_give_datauplinks: - yield - set_chr_alliance CHR_COUNTEROP, 0x22 - give_object_to_chr OBJ_DATAUPLINK_JOANNA, CHR_JOANNA - give_object_to_chr OBJ_DATAUPLINK_VELVET, CHR_VELVET - set_function CHR_SELF, GFUNC_REBUILD_GROUPS - endfunction - -func1007_check_disguise_collected: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_has_object CHR_P1P2, OBJ_LABCOAT1, /*goto*/ 0x06 - if_chr_has_object CHR_P1P2, OBJ_LABCOAT2, /*goto*/ 0x06 - if_chr_has_object CHR_P1P2, OBJ_LABCOAT3, /*goto*/ 0x06 - if_chr_has_object CHR_P1P2, OBJ_LABCOAT4, /*goto*/ 0x06 - if_chr_has_object CHR_P1P2, OBJ_LABCOAT5, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - dprint "DISGUISED UP\n" - - beginloop 0x08 - if_chr_flag_bank2 CHR_P1P2, CHRFLAG2_DISGUISED, /*goto*/ 0x2d - endloop 0x08 - - label 0x2d - set_stage_flag STAGEFLAG_USED_DISGUISE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1026_check_records_destroyed: - beginloop 0x04 - if_object_in_good_condition 0x04, /*goto*/ 0x06 - message CHR_JOANNA, 0x2a0e // "Research records destroyed." - set_stage_flag STAGEFLAG_RECORDS_DESTROYED - set_function CHR_SELF, GFUNC_IDLE - label 0x06 - endloop 0x04 - - endfunction - -func1003_uplink_doors: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, 0x02, /*goto*/ 0x2d - reloop 0x04 - - label 0x2d - if_stage_flag_eq STAGEFLAG_DOOR_VIRUS_DOWNLOADED, FALSE, /*goto*/ 0x06 - play_sound 0x8116, -1 - message CHR_P1P2, 0x2a30 // "Virus has already been downloaded." - reloop 0x04 - - label 0x06 - if_chr_weapon_equipped CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ 0x2d - play_sound 0x8116, -1 - message CHR_P1P2, 0x2a14 // "Access to door control systems denied." - reloop 0x04 - - label 0x2d - message CHR_P1P2, 0x2a1e // "Data Uplink connected." - restart_timer - - beginloop 0x08 - if_timer_gt 60, /*goto*/ 0x06 - if_chr_distance_to_pad_gt CHR_P1P2, 300, 0x0427, /*goto*/ 0x09 - if_chr_weapon_equipped CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ 0x2d - goto_next 0x09 - - label 0x2d - endloop 0x08 - - label 0x06 - message CHR_P1P2, 0x2a31 // "Initiating virus download." - restart_timer - assign_sound 0x01bf, CHANNEL_5 - control_sound_from_object CHANNEL_5, 0x02, TRUE - - beginloop 0x11 - if_timer_gt 400, /*goto*/ 0x06 - if_chr_distance_to_pad_gt CHR_P1P2, 300, 0x0427, /*goto*/ 0x09 - if_chr_weapon_equipped CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ 0x2d - goto_next 0x09 - - label 0x2d - endloop 0x11 - - label 0x06 - mute_channel CHANNEL_5 - if_object_in_good_condition 0x02, /*goto*/ 0x2d - set_function CHR_SELF, GFUNC_IDLE - - label 0x2d - assign_sound 0x01c1, CHANNEL_5 - control_sound_from_object CHANNEL_5, 0x02, TRUE - message CHR_P1P2, 0x2a17 // "Virus downloaded to console." - yield - set_stage_flag STAGEFLAG_DOOR_VIRUS_DOWNLOADED - reloop 0x04 - - label 0x09 - message CHR_P1P2, 0x2a1f // "Data Uplink connection broken." - mute_channel CHANNEL_5 - assign_sound 0x01c0, CHANNEL_6 - control_sound_from_object CHANNEL_6, 0x02, TRUE - restart_timer - - beginloop 0x13 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x13 - - label 0x06 - mute_channel CHANNEL_6 - endloop 0x04 - - endfunction - -func1004_uplink_lights: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, 0x01, /*goto*/ 0x2d - reloop 0x04 - - label 0x2d - if_stage_flag_eq STAGEFLAG_LIGHT_VIRUS_DONE, FALSE, /*goto*/ 0x06 - play_sound 0x8116, -1 - message CHR_P1P2, 0x2a30 // "Virus has already been downloaded." - reloop 0x04 - - label 0x06 - if_chr_weapon_equipped CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ 0x2d - play_sound 0x8116, -1 - message CHR_P1P2, 0x2a15 // "Access to light control systems denied." - reloop 0x04 - - label 0x2d - message CHR_P1P2, 0x2a1e // "Data Uplink connected." - restart_timer - - beginloop 0x08 - if_timer_gt 60, /*goto*/ 0x06 - if_chr_distance_to_pad_gt CHR_P1P2, 300, 0x0429, /*goto*/ 0x09 - if_chr_weapon_equipped CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ 0x2d - goto_next 0x09 - - label 0x2d - endloop 0x08 - - label 0x06 - message CHR_P1P2, 0x2a31 // "Initiating virus download." - restart_timer - assign_sound 0x01bf, CHANNEL_5 - control_sound_from_object CHANNEL_5, 0x01, TRUE - - beginloop 0x11 - if_timer_gt 400, /*goto*/ 0x06 - if_chr_distance_to_pad_gt CHR_P1P2, 300, 0x0429, /*goto*/ 0x09 - if_chr_weapon_equipped CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ 0x2d - goto_next 0x09 - - label 0x2d - endloop 0x11 - - label 0x06 - mute_channel CHANNEL_5 - if_object_in_good_condition 0x01, /*goto*/ 0x2d - set_function CHR_SELF, GFUNC_IDLE - - label 0x2d - assign_sound 0x01c1, CHANNEL_5 - control_sound_from_object CHANNEL_5, 0x01, TRUE - message CHR_P1P2, 0x2a17 // "Virus downloaded to console." - yield - message CHR_P1P2, 0x2a58 // "Lighting systems overloaded." - set_lighting 0x00c4, 0x0c, 0x6e - set_lighting 0x00c3, 0x0c, 0x6e - set_lighting 0x00c8, 0x0c, 0x6e - set_lighting 0x00c9, 0x0c, 0x6e - set_lighting 0x00ca, 0x0c, 0x6e - set_lighting 0x00c7, 0x0c, 0x6e - set_lighting 0x00c2, 0x0c, 0x6e - set_lighting 0x00c1, 0x0c, 0x6e - set_lighting 0x00c0, 0x0c, 0x6e - set_lighting 0x00bf, 0x0c, 0x6e - set_lighting 0x00c6, 0x0c, 0x6e - set_lighting 0x00c5, 0x0c, 0x6e - set_lighting 0x00a6, 0x0c, 0x6e - set_stage_flag STAGEFLAG_LIGHT_VIRUS_DONE - reloop 0x04 - - label 0x09 - message CHR_P1P2, 0x2a1f // "Data Uplink connection broken." - mute_channel CHANNEL_5 - assign_sound 0x01c0, CHANNEL_6 - control_sound_from_object CHANNEL_6, 0x01, TRUE - restart_timer - - beginloop 0x13 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x13 - - label 0x06 - mute_channel CHANNEL_6 - endloop 0x04 - - endfunction - -func1005_uplink_autoguns: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, 0x03, /*goto*/ 0x2d - reloop 0x04 - - label 0x2d - if_stage_flag_eq STAGEFLAG_LIGHT_VIRUS_DONE, FALSE, /*goto*/ 0x06 - play_sound 0x8116, -1 - message CHR_P1P2, 0x2a30 // "Virus has already been downloaded." - reloop 0x04 - - label 0x06 - if_chr_weapon_equipped CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ 0x2d - play_sound 0x8116, -1 - message CHR_P1P2, 0x2a16 // "Access to security control systems denied." - reloop 0x04 - - label 0x2d - message CHR_P1P2, 0x2a1e // "Data Uplink connected." - restart_timer - - beginloop 0x08 - if_timer_gt 60, /*goto*/ 0x06 - if_chr_distance_to_pad_gt CHR_P1P2, 300, 0x0428, /*goto*/ 0x09 - if_chr_weapon_equipped CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ 0x2d - goto_next 0x09 - - label 0x2d - endloop 0x08 - - label 0x06 - message CHR_P1P2, 0x2a31 // "Initiating virus download." - restart_timer - assign_sound 0x01bf, CHANNEL_5 - control_sound_from_object CHANNEL_5, 0x03, TRUE - - beginloop 0x11 - if_timer_gt 400, /*goto*/ 0x06 - if_chr_distance_to_pad_gt CHR_P1P2, 300, 0x0428, /*goto*/ 0x09 - if_chr_weapon_equipped CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ 0x2d - goto_next 0x09 - - label 0x2d - endloop 0x11 - - label 0x06 - mute_channel CHANNEL_5 - if_object_in_good_condition 0x03, /*goto*/ 0x2d - set_function CHR_SELF, GFUNC_IDLE - label 0x2d - assign_sound 0x01c1, CHANNEL_5 - control_sound_from_object CHANNEL_5, 0x00, TRUE - message CHR_P1P2, 0x2a17 // "Virus downloaded to console." - yield - message CHR_P1P2, 0x2a69 // "Automatic Defenses Disabled." - set_stage_flag STAGEFLAG_AUTOGUN_VIRUS_DONE - reloop 0x04 - - label 0x09 - message CHR_P1P2, 0x2a1f // "Data Uplink connection broken." - mute_channel CHANNEL_5 - assign_sound 0x01c0, CHANNEL_6 - control_sound_from_object CHANNEL_6, 0x03, TRUE - restart_timer - - beginloop 0x13 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x13 - - label 0x06 - mute_channel CHANNEL_6 - reloop 0x04 - - message CHR_P1P2, 0x2a17 // "Virus downloaded to console." - set_stage_flag STAGEFLAG_AUTOGUN_VIRUS_DONE - endloop 0x04 - - endfunction - -func1006_check_lab_accessed: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x008f, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - message CHR_P1P2, 0x2a1d // "Laboratory accessed successfully." - set_stage_flag STAGEFLAG_ENTERED_LAB - set_function CHR_SELF, GFUNC_IDLE - endfunction - -.macro init_path accuracy health recovery pathid - set_chr_dodge_rating 2, 0x0a - set_accuracy \accuracy - set_reaction_speed 35 - set_chr_health CHR_SELF, \health - set_armor 0 - set_recovery_speed \recovery - set_shield 0 - assign_path \pathid - start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 -.endm - -func0401_start_path00: - init_path 8, 50, 35, 0x00 - endfunction - -func0402_start_path01: - init_path 8, 50, 35, 0x01 - endfunction - -func0403_start_path02: - init_path 8, 50, 35, 0x02 - endfunction - -func0404_start_path03: - init_path 8, 50, 35, 0x03 - endfunction - -func0405_start_path04: - init_path 8, 50, 35, 0x04 - endfunction - -func0406_start_path05: - init_path 8, 50, 35, 0x05 - endfunction - -func0407_start_path06: - init_path 10, 80, 0, 0x06 - endfunction - -func0408_start_path07: - init_path 10, 80, 0, 0x07 - endfunction - -func0409_start_path08: - init_path 10, 80, 0, 0x08 - endfunction - -func040a_start_path09: - init_path 10, 80, 0, 0x09 - endfunction - -func040b_start_path10: - init_path 10, 80, 0, 0x0a - endfunction - -func040c_start_path11: - init_path 10, 80, 0, 0x0b - endfunction - -func040d_start_path12: - init_path 10, 80, 0, 0x0c - endfunction - -func040e_start_path13: - init_path 10, 80, 0, 0x0d - endfunction - -func040f_start_path14: - init_path 10, 80, 0, 0x0e - endfunction - -func1001_objectives_failed_msg: - yield - set_chr_flag_bank3 CHR_LABTECH_RECORDS, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_LABTECH_LIGHTS, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_LABTECH_DOORS1, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_LABTECH_SHOWERS, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_LABTECH_HARRYSMATE, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_LABTECH_KEYCARDGUY, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_BIOTECH1, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_BIOTECH2, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_LABTECH_DOORS2, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_MECHANIC, CHRFLAG3_04000000 - set_function CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG - endfunction - -func0411_labtech_showers_agent: - beginloop 0x04 - if_object_in_good_condition OBJ_WALL, /*goto*/ 0x2d - goto_next 0x64 - - label 0x2d - endloop 0x04 - - beginloop 0x64 - damage_chr CHR_SELF, 18 - if_chr_dying CHR_SELF, /*goto*/ 0x2d - endloop 0x64 - - label 0x2d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0412_init_labtech_showers: - if_difficulty_lt DIFF_SA, /*goto*/ 0x2d - goto_next 0x06 - - // Agent - label 0x2d - run_to_pad 0x03ab - - beginloop 0x08 - if_chr_stopped /*goto*/ 0x2e - endloop 0x08 - - label 0x2e - set_function CHR_SELF, FUNC_LABTECH_AGENT - - // SA and PA - label 0x06 - set_function CHR_SELF, FUNC_LABTECH_SA_PA - endfunction - -func0410_labtech_showers_sa_pa: - set_onshot_function FUNC_LABTECH_SA_PA - 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 - - label 0x06 - set_onshot_function GFUNC_IDLE - set_stage_flag STAGEFLAG_LABTECH_DEAD - restart_timer - - beginloop 0x54 - if_timer_gt 15, /*goto*/ 0x06 - endloop 0x54 - - 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 - - label 0x2d - if_just_injured CHR_SELF, /*goto*/ 0x06 - goto_next 0x2d - - // Injured - label 0x06 - restart_timer - - beginloop 0x55 - if_self_flag_bankx_eq CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06 - if_num_times_shot_lt 1, /*goto*/ 0x06 - if_timer_lt 20, /*goto*/ 0x06 - say_quip CHR_JOANNA, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00 - say_quip CHR_JOANNA, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00 - set_self_flag_bankx CHRFLAG0_SAID_INJURY_QUIP, BANK_0 - label 0x06 - if_chr_stopped /*goto*/ 0x58 - endloop 0x55 - - // Not injured, or recovered - label 0x2d - stop_chr - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x2d - if_chr_distance_lt 500, /*goto*/ 0x03 - endloop 0x04 - - // Detected Jo - label 0x2d - label 0x03 - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x56 - restart_timer - label 0x08 - try_face_entity 0x0200, 0x0000, /*goto*/ 0x09 - - beginloop 0x09 - if_angle_to_target_chr_lt 10, /*goto*/ 0x06 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - dprint "TALK 1\n" - speak TARGET_CHR, 0x2a25, 0x1b2d, CHANNEL_4, COLOR_08_RED // "Who are you?" - restart_timer - try_face_entity 0x0200, 0x0000, /*goto*/ 0x64 - - // Wait until seeing Jo with a gun, or Jo has clothes - beginloop 0x64 - if_timer_lt 120, /*goto*/ 0x2d - if_chr_weapon_equipped TARGET_CHR, WEAPON_NONE, /*goto*/ 0x2d - if_chr_weapon_equipped TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x2d - if_chr_in_view /*goto*/ 0x53 - label 0x2d - if_chr_has_object TARGET_CHR, OBJ_LABCOAT1, /*goto*/ 0x0d - if_chr_has_object TARGET_CHR, OBJ_LABCOAT2, /*goto*/ 0x0d - if_chr_has_object TARGET_CHR, OBJ_LABCOAT3, /*goto*/ 0x0d - if_chr_has_object TARGET_CHR, OBJ_LABCOAT4, /*goto*/ 0x0d - if_chr_has_object TARGET_CHR, OBJ_LABCOAT5, /*goto*/ 0x0d - endloop 0x64 - - // Jo has clothes - label 0x0d - speak TARGET_CHR, 0x2a26, 0x1b2e, CHANNEL_4, COLOR_08_RED // "Hey - you've got my clothes." - restart_timer - - beginloop 0x0e - if_chr_weapon_equipped TARGET_CHR, WEAPON_NONE, /*goto*/ 0x2d - if_chr_weapon_equipped TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x2d - goto_next 0x53 - - label 0x2d - if_timer_gt 180, /*goto*/ 0x06 - endloop 0x0e - - label 0x06 - speak TARGET_CHR, 0x2a2b, 0x1b32, CHANNEL_4, COLOR_08_RED // "Give me back my clothes - or else!" - restart_timer - - beginloop 0x0f - if_chr_weapon_equipped TARGET_CHR, WEAPON_NONE, /*goto*/ 0x2d - if_chr_weapon_equipped TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x2d - goto_next 0x53 - - label 0x2d - if_timer_gt 200, /*goto*/ 0x56 - endloop 0x0f - - label 0x56 - if_chr_in_room CHR_P1P2, 0x00, 0x00aa, /*goto*/ 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x00a9, /*goto*/ 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x00b4, /*goto*/ 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x00b5, /*goto*/ 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x00b6, /*goto*/ 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x00be, /*goto*/ 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x00b7, /*goto*/ 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x00b8, /*goto*/ 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x00b3, /*goto*/ 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x009b, /*goto*/ 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x00ae, /*goto*/ 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x00af, /*goto*/ 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x00b0, /*goto*/ 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x00b1, /*goto*/ 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x00b2, /*goto*/ 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x00bc, /*goto*/ 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x00ab, /*goto*/ 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x00bb, /*goto*/ 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x00ba, /*goto*/ 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x00b9, /*goto*/ 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x00ac, /*goto*/ 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x00ad, /*goto*/ 0x2d - goto_next 0x58 - - // Jo is in one of many rooms - label 0x2d - if_chr_weapon_equipped TARGET_CHR, WEAPON_NONE, /*goto*/ 0x2d - if_chr_weapon_equipped TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x2d - goto_next 0x53 - - // Jo is in one of many rooms with nothing equipped - attack her - label 0x2d - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x2d - speak TARGET_CHR, 0x2a2c, 0x1b33, CHANNEL_4, COLOR_08_RED // "Right - you've asked for it!" - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - goto_next 0x06 - - label 0x2d - call_rng - if_rand_gt 25, /*goto*/ 0x06 - speak TARGET_CHR, 0x2a2d, 0x1b34, CHANNEL_4, COLOR_08_RED // "Give me my clothes." - label 0x06 - try_run_to_target_chr /*goto*/ 0x6f - restart_timer - - beginloop 0x6f - if_chr_distance_lt 400, /*goto*/ 0x2d - if_timer_gt 600, /*goto*/ 0x06 - if_chr_stopped /*goto*/ 0x06 - endloop 0x6f - - label 0x2d - set_return_function CHR_SELF, FUNC_LABTECH_SA_PA - set_function CHR_SELF, GFUNC_HAND_COMBAT - - // Chasing Jo for over 10 seconds - do room check again - label 0x06 - goto_first 0x56 - - // Jo in an unknown room - label 0x58 - goto_next 0x06 - - // Tech saw weapon - label 0x53 - animation ANIM_SURPRISED_0202, 0, -1, 0x1010, CHR_SELF, 2 - dprint "TALK 1\n" - speak TARGET_CHR, 0x2a29, 0x8156, CHANNEL_4, COLOR_08_RED // "Oh, my God - a gun!" - restart_timer - - beginloop 0x0a - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x0a - - // Jo in an unknown room, or follow through from seeing weapon - label 0x06 - restart_timer - speak TARGET_CHR, 0x2a27, 0x1b2f, CHANNEL_4, COLOR_08_RED // "Help - help!" - try_target_chr_in_same_group /*goto*/ 0x06 - - // No chr in same group - run to pad instead - run_to_pad 0x0121 - - beginloop 0x10 - if_chr_stopped /*goto*/ 0x61 - endloop 0x10 - - label 0x06 - try_run_to_chr FOLLOW_CHR, /*goto*/ 0x0b - - beginloop 0x0b - if_detected_chr FOLLOW_CHR, /*goto*/ 0x61 - endloop 0x0b - - label 0x61 - speak TARGET_CHR, 0x2a2a, 0x1b31, CHANNEL_4, COLOR_08_RED // "There's an intruder in the complex." - set_stage_flag STAGEFLAG_DISGUISE_UNCOVERED - set_group_alertness 100 - stop_chr - - beginloop 0x0c - endloop 0x0c - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1009_disguise_timer: - beginloop 0x04 - // Pointless check - if_stage_flag_eq STAGEFLAG_LABTECH_DEAD, TRUE, /*goto*/ 0x2d - label 0x2d - if_chr_has_object CHR_JOANNA, OBJ_LABCOAT1, /*goto*/ 0x2d - if_chr_has_object CHR_JOANNA, OBJ_LABCOAT2, /*goto*/ 0x2d - if_chr_has_object CHR_JOANNA, OBJ_LABCOAT3, /*goto*/ 0x2d - if_chr_has_object CHR_JOANNA, OBJ_LABCOAT4, /*goto*/ 0x2d - if_chr_has_object CHR_JOANNA, OBJ_LABCOAT5, /*goto*/ 0x2d - if_chr_has_object CHR_VELVET, OBJ_LABCOAT1, /*goto*/ 0x2d - if_chr_has_object CHR_VELVET, OBJ_LABCOAT2, /*goto*/ 0x2d - if_chr_has_object CHR_VELVET, OBJ_LABCOAT3, /*goto*/ 0x2d - if_chr_has_object CHR_VELVET, OBJ_LABCOAT4, /*goto*/ 0x2d - if_chr_has_object CHR_VELVET, OBJ_LABCOAT5, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - restart_timer - - beginloop 0x09 - if_timer_gt 180, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - speak CHR_JOANNA, 0x2a2e, 0x72ab, CHANNEL_4, COLOR_09_BLUE // "I don't have much time!!!" - if_difficulty_lt DIFF_SA, /*goto*/ 0x5d - if_difficulty_lt DIFF_PA, /*goto*/ 0x5f - set_countdown_timer 90 - goto_next 0x2d - - label 0x5d - set_countdown_timer 180 - goto_next 0x2d - - label 0x5f - set_countdown_timer 135 - label 0x2d - show_countdown_timer - start_countdown_timer - - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_ENTERED_LAB, TRUE, /*goto*/ 0x2d - if_countdown_timer_lt 1, /*goto*/ 0x06 - if_door_locked 0x4a, 0x40, /*goto*/ 0x2e - goto_next 0x0d - - label 0x2e - endloop 0x08 - - // Door unlocked - label 0x0d - - // Entered lab - label 0x2d - stop_countdown_timer - hide_countdown_timer - set_function CHR_SELF, GFUNC_IDLE - - // Timer expired - label 0x06 - stop_countdown_timer - hide_countdown_timer - restart_timer - label 0x66 - activate_alarm - yield - label 0x2d - message CHR_JOANNA, 0x2a2f // "The enemy has discovered the disguise." - set_stage_flag STAGEFLAG_DISGUISE_UNCOVERED - hide_countdown_timer - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100a_random_doors: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_DOOR_VIRUS_DOWNLOADED, TRUE, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - set_object_flag_bank0 0x07, OBJECTFLAG0_02000000 - set_object_flag_bank0 0x09, OBJECTFLAG0_02000000 - set_object_flag_bank0 0x0b, OBJECTFLAG0_02000000 - set_object_flag_bank0 0x0d, OBJECTFLAG0_02000000 - set_object_flag_bank0 0x08, OBJECTFLAG0_02000000 - set_object_flag_bank0 0x0a, OBJECTFLAG0_02000000 - set_object_flag_bank0 0x0c, OBJECTFLAG0_02000000 - set_object_flag_bank0 0x0e, OBJECTFLAG0_02000000 - - beginloop 0x03 - // 55 in 256 chance of doing anything on a given frame - call_rng - if_rand_gt 200, /*goto*/ 0x06 - reloop 0x03 - - label 0x06 - call_rng - if_rand_lt 64, /*goto*/ 0x0a - if_rand_lt 128, /*goto*/ 0x0c - if_rand_lt 196, /*goto*/ 0x0e - - // 25% chance #1 - label 0x08 - if_door_state 0x07, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x09 - open_door 0x07 - open_door 0x08 - reloop 0x03 - - label 0x09 - close_door 0x07 - close_door 0x08 - reloop 0x03 - - // 25% chance #2 - label 0x0a - if_door_state 0x09, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x0b - open_door 0x09 - open_door 0x0a - reloop 0x03 - - label 0x0b - close_door 0x09 - close_door 0x0a - reloop 0x03 - - // 25% chance #3 - label 0x0c - if_door_state 0x0b, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x0d - open_door 0x0b - open_door 0x0c - reloop 0x03 - - label 0x0d - close_door 0x0b - close_door 0x0c - reloop 0x03 - - // 25% chance #4 - label 0x0e - if_door_state 0x0d, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x0f - open_door 0x0d - open_door 0x0e - reloop 0x03 - - label 0x0f - close_door 0x0d - close_door 0x0e - endloop 0x03 - - endfunction - -func0419_init_doorman: - set_accuracy 10 - set_reaction_speed 35 - set_chr_health CHR_SELF, 1 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, FUNC_DOORMAN - endfunction - -func0418_doorman: - set_onshot_function GFUNC_ALERTED - 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 - - label 0x06 - set_onshot_function GFUNC_IDLE - restart_timer - - beginloop 0x54 - if_timer_gt 15, /*goto*/ 0x06 - endloop 0x54 - - 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 - if_has_gun CHR_SELF, /*goto*/ 0x2d - - // Gun shot out of hand - label 0x06 - set_group_alertness 100 - set_target_chr CHR_JOANNA - set_function CHR_SELF, GFUNC_ALERTED - - // Waiting for Jo to arrive - label 0x2d - stop_chr - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x03 - if_chr_distance_lt 500, /*goto*/ 0x03 - endloop 0x04 - - label 0x03 - restart_timer - label 0x08 - try_face_entity 0x0200, 0x0000, /*goto*/ 0x09 - - beginloop 0x09 - if_angle_to_target_chr_lt 10, /*goto*/ 0x06 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - speak TARGET_CHR, 0x2a32, 0x8157, CHANNEL_4, COLOR_08_RED // "So, you got here at last." - - beginloop 0x0a - if_timer_gt 240, /*goto*/ 0x06 - endloop 0x0a - - label 0x06 - if_stage_flag_eq STAGEFLAG_DISGUISE_UNCOVERED, TRUE, /*goto*/ 0x2d - if_stage_flag_eq STAGEFLAG_USED_DISGUISE, TRUE, /*goto*/ 0x06 - - // Disguise not used, or uncovered - label 0x2d - dprint "TALK 1\n" - speak TARGET_CHR, 0x2a33, 0x8158, CHANNEL_4, COLOR_08_RED // "Hey, you're not... SECURITY ALERT!" - restart_timer - stop_chr - - beginloop 0x0b - if_timer_lt 120, /*goto*/ 0x2d - endloop 0x0b - - label 0x2d - set_stage_flag STAGEFLAG_DOORMAN_REJECTED - message TARGET_CHR, 0x2a39 // "Cannot gain access to autopsy lab." - goto_next 0x64 - - // Disguised - label 0x06 - if_chr_weapon_equipped TARGET_CHR, WEAPON_NONE, /*goto*/ 0x59 - if_chr_weapon_equipped TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x59 - - // Jo has gun equipped - label 0x2d - speak TARGET_CHR, 0x2a34, 0x8159, CHANNEL_4, COLOR_08_RED // "No guns allowed in here - put your weapon away." - restart_timer - - beginloop 0x0c - if_chr_weapon_equipped TARGET_CHR, WEAPON_NONE, /*goto*/ 0x59 - if_chr_weapon_equipped TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x59 - if_timer_gt 300, /*goto*/ 0x06 - endloop 0x0c - - label 0x06 - speak TARGET_CHR, 0x2a35, 0x815a, CHANNEL_4, COLOR_08_RED // "I won't tell you again - lose the weapon." - restart_timer - - beginloop 0x0d - if_chr_weapon_equipped TARGET_CHR, WEAPON_NONE, /*goto*/ 0x59 - if_chr_weapon_equipped TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x59 - if_timer_gt 600, /*goto*/ 0x06 - endloop 0x0d - - label 0x1b - label 0x06 - speak TARGET_CHR, 0x2a36, 0x815b, CHANNEL_4, COLOR_08_RED // "Right - I'm calling security." - restart_timer - label 0x10 - set_stage_flag STAGEFLAG_DOORMAN_REJECTED - message TARGET_CHR, 0x2a39 // "Cannot gain access to autopsy lab." - goto_next 0x64 - - // Jo disguised and unarmed - label 0x59 - speak TARGET_CHR, 0x2a37, 0x815c, CHANNEL_4, COLOR_08_RED // "Everyone's been waiting for you..." - restart_timer - - beginloop 0x0e - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x0e - - label 0x06 - if_alarm_active /*goto*/ 0x2d - goto_next 0x06 - - label 0x2d - goto_first 0x1b - - // Unlocking - label 0x06 - unset_object_flag_bank1 0x4a, OBJECTFLAG1_20000000 - unset_object_flag_bank1 0x4b, OBJECTFLAG1_20000000 - unlock_door 0x4a, 0x40 - unlock_door 0x4b, 0x40 - open_door 0x4a - open_door 0x4b - - beginloop 0x0f - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x06 - if_shot_near_chr 0x00, /*goto*/ 0x06 - if_chr_weapon_equipped TARGET_CHR, WEAPON_NONE, /*goto*/ 0x2d - if_chr_weapon_equipped TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x2d - goto_next 0x06 - - label 0x2d - if_door_state 0x4a, DOORSTATE_CLOSED | DOORSTATE_CLOSING, /*goto*/ 0x2d - reloop 0x0f - - label 0x2d - open_door 0x4a - open_door 0x4b - endloop 0x0f - - label 0x06 - set_group_alertness 100 - set_target_chr CHR_JOANNA - set_function CHR_SELF, GFUNC_ALERTED - - label 0x64 - yield - goto_first 0x64 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100b_check_doorman_dead: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_dying CHR_DOORMAN, /*goto*/ 0x2d - if_chr_death_animation_finished CHR_DOORMAN, /*goto*/ 0x2d - if_chr_unloaded CHR_DOORMAN, /*goto*/ 0x2d - reloop 0x04 - - label 0x2d - if_chr_has_object CHR_JOANNA, 0x06, /*goto*/ 0x0d - if_chr_has_object CHR_VELVET, 0x06, /*goto*/ 0x0d - if_door_locked 0x4a, 0x40, /*goto*/ 0x2d - goto_next 0x0d - - label 0x2d - if_chr_in_room CHR_JOANNA, 0x00, 0x0083, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x0084, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x0085, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x0086, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x0087, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x0088, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x0089, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x008a, /*goto*/ 0x06 - message CHR_P1P2, 0x2a38 // "Critical mission personnel killed." - restart_timer - - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x2d - endloop 0x08 - - label 0x2d - message CHR_P1P2, 0x2a39 // "Cannot gain access to autopsy lab." - restart_timer - set_stage_flag STAGEFLAG_DOORMAN_DEAD - - beginloop 0x09 - if_timer_gt 120, /*goto*/ 0x2d - endloop 0x09 - - label 0x2d - label 0x0d - set_function CHR_SELF, GFUNC_IDLE - label 0x06 - endloop 0x04 - - endfunction - -/** - * The lab guy who stands in the room behind the doorman. - */ -func041a_labtech_harrysmate: - set_onshot_function FUNC_LABTECH_HARRYSMATE - 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 - - label 0x06 - set_onshot_function GFUNC_IDLE - restart_timer - - beginloop 0x54 - if_timer_gt 15, /*goto*/ 0x06 - endloop 0x54 - - 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 - - label 0x2d - if_just_injured CHR_SELF, /*goto*/ 0x06 - goto_next 0x2d - - label 0x06 - restart_timer - - beginloop 0x55 - if_self_flag_bankx_eq CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06 - if_num_times_shot_lt 1, /*goto*/ 0x06 - if_timer_lt 20, /*goto*/ 0x06 - say_quip CHR_JOANNA, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00 - say_quip CHR_JOANNA, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00 - set_self_flag_bankx CHRFLAG0_SAID_INJURY_QUIP, BANK_0 - label 0x06 - if_chr_stopped /*goto*/ 0x58 - endloop 0x55 - - label 0x58 - goto_next 0x5a - - label 0x2d - stop_chr - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_in_room CHR_P1P2, 0x00, 0x0083, /*goto*/ 0x08 - endloop 0x04 - - beginloop 0x08 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x2d - if_target_chr_in_sight /*goto*/ 0x2d - if_chr_distance_lt 500, /*goto*/ 0x2d - endloop 0x08 - - label 0x2d - restart_timer - label 0x08 - try_face_entity 0x0200, 0x0000, /*goto*/ 0x09 - - beginloop 0x09 - if_angle_to_target_chr_lt 10, /*goto*/ 0x06 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - speak TARGET_CHR, 0x2a3a, 0x1abb, CHANNEL_4, COLOR_08_RED // "Hey, that's not Harry. It's an intruder." - set_group_alertness 120 - restart_timer - animation 0x002e, 0, -1, 0x1810, CHR_SELF, 2 - - beginloop 0x0a - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x0a - - label 0x06 - run_to_pad 0x011e - - beginloop 0x0b - if_chr_stopped /*goto*/ 0x5a - endloop 0x0b - - label 0x5a - animation ANIM_DRAW_PISTOL_0288, 0, -1, 0x0010, CHR_SELF, 2 - - beginloop 0x0c - if_chr_stopped /*goto*/ 0x06 - endloop 0x0c - - label 0x06 - dprint "CREATED WEAP\n" - try_draw_weapon MODEL_CHRDRUGGUN, WEAPON_TRANQUILIZER, 0x10000000, /*goto*/ 0x06 - label 0x06 - set_target_chr CHR_JOANNA - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -func041b_labtech_keycardguy: - set_onshot_function FUNC_LABTECH_KEYCARDGUY - 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 0x54 - if_timer_gt 15, /*goto*/ 0x06 - endloop 0x54 - - 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 - restart_timer - - beginloop 0x55 - if_self_flag_bankx_eq CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06 - if_num_times_shot_lt 1, /*goto*/ 0x06 - if_timer_lt 20, /*goto*/ 0x06 - say_quip CHR_JOANNA, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00 - say_quip CHR_JOANNA, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00 - set_self_flag_bankx CHRFLAG0_SAID_INJURY_QUIP, BANK_0 - label 0x06 - if_chr_stopped /*goto*/ 0x58 - endloop 0x55 - - label 0x58 - goto_next 0x5a - - // Not injured, or recovered - // Waiting to detect Jo - beginloop 0x08 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x2d - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x2d - endloop 0x08 - - // Detected - label 0x2d - jog_to_pad 0x011b - - beginloop 0x08 - if_chr_distance_to_pad_lt CHR_SELF, 100, 0x011b, /*goto*/ 0x2d - endloop 0x08 - - label 0x2d - restart_timer - animation ANIM_SURRENDER_002E, 0, 190, 0x1010, CHR_SELF, 2 - - beginloop 0x09 - if_timer_gt 60, /*goto*/ 0x06 - reloop 0x09 - - label 0x06 - set_stage_flag STAGEFLAG_KEYCARDGUY_ANGRY - if_chr_stopped /*goto*/ 0x5a - endloop 0x09 - - label 0x5a - animation ANIM_DRAW_PISTOL_0288, 0, -1, 0x0010, CHR_SELF, 2 - - beginloop 0x0a - if_chr_stopped /*goto*/ 0x06 - endloop 0x0a - - label 0x06 - dprint "CREATED WEAP\n" - try_draw_weapon MODEL_CHRDRUGGUN, WEAPON_TRANQUILIZER, 0x10000000, /*goto*/ 0x06 - label 0x06 - set_target_chr CHR_JOANNA - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -func100c_keycardguy_lights: - set_lights_state 0x0088, 0x01, 0x00, 0x00, 0x00 - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_KEYCARDGUY_ANGRY, TRUE, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - set_lights_state 0x0088, 0x01, 0x64, 0x00, 0x00 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100d_check_entered_lab: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0083, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0084, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0085, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0086, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0087, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0088, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0089, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x008a, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - set_stage_flag STAGEFLAG_ENTERED_LAB - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100e_elvis_timer: - beginloop 0x04 - if_door_state 0x13, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - set_stage_flag STAGEFLAG_ENTERED_ELVIS_AREA - play_x_music CHANNEL_10, 60 - set_countdown_timer 60 - show_countdown_timer - start_countdown_timer - - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_RESCUED_ELVIS, TRUE, /*goto*/ 0x2d - if_countdown_timer_lt 1, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - stop_countdown_timer - hide_countdown_timer - set_stage_flag STAGEFLAG_ELVIS_DEAD - message CHR_JOANNA, 0x2a40 // "Elvis has been killed." - set_function CHR_SELF, GFUNC_IDLE - - label 0x2d - stop_countdown_timer - hide_countdown_timer - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100f_check_end_level: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_distance_to_pad_lt CHR_P1P2, 300, 0x02a1, /*goto*/ 0x06 - reloop 0x04 - - label 0x06 - set_stage_flag STAGEFLAG_RESCUED_ELVIS - yield - yield - if_all_objectives_complete /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - set_invincible CHR_JOANNA - revoke_control CHR_JOANNA, 4 - hide_countdown_timer - stop_countdown_timer - restart_timer - - beginloop 0x5c - 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_function CHR_SELF, FUNC_OUTRO - if_timer_gt 280, /*goto*/ 0x5b - endloop 0x5c - - label 0x5b - end_level - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1010_give_keycard: - set_chr_flag_bank3 0x23, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x24, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x25, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x26, CHRFLAG3_KILLCOUNTABLE - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_ONE_KEYCARD_GUARD_REMAINING, TRUE, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - label 0x2d - if_chr_dying 0x23, /*goto*/ 0x06 - if_chr_death_animation_finished 0x23, /*goto*/ 0x06 - if_chr_unloaded 0x23, /*goto*/ 0x06 - give_object_to_chr 0x10, 0x23 - dprint "GIVE TO4" - goto_next 0x2d - - label 0x06 - if_chr_dying 0x24, /*goto*/ 0x06 - if_chr_death_animation_finished 0x24, /*goto*/ 0x06 - if_chr_unloaded 0x24, /*goto*/ 0x06 - give_object_to_chr 0x10, 0x24 - dprint "GIVE TO5" - goto_next 0x2d - - label 0x06 - if_chr_dying 0x25, /*goto*/ 0x06 - if_chr_death_animation_finished 0x25, /*goto*/ 0x06 - if_chr_unloaded 0x25, /*goto*/ 0x06 - give_object_to_chr 0x10, 0x25 - dprint "GIVE TO6" - goto_next 0x2d - - label 0x06 - if_chr_death_animation_finished 0x26, /*goto*/ 0x2d - if_chr_dying 0x26, /*goto*/ 0x2d - if_chr_unloaded 0x26, /*goto*/ 0x2d - dprint "GIVE TO7" - - label 0x2d - unset_object_flag_bank1 0x10, OBJECTFLAG1_INVISIBLE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0414_init_mechanic: - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, FUNC_MECHANIC - endfunction - -func0413_mechanic: - set_onshot_function FUNC_MECHANIC - 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 - - label 0x06 - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - restart_timer - - beginloop 0x54 - if_timer_gt 15, /*goto*/ 0x06 - endloop 0x54 - - 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 - - label 0x2d - if_just_injured CHR_SELF, /*goto*/ 0x06 - goto_next 0x2d - - // Injured - label 0x06 - restart_timer - - beginloop 0x55 - if_self_flag_bankx_eq CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06 - if_num_times_shot_lt 1, /*goto*/ 0x06 - if_timer_lt 20, /*goto*/ 0x06 - say_quip CHR_JOANNA, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00 - say_quip CHR_JOANNA, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00 - set_self_flag_bankx CHRFLAG0_SAID_INJURY_QUIP, BANK_0 - label 0x06 - if_chr_stopped /*goto*/ 0x58 - endloop 0x55 - - // Main logic - label 0x2d - stop_chr - - // Wait for player to attempt to open door - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_sees_player /*goto*/ 0x0a - if_chr_activated_object CHR_P1P2, 0x14, /*goto*/ 0x2d - if_chr_activated_object CHR_P1P2, 0x15, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - restart_timer - - beginloop 0x0d - if_timer_gt 180, /*goto*/ 0x06 - endloop 0x0d - - label 0x06 - unlock_door 0x14, 0x10 - unlock_door 0x15, 0x10 - open_door 0x14 - open_door 0x15 - - beginloop 0x0a - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_sees_player /*goto*/ 0x06 - endloop 0x0a - - label 0x06 - restart_timer - - label 0x08 - try_face_entity 0x0200, 0x0000, /*goto*/ 0x09 - - beginloop 0x09 - if_angle_to_target_chr_lt 10, /*goto*/ 0x06 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - dprint "TALK 1\n" - speak CHR_JOANNA, 0x2a41, 0x80fb, CHANNEL_4, COLOR_08_RED // "Get the hell out of here!" - restart_timer - animation ANIM_SURRENDER_002E, 0, -1, 0x1810, CHR_SELF, 2 - - beginloop 0x64 - if_timer_gt 120, /*goto*/ 0x2d - endloop 0x64 - - label 0x58 - label 0x2d - run_to_pad 0x01ba - - beginloop 0x0e - if_chr_stopped /*goto*/ 0x06 - endloop 0x0e - - label 0x06 - label 0x0f - animation ANIM_COWER_0229, -1, -1, 0x100a, CHR_SELF, 2 - - beginloop 0x8a - if_chr_stopped /*goto*/ 0x2d - endloop 0x8a - - label 0x2d - goto_first 0x0f - - endfunction - -func1011_unhide_warehouse_spawner: - // Wait until player near second elevator - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x00f8, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x00f7, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x00f6, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x00f4, /*goto*/ 0x06 - endloop 0x04 - - // Unhide a guy at the top of the ramp near the start - label 0x06 - unset_chr_flag_bank3 0x44, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x44, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x44, FUNC_WAREHOUSE_SPAWNER - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0415_warehouse_spawner: - set_self_flag_bank3 CHRFLAG3_00000002 - restart_timer - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_sees_player /*goto*/ 0x08 - if_chr_in_room TARGET_CHR, 0x00, 0x00f8, /*goto*/ 0x08 - if_chr_in_room TARGET_CHR, 0x00, 0x00f7, /*goto*/ 0x08 - if_chr_in_room TARGET_CHR, 0x00, 0x00f6, /*goto*/ 0x08 - if_chr_in_room TARGET_CHR, 0x00, 0x00f4, /*goto*/ 0x08 - reloop 0x04 - - label 0x08 - dprint "HEARSPAWN\n" - - label 0x2d - if_never_been_onscreen /*goto*/ 0x4e - dprint "NEVER VISFAIL\n" - if_chr_sees_player /*goto*/ 0x08 - reloop 0x04 - - label 0x08 - set_target_chr CHR_JOANNA - set_function CHR_SELF, GFUNC_ALERTED - - label 0x4e - dprint "CHECK DUPE\n" - if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x4e - reloop 0x04 - - label 0x4e - dprint "CREATE SPAWN\n" - try_spawn_clone2 CHR_SELF, FUNC_WAREHOUSE_CLONE, 0x00000000, /*goto*/ 0x2d - dprint "CREATE FAIL\n" - reloop 0x04 - - label 0x2d - restart_timer - yield - endloop 0x04 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0417_warehouse_clone: - set_target_chr CHR_JOANNA - set_alertness 100 - try_run_to_target_chr /*goto*/ 0x2d - label 0x2d - set_return_function CHR_SELF, GFUNC_UNALERTED - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func1013_check_chamber_switch_destroyed: - if_difficulty_lt DIFF_SA, /*goto*/ 0x0d - - beginloop 0x04 - if_object_in_good_condition OBJ_CHAMBER1_SWITCH, /*goto*/ 0x06 - if_stage_flag_eq STAGEFLAG_CHAMBER1_RAISED, TRUE, /*goto*/ 0x2d - message CHR_JOANNA, 0x2a44 // "Mission critical equipment destroyed." - set_stage_flag STAGEFLAG_CHAMBER_SWITCH_DESTROYED - set_function CHR_SELF, GFUNC_IDLE - - label 0x2d - reloop 0x04 - - label 0x06 - endloop 0x04 - - label 0x0d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1014_check_crate_destroyed: - // The unsetting of the wall's IMMUNE_TO_EXPLOSIVES flag suggests that the - // wall was originally intended to only be blown up via the crate. This must - // have been changed at some point, but the unsetting of the flag remains. - beginloop 0x04 - if_object_in_good_condition OBJ_CRATE, /*goto*/ 0x06 - unset_object_flag_bank0 OBJ_WALL, OBJECTFLAG0_INVINCIBLE - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - if_object_in_good_condition OBJ_WALL, /*goto*/ 0x2d - set_function CHR_SELF, GFUNC_IDLE - - label 0x2d - message CHR_JOANNA, 0x2a44 // "Mission critical equipment destroyed." - set_stage_flag STAGEFLAG_CRATE_DESTROYED - - beginloop 0x08 - if_object_in_good_condition OBJ_WALL, /*goto*/ 0x2d - goto_next 0x2e - - label 0x2d - endloop 0x08 - - label 0x2e - unset_stage_flag STAGEFLAG_CRATE_DESTROYED - message CHR_JOANNA, 0x2a59 // "Alternative entrance to medlabs created." - set_function CHR_SELF, GFUNC_IDLE - - label 0x06 - endloop 0x04 - - endfunction - -/** - * @unused - */ -func041c_unused_041c: - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * @unused - */ -func041d_unused_041d: - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * @unused - */ -func041e_unused_041e: - set_chr_dodge_rating 2, 0x0a - set_accuracy 10 - set_reaction_speed 35 - set_chr_health CHR_SELF, 80 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_HIDDEN - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1016_check_undisguised: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_stage_flag_eq STAGEFLAG_DISGUISE_UNCOVERED, TRUE, /*goto*/ 0x06 - if_chr_dying CHR_LABTECH_HARRYSMATE, /*goto*/ 0x06 - if_chr_dying CHR_LABTECH_KEYCARDGUY, /*goto*/ 0x06 - if_chr_dying CHR_DOORMAN, /*goto*/ 0x06 - if_chr_has_object CHR_P1P2, OBJ_KEYCARD, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - unset_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_DISGUISED - unset_chr_flag_bank2 CHR_VELVET, CHRFLAG2_DISGUISED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func041f_labtech_lights: - set_onshot_function FUNC_LABTECH_LIGHTS - 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 - - label 0x06 - restart_timer - - beginloop 0x54 - if_timer_gt 15, /*goto*/ 0x06 - endloop 0x54 - - 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 - - label 0x2d - if_just_injured CHR_SELF, /*goto*/ 0x06 - goto_next 0x5e - - label 0x06 - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - restart_timer - - beginloop 0x55 - if_self_flag_bankx_eq CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06 - if_num_times_shot_lt 1, /*goto*/ 0x06 - if_timer_lt 20, /*goto*/ 0x06 - say_quip CHR_JOANNA, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00 - say_quip CHR_JOANNA, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00 - set_self_flag_bankx CHRFLAG0_SAID_INJURY_QUIP, BANK_0 - label 0x06 - if_chr_stopped /*goto*/ 0x5e - endloop 0x55 - - label 0x5e - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x53 - call_rng - if_rand_lt 86, /*goto*/ 0x69 - if_rand_lt 172, /*goto*/ 0x6a - animation ANIM_SITTING_DORMANT, -1, -1, 0x1401, CHR_SELF, 2 - goto_next 0x04 - - label 0x69 - animation ANIM_SITTING_DORMANT, -1, -1, 0x1401, CHR_SELF, 2 - goto_next 0x04 - - label 0x6a - animation ANIM_SITTING_DORMANT, -1, -1, 0x1401, CHR_SELF, 2 - goto_next 0x04 - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x53 - if_target_chr_in_sight /*goto*/ 0x03 - if_chr_idle /*goto*/ 0x06 - goto_first 0x5e - - label 0x06 - endloop 0x04 - - // Jo in sight - label 0x03 - object_do_animation 0x025a, 0xff, 0x02ff, 0xff - dprint "TALK 0\n" - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x53 - restart_timer - label 0x08 - try_face_entity 0x0200, 0x0000, /*goto*/ 0x09 - - beginloop 0x09 - if_angle_to_target_chr_lt 10, /*goto*/ 0x06 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - dprint "TALK 1\n" - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_DISGUISE_UNCOVERED, /*goto*/ 0x06 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x2d - label 0x06 - object_do_animation 0x025a, 0xff, 0x02ff, 0xff - speak TARGET_CHR, 0x2a25, 0x8103, CHANNEL_4, COLOR_08_RED // "Who are you?" - goto_next 0x06 - - label 0x2d - speak TARGET_CHR, 0x2a53, 0x127f, CHANNEL_4, COLOR_08_RED // "Should you be in here?" - restart_timer - do_special_animation -1 - - beginloop 0x64 - if_sound_finished CHANNEL_4, /*goto*/ 0x06 - if_chr_weapon_equipped TARGET_CHR, WEAPON_NONE, /*goto*/ 0x2d - if_chr_weapon_equipped TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x2d - label 0x2d - endloop 0x64 - - label 0x06 - stop_chr - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_DISGUISE_UNCOVERED, /*goto*/ 0x06 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x0c - label 0x06 - speak TARGET_CHR, 0x2a52, 0x1286, CHANNEL_4, COLOR_08_RED // "Leave this area now." - restart_timer - do_special_animation -1 - - beginloop 0x66 - if_sound_finished CHANNEL_4, /*goto*/ 0x53 - if_chr_weapon_equipped TARGET_CHR, WEAPON_NONE, /*goto*/ 0x2d - if_chr_weapon_equipped TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x2d - label 0x2d - endloop 0x66 - - label 0x53 - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - - label 0x0a - set_target_chr CHR_JOANNA - restart_timer - try_run_to_target_chr /*goto*/ 0x0b - - beginloop 0x0b - if_timer_gt 60, /*goto*/ 0x06 - if_chr_distance_lt 400, /*goto*/ 0x2d - endloop 0x0b - - label 0x06 - goto_first 0x0a - - label 0x2d - set_self_flag_bankx CHRFLAG0_00000004, BANK_0 - set_return_function CHR_SELF, FUNC_LABTECH_LIGHTS - set_function CHR_SELF, GFUNC_HAND_COMBAT - - label 0x0c - walk_to_pad 0x020d - - beginloop 0x0d - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x2d - if_shot_near_chr 0x00, /*goto*/ 0x0f - label 0x2d - if_chr_weapon_equipped TARGET_CHR, WEAPON_NONE, /*goto*/ 0x2d - if_chr_weapon_equipped TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x2d - goto_next 0x0f - - label 0x2d - if_chr_stopped /*goto*/ 0x06 - endloop 0x0d - - label 0x06 - set_self_flag_bank3 CHRFLAG3_00000080 - restart_timer - try_face_entity 0x0008, 0x0428, /*goto*/ 0x6e - - beginloop 0x6e - if_timer_gt 120, /*goto*/ 0x6f - if_chr_stopped /*goto*/ 0x6f - endloop 0x6e - - label 0x6f - call_rng - if_rand_lt 86, /*goto*/ 0x64 - if_rand_lt 172, /*goto*/ 0x66 - animation ANIM_OPERATE_0221, -1, -1, 0x100a, CHR_SELF, 2 - goto_next 0x0e - - label 0x64 - animation ANIM_OPERATE_0221, -1, -1, 0x100a, CHR_SELF, 2 - goto_next 0x0e - - label 0x66 - animation ANIM_OPERATE_0223, -1, -1, 0x100a, CHR_SELF, 2 - - beginloop 0x0e - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x2d - if_shot_near_chr 0x00, /*goto*/ 0x0f - label 0x2d - if_chr_weapon_equipped TARGET_CHR, WEAPON_NONE, /*goto*/ 0x2d - if_chr_weapon_equipped TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x2d - goto_next 0x0f - - label 0x2d - if_chr_idle /*goto*/ 0x2e - goto_first 0x6f - - label 0x2e - endloop 0x0e - - label 0x0f - speak TARGET_CHR, 0x2a54, 0x8124, CHANNEL_4, COLOR_08_RED // "Holy..." - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - animation ANIM_SURPRISED_0202, -1, -1, 0x140a, CHR_SELF, 2 - restart_timer - - beginloop 0x10 - if_timer_gt 60, /*goto*/ 0x2d - endloop 0x10 - - label 0x2d - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - goto_first 0x53 - - endfunction - -func0421_init_labtech_doors: - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, FUNC_LABTECH_DOORS - endfunction - -func0420_labtech_doors: - set_self_flag_bank3 CHRFLAG3_00000080 - set_onshot_function FUNC_LABTECH_DOORS - 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 - - 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 - - label 0x2d - if_just_injured CHR_SELF, /*goto*/ 0x06 - goto_next 0x5e - - label 0x06 - restart_timer - - beginloop 0x55 - if_self_flag_bankx_eq CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06 - if_num_times_shot_lt 1, /*goto*/ 0x06 - if_timer_lt 20, /*goto*/ 0x06 - say_quip CHR_JOANNA, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00 - say_quip CHR_JOANNA, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00 - set_self_flag_bankx CHRFLAG0_SAID_INJURY_QUIP, BANK_0 - label 0x06 - if_chr_stopped /*goto*/ 0x5e - endloop 0x55 - - label 0x5e - animation ANIM_OPERATE_0221, -1, -1, 0x1001, CHR_SELF, 2 - goto_next 0x6f - - label 0x64 - animation ANIM_OPERATE_0221, -1, -1, 0x1001, CHR_SELF, 2 - goto_next 0x6f - - label 0x66 - animation ANIM_OPERATE_0223, -1, -1, 0x1001, CHR_SELF, 2 - label 0x6f - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - set_target_chr CHR_JOANNA - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_DISGUISE_UNCOVERED, /*goto*/ 0x06 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x2d - label 0x06 - goto_next 0x2e - - label 0x2d - if_chr_weapon_equipped TARGET_CHR, WEAPON_NONE, /*goto*/ 0x2e - if_chr_weapon_equipped TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x2e - if_self_flag_bankx_eq CHRFLAG0_08000000, TRUE, BANK_0, /*goto*/ 0x06 - label 0x2e - if_chr_sees_player /*goto*/ 0x03 - label 0x06 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x03 - if_shot_near_chr 0x00, /*goto*/ 0x03 - if_saw_death 0x00, /*goto*/ 0x03 - if_chr_idle /*goto*/ 0x2d - goto_first 0x5e - - label 0x2d - endloop 0x04 - - label 0x03 - restart_timer - label 0x08 - try_face_entity 0x0200, 0x0000, /*goto*/ 0x09 - - beginloop 0x09 - if_shot_near_chr 0x00, /*goto*/ 0x89 - if_saw_death 0x00, /*goto*/ 0x89 - if_angle_to_target_chr_lt 10, /*goto*/ 0x06 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - dprint "TALK 1\n" - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_DISGUISE_UNCOVERED, /*goto*/ 0x06 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x2d - label 0x06 - dprint "TALK 2\n" - goto_next 0x06 - - label 0x2d - dprint "TALK 3\n" - if_chr_weapon_equipped TARGET_CHR, WEAPON_NONE, /*goto*/ 0x2d - if_chr_weapon_equipped TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x2d - dprint "TALK 4\n" - goto_next 0x06 - - label 0x2d - do_special_animation 3 - say_quip CHR_JOANNA, 0x1d, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00 - set_self_flag_bankx CHRFLAG0_08000000, BANK_0 - - beginloop 0x7b - if_shot_near_chr 0x00, /*goto*/ 0x89 - if_saw_death 0x00, /*goto*/ 0x89 - dprint "TALK 5\n" - if_chr_propsoundcount_zero CHR_SELF, /*goto*/ 0x2d - endloop 0x7b - - label 0x2d - stop_chr - goto_first 0x5e - - label 0x89 - label 0x06 - set_group_alertness 100 - - beginloop 0x83 - if_sound_finished CHANNEL_4, /*goto*/ 0x2d - endloop 0x83 - - label 0x2d - if_self_flag_bankx_eq CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x2e - speak CHR_JOANNA, 0x2a55, 0x1aa6, CHANNEL_4, COLOR_08_RED // "It's a spy!" - goto_next 0x2d - - label 0x2e - speak CHR_JOANNA, 0x2a57, 0x1aa5, CHANNEL_4, COLOR_08_RED // "Imposter!" - label 0x2d - label 0x06 - go_to_target_pad SPEED_JOG - - beginloop 0x0a - if_chr_stopped /*goto*/ 0x06 - endloop 0x0a - - label 0x06 - restart_timer - if_self_flag_bankx_eq CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x2d - try_face_entity 0x0008, 0x03c6, /*goto*/ 0x70 - label 0x2d - try_face_entity 0x0008, 0x03c7, /*goto*/ 0x70 - - beginloop 0x70 - if_timer_gt 30, /*goto*/ 0x2d - endloop 0x70 - - label 0x2d - animation ANIM_OPERATE_0221, -1, 120, 0x1001, CHR_SELF, 2 - restart_timer - - beginloop 0x71 - if_timer_gt 120, /*goto*/ 0x2d - if_timer_lt 60, /*goto*/ 0x2d - if_stage_flag_eq STAGEFLAG_AUTOGUN_ACTIVATED, TRUE, /*goto*/ 0x06 - if_stage_flag_eq STAGEFLAG_AUTOGUN_VIRUS_DONE, TRUE, /*goto*/ 0x2d - set_stage_flag STAGEFLAG_AUTOGUN_ACTIVATED - if_self_flag_bankx_eq CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x75 - assign_sound 0x043a, CHANNEL_7 - control_sound_from_object CHANNEL_7, 0x3c, TRUE - goto_next 0x2d - - label 0x75 - assign_sound 0x043a, CHANNEL_7 - control_sound_from_object CHANNEL_7, 0x3d, TRUE - label 0x2d - endloop 0x71 - - label 0x06 - restart_timer - try_face_entity 0x0008, 0x0107, /*goto*/ 0x73 - - beginloop 0x73 - if_timer_gt 30, /*goto*/ 0x06 - endloop 0x73 - - label 0x06 - dprint "FLAG SET\n" - label 0x10 - animation ANIM_COWER_0229, -1, -1, 0x100a, CHR_SELF, 2 - - beginloop 0x77 - if_chr_stopped /*goto*/ 0x2d - endloop 0x77 - - label 0x2d - goto_first 0x10 - - endfunction - -func1017_activate_autogun: - set_object_flag_bank0 OBJ_AUTOGUN, OBJECTFLAG0_DEACTIVATED - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_AUTOGUN_ACTIVATED, TRUE, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - if_object_in_good_condition OBJ_AUTOGUN, /*goto*/ 0x2d - goto_next 0x06 - - label 0x2d - unset_object_flag_bank0 OBJ_AUTOGUN, OBJECTFLAG0_DEACTIVATED - label 0x06 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0423_init_labtech_records: - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, FUNC_LABTECH_RECORDS - endfunction - -func0422_labtech_records: - set_onshot_function FUNC_LABTECH_RECORDS - 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 - label 0x06 - set_onshot_function GFUNC_IDLE - restart_timer - label 0x54 - yield - if_timer_gt 15, /*goto*/ 0x06 - goto_first 0x54 - - 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 - label 0x2d - if_just_injured CHR_SELF, /*goto*/ 0x06 - goto_next 0x5e - label 0x06 - restart_timer - label 0x55 - yield - if_self_flag_bankx_eq CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06 - if_num_times_shot_lt 1, /*goto*/ 0x06 - if_timer_lt 20, /*goto*/ 0x06 - say_quip CHR_JOANNA, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00 - say_quip CHR_JOANNA, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00 - set_self_flag_bankx CHRFLAG0_SAID_INJURY_QUIP, BANK_0 - label 0x06 - if_chr_stopped /*goto*/ 0x5e - goto_first 0x55 - - label 0x5e - call_rng - if_rand_lt 32, /*goto*/ 0x64 - if_rand_lt 64, /*goto*/ 0x66 - if_rand_lt 96, /*goto*/ 0x68 - if_rand_lt 128, /*goto*/ 0x69 - if_rand_lt 160, /*goto*/ 0x6a - if_rand_lt 192, /*goto*/ 0x6b - if_rand_lt 224, /*goto*/ 0x6c - animation 0x0221, -1, -1, 0x1001, CHR_SELF, 2 - goto_next 0x04 - label 0x64 - animation 0x0221, -1, -1, 0x1001, CHR_SELF, 2 - goto_next 0x04 - label 0x66 - animation 0x0223, -1, -1, 0x1001, CHR_SELF, 2 - goto_next 0x04 - label 0x68 - animation 0x0221, -1, -1, 0x1101, CHR_SELF, 2 - goto_next 0x04 - label 0x69 - animation 0x0221, -1, -1, 0x1101, CHR_SELF, 2 - goto_next 0x04 - label 0x6a - animation 0x0223, -1, -1, 0x1101, CHR_SELF, 2 - goto_next 0x04 - label 0x6b - animation 0x023a, -1, -1, 0x1101, CHR_SELF, 2 - goto_next 0x04 - label 0x6c - animation 0x023b, -1, -1, 0x1101, CHR_SELF, 2 - label 0x04 - yield - if_chr_idle /*goto*/ 0x2d - goto_first 0x5e - - label 0x2d - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x03 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x03 - if_chr_distance_lt 500, /*goto*/ 0x03 - goto_first 0x04 - - label 0x03 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_DISGUISE_UNCOVERED, /*goto*/ 0x06 - if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x2d - goto_next 0x06 - label 0x2d - if_chr_weapon_equipped TARGET_CHR, WEAPON_NONE, /*goto*/ 0x2d - if_chr_weapon_equipped TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x2d - goto_next 0x06 - label 0x2d - goto_first 0x04 - - label 0x2d - restart_timer - label 0x08 - try_face_entity 0x0200, 0x0000, /*goto*/ 0x09 - label 0x09 - yield - if_angle_to_target_chr_lt 10, /*goto*/ 0x06 - if_timer_gt 60, /*goto*/ 0x06 - goto_first 0x09 - - label 0x06 - label 0x06 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x2d - set_group_alertness 100 - speak TARGET_CHR, 0x2a57, 0x1aa5, CHANNEL_4, COLOR_08_RED // "Imposter!" - animation 0x0202, -1, -1, 0x140a, CHR_SELF, 2 - restart_timer - label 0x79 - yield - if_timer_gt 90, /*goto*/ 0x2d - goto_first 0x79 - - label 0x2d - dprint "TALK 1\n" - speak TARGET_CHR, 0x2a56, 0x04ce, CHANNEL_4, COLOR_08_RED // "Warn the others..." - label 0x2d - label 0x06 - run_to_pad 0x0108 - label 0x0a - yield - if_chr_stopped /*goto*/ 0x06 - goto_first 0x0a - - label 0x06 - dprint "FLAG SET\n" - label 0x10 - animation 0x0229, -1, -1, 0x100a, CHR_SELF, 2 - label 0x0e - yield - if_chr_stopped /*goto*/ 0x2d - goto_first 0x0e - - label 0x2d - goto_first 0x10 - - endfunction - -/** - * Chambers are actually lifts. They must be disabled so they don't continuously - * go up and down. - */ -func1018_disable_chambers: - set_object_flag_bank0 OBJ_CHAMBER1, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 OBJ_CHAMBER2, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 OBJ_CHAMBER3, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 OBJ_CHAMBER4, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 OBJ_CHAMBER5, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 OBJ_CHAMBER6, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 OBJ_CHAMBER7, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 OBJ_CHAMBER8, OBJECTFLAG0_DEACTIVATED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -// This macro is here is reduce the amount of duplicate code. However, each -// chamber's code is not entirely consistant, hence a few if-statements. -.macro chamber_logic switch chamber stageflag - // Wait for player to activate chamber switch - beginloop 0x04 - // Likely @bug: Chamber 8 should probably be setting this. - // Co-op player might not be able to activate chamber 8. - .if \chamber != OBJ_CHAMBER8 - consider_coop_for_p1p2_chr CHR_SELF - .endif - if_chr_activated_object CHR_P1P2, \switch, /*goto*/ 0x06 - reloop 0x04 - - label 0x06 - .if \chamber == OBJ_CHAMBER2 - mute_channel CHANNEL_0 - if_stage_flag_eq \stageflag, TRUE, /*goto*/ 0x2d - .else - if_stage_flag_eq \stageflag, TRUE, /*goto*/ 0x2d - mute_channel CHANNEL_0 - .endif - - // Raising chamber - assign_sound 0x042b, CHANNEL_0 - control_sound_from_object CHANNEL_0, \chamber, TRUE - assign_sound 0x043a, CHANNEL_7 - control_sound_from_object CHANNEL_7, \switch, TRUE - - .if \chamber <= OBJ_CHAMBER2 - set_object_image \switch, 0x00, 0x13 - message CHR_P1P2, 0x2a42 // "Containment unit raised up." - .else - message CHR_P1P2, 0x2a42 // "Containment unit raised up." - set_object_image \switch, 0x00, 0x13 - .endif - - unset_object_flag_bank0 \chamber, OBJECTFLAG0_DEACTIVATED - set_stage_flag \stageflag - restart_timer - - beginloop 0x08 - if_timer_gt 200, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - mute_channel CHANNEL_0 - assign_sound 0x042c, CHANNEL_0 - control_sound_from_object CHANNEL_0, \chamber, TRUE - - .if \chamber == OBJ_CHAMBER1 - set_chr_flag_bank2 CHR_ALIEN, CHRFLAG2_00100000 - beginloop 0x64 - chr_move_to_pad CHR_ALIEN, 0x03ca, 0x01, /*goto*/ 0x06 - endloop 0x64 - - label 0x06 - yield - unset_chr_flag_bank3 CHR_ALIEN, CHRFLAG3_HIDDEN - set_function CHR_ALIEN, FUNC_CHECK_LOOKING_AT_ALIEN - label 0x06 - .endif - - set_object_flag_bank0 \chamber, OBJECTFLAG0_DEACTIVATED - reloop 0x04 - - // Lowering chamber - label 0x2d - mute_channel CHANNEL_0 - assign_sound 0x042b, CHANNEL_0 - control_sound_from_object CHANNEL_0, \chamber, TRUE - - .if \chamber == OBJ_CHAMBER1 - set_chr_flag_bank3 CHR_ALIEN, CHRFLAG3_HIDDEN - .endif - - assign_sound 0x043a, CHANNEL_7 - control_sound_from_object CHANNEL_7, \switch, TRUE - - .if \chamber <= OBJ_CHAMBER2 - set_object_image \switch, 0x00, 0x12 - message CHR_P1P2, 0x2a43 // "Containment unit lowered down." - .else - message CHR_P1P2, 0x2a43 // "Containment unit lowered down." - set_object_image \switch, 0x00, 0x12 - .endif - - unset_object_flag_bank0 \chamber, OBJECTFLAG0_DEACTIVATED - unset_stage_flag \stageflag - restart_timer - - beginloop 0x09 - if_timer_gt 200, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - mute_channel CHANNEL_0 - assign_sound 0x042c, CHANNEL_0 - control_sound_from_object CHANNEL_0, \chamber, TRUE - set_object_flag_bank0 \chamber, OBJECTFLAG0_DEACTIVATED - endloop 0x04 -.endm - -func1019_chamber1: - chamber_logic OBJ_CHAMBER1_SWITCH, OBJ_CHAMBER1, STAGEFLAG_CHAMBER1_RAISED - endfunction - -func101a_chamber2: - chamber_logic OBJ_CHAMBER2_SWITCH, OBJ_CHAMBER2, STAGEFLAG_CHAMBER2_RAISED - endfunction - -func101b_chamber3: - chamber_logic OBJ_CHAMBER3_SWITCH, OBJ_CHAMBER3, STAGEFLAG_CHAMBER3_RAISED - endfunction - -func101c_chamber4: - chamber_logic OBJ_CHAMBER4_SWITCH, OBJ_CHAMBER4, STAGEFLAG_CHAMBER4_RAISED - endfunction - -func101d_chamber5: - chamber_logic OBJ_CHAMBER5_SWITCH, OBJ_CHAMBER5, STAGEFLAG_CHAMBER5_RAISED - endfunction - -func101e_chamber6: - chamber_logic OBJ_CHAMBER6_SWITCH, OBJ_CHAMBER6, STAGEFLAG_CHAMBER6_RAISED - endfunction - -func101f_chamber7: - chamber_logic OBJ_CHAMBER7_SWITCH, OBJ_CHAMBER7, STAGEFLAG_CHAMBER7_RAISED - endfunction - -func1020_chamber8: - chamber_logic OBJ_CHAMBER8_SWITCH, OBJ_CHAMBER8, STAGEFLAG_CHAMBER8_RAISED - endfunction - -func0424_alien: - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function CHR_SELF, FUNC_CHECK_LOOKING_AT_ALIEN - endfunction - -/** - * Guy that's hidden near the start. He starts sending out clones once you reach - * the second elevator. - */ -func0425_hiddenguy: - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0426_check_looking_at_alien: - beginloop 0x04 - set_target_chr CHR_JOANNA - if_self_flag_bank3 CHRFLAG3_HIDDEN, /*goto*/ 0x61 - if_chr_distance_lt 300, /*goto*/ 0x64 - goto_next 0x66 - - // Jo is in range - label 0x64 - if_player_looking_at_something_maybe 0x0a, 0x01, 0x00, /*goto*/ 0x2d - - // Jo is too far away or not looking at alien - label 0x66 - set_target_chr CHR_VELVET - if_chr_distance_lt 300, /*goto*/ 0x68 - goto_next 0x69 - - // Velvet is in range - label 0x68 - if_player_looking_at_something_maybe 0x0a, 0x01, 0x00, /*goto*/ 0x2d - - // Both players are too far away - label 0x69 - - // Alien is lowered/hidden - label 0x61 - unset_stage_flag STAGEFLAG_LOOKING_AT_CHAMBER - reloop 0x04 - - label 0x2d - set_stage_flag STAGEFLAG_LOOKING_AT_CHAMBER - endloop 0x04 - - endfunction - -func1021_xray_scanning: - beginloop 0x04 - // @bug? In co-op, the player wearing the xray may be the player who is - // not looking at the alien. - consider_coop_for_p1p2_chr CHR_SELF - if_chr_has_weapon_equipped CHR_P1P2, WEAPON_XRAYSCANNER, /*goto*/ 0x06 - reloop 0x04 - - label 0x06 - if_stage_flag_eq STAGEFLAG_LOOKING_AT_CHAMBER, TRUE, /*goto*/ 0x06 - reloop 0x04 - - label 0x06 - message CHR_P1P2, 0x2a4a // "Scanner target acquired." - restart_timer - - beginloop 0x08 - if_timer_gt 240, /*goto*/ 0x06 - if_stage_flag_eq STAGEFLAG_LOOKING_AT_CHAMBER, FALSE, /*goto*/ 0x2d - endloop 0x08 - - label 0x06 - message CHR_P1P2, 0x2a4b // "Target ID confirmed - XT origin." - set_stage_flag STAGEFLAG_XRAY_DONE - set_function CHR_SELF, GFUNC_IDLE - - label 0x2d - message CHR_P1P2, 0x2a4c // "Scanner lock lost." - endloop 0x04 - - endfunction - -/** - * Waits until the player has been in the xray area for over 10 seconds, then - * spawns a dataDyne shock trooper. - * - * Rare may have decided that it was too challenging to have a guard attack you - * while xraying, hence removed the guard but left this function. - */ -unregistered_function1: - restart_timer - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_timer_gt 600, /*goto*/ 0x08 - pause_timer - if_chr_in_room CHR_P1P2, 0x00, 0x010d, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0102, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0103, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0104, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0105, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0106, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0107, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0108, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0109, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x010c, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x00fa, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x00fb, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x00fc, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x00fd, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x00fe, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x00ff, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0100, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0101, /*goto*/ 0x06 - reloop 0x04 - - label 0x06 - resume_timer - reloop 0x04 - - // 10 seconds passed - label 0x08 - if_chr_death_animation_finished 0x46, /*goto*/ 0x2d - reloop 0x04 - - label 0x2d - try_spawn_chr BODY_DDSHOCK, HEAD_DDSHOCK, 0x0101, 0x0427, 0x00000200, /*goto*/ 0x06 - goto_next 0x2d - - label 0x06 - restart_timer - reloop 0x04 - - label 0x2d - endloop 0x04 - - endfunction - -/** - * Assigned by the above, which is an unregistered function. - * - * Makes the shock trooper run to one of two xray rooms, depending on which one - * you're in. - * - * @unused - */ -func0427_shock_clone: - stop_chr - set_chr_id 0x46 - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - set_self_flag_bankx CHRFLAG1_00080000, BANK_1 - try_draw_weapon MODEL_CHRSUPERDRAGON, WEAPON_SUPERDRAGON, 0x10000000, /*goto*/ 0x04 - - label 0x04 - yield - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x010d, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0102, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0103, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0104, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0105, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0106, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0107, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0108, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0109, /*goto*/ 0x06 - run_to_pad 0x0184 - set_function CHR_SELF, GFUNC_UNALERTED - - label 0x06 - run_to_pad 0x013b - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func1023_setup_door_locks: - if_difficulty_lt DIFF_SA, /*goto*/ 0x06 - if_difficulty_lt DIFF_PA, /*goto*/ 0x09 - - // PA - set_function CHR_SELF, GFUNC_IDLE - - // Agent - lock big door at bottom of ramp near showers - label 0x06 - lock_door 0x44, 0x80 - lock_door 0x45, 0x80 - set_function CHR_SELF, GFUNC_IDLE - - // SA - unlock the small shower doors - label 0x09 - unlock_door 0x2b, 0x80 - unlock_door 0x2c, 0x80 - unlock_door 0x2d, 0x80 - unlock_door 0x2e, 0x80 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0c01_outro: - set_invincible CHR_JOANNA - camera_movement 0x0198 - set_music_track MUSIC_RESCUE_OUTRO - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0xf1, CHRFLAG3_HIDDEN - set_function CHR_P1P2, GFUNC_IDLE - set_function CHR_BIOTECH1, GFUNC_IDLE - set_function CHR_BIOTECH2, GFUNC_IDLE - set_invincible CHR_JOANNA - - set_chr_flag_bank3 CHR_P1P2, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_P1P2, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_P1P2, CHRFLAG2_00020000 - animation 0x0199, -1, -1, 0x0600, CHR_P1P2, 4 - - set_chr_flag_bank3 CHR_BIOTECH1, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_BIOTECH1, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_BIOTECH1, CHRFLAG2_00020000 - animation 0x019a, -1, -1, 0x0600, CHR_BIOTECH1, 4 - - set_chr_flag_bank3 CHR_BIOTECH2, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_BIOTECH2, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_BIOTECH2, CHRFLAG2_00020000 - animation 0x019b, -1, -1, 0x0600, CHR_BIOTECH2, 4 - - set_object_flag_bank1 0x2f, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x2f, OBJECTFLAG2_00000010 - object_do_animation 0x01a1, 0x2f, 0x04ff, 0xff - show_nonessential_chrs FALSE - restart_timer - set_cutscene_weapon CHR_P1P2, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_P1P2, WEAPON_FALCON2_SCOPE, WEAPON_NONE - - .macro wait_until time loopid - beginloop \loopid - if_controller_button_pressed /*goto*/ 0x8b - if_timer_gt \time, /*goto*/ 0x06 - endloop \loopid - label 0x06 - .endm - - wait_until 315, 0x73 - open_door 0x30 - open_door 0x31 - - wait_until 344, 0x64 - play_sound 0x0161, CHANNEL_10 - - wait_until 380, 0x66 - speak CHR_P1P2, 0x2a64, 0x7433, CHANNEL_7, COLOR_09_BLUE // "Put your hands up and step away from the alien." - - wait_until 390, 0x68 - play_sound 0x0162, CHANNEL_10 - - wait_until 460, 0x69 - play_sound 0x0163, CHANNEL_10 - - wait_until 500, 0x74 - - wait_until 514, 0x6a - play_sound 0x0164, CHANNEL_10 - - wait_until 580, 0x6c - speak CHR_P1P2, 0x2a66, 0x7435, CHANNEL_7, COLOR_09_BLUE // "Don't make me tell you again, Doctor. And turn tha..." - - wait_until 588, 0x6b - play_sound 0x0161, CHANNEL_10 - - wait_until 606, 0x6d - play_sound 0x0163, CHANNEL_10 - - wait_until 612, 0x6e - play_sound 0x0164, CHANNEL_10 - - wait_until 618, 0x6f - play_sound 0x0162, CHANNEL_10 - - wait_until 656, 0x70 - play_sound 0x0163, CHANNEL_10 - - wait_until 720, 0x71 - play_sound 0x0164, CHANNEL_10 - - wait_until 786, 0x72 - play_sound 0x0163, CHANNEL_10 - - beginloop 0x08 - if_camera_animating /*goto*/ 0x2d - goto_next 0x8b - - label 0x2d - if_controller_button_pressed /*goto*/ 0x8b - label 0x2d - endloop 0x08 - - label 0x8b - mute_channel CHANNEL_10 - restart_default_music - reset_ambience - end_level - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1002_intro: - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_music_track MUSIC_RESCUE_INTRO - camera_movement 0x01c6 - cmd0175 60 - - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x01c8, -1, -1, 0x0600, CHR_JOANNA, 4 - - set_chr_flag_bank3 CHR_JONATHAN, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_JONATHAN, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_JONATHAN, CHRFLAG2_00020000 - animation 0x01c7, -1, -1, 0x0600, CHR_JONATHAN, 4 - - set_chr_flag_bank3 CHR_INTRO_DEAD_GUARD, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_INTRO_DEAD_GUARD, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_INTRO_DEAD_GUARD, CHRFLAG2_00020000 - animation 0x01c9, -1, -1, 0x0600, CHR_INTRO_DEAD_GUARD, 4 - - set_object_flag_bank1 OBJ_CRATE, OBJECTFLAG1_04000000 - set_object_flag_bank2 OBJ_CRATE, OBJECTFLAG2_00000010 - object_do_animation 0x01ca, OBJ_CRATE, 0x04ff, 0xff - - restart_timer - fade_to_color 0x000000ff, 0 - fade_to_color 0x00000000, 90 - set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_JOANNA, WEAPON_FALCON2_SILENCER, WEAPON_NONE - - wait_until 62, 0x67 - play_sound 0x0161, CHANNEL_10 - - wait_until 90, 0x64 - speak CHR_JOANNA, 0x2a5a, 0x7429, CHANNEL_5, COLOR_03_RED // "The problem you have is that there is no way to sn..." - - wait_until 108, 0x66 - play_sound 0x0162, CHANNEL_10 - - wait_until 686, 0x68 - play_sound 0x0163, CHANNEL_10 - - wait_until 738, 0x69 - play_sound 0x0164, CHANNEL_10 - - wait_until 782, 0x6a - play_sound 0x0161, CHANNEL_10 - - wait_until 810, 0x6b - speak CHR_JOANNA, 0x2a5b, 0x742a, CHANNEL_5, COLOR_09_BLUE // "Doesn't sound like a problem to me. Where are thes..." - - wait_until 1104, 0x6c - speak CHR_JOANNA, 0x2a5c, 0x742b, CHANNEL_5, COLOR_03_RED // "In that crate." - - wait_until 1186, 0x6d - play_sound 0x0162, CHANNEL_10 - - wait_until 1222, 0x6e - play_sound 0x0163, CHANNEL_10 - - wait_until 1246, 0x6f - play_sound 0x0163, CHANNEL_10 - - wait_until 1316, 0x70 - play_sound 0x01dc, CHANNEL_10 - - wait_until 1346, 0x71 - assign_sound 0x8169, CHANNEL_1 - control_sound_from_object CHANNEL_1, OBJ_CRATE, TRUE - - wait_until 1390, 0x72 - speak CHR_JOANNA, 0x2a5d, 0x742c, CHANNEL_5, COLOR_09_BLUE // "Cute. Very cute." - - wait_until 1440, 0x73 - play_sound 0x0161, CHANNEL_10 - - wait_until 1492, 0x74 - play_sound 0x0162, CHANNEL_10 - - wait_until 1584, 0x75 - play_sound 0x0163, CHANNEL_10 - - wait_until 1597, 0x76 - speak CHR_JOANNA, 0x2a5e, 0x742d, CHANNEL_5, COLOR_03_RED // "By the way, the stores are crawling with guards. I..." - - wait_until 1628, 0x77 - play_sound 0x0161, CHANNEL_10 - - wait_until 1658, 0x78 - play_sound 0x0162, CHANNEL_10 - - wait_until 1724, 0x79 - play_sound 0x0163, CHANNEL_10 - - wait_until 1792, 0x7a - play_sound 0x0164, CHANNEL_10 - - wait_until 1866, 0x7b - play_sound 0x0163, CHANNEL_10 - - wait_until 1906, 0x7c - play_sound 0x0161, CHANNEL_10 - - wait_until 2024, 0x7d - play_sound 0x0162, CHANNEL_10 - - wait_until 2017, 0x7e - speak CHR_JOANNA, 0x2a5f, 0x742e, CHANNEL_5, COLOR_09_BLUE // "Certainly. Any other pearls of wisdom?" - - wait_until 2275, 0x7f - speak CHR_JOANNA, 0x2a60, 0x742f, CHANNEL_5, COLOR_03_RED // "That crate..." - - wait_until 2338, 0x80 - speak CHR_JOANNA, 0x2a61, 0x7430, CHANNEL_5, COLOR_09_BLUE // "Yes?" - - wait_until 2409, 0x81 - speak CHR_JOANNA, 0x2a62, 0x7431, CHANNEL_5, COLOR_03_RED // "It really doesn't like being shot." - - wait_until 2440, 0x65 - open_door 0x33 - open_door 0x34 - - wait_until 2648, 0x82 - play_sound 0x0172, CHANNEL_10 - - wait_until 2680, 0x83 - speak CHR_JOANNA, 0x2a63, 0x7432, CHANNEL_5, COLOR_09_BLUE // "Great. Now, if I can just fight the urge to report..." - - wait_until 2690, 0x84 - play_sound 0x0173, CHANNEL_10 - - wait_until 2986, 0x85 - play_sound 0x0161, CHANNEL_10 - - wait_until 3048, 0x86 - play_sound 0x0162, CHANNEL_10 - - wait_until 3104, 0x87 - play_sound 0x0163, CHANNEL_10 - - wait_until 3152, 0x88 - play_sound 0x0164, CHANNEL_10 - - beginloop 0x08 - if_camera_animating /*goto*/ 0x2d - goto_next 0x8b - - label 0x2d - if_controller_button_pressed /*goto*/ 0x8b - label 0x2d - endloop 0x08 - - label 0x8b - mute_channel CHANNEL_10 - mute_channel CHANNEL_5 - mute_channel CHANNEL_1 - assign_sound 0x8169, CHANNEL_1 - control_sound_from_object CHANNEL_1, OBJ_CRATE, TRUE - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x01c8, -2, -1, 0x0600, CHR_JOANNA, 2 - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_JONATHAN, CHRFLAG3_UNPLAYABLE - remove_chr CHR_JONATHAN - unset_chr_flag_bank3 CHR_INTRO_DEAD_GUARD, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank3 CHR_INTRO_DEAD_GUARD, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank2 CHR_INTRO_DEAD_GUARD, CHRFLAG2_00020000 - animation 0x01c9, -2, -1, 0x0600, CHR_INTRO_DEAD_GUARD, 2 - mute_channel CHANNEL_10 - unset_object_flag_bank1 OBJ_CRATE, OBJECTFLAG1_04000000 - set_object_flag_bank2 OBJ_CRATE, OBJECTFLAG2_00000010 - object_do_animation 0x01ca, OBJ_CRATE, 0x01ff, 0xfe - close_door 0x33 - close_door 0x34 - restart_default_music - reset_ambience - enter_firstperson - yield - set_chr_flag_bank3 CHR_INTRO_DEAD_GUARD, CHRFLAG3_00010000 - animation 0x01c9, 2, 3, 0x0600, CHR_INTRO_DEAD_GUARD, 2 - set_function CHR_INTRO_DEAD_GUARD, GFUNC_IDLE - yield - kill CHR_INTRO_DEAD_GUARD - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1024_noop: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_LIGHT_VIRUS_DONE, TRUE, /*goto*/ 0x03 - endloop 0x04 - - label 0x03 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Disable chrs, wait until player has keycard, then activate them. - * Most likely guards in the final corridor. - */ -func1025_toggle_guards: - set_chr_flag_bank3 0x33, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0x34, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0x33, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 0x34, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 0x37, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0x2c, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0x2d, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0x2e, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0x37, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 0x2c, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 0x2d, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 0x2e, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 0x2f, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0x30, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0x31, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0x32, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0x2f, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 0x30, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 0x31, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 0x32, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - - beginloop 0x08 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_has_object CHR_P1P2, OBJ_KEYCARD, /*goto*/ 0x2d - endloop 0x08 - - label 0x2d - unset_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_DISGUISED - unset_chr_flag_bank3 0x33, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x34, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x33, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x34, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x33, FUNC_BIOTECH_GUARD_ALERTED - set_function 0x34, FUNC_BIOTECH_GUARD_ALERTED - unset_chr_flag_bank3 0x37, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x2c, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x2d, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x2e, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x37, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x2c, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x2d, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x2e, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x37, FUNC_SUPERDRAGON_GUARD - set_function 0x2c, FUNC_SUPERDRAGON_GUARD - set_function 0x2d, FUNC_SUPERDRAGON_GUARD - set_function 0x2e, FUNC_SUPERDRAGON_GUARD - unset_chr_flag_bank3 0x2f, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x30, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x31, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x32, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x2f, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x30, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x31, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x32, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x2f, FUNC_BIOTECH_GUARD - set_function 0x30, FUNC_SUPERDRAGON_GUARD - set_function 0x31, FUNC_SUPERDRAGON_GUARD - set_function 0x32, FUNC_SUPERDRAGON_GUARD - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0429_spawn_while_xraying: - set_chr_dodge_rating 2, 0x0a - set_accuracy 8 - set_reaction_speed 35 - set_chr_health CHR_SELF, 50 - set_armor 0 - set_recovery_speed 35 - set_shield 0 - 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 - restart_timer - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_flag_bank2 CHR_P1P2, CHRFLAG2_DISGUISED, /*goto*/ 0x0d - if_timer_gt 1800, /*goto*/ 0x2d - reloop 0x04 - - // 30 seconds passed and not disguised - label 0x2d - consider_coop_for_p1p2_chr CHR_SELF - if_chr_flag_bank2 CHR_P1P2, CHRFLAG2_DISGUISED, /*goto*/ 0x0d - - // Xray area - if_chr_in_room CHR_P1P2, 0x00, 0x010d, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0102, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0103, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0104, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0105, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0106, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0107, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0108, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0109, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x010c, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x00fa, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x00fb, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x00fc, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x00fd, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x00fe, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x00ff, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0100, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0101, /*goto*/ 0x06 - reloop 0x04 - - label 0x06 - dprint "OBJECTIVE DONE\n" - label 0x4e - if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x4e - reloop 0x04 - - label 0x4e - try_spawn_clone2 CHR_SELF, 0x042a, 0x00000000, /*goto*/ 0x2d - label 0x2d - restart_timer - yield - endloop 0x04 - - label 0x0d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func042a_init_xray_clone: - set_self_flag_bankx CHRFLAG1_00080000, BANK_1 - label 0x04 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - try_inherit_properties 0x47, /*goto*/ 0x06 - label 0x06 - set_function CHR_SELF, 0x042b - endfunction - -func042b_xray_clone: - set_target_chr CHR_JOANNA - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -func042c_dragon_guard: - set_chr_dodge_rating 2, 0x0a - set_accuracy 8 - set_reaction_speed 35 - set_chr_health CHR_SELF, 50 - set_armor 0 - set_recovery_speed 35 - set_shield 0 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func042d_superdragon_guard: - set_chr_dodge_rating 2, 0x0a - set_accuracy 10 - set_reaction_speed 35 - set_chr_health CHR_SELF, 80 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func042e_biotech_guard: - set_chr_dodge_rating 2, 0x0a - set_accuracy 18 - set_reaction_speed 35 - set_chr_health CHR_SELF, 80 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func042e_biotech_guard_alerted: - set_chr_dodge_rating 2, 0x0a - set_accuracy 18 - set_reaction_speed 35 - set_chr_health CHR_SELF, 80 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_target_chr CHR_JOANNA - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -func142d_start_lifts: - activate_lift 1, 0x35 - activate_lift 4, 0x38 - activate_lift 5, 0x39 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1027_check_disguise_worn: - beginloop 0x04 - if_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_DISGUISED, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - message CHR_JOANNA, 0x2a4d // "Disguise has been worn." - set_return_function 0x00, 0x0401 - set_return_function 0x01, 0x0402 - set_return_function 0x02, 0x0403 - set_return_function 0x03, 0x0404 - set_return_function 0x04, 0x0405 - set_return_function 0x05, FUNC_DRAGON_GUARD - set_return_function 0x06, FUNC_DRAGON_GUARD - set_return_function 0x07, FUNC_DRAGON_GUARD - set_return_function 0x08, FUNC_DRAGON_GUARD - set_return_function 0x09, FUNC_DRAGON_GUARD - set_return_function 0x0a, FUNC_DRAGON_GUARD - set_return_function 0x0b, FUNC_DRAGON_GUARD - set_return_function 0x0c, 0x0406 - set_return_function 0x0d, 0x0406 - set_return_function 0x0e, 0x0406 - set_return_function 0x0f, 0x0407 - set_return_function 0x10, 0x0408 - set_return_function 0x11, FUNC_DRAGON_GUARD - set_return_function 0x27, FUNC_DRAGON_GUARD - set_return_function 0x28, FUNC_DRAGON_GUARD - set_return_function 0x12, FUNC_DRAGON_GUARD - set_return_function 0x13, FUNC_DRAGON_GUARD - set_return_function 0x14, 0x0409 - set_return_function 0x15, 0x040a - set_return_function 0x16, FUNC_DRAGON_GUARD - set_return_function 0x17, FUNC_DRAGON_GUARD - set_return_function 0x18, FUNC_DRAGON_GUARD - set_return_function 0x1e, FUNC_DRAGON_GUARD - set_return_function 0x19, FUNC_DRAGON_GUARD - set_return_function 0x1a, FUNC_DRAGON_GUARD - set_return_function 0x1d, FUNC_DRAGON_GUARD - set_return_function 0x1b, 0x040b - set_return_function 0x1c, 0x040c - set_return_function 0x1f, FUNC_DRAGON_GUARD - set_return_function 0x20, FUNC_DRAGON_GUARD - set_return_function 0x21, FUNC_DRAGON_GUARD - set_return_function 0x22, FUNC_DRAGON_GUARD - set_function 0x00, FUNC_BECOME_UNAWARE - set_function 0x01, FUNC_BECOME_UNAWARE - set_function 0x02, FUNC_BECOME_UNAWARE - set_function 0x03, FUNC_BECOME_UNAWARE - set_function 0x04, FUNC_BECOME_UNAWARE - set_function 0x05, FUNC_BECOME_UNAWARE - set_function 0x06, FUNC_BECOME_UNAWARE - set_function 0x07, FUNC_BECOME_UNAWARE - set_function 0x08, FUNC_BECOME_UNAWARE - set_function 0x09, FUNC_BECOME_UNAWARE - set_function 0x0a, FUNC_BECOME_UNAWARE - set_function 0x0b, FUNC_BECOME_UNAWARE - set_function 0x0c, FUNC_BECOME_UNAWARE - set_function 0x0d, FUNC_BECOME_UNAWARE - set_function 0x0e, FUNC_BECOME_UNAWARE - set_function 0x0f, FUNC_BECOME_UNAWARE - set_function 0x10, FUNC_BECOME_UNAWARE - set_function 0x11, FUNC_BECOME_UNAWARE - set_function 0x27, FUNC_BECOME_UNAWARE - set_function 0x28, FUNC_BECOME_UNAWARE - set_function 0x12, FUNC_BECOME_UNAWARE - set_function 0x13, FUNC_BECOME_UNAWARE - set_function 0x14, FUNC_BECOME_UNAWARE - set_function 0x15, FUNC_BECOME_UNAWARE - set_function 0x16, FUNC_BECOME_UNAWARE - set_function 0x17, FUNC_BECOME_UNAWARE - set_function 0x18, FUNC_BECOME_UNAWARE - set_function 0x1e, FUNC_BECOME_UNAWARE - set_function 0x19, FUNC_BECOME_UNAWARE - set_function 0x1a, FUNC_BECOME_UNAWARE - set_function 0x1d, FUNC_BECOME_UNAWARE - set_function 0x1b, FUNC_BECOME_UNAWARE - set_function 0x1c, FUNC_BECOME_UNAWARE - set_function 0x1f, FUNC_BECOME_UNAWARE - set_function 0x20, FUNC_BECOME_UNAWARE - set_function 0x21, FUNC_BECOME_UNAWARE - set_function 0x22, FUNC_BECOME_UNAWARE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1028_toggle_mechanic: - if_eeprom_flag_is_set EEPROMFLAG_RESCUE_MECHANIC_DEAD, /*goto*/ 0x06 - dprint "KEEP MECH\n" - set_function CHR_SELF, GFUNC_IDLE - - label 0x06 - dprint "DELETE MECH\n" - hide_chr CHR_MECHANIC - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1029_msg_showers: - beginloop 0x04 - if_chr_in_room CHR_JOANNA, 0x00, 0x00a9, /*goto*/ 0x2d - if_chr_in_room CHR_JOANNA, 0x00, 0x00aa, /*goto*/ 0x2d - if_chr_in_room CHR_JOANNA, 0x00, 0x00a9, /*goto*/ 0x2d - if_chr_in_room CHR_JOANNA, 0x00, 0x00bc, /*goto*/ 0x2d - if_chr_in_room CHR_JOANNA, 0x00, 0x009b, /*goto*/ 0x2d - if_chr_in_room CHR_JOANNA, 0x00, 0x00b5, /*goto*/ 0x2d - if_chr_in_room CHR_JOANNA, 0x00, 0x00ad, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - speak CHR_JOANNA, 0x2a4e, 0x73bc, CHANNEL_6, COLOR_09_BLUE // "The showers... Now, if I can convince someone to p..." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func102a_msg_temperaturedropping: - restart_timer - - beginloop 0x04 - if_chr_in_room CHR_JOANNA, 0x00, 0x010a, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - speak CHR_JOANNA, 0x2a4f, 0x8180, CHANNEL_6, COLOR_09_BLUE // "The temperature's dropping... You must be close to..." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func102b_msg_airrecycled: - beginloop 0x04 - if_chr_in_room CHR_JOANNA, 0x00, 0x007f, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - speak CHR_JOANNA, 0x2a50, 0x73be, CHANNEL_6, COLOR_09_BLUE // "The air's heavily recycled around here - must be n..." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func102c_msg_hurry: - beginloop 0x04 - if_chr_in_room CHR_JOANNA, 0x00, 0x0093, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - speak CHR_JOANNA, 0x2a51, 0x8181, CHANNEL_6, COLOR_09_BLUE // "There he is, Jo! Hurry or you'll be too late!" - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * This function is run on many guards when Jo puts on the disguise. - */ -func0416_become_unaware: - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_00002000 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x0f - if_chr_dying CHR_SELF, /*goto*/ 0x0f - if_chr_unloaded CHR_SELF, /*goto*/ 0x0f - if_chr_sees_player /*goto*/ 0x2d - set_alertness 0 - return - - label 0x2d - set_target_chr CHR_JOANNA - set_function CHR_SELF, GFUNC_ALERTED - - // Dying/dead - label 0x0f - set_function CHR_SELF, GFUNC_IDLE - endfunction - -unregistered_function2: - set_object_flag_bank0 OBJ_WALL, OBJECTFLAG0_INVINCIBLE - - beginloop 0x04 - if_object_in_good_condition OBJ_CRATE, /*goto*/ 0x2d - goto_next 0x06 - - label 0x2d - endloop 0x04 - - // Crate destroyed - label 0x06 - unset_object_flag_bank0 OBJ_WALL, OBJECTFLAG0_INVINCIBLE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func102f_shuffle_disguise: - yield - yield - if_difficulty_lt DIFF_PA, /*goto*/ 0x0c - call_rng - if_rand_lt 51, /*goto*/ 0x08 - if_rand_lt 102, /*goto*/ 0x09 - if_rand_lt 153, /*goto*/ 0x0a - if_rand_lt 204, /*goto*/ 0x0b - - // Rand >= 204 (52 out of 256 chance) - hide_object OBJ_LABCOAT1 - hide_object OBJ_LABCOAT2 - hide_object OBJ_LABCOAT3 - hide_object OBJ_LABCOAT4 - set_function CHR_SELF, GFUNC_IDLE - - // Rand < 51 (51 out of 256 chance) - label 0x08 - hide_object OBJ_LABCOAT2 - hide_object OBJ_LABCOAT3 - hide_object OBJ_LABCOAT4 - hide_object OBJ_LABCOAT5 - set_function CHR_SELF, GFUNC_IDLE - - // Rand >= 51 and < 102 (51 out of 256 chance) - label 0x09 - hide_object OBJ_LABCOAT1 - hide_object OBJ_LABCOAT3 - hide_object OBJ_LABCOAT4 - hide_object OBJ_LABCOAT5 - set_function CHR_SELF, GFUNC_IDLE - - // Rand >= 102 and < 153 (51 out of 256 chance) - label 0x0a - hide_object OBJ_LABCOAT1 - hide_object OBJ_LABCOAT2 - hide_object OBJ_LABCOAT4 - hide_object OBJ_LABCOAT5 - set_function CHR_SELF, GFUNC_IDLE - - // Rand >= 153 and < 204 (51 out of 256 chance) - label 0x0b - hide_object OBJ_LABCOAT1 - hide_object OBJ_LABCOAT2 - hide_object OBJ_LABCOAT3 - hide_object OBJ_LABCOAT5 - set_function CHR_SELF, GFUNC_IDLE - - // A and SA - label 0x0c - give_object_to_chr OBJ_LABCOAT1, CHR_LABTECH_SHOWERS - hide_object OBJ_LABCOAT2 - hide_object OBJ_LABCOAT3 - hide_object OBJ_LABCOAT4 - hide_object OBJ_LABCOAT5 - set_function CHR_SELF, GFUNC_IDLE - - // Unreachable - label 0x0d - hide_object OBJ_LABCOAT1 - hide_object OBJ_LABCOAT2 - hide_object OBJ_LABCOAT4 - hide_object OBJ_LABCOAT5 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1030_lift_door_sounds: - beginloop 0x5e - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, 0x46, /*goto*/ 0x2d - if_chr_activated_object CHR_P1P2, 0x47, /*goto*/ 0x2d - if_chr_activated_object CHR_P1P2, 0x48, /*goto*/ 0x2d - if_chr_activated_object CHR_P1P2, 0x49, /*goto*/ 0x2d - reloop 0x5e - - label 0x2d - play_sound 0x81b0, -1 - restart_timer - - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - endloop 0x5e - - endfunction - -func1031_toggle_doorman: - yield - set_chr_flag_bank3 CHR_DOORMAN, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_DOORMAN, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - - beginloop 0x5e - label 0x2d - if_difficulty_lt DIFF_PA, /*goto*/ 0x2d - if_objective_complete 0, /*goto*/ 0x2d - goto_first 0x5e - - label 0x2d - if_difficulty_lt DIFF_SA, /*goto*/ 0x2d - if_objective_complete 1, /*goto*/ 0x2d - endloop 0x5e - - label 0x2d - unset_chr_flag_bank3 CHR_DOORMAN, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_DOORMAN, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1032_count_last_room_guards: - beginloop 0x04 - set_var_a 0 - if_chr_dying 0x23, /*goto*/ 0x2d - if_chr_death_animation_finished 0x23, /*goto*/ 0x2d - if_chr_unloaded 0x23, /*goto*/ 0x2d - goto_next 0x06 - - label 0x2d - add_var_a 1 - label 0x06 - if_chr_dying 0x24, /*goto*/ 0x2d - if_chr_death_animation_finished 0x24, /*goto*/ 0x2d - if_chr_unloaded 0x24, /*goto*/ 0x2d - goto_next 0x06 - - label 0x2d - add_var_a 1 - label 0x06 - if_chr_dying 0x25, /*goto*/ 0x2d - if_chr_death_animation_finished 0x25, /*goto*/ 0x2d - if_chr_unloaded 0x25, /*goto*/ 0x2d - goto_next 0x06 - - label 0x2d - add_var_a 1 - label 0x06 - if_chr_dying 0x26, /*goto*/ 0x2d - if_chr_death_animation_finished 0x26, /*goto*/ 0x2d - if_chr_unloaded 0x26, /*goto*/ 0x2d - goto_next 0x06 - - label 0x2d - add_var_a 1 - label 0x06 - if_var_a_lt 3, /*goto*/ 0x2d - set_stage_flag STAGEFLAG_ONE_KEYCARD_GUARD_REMAINING - set_function CHR_SELF, GFUNC_IDLE - - label 0x2d - endloop 0x04 - - endfunction - -/** - * Not really sure what the point of this is. - */ -func1033_update_buddy_placed_flag: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_flag_bank2 CHR_P1P2, CHRFLAG2_BUDDY_PLACED, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - restart_timer - - beginloop 0x64 - if_timer_gt 600, /*goto*/ 0x2d - endloop 0x64 - - label 0x2d - unset_chr_flag_bank2 CHR_P1P2, CHRFLAG2_BUDDY_PLACED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1034_setup_rtracker: - yield - set_object_flag_bank2 OBJ_FALCON2SILENCED1, OBJECTFLAG2_RTRACKED_BLUE - set_object_flag_bank2 OBJ_FALCON2SILENCED2, OBJECTFLAG2_RTRACKED_BLUE - set_object_flag_bank2 OBJ_PHOENIX, OBJECTFLAG2_RTRACKED_BLUE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1435_setup_lighting: - yield - set_lighting 0x007c, 0x05, 0x01 - set_lighting 0x007d, 0x05, 0x01 - set_lighting 0x007e, 0x05, 0x01 - set_lighting 0x007f, 0x05, 0x01 - set_lighting 0x0080, 0x05, 0x01 - set_lighting 0x0081, 0x05, 0x01 - set_lighting 0x0082, 0x05, 0x01 - set_lighting 0x0083, 0x05, 0x01 - set_lighting 0x0084, 0x05, 0x01 - set_lighting 0x0085, 0x05, 0x01 - set_lighting 0x0086, 0x05, 0x01 - set_lighting 0x0087, 0x05, 0x01 - set_lighting 0x0088, 0x05, 0x01 - set_lighting 0x0089, 0x05, 0x01 - set_lighting 0x008a, 0x05, 0x01 - set_lighting 0x008b, 0x05, 0x01 - set_lighting 0x008c, 0x05, 0x01 - set_lighting 0x008d, 0x05, 0x01 - set_lighting 0x008e, 0x05, 0x01 - set_lighting 0x008f, 0x05, 0x01 - set_lighting 0x0090, 0x05, 0x01 - set_lighting 0x0091, 0x05, 0x01 - set_lighting 0x0092, 0x05, 0x01 - set_lighting 0x0093, 0x05, 0x01 - set_lighting 0x0094, 0x05, 0x01 - set_lighting 0x0095, 0x05, 0x01 - set_lighting 0x0096, 0x05, 0x01 - set_lighting 0x0097, 0x05, 0x01 - set_lighting 0x0098, 0x05, 0x01 - set_lighting 0x0099, 0x05, 0x01 - set_lighting 0x009a, 0x05, 0x01 - set_lighting 0x009b, 0x05, 0x01 - set_lighting 0x00a5, 0x05, 0x01 - set_lighting 0x00a6, 0x05, 0x01 - set_lighting 0x00a7, 0x05, 0x01 - set_lighting 0x00a8, 0x05, 0x01 - set_lighting 0x00a9, 0x05, 0x01 - set_lighting 0x00aa, 0x05, 0x01 - set_lighting 0x00ab, 0x05, 0x01 - set_lighting 0x00ac, 0x05, 0x01 - set_lighting 0x00ad, 0x05, 0x01 - set_lighting 0x00ae, 0x05, 0x01 - set_lighting 0x00af, 0x05, 0x01 - set_lighting 0x00b0, 0x05, 0x01 - set_lighting 0x00b1, 0x05, 0x01 - set_lighting 0x00b3, 0x05, 0x01 - set_lighting 0x00b4, 0x05, 0x01 - set_lighting 0x00b5, 0x05, 0x01 - set_lighting 0x00b6, 0x05, 0x01 - set_lighting 0x00b7, 0x05, 0x01 - set_lighting 0x00b8, 0x05, 0x01 - set_lighting 0x00b9, 0x05, 0x01 - set_lighting 0x00ba, 0x05, 0x01 - set_lighting 0x00bb, 0x05, 0x01 - set_lighting 0x00bc, 0x05, 0x01 - set_lighting 0x00be, 0x05, 0x01 - set_lighting 0x00bf, 0x05, 0x01 - set_lighting 0x00c0, 0x05, 0x01 - set_lighting 0x00c1, 0x05, 0x01 - set_lighting 0x00c2, 0x05, 0x01 - set_lighting 0x00c3, 0x05, 0x01 - set_lighting 0x00c4, 0x05, 0x01 - set_lighting 0x00c5, 0x05, 0x01 - set_lighting 0x00c6, 0x05, 0x01 - set_lighting 0x00c7, 0x05, 0x01 - set_lighting 0x00c8, 0x05, 0x01 - set_lighting 0x00c9, 0x05, 0x01 - set_lighting 0x00ca, 0x05, 0x01 - set_lighting 0x00cb, 0x05, 0x01 - set_lighting 0x00f2, 0x05, 0x01 - set_lighting 0x00fa, 0x05, 0x01 - set_lighting 0x00fb, 0x05, 0x01 - set_lighting 0x00fc, 0x05, 0x01 - set_lighting 0x00fd, 0x05, 0x01 - set_lighting 0x00fe, 0x05, 0x01 - set_lighting 0x00ff, 0x05, 0x01 - set_lighting 0x0100, 0x05, 0x01 - set_lighting 0x0101, 0x05, 0x01 - set_lighting 0x0102, 0x05, 0x01 - set_lighting 0x0103, 0x05, 0x01 - set_lighting 0x0104, 0x05, 0x01 - set_lighting 0x0105, 0x05, 0x01 - set_lighting 0x0106, 0x05, 0x01 - set_lighting 0x0107, 0x05, 0x01 - set_lighting 0x0108, 0x05, 0x01 - set_lighting 0x0109, 0x05, 0x01 - set_lighting 0x010a, 0x05, 0x01 - set_lighting 0x010b, 0x05, 0x01 - set_lighting 0x010c, 0x05, 0x01 - set_lighting 0x010d, 0x05, 0x01 - set_lighting 0x010e, 0x05, 0x01 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0432_init_biotech1: - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_UNEXPLODABLE - set_function CHR_SELF, FUNC_BIOTECH1 - endfunction - -func0433_init_biotech2: - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_UNEXPLODABLE - set_function CHR_SELF, FUNC_BIOTECH2 - endfunction - -func0430_biotech2: - label 0x0b - call_rng - if_rand_gt 85, /*goto*/ 0x62 - if_rand_gt 170, /*goto*/ 0x63 - - animation ANIM_OPERATE_0221, 0, -1, 0x1000, CHR_SELF, 2 - goto_next 0x04 - - label 0x62 - animation ANIM_OPERATE_0222, 0, -1, 0x1000, CHR_SELF, 2 - goto_next 0x04 - - label 0x63 - animation ANIM_OPERATE_0223, 0, -1, 0x1000, CHR_SELF, 2 - goto_next 0x04 - - beginloop 0x04 - if_chr_stopped /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - goto_first 0x0b - - endfunction - -func0431_biotech1: - label 0x0b - call_rng - if_rand_gt 85, /*goto*/ 0x62 - if_rand_gt 170, /*goto*/ 0x63 - - animation ANIM_OPERATE_0204, 0, -1, 0x1000, CHR_SELF, 2 - goto_next 0x04 - - label 0x62 - animation ANIM_OPERATE_0205, 0, -1, 0x1000, CHR_SELF, 2 - goto_next 0x04 - - label 0x63 - animation ANIM_OPERATE_0206, 0, -1, 0x1000, CHR_SELF, 2 - goto_next 0x04 - - beginloop 0x04 - if_chr_stopped /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - goto_first 0x0b - - endfunction - -func1036_check_door_terminal_destroyed: - if_difficulty_lt DIFF_PA, /*goto*/ 0x2e - - beginloop 0x0b - if_object_in_good_condition OBJ_DOOR_TERMINAL, /*goto*/ 0x2d - if_stage_flag_eq STAGEFLAG_DOOR_VIRUS_DOWNLOADED, TRUE, /*goto*/ 0x2e - message CHR_JOANNA, 0x2a44 // "Mission critical equipment destroyed." - set_stage_flag STAGEFLAG_UPLINK_TERMINAL_DESTROYED - label 0x2e - set_function CHR_SELF, GFUNC_IDLE - - label 0x2d - endloop 0x0b - - endfunction - -functions: - register_function func1400_give_datauplinks 0x1400 - register_function func1001_objectives_failed_msg 0x1001 - register_function func1002_intro 0x1002 - register_function func1003_uplink_doors 0x1003 - register_function func1004_uplink_lights 0x1004 - register_function func1005_uplink_autoguns 0x1005 - register_function func1006_check_lab_accessed 0x1006 - register_function func1007_check_disguise_collected 0x1007 - register_function func1009_disguise_timer 0x1009 - register_function func100a_random_doors 0x100a - register_function func100b_check_doorman_dead 0x100b - register_function func100c_keycardguy_lights 0x100c - register_function func100d_check_entered_lab 0x100d - register_function func100e_elvis_timer 0x100e - register_function func100f_check_end_level 0x100f - register_function func1010_give_keycard 0x1010 - register_function func1011_unhide_warehouse_spawner 0x1011 - register_function func1013_check_chamber_switch_destroyed 0x1013 - register_function func1014_check_crate_destroyed 0x1014 - register_function func1016_check_undisguised 0x1016 - register_function func1017_activate_autogun 0x1017 - register_function func1018_disable_chambers 0x1018 - register_function func1019_chamber1 0x1019 - register_function func101a_chamber2 0x101a - register_function func101b_chamber3 0x101b - register_function func101c_chamber4 0x101c - register_function func101d_chamber5 0x101d - register_function func101e_chamber6 0x101e - register_function func101f_chamber7 0x101f - register_function func1020_chamber8 0x1020 - register_function func1021_xray_scanning 0x1021 - register_function func1023_setup_door_locks 0x1023 - register_function func1024_noop 0x1024 - register_function func1025_toggle_guards 0x1025 - register_function func1026_check_records_destroyed 0x1026 - register_function func1027_check_disguise_worn 0x1027 - register_function func1028_toggle_mechanic 0x1028 - register_function func1029_msg_showers 0x1029 - register_function func102a_msg_temperaturedropping 0x102a - register_function func102b_msg_airrecycled 0x102b - register_function func102c_msg_hurry 0x102c - register_function func142d_start_lifts 0x142d - register_function func102f_shuffle_disguise 0x102f - register_function func1030_lift_door_sounds 0x1030 - register_function func1031_toggle_doorman 0x1031 - register_function func1032_count_last_room_guards 0x1032 - register_function func1033_update_buddy_placed_flag 0x1033 - register_function func1034_setup_rtracker 0x1034 - register_function func1435_setup_lighting 0x1435 - register_function func1036_check_door_terminal_destroyed 0x1036 - - register_function func1002_intro 0x0c00 - register_function func0c01_outro 0x0c01 - - register_function func0401_start_path00 0x0401 - register_function func0402_start_path01 0x0402 - register_function func0403_start_path02 0x0403 - register_function func0404_start_path03 0x0404 - register_function func0405_start_path04 0x0405 - register_function func0406_start_path05 0x0406 - register_function func0407_start_path06 0x0407 - register_function func0408_start_path07 0x0408 - register_function func0409_start_path08 0x0409 - register_function func040a_start_path09 0x040a - register_function func040b_start_path10 0x040b - register_function func040c_start_path11 0x040c - register_function func040d_start_path12 0x040d - register_function func040e_start_path13 0x040e - register_function func040f_start_path14 0x040f - register_function func0410_labtech_showers_sa_pa 0x0410 - register_function func0411_labtech_showers_agent 0x0411 - register_function func0412_init_labtech_showers 0x0412 - register_function func0413_mechanic 0x0413 - register_function func0414_init_mechanic 0x0414 - register_function func0415_warehouse_spawner 0x0415 - register_function func0416_become_unaware 0x0416 - register_function func0429_spawn_while_xraying 0x0429 - register_function func042a_init_xray_clone 0x042a - register_function func042b_xray_clone 0x042b - register_function func0417_warehouse_clone 0x0417 - register_function func0418_doorman 0x0418 - register_function func0419_init_doorman 0x0419 - register_function func041a_labtech_harrysmate 0x041a - register_function func041b_labtech_keycardguy 0x041b - register_function func041c_unused_041c 0x041c - register_function func041d_unused_041d 0x041d - register_function func041e_unused_041e 0x041e - register_function func041f_labtech_lights 0x041f - register_function func0420_labtech_doors 0x0420 - register_function func0421_init_labtech_doors 0x0421 - register_function func0422_labtech_records 0x0422 - register_function func0423_init_labtech_records 0x0423 - register_function func0424_alien 0x0424 - register_function func0425_hiddenguy 0x0425 - register_function func0426_check_looking_at_alien 0x0426 - register_function func0427_shock_clone 0x0427 - register_function func0c01_outro 0x0428 - register_function func042c_dragon_guard 0x042c - register_function func042d_superdragon_guard 0x042d - register_function func042e_biotech_guard 0x042e - register_function func042e_biotech_guard_alerted 0x042f - register_function func0432_init_biotech1 0x0432 - register_function func0433_init_biotech2 0x0433 - register_function func0430_biotech2 0x0430 - register_function func0431_biotech1 0x0431 - endfunctions - -paths: - register_path path00, 0, 0 - register_path path01, 1, 0 - register_path path02, 2, 0 - register_path path03, 3, 0 - register_path path04, 4, 0 - register_path path05, 5, 0 - register_path path06, 6, 0 - register_path path07, 7, 0 - register_path path08, 8, 0 - register_path path09, 9, 0 - register_path path10, 10, 0 - register_path path11, 11, 0 - register_path path12, 12, 0 - register_path path13, 13, 0 - register_path path14, 14, 0 - endpaths - -.align 4 diff --git a/asm/setup/setuplue.s b/asm/setup/setuplue.s deleted file mode 100644 index b59c2f141..000000000 --- a/asm/setup/setuplue.s +++ /dev/null @@ -1,3218 +0,0 @@ -# -# Infiltration -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -// Characters -.set CHR_MECHANIC, 0x30 -.set CHR_JONATHAN, 0x31 -.set CHR_OUTRO_GUARD, 0x33 -.set CHR_ROCKETLAUNCHER_GUARD, 0x34 - -// Objects -.set OBJ_INTERCEPTOR1, 0x02 -.set OBJ_INTERCEPTOR2, 0x03 -.set OBJ_INTERCEPTOR3, 0x04 -.set OBJ_MAINGATE_SWITCH, 0x05 -.set OBJ_ANTENNA, 0x07 -.set OBJ_BUG1_JOANNA, 0x08 -.set OBJ_ANTENNA_SWITCH, 0x09 -.set OBJ_KEYCARD, 0x0a -.set OBJ_LIFT1_SWITCH, 0x0b -.set OBJ_LIFT2_SWITCH, 0x0c -.set OBJ_RADAR_TERMINAL, 0x10 -.set OBJ_MAINGATE1, 0x13 -.set OBJ_MAINGATE2, 0x14 -.set OBJ_MINE1, 0x17 -.set OBJ_MINE2, 0x18 -.set OBJ_MINE3, 0x19 -.set OBJ_MINE4, 0x1b -.set OBJ_MINE5, 0x1c -.set OBJ_MINE6, 0x1d -.set OBJ_BUG2_JOANNA, 0x2e -.set OBJ_AUTOGUN_AT_START, 0x35 -.set OBJ_BUG1_VELVET, 0x36 -.set OBJ_BUG2_VELVET, 0x37 -.set OBJ_ROCKETLAUNCHER, 0x53 -.set OBJ_EXPLOSIVE_BRICK, 0x54 -.set OBJ_HOVERBIKE, 0x55 - -// Stage flags -.set STAGEFLAG_INTERCEPTOR1_DESTROYED, 0x00000100 -.set STAGEFLAG_INTERCEPTOR2_DESTROYED, 0x00000200 -.set STAGEFLAG_INTERCEPTOR3_DESTROYED, 0x00000400 -.set STAGEFLAG_COMMSBUG_PLACED, 0x00000800 -.set STAGEFLAG_COMMSBUG_MISPLACED, 0x00001000 -.set STAGEFLAG_ANTENNA_DESTROYED, 0x00002000 -.set STAGEFLAG_ANTENNA_LOWERED, 0x00004000 -.set STAGEFLAG_LIFT1_CALLED, 0x00008000 -.set STAGEFLAG_LIFT2_CALLED, 0x00010000 -.set STAGEFLAG_HANGAR_ACCESSED, 0x00020000 -.set STAGEFLAG_MET_JON, 0x00040000 -.set STAGEFLAG_RADAR_SHUT_DOWN, 0x00080000 -.set STAGEFLAG_EXPLOSIVES_PLACED, 0x00200000 -.set STAGEFLAG_TRIGGER_INTERCEPTOR, 0x00400000 -.set STAGEFLAG_ENTERED_FINAL_HANGAR, 0x00800000 -.set STAGEFLAG_INTRO_FINISHED, 0x01000000 -.set STAGEFLAG_LIFT_SWITCHES_DESTROYED, 0x04000000 -.set STAGEFLAG_ONE_BUG_WASTED, 0x08000000 -.set STAGEFLAG_ANY_LASER_DESTROYED, 0x10000000 - -// Functions -.set FUNC_OUTRO, 0x040e -.set FUNC_SPAWNED_GUARD, 0x040f -.set FUNC_INTRO, 0x0410 -.set FUNC_ALERT_WHEN_STOPPED, 0x0415 -.set FUNC_MECHANIC, 0x0416 -.set FUNC_TRAITOR, 0x0417 -.set FUNC_INIT_ALERTED_SPAWNED_GUARD, 0x041a -.set FUNC_ALERTED_SPAWNED_GUARD, 0x041b -.set FUNC_TEMPLATE_GUARD, 0x041c -.set FUNC_TROOPER_UNALERTED, 0x041d -.set FUNC_DRAGON_UNALERTED, 0x041e -.set FUNC_TROOPER_ALERTED, 0x041f -.set FUNC_DRAGON_ALERTED, 0x0420 -.set FUNC_ACTIVATE_AUTOGUN, 0x0421 -.set FUNC_ACTIVATE_LASERS, 0x0424 - -props: - briefing 0, 0x2c01 - briefing 1, 0x2c00 - briefing 2, 0x2c02 - briefing 3, 0x2c03 - - beginobjective 0, 0x2c09, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Shut down air intercept radar" - complete_flags STAGEFLAG_RADAR_SHUT_DOWN - endobjective - - beginobjective 1, 0x2c0a, DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Plant comms device on antenna" - complete_flags STAGEFLAG_COMMSBUG_PLACED - fail_flags STAGEFLAG_COMMSBUG_MISPLACED - fail_flags STAGEFLAG_ANTENNA_DESTROYED - endobjective - - beginobjective 2, 0x2c0b, DIFFBIT_PA | DIFFBIT_PD // "Disable all robot interceptors" - complete_flags STAGEFLAG_INTERCEPTOR1_DESTROYED - complete_flags STAGEFLAG_INTERCEPTOR2_DESTROYED - complete_flags STAGEFLAG_INTERCEPTOR3_DESTROYED - endobjective - - beginobjective 3, 0x2c0c, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Gain access to hangar lift" - complete_flags STAGEFLAG_HANGAR_ACCESSED - fail_flags STAGEFLAG_LIFT_SWITCHES_DESTROYED - endobjective - - beginobjective 4, 0x2c0d, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Make contact with CI spy" - complete_flags STAGEFLAG_MET_JON - endobjective - - tag 0x3c, 5 - tag 0x3d, 6 - tag 0x31, 2 - tag 0x0f, 2 - lift 0x0100, MODEL_A51_LIFT_HANGAR, 0x031e, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x031e, 0x031f, 0xffffffff, 0x00000001, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x14000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0321, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001900, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -1, -2, 0, 0 - door 0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0322, 0x10000000, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001900, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -1, -4, 0, 1 - tag 0x39, -2 - tag 0x3e, 5 - tag 0x3f, 6 - tag 0x32, 2 - tag 0x0e, 2 - lift 0x0100, MODEL_A51_LIFT_HANGAR, 0x0324, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0324, 0x0325, 0xffffffff, 0x00000001, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x14000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0327, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001900, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -1, -2, 0, 0 - door 0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0328, 0x10000000, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001900, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -1, -4, 0, 1 - tag 0x38, -2 - door 0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0320, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0326, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x40, 6 - tag 0x41, 6 - tag 0x42, 8 - tag 0x43, 8 - tag 0x33, 1 - lift 0x0100, MODEL_A51_LIFT_CONTROL, 0x0329, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0329, 0x032a, 0xffffffff, 0x00000001, 0x00000005, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x032e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x032f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -2, -3, 0, 0 - link_objects -2, -4, 0, 0 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x0330, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x0331, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -2, -7, 0, 1 - link_objects -2, -8, 0, 1 - chr 0x00004200, 0x00, 0x0354, BODY_A51TROOPER, HEAD_RANDOM, FUNC_TROOPER_UNALERTED, -1, -1, 10000, 100, 0x8000ae00, 0x00000100, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRLEEGUN1, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRGRENADE, 0x0000, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_GRENADE, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x01, 0x0355, BODY_A51TROOPER, HEAD_RANDOM, FUNC_TROOPER_UNALERTED, -1, -1, 10000, 100, 0x8000ae00, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRLEEGUN1, 0x0001, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x02, 0x0029, BODY_A51TROOPER, HEAD_RANDOM, 0x0402, -1, -1, 1000, 0, 0x8000ae08, 0x00000000, 0x02, 0x01, -1, 0, 0x02001400 - weapon 0x0100, MODEL_CHRLEEGUN1, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRGRENADE, 0x0002, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_GRENADE, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x03, 0x0012, BODY_A51TROOPER, HEAD_RANDOM, 0x0401, -1, -1, 1000, 0, 0x8000ae08, 0x00000000, 0x02, 0x01, -1, 0, 0x02000500 - weapon 0x0100, MODEL_CHRLEEGUN1, 0x0003, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRGRENADE, 0x0003, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_GRENADE, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x04, 0x0010, BODY_A51TROOPER, HEAD_RANDOM, FUNC_TEMPLATE_GUARD, -1, -1, 1000, 100, 0x8000ae08, 0x00000000, 0x02, 0x01, -1, 0, 0x02000500 - chr 0x00000300, 0x05, 0x0356, BODY_A51TROOPER, HEAD_RANDOM, 0x040d, -1, -1, 1000, 30, 0x10002800, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRLEEGUN1, 0x0005, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000 - chr 0x00000300, 0x06, 0x0357, BODY_A51TROOPER, HEAD_RANDOM, 0x040d, -1, -1, 1000, 30, 0x10002800, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRLEEGUN1, 0x0006, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x07, 0x0055, BODY_A51TROOPER, HEAD_RANDOM, 0x0403, 0x0370, -1, 1000, 100, 0x80028804, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRLEEGUN1, 0x0007, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRGRENADE, 0x0007, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_GRENADE, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x08, 0x004f, BODY_A51TROOPER, HEAD_RANDOM, 0x0403, 0x0371, -1, 1000, 100, 0x80028804, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRLEEGUN1, 0x0008, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRGRENADE, 0x0008, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_GRENADE, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x09, 0x003e, BODY_A51TROOPER, HEAD_RANDOM, 0x0404, -1, -1, 1000, 100, 0xc0080e01, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRLEEGUN1, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0c, 0x036d, BODY_A51TROOPER, HEAD_RANDOM, FUNC_TROOPER_UNALERTED, -1, -1, 2000, 100, 0xa0004800, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRLEEGUN1, 0x000c, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0d, 0x0085, BODY_A51TROOPER, HEAD_RANDOM, FUNC_TROOPER_UNALERTED, -1, -1, 2000, 100, 0xa0004800, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRLEEGUN1, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0e, 0x0089, BODY_A51TROOPER, HEAD_RANDOM, 0x0405, -1, -1, 1000, 100, 0x80082800, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRLEEGUN1, 0x000e, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0f, 0x0092, BODY_A51TROOPER, HEAD_RANDOM, 0x0406, -1, -1, 1000, 100, 0x80002800, 0x00002000, 0x02, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRLEEGUN1, 0x000f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x10, 0x036e, BODY_A51TROOPER, HEAD_RANDOM, FUNC_TROOPER_UNALERTED, -1, -1, 1000, 100, 0xac008800, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRLEEGUN1, 0x0010, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x11, 0x036f, BODY_A51TROOPER, HEAD_RANDOM, FUNC_TROOPER_UNALERTED, -1, -1, 1000, 100, 0x8c008800, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRLEEGUN1, 0x0011, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x12, 0x035a, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_UNALERTED, -1, -1, 1000, 20, 0xc0004800, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0012, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x13, 0x035b, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_UNALERTED, -1, -1, 1000, 20, 0xc0004800, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0013, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00010800, 0x30, 0x0358, BODY_OVERALL, HEAD_RANDOM, FUNC_MECHANIC, -1, -1, 1000, 5, 0x80002400, 0x20000000, 0x80, 0x07, -1, 0, 0x00000000 - tag 0x0a, 1 - key 0x0080, MODEL_KEYCARD, 0x0030, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - rename_object -1, 0x4b, 0x2c1f, 0x2c20, 0x2c21, 0x2c22, 0x2c23, 0x0000, 0x0000 // "Obtain lift key card." - chr 0x00000200, 0x14, 0x035d, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_UNALERTED, -1, -1, 1000, 100, 0xcc080800, 0x00004000, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x15, 0x0362, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_UNALERTED, -1, -1, 1000, 100, 0xcc080800, 0x00004000, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0015, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x16, 0x035c, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_UNALERTED, -1, -1, 1000, 100, 0xcc080800, 0x00006000, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x17, 0x035e, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_UNALERTED, -1, -1, 1000, 100, 0xcc080800, 0x00004000, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0017, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x18, 0x035f, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_UNALERTED, -1, -1, 1000, 100, 0xc0000800, 0x00000040, 0x02, 0x09, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x19, 0x0361, BODY_A51AIRMAN, HEAD_RANDOM, 0x0407, -1, -1, 1000, 20, 0xc0000800, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0019, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1a, 0x0360, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_UNALERTED, -1, -1, 1000, 20, 0xc0000800, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1c, 0x0363, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_UNALERTED, -1, -1, 1000, 100, 0xc0004800, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x001c, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1d, 0x0364, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_UNALERTED, -1, -1, 1000, 100, 0xc0004a00, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x001d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1e, 0x0365, BODY_A51AIRMAN, HEAD_RANDOM, 0x0408, -1, -1, 1000, 100, 0xe0004800, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x001e, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1f, 0x037b, BODY_A51TROOPER, HEAD_RANDOM, GFUNC_IDLE, 0x007d, -1, 1000, 100, 0x81002000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRLEEGUN1, 0x001f, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x22, 0x037e, BODY_A51TROOPER, HEAD_RANDOM, GFUNC_IDLE, 0x007d, -1, 1000, 100, 0x81002000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRLEEGUN1, 0x0022, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x20, 0x003a, BODY_A51TROOPER, HEAD_RANDOM, GFUNC_IDLE, 0x0077, -1, 1000, 100, 0x89000000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRLEEGUN1, 0x0020, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x21, 0x0033, BODY_A51TROOPER, HEAD_RANDOM, GFUNC_IDLE, 0x0077, -1, 1000, 100, 0x89000000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRLEEGUN1, 0x0021, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x23, 0x01ba, BODY_A51AIRMAN, HEAD_RANDOM, GFUNC_IDLE, 0x007d, -1, 1000, 100, 0x00002800, 0x00002000, 0x02, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0023, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x24, 0x01b2, BODY_A51AIRMAN, HEAD_RANDOM, GFUNC_IDLE, 0x007d, -1, 1000, 100, 0x00002800, 0x00002000, 0x02, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0024, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x25, 0x01ce, BODY_A51AIRMAN, HEAD_RANDOM, 0x0419, 0x007d, -1, 1000, 100, 0x80002000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0025, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00010400, 0x31, 0x0196, BODY_A51AIRMAN, HEAD_JONATHAN, 0x0425, -1, -1, 1000, 100, 0xc0004e00, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDY357, 0x0031, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357MAGNUM, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x32, 0x0197, BODY_A51TROOPER, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 100, 0xc0004e00, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0032, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x33, 0x0199, BODY_A51AIRMAN, HEAD_KEN, 0x0425, -1, -1, 1000, 100, 0xc0004e00, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0033, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x29, 0x0158, BODY_LABTECH, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 100, 0xc0004e00, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - chr 0x00000000, 0x2a, 0x0157, BODY_BIOTECH, HEAD_BIOTECH, GFUNC_IDLE, -1, -1, 1000, 100, 0xc0004e00, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSONICSCREWER, 0x002a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_52, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x2b, 0x0156, BODY_BIOTECH, HEAD_BIOTECH, GFUNC_IDLE, -1, -1, 1000, 100, 0xc0004e00, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSONICSCREWER, 0x002b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_52, 0x00ffffff, 0x00000000 - tag 0x2f, 1 - hover_prop 0x0100, MODEL_HOVERBED, 0x0155, 0x05120101, 0x00304300, 0x00100003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - chr 0x00000000, 0x34, 0x040f, BODY_A51TROOPER, HEAD_RANDOM, GFUNC_IDLE, 0x007d, -1, 1000, 100, 0x81002000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDYROCKET, 0x0034, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_ROCKETLAUNCHER, 0x00ffffff, 0x00000000 - tag 0x53, -1 - chr 0x00000000, 0x35, 0x009f, BODY_AREA51GUARD, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 100, 0x04003000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRLEEGUN1, 0x0035, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRLEEGUN1, 0x0035, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000 - link_collectibles -1, -2 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x027f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x027e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x027d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x027c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x027a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x027b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0278, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0279, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0277, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0276, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0274, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0275, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0273, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0272, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0270, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0271, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x026f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x026e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0266, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0267, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02a6, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00001999, 0x00000004, 0x00000040, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x11, 2 - tag 0x12, 2 - door 0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x02af, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x02b0, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x13, 2 - tag 0x14, 2 - door 0x0100, MODEL_A51GATE_L, 0x02b5, 0x10000010, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000ccc, 0x00014000, 0x00000111, 0x00000000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51GATE_R, 0x02b6, 0x10000010, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000ccc, 0x00014000, 0x00000111, 0x00000000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02b3, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02b4, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x028c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x028d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x0291, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02a9, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x00, 1 - autogun 0x0100, MODEL_A51_TURRET, 0x0380, 0x00000101, 0x00000300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000bb8, 0x00000000, 0x00000000, 0x0fff0000, 0x00280000, 0x00000000, 0x00020000, 0xfffe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000002d8, 0x001e0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - autogun 0x0100, MODEL_A51_TURRET, 0x0382, 0x00000101, 0x00000300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000bb8, 0x00000000, 0x00000000, 0x0fff0000, 0x002e0000, 0x00000000, 0x00020000, 0xfffe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000002d8, 0x001e0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x01, 1 - autogun 0x0100, MODEL_A51_TURRET, 0x0383, 0x00000101, 0x00000300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000bb8, 0x00000000, 0x00000000, 0x0fff0000, 0x00260000, 0x00000000, 0x00020000, 0xfffe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000016c, 0x001e0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x35, 1 - autogun 0x0100, MODEL_A51_TURRET, 0x0381, 0x00000101, 0x00000300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00150000, 0x00000000, 0x00020000, 0xfffe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000002d8, 0x001e0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - autogun 0x00c0, MODEL_A51_ROOFGUN, 0x0401, 0x00000004, 0x000020e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x03660000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000da, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - autogun 0x00c0, MODEL_A51_ROOFGUN, 0x0402, 0x00000004, 0x000020e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x03680000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000da, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - autogun 0x00c0, MODEL_A51_ROOFGUN, 0x0403, 0x00000004, 0x000020e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x03670000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000da, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - autogun 0x00c0, MODEL_A51_ROOFGUN, 0x0404, 0x00000004, 0x000020e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x03690000, 0x00000000, 0x000031c7, 0xffffce39, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000da, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - autogun 0x00c0, MODEL_A51_ROOFGUN, 0x0401, 0x00000004, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x03660000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000e38, 0x003c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - autogun 0x00c0, MODEL_A51_ROOFGUN, 0x0402, 0x00000004, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x03680000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000e38, 0x003c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - autogun 0x00c0, MODEL_A51_ROOFGUN, 0x0403, 0x00000004, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x03670000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000e38, 0x003c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - autogun 0x00c0, MODEL_A51_ROOFGUN, 0x0404, 0x00000004, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x03690000, 0x00000000, 0x000031c7, 0xffffce39, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000e38, 0x003c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x55, 1 - hoverbike 0x0100, MODEL_HOVBIKE, 0x037a, 0x05120101, 0x00304300, 0x02000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x01010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x02, 1 - armed_vehicle 0x0a00, MODEL_A51INTERCEPTOR, 0x0359, 0x20000108, 0x00080000, 0x00008200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, 0x0000040c, 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 - tag 0x03, 1 - armed_vehicle 0x0a00, MODEL_A51INTERCEPTOR, 0x036c, 0x20000108, 0x00080000, 0x00008200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, 0x0000040c, 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 - tag 0x04, 1 - armed_vehicle 0x0a00, MODEL_A51INTERCEPTOR, 0x034e, 0x20000108, 0x00080000, 0x00008200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, 0x0000040a, 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 - tag 0x05, 1 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x0409, 0x10000002, 0x00000800, 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, 0xffffff12 - tag 0x08, 1 - weapon 0x0180, MODEL_CHRBUG, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_COMMSRIDER, 0x00ffffff, 0x00000000 - rename_object -1, 0x3d, 0x2c15, 0x2c16, 0x2c17, 0x2c18, 0x2c19, 0x0000, 0x0000 // "Obtain comms rider." - tag 0x36, 1 - weapon 0x0180, MODEL_CHRBUG, 0xffff, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_COMMSRIDER, 0x00ffffff, 0x00000000 - rename_object -1, 0x3d, 0x2c15, 0x2c16, 0x2c17, 0x2c18, 0x2c19, 0x0000, 0x0000 // "Obtain comms rider." - tag 0x2e, 1 - object 0x0100, MODEL_CHRBUG, 0x035b, 0x012404e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - rename_object -1, 0x3b, 0x2c30, 0x2c31, 0x2c32, 0x2c33, 0x2c34, 0x0000, 0x0000 // "Obtain explosive." - tag 0x37, 1 - object 0x0100, MODEL_CHRBUG, 0x035b, 0x013004e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - rename_object -1, 0x3b, 0x2c30, 0x2c31, 0x2c32, 0x2c33, 0x2c34, 0x0000, 0x0000 // "Obtain explosive." - tag 0x09, 1 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x0406, 0x10000002, 0x00002001, 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, 0xffffff13 - tag 0x0b, 1 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x0407, 0x10000002, 0x00000001, 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, 0xffffff03 - tag 0x0c, 1 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x0408, 0x10000002, 0x00000001, 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, 0xffffff03 - tag 0x10, 1 - multimonitor 0x0099, MODEL_PD_CONSOLE, 0x04f7, 0x000201a1, 0x00000800, 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, 0x03030000 - tag 0x54, 1 - object 0x000c, MODEL_EXPLOSIVEBRICK, 0x036b, 0x01520408, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x17, 1 - remote_mine 0x0100, MODEL_CHRPROXIMITYMINE, 0x040c, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x21000000, 0x00000001, 0x00000000 - tag 0x18, 1 - remote_mine 0x0100, MODEL_CHRPROXIMITYMINE, 0x040d, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x21000000, 0x00000001, 0x00000000 - tag 0x19, 1 - remote_mine 0x0100, MODEL_CHRPROXIMITYMINE, 0x040e, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x21000000, 0x00000001, 0x00000000 - tag 0x1b, 1 - remote_mine 0x0100, MODEL_CHRPROXIMITYMINE, 0x0410, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x21000000, 0x00000001, 0x00000000 - tag 0x1c, 1 - remote_mine 0x0100, MODEL_CHRPROXIMITYMINE, 0x0411, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x21000000, 0x00000001, 0x00000000 - tag 0x1d, 1 - remote_mine 0x0100, MODEL_CHRPROXIMITYMINE, 0x0412, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x21000000, 0x00000001, 0x00000000 - object 0x0100, MODEL_BARREL, 0x0413, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0414, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0415, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0416, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0417, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0418, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x0311, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0312, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE3, 0x0313, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x0314, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x0307, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0306, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE3, 0x0305, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x0304, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x02f9, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x02fa, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x02fb, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x02fc, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE3, 0x02fd, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x02fe, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x02ff, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE3, 0x0300, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x0301, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0302, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE3, 0x0303, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x0309, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x030a, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE3, 0x030b, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x030c, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x030d, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x030e, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x030f, 0x000201e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x0310, 0x000201e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x02f8, 0x000201e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x07, 1 - lift 0x0100, MODEL_A51DISH, 0x033b, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x033b, 0x033a, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0446, 0x14020b62, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0096012c, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0445, 0x14020b62, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0096012c, 0x0000ffff, 0x00000000 - tag 0x1e, 7 - tag 0x1f, 7 - tag 0x20, 7 - tag 0x21, 7 - tag 0x22, 7 - tag 0x23, 7 - tag 0x24, 7 - door 0x0100, MODEL_LASDOOR, 0x044a, 0x06000400, 0x02000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x044b, 0x06000400, 0x02000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x044c, 0x06000400, 0x02000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x044d, 0x06000400, 0x02000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x044e, 0x06000400, 0x02000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x044f, 0x06000400, 0x02000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x0450, 0x06000400, 0x02000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x25, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0x0050, 0x012204e1, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x26, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0x0050, 0x012204e1, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x27, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0x0050, 0x012204e1, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x28, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0x0050, 0x012204e1, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x29, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0x0050, 0x012204e1, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x2a, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0x0050, 0x012204e1, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x2b, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0x0050, 0x012204e1, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x2c, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0x0050, 0x012204e1, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x2d, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0x0050, 0x012204e1, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x51, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0x04e8, 0x012204e1, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04e2, 0x000005e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04e3, 0x000005e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04e4, 0x000005e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04e5, 0x000005e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04e6, 0x000005e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04e7, 0x000005e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04e8, 0x000005e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04e9, 0x000005e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04ea, 0x000005e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04eb, 0x000005e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x040b, 0x10000002, 0x00000800, 0x00000000, 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, 0xffffff12 - object 0x0100, MODEL_A51TABLE, 0x04d5, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x44, 2 - tag 0x45, 2 - object 0x0100, MODEL_A51_CRATE1, 0x04f8, 0x000004e8, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x04f9, 0x000004e8, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x46, 2 - tag 0x47, 2 - object 0x0100, MODEL_A51_CRATE1, 0x04fa, 0x000004e8, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x04fb, 0x000004e8, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x48, 2 - tag 0x49, 2 - object 0x0100, MODEL_A51_CRATE1, 0x04fc, 0x000004e8, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x04fd, 0x000004e8, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x4a, 2 - tag 0x4b, 2 - object 0x0100, MODEL_A51_CRATE1, 0x04fe, 0x000004e8, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x04ff, 0x000004e8, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x4c, 2 - tag 0x4d, 2 - object 0x0100, MODEL_A51_CRATE1, 0x0500, 0x000004e8, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x0501, 0x000004e8, 0x00002010, 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_A51_CRATE1, 0x0502, 0x000004e8, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x0503, 0x000004e8, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x50, 2 - tag 0x52, 2 - object 0x0100, MODEL_A51_CRATE1, 0x0504, 0x000004e8, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x0505, 0x000004e8, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x3a, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x0565, 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 0x3b, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x0096, 0x00000001, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000 - endprops - -intro: - spawn 0x000f - intro_weapon WEAPON_FALCON2, -1 - ammo AMMOTYPE_PISTOL, 100 - outfit OUTFIT_DEFAULT - endintro - -path34: - pad 0x0560 - pad 0x0563 - pad 0x0562 - pad 0x0561 - endpath - -path00: - pad 0x001a - pad 0x001d - pad 0x001e - pad 0x0022 - pad 0x0024 - pad 0x0025 - pad 0x0026 - pad 0x0025 - pad 0x0024 - pad 0x0022 - pad 0x001e - pad 0x001d - pad 0x001a - pad 0x0019 - pad 0x0013 - endpath - -path01: - pad 0x0026 - pad 0x0025 - pad 0x0024 - pad 0x0022 - pad 0x001e - pad 0x001d - pad 0x001a - pad 0x0019 - pad 0x0013 - pad 0x0019 - pad 0x001a - pad 0x001d - pad 0x001e - pad 0x0022 - pad 0x0024 - pad 0x0025 - endpath - -path02: - pad 0x0055 - pad 0x0054 - pad 0x004f - pad 0x004e - endpath - -path03: - pad 0x003f - pad 0x0077 - pad 0x0078 - pad 0x0079 - pad 0x007a - pad 0x007b - pad 0x007c - pad 0x007d - pad 0x007e - pad 0x007f - pad 0x007e - pad 0x007d - pad 0x007c - pad 0x007b - pad 0x007a - pad 0x0079 - pad 0x0078 - pad 0x0077 - endpath - -path04: - pad 0x008d - pad 0x008e - pad 0x0093 - pad 0x008e - pad 0x0092 - pad 0x0091 - pad 0x0090 - pad 0x008c - endpath - -path05: - pad 0x0092 - pad 0x008e - pad 0x0093 - pad 0x008e - pad 0x008d - pad 0x008c - pad 0x0090 - pad 0x0091 - endpath - pad 0x01dc - pad 0x01b9 - pad 0x01b8 - pad 0x01b7 - pad 0x01b6 - pad 0x01b5 - pad 0x01b3 - pad 0x01b5 - pad 0x01b6 - pad 0x01b7 - pad 0x01b8 - pad 0x01b9 - endpath - pad 0x01d6 - pad 0x01d6 - pad 0x01d4 - pad 0x01d3 - pad 0x01d2 - pad 0x01d1 - pad 0x01d2 - pad 0x01d3 - pad 0x01d4 - pad 0x01d6 - endpath - -path08: - pad 0x0506 - pad 0x0507 - endpath - -path09: - pad 0x0508 - pad 0x0509 - pad 0x050a - endpath - -path10: - pad 0x050b - pad 0x050c - pad 0x050d - pad 0x050e - pad 0x050f - pad 0x0510 - endpath - -path11: - pad 0x0511 - pad 0x0512 - pad 0x0513 - pad 0x0514 - endpath - -path12: - pad 0x0515 - pad 0x0516 - pad 0x0517 - pad 0x0518 - pad 0x0519 - endpath - -path13: - pad 0x051a - pad 0x051b - pad 0x051c - pad 0x051d - pad 0x051e - pad 0x051f - endpath - -path14: - pad 0x0520 - pad 0x0521 - pad 0x0522 - pad 0x0523 - pad 0x0524 - pad 0x0525 - endpath - -path15: - pad 0x0526 - pad 0x0527 - pad 0x0528 - pad 0x0529 - pad 0x052a - pad 0x052b - endpath - -path16: - pad 0x052c - pad 0x052d - pad 0x052e - pad 0x052f - endpath - -path17: - pad 0x0530 - pad 0x0531 - pad 0x0532 - pad 0x0533 - pad 0x0534 - pad 0x0535 - endpath - -path18: - pad 0x0536 - pad 0x0537 - pad 0x0538 - pad 0x0539 - endpath - -path19: - pad 0x053a - pad 0x053b - pad 0x053c - pad 0x053d - pad 0x053e - pad 0x053f - pad 0x0540 - pad 0x0541 - endpath - -path20: - pad 0x0542 - pad 0x0543 - pad 0x0544 - endpath - -path21: - pad 0x0545 - pad 0x0546 - pad 0x0547 - endpath - -path22: - pad 0x0548 - pad 0x0553 - endpath - -path23: - pad 0x0549 - pad 0x0552 - endpath - -path24: - pad 0x054a - pad 0x0551 - endpath - -path25: - pad 0x054b - pad 0x0550 - endpath - -path26: - pad 0x054e - pad 0x054d - endpath - -path27: - pad 0x054f - pad 0x054c - endpath - -path28: - pad 0x0554 - pad 0x055f - endpath - -path29: - pad 0x0555 - pad 0x055e - endpath - -path30: - pad 0x0556 - pad 0x055d - endpath - -path31: - pad 0x0557 - pad 0x055c - endpath - -path32: - pad 0x0559 - pad 0x055a - endpath - -path33: - pad 0x0558 - pad 0x055b - endpath - -paths: - register_path path00, 0, 0 - register_path path01, 1, 0 - register_path path02, 2, 1 - register_path path03, 3, 0 - register_path path04, 4, 0 - register_path path05, 5, 0 - register_path path08, 8, 0 - register_path path09, 9, 2 - register_path path10, 10, 2 - register_path path11, 11, 2 - register_path path12, 12, 2 - register_path path13, 13, 2 - register_path path14, 14, 2 - register_path path15, 15, 2 - register_path path16, 16, 2 - register_path path17, 17, 2 - register_path path18, 18, 2 - register_path path19, 19, 2 - register_path path20, 20, 2 - register_path path21, 21, 2 - register_path path22, 22, 2 - register_path path23, 23, 2 - register_path path24, 24, 2 - register_path path25, 25, 2 - register_path path26, 26, 2 - register_path path27, 27, 2 - register_path path28, 28, 2 - register_path path29, 29, 2 - register_path path30, 30, 2 - register_path path31, 31, 2 - register_path path32, 32, 2 - register_path path33, 33, 2 - register_path path34, 34, 2 - endpaths - -func0426_8420: - try_inherit_properties 0x04, /*goto*/ 0x2e - label 0x2e - set_function CHR_SELF, GFUNC_UNALERTED_0004 - endfunction - -.macro init_path pathid - set_chr_dodge_rating 2, 0x0a - set_accuracy 6 - set_reaction_speed 50 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - assign_path \pathid - start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 -.endm - -func0401_start_path00: - init_path 0 - endfunction - -func0402_start_path01: - init_path 1 - endfunction - -func0403_start_path02: - init_path 2 - endfunction - -func0404_start_path03: - init_path 3 - endfunction - -func0405_start_path04: - init_path 4 - endfunction - -func0406_start_path05: - init_path 5 - endfunction - -func0407_start_path06: - assign_path 6 - start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 - endfunction - -func0408_start_path07: - assign_path 7 - start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 - endfunction - -func0409_set_rotor_speed: - set_rotor_speed 0x026c, 0x1c, 0x20 - beginloop 0x04 - endloop 0x04 - - endfunction - -func040b_stop_vehicle: - set_vehicle_speed 0, 1 - - beginloop 0x04 - endloop 0x04 - - endfunction - -func0c00_init_intro: - set_return_function CHR_SELF, GFUNC_END_CINEMA - set_function CHR_SELF, FUNC_INTRO - endfunction - -func140e_check_interceptors_destroyed: - set_object_flag_bank0 OBJ_AUTOGUN_AT_START, OBJECTFLAG0_DEACTIVATED - - beginloop 0x04 - if_object_in_good_condition OBJ_INTERCEPTOR1, /*goto*/ 0x2e - if_stage_flag_eq STAGEFLAG_INTERCEPTOR1_DESTROYED, TRUE, /*goto*/ 0x2e - set_stage_flag STAGEFLAG_INTERCEPTOR1_DESTROYED - message CHR_JOANNA, 0x2c13 // "Robot interceptor disabled." - - label 0x2e - if_object_in_good_condition OBJ_INTERCEPTOR2, /*goto*/ 0x2e - if_stage_flag_eq STAGEFLAG_INTERCEPTOR2_DESTROYED, TRUE, /*goto*/ 0x2e - set_stage_flag STAGEFLAG_INTERCEPTOR2_DESTROYED - message CHR_JOANNA, 0x2c13 // "Robot interceptor disabled." - - label 0x2e - if_object_in_good_condition OBJ_INTERCEPTOR3, /*goto*/ 0x2e - if_stage_flag_eq STAGEFLAG_INTERCEPTOR3_DESTROYED, TRUE, /*goto*/ 0x2e - set_stage_flag STAGEFLAG_INTERCEPTOR3_DESTROYED - message CHR_JOANNA, 0x2c13 // "Robot interceptor disabled." - - label 0x2e - if_stage_flag_eq STAGEFLAG_INTERCEPTOR1_DESTROYED, FALSE, /*goto*/ 0x2e - if_stage_flag_eq STAGEFLAG_INTERCEPTOR2_DESTROYED, FALSE, /*goto*/ 0x2e - if_stage_flag_eq STAGEFLAG_INTERCEPTOR3_DESTROYED, FALSE, /*goto*/ 0x2e - message CHR_JOANNA, 0x2c14 // "All robot interceptors disabled." - - set_function CHR_SELF, GFUNC_IDLE - label 0x2e - endloop 0x04 - - endfunction - -func100c_maingate_switch: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_door_state OBJ_MAINGATE1, DOORSTATE_CLOSING, /*goto*/ 0x2e - goto_next 0x06 - - label 0x2e - set_object_image OBJ_MAINGATE_SWITCH, 0x00, 0x12 - label 0x06 - if_chr_activated_object CHR_P1P2, OBJ_MAINGATE_SWITCH, /*goto*/ 0x2e - reloop 0x04 - - label 0x2e - assign_sound 0x043f, CHANNEL_7 - play_sound_from_entity CHANNEL_7, OBJ_MAINGATE_SWITCH, 0x012c, 0x0190, 0x00 - set_object_image OBJ_MAINGATE_SWITCH, 0x00, 0x13 - if_door_state OBJ_MAINGATE1, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x2e - message CHR_P1P2, 0x2c2b // "Main gate has been opened." - open_door OBJ_MAINGATE1 - open_door OBJ_MAINGATE2 - restart_timer - - beginloop 0x09 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - reloop 0x04 - - label 0x2e - assign_sound 0x043f, CHANNEL_7 - play_sound_from_entity CHANNEL_7, OBJ_MAINGATE_SWITCH, 0x012c, 0x0190, 0x00 - set_object_image OBJ_MAINGATE_SWITCH, 0x00, 0x12 - message CHR_P1P2, 0x2c2c // "Main gate has been closed." - close_door OBJ_MAINGATE1 - close_door OBJ_MAINGATE2 - restart_timer - - beginloop 0x0a - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x0a - - label 0x06 - endloop 0x04 - - endfunction - -func1400_give_bugs: - yield - set_chr_alliance CHR_COUNTEROP, ALLIANCE_ENEMY - if_difficulty_lt DIFF_SA, /*goto*/ 0x2e - give_object_to_chr OBJ_BUG1_JOANNA, CHR_JOANNA - label 0x2e - give_object_to_chr OBJ_BUG2_JOANNA, CHR_JOANNA - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2e - if_difficulty_lt DIFF_SA, /*goto*/ 0x2e - give_object_to_chr OBJ_BUG1_VELVET, CHR_VELVET - label 0x2e - give_object_to_chr OBJ_BUG2_VELVET, CHR_VELVET - set_function CHR_SELF, GFUNC_REBUILD_GROUPS - label 0x2e - set_function CHR_SELF, GFUNC_REBUILD_GROUPS - endfunction - -.macro check_bug_wasted chr - yield - beginloop 0x00 - if_ammo_quantity_lt \chr, AMMOTYPE_BUG, 1, /*goto*/ 0x2e - endloop 0x00 - - beginloop 0x2e - if_weapon_thrown WEAPON_COMMSRIDER, /*goto*/ 0x06 - endloop 0x2e - - label 0x06 - restart_timer - - beginloop 0x09 - if_weapon_thrown_on_object WEAPON_COMMSRIDER, OBJ_ANTENNA, /*goto*/ 0x0a - if_timer_gt 120, /*goto*/ 0x0b - endloop 0x09 - - label 0x0a - set_stage_flag STAGEFLAG_COMMSBUG_PLACED - message \chr, 0x2c1a // "Communications bug placed correctly." - set_function CHR_SELF, GFUNC_IDLE - - label 0x0b - if_stage_flag_eq STAGEFLAG_ONE_BUG_WASTED, TRUE, /*goto*/ 0x2e - set_stage_flag STAGEFLAG_ONE_BUG_WASTED - set_function CHR_SELF, GFUNC_IDLE - - label 0x2e - set_stage_flag STAGEFLAG_COMMSBUG_MISPLACED - message \chr, 0x2c1b // "Communications bug placed incorrectly." - set_function CHR_SELF, GFUNC_IDLE -.endm - -/** - * @unused - */ -func0422_check_bug_wasted_target: - check_bug_wasted TARGET_CHR - endfunction - -func1003_check_bug_wasted_joanna: - set_target_chr CHR_JOANNA - check_bug_wasted CHR_JOANNA - endfunction - -func1023_check_bug_wasted_velvet: - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2e - set_target_chr CHR_VELVET - goto_next 0x06 - - label 0x2e - set_stage_flag STAGEFLAG_ONE_BUG_WASTED - set_function CHR_SELF, GFUNC_IDLE - - label 0x06 - check_bug_wasted CHR_VELVET - endfunction - -func1004_check_antenna_destroyed: - beginloop 0x04 - if_object_in_good_condition OBJ_ANTENNA, /*goto*/ 0x2e - message CHR_JOANNA, 0x2c1c // "Antenna has been destroyed." - set_stage_flag STAGEFLAG_ANTENNA_DESTROYED - set_function CHR_SELF, GFUNC_IDLE - label 0x2e - endloop 0x04 - - endfunction - -func1405_antenna_switch: - set_object_flag_bank0 OBJ_ANTENNA, OBJECTFLAG0_DEACTIVATED - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, OBJ_ANTENNA_SWITCH, /*goto*/ 0x2e - reloop 0x04 - - label 0x2e - if_stage_flag_eq STAGEFLAG_ANTENNA_LOWERED, TRUE, /*goto*/ 0x06 - play_sound_from_object2 CHANNEL_9, OBJ_ANTENNA_SWITCH, 0x801e, 0x00, 0x00 - play_sound_from_object2 CHANNEL_1, OBJ_ANTENNA, 0x00cd, 0x00, 0x02 - set_object_image OBJ_ANTENNA_SWITCH, 0x00, 0x12 - unset_object_flag_bank0 OBJ_ANTENNA, OBJECTFLAG0_DEACTIVATED - message CHR_P1P2, 0x2c1e // "Antenna lowered." - set_stage_flag STAGEFLAG_ANTENNA_LOWERED - restart_timer - - beginloop 0x09 - if_timer_gt 20, /*goto*/ 0x2e - reloop 0x09 - - label 0x2e - if_lift_stationary OBJ_ANTENNA, /*goto*/ 0x2e - endloop 0x09 - - label 0x2e - mute_channel CHANNEL_1 - play_sound_from_object2 CHANNEL_9, OBJ_ANTENNA_SWITCH, 0x801f, 0x00, 0x00 - set_object_flag_bank0 OBJ_ANTENNA, OBJECTFLAG0_DEACTIVATED - reloop 0x04 - - label 0x06 - play_sound_from_object2 CHANNEL_9, OBJ_ANTENNA_SWITCH, 0x801e, 0x00, 0x00 - play_sound_from_object2 CHANNEL_1, OBJ_ANTENNA, 0x00cd, 0x00, 0x02 - set_object_image OBJ_ANTENNA_SWITCH, 0x00, 0x13 - unset_object_flag_bank0 OBJ_ANTENNA, OBJECTFLAG0_DEACTIVATED - unset_stage_flag STAGEFLAG_ANTENNA_LOWERED - message CHR_P1P2, 0x2c1d // "Antenna raised." - restart_timer - - beginloop 0x0a - if_timer_gt 20, /*goto*/ 0x2e - reloop 0x0a - - label 0x2e - if_lift_stationary OBJ_ANTENNA, /*goto*/ 0x2e - endloop 0x0a - - label 0x2e - mute_channel CHANNEL_1 - play_sound_from_object2 CHANNEL_9, OBJ_ANTENNA_SWITCH, 0x801f, 0x00, 0x00 - set_object_flag_bank0 OBJ_ANTENNA, OBJECTFLAG0_DEACTIVATED - endloop 0x04 - - endfunction - -func1006_lift_switches: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, OBJ_LIFT1_SWITCH, /*goto*/ 0x09 - if_chr_activated_object CHR_P1P2, OBJ_LIFT2_SWITCH, /*goto*/ 0x0a - reloop 0x04 - - label 0x09 - assign_sound 0x043f, CHANNEL_7 - play_sound_from_entity CHANNEL_7, OBJ_LIFT1_SWITCH, 0x012c, 0x0190, 0x00 - if_chr_has_object CHR_P1P2, OBJ_KEYCARD, /*goto*/ 0x2e - message CHR_P1P2, 0x2c24 // "Lift access denied - key card needed." - goto_next 0x0b - - label 0x2e - set_object_image OBJ_LIFT1_SWITCH, 0x00, 0x13 - if_stage_flag_eq STAGEFLAG_LIFT1_CALLED, TRUE, /*goto*/ 0x06 - set_stage_flag STAGEFLAG_LIFT1_CALLED - open_door 0x0e - open_door 0x38 - unlock_door 0x0e, 0x02 - unlock_door 0x38, 0x02 - message CHR_P1P2, 0x2c25 // "Key card accepted - lift operational." - goto_next 0x0b - - label 0x06 - message CHR_P1P2, 0x2c26 // "Lift is fully operational." - goto_next 0x0b - - label 0x0a - assign_sound 0x043f, CHANNEL_7 - play_sound_from_entity CHANNEL_7, OBJ_LIFT2_SWITCH, 0x012c, 0x0190, 0x00 - if_chr_has_object CHR_JOANNA, OBJ_KEYCARD, /*goto*/ 0x2e - message CHR_P1P2, 0x2c24 // "Lift access denied - key card needed." - goto_next 0x0b - - label 0x2e - set_object_image OBJ_LIFT2_SWITCH, 0x00, 0x13 - if_stage_flag_eq STAGEFLAG_LIFT2_CALLED, TRUE, /*goto*/ 0x06 - set_stage_flag STAGEFLAG_LIFT2_CALLED - open_door 0x0f - open_door 0x39 - yield - yield - unlock_door 0x0f, 0x02 - unlock_door 0x39, 0x02 - message CHR_P1P2, 0x2c25 // "Key card accepted - lift operational." - goto_next 0x0b - - label 0x06 - message CHR_P1P2, 0x2c26 // "Lift is fully operational." - goto_next 0x0b - - label 0x0b - restart_timer - - beginloop 0x0c - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x0c - - label 0x06 - endloop 0x04 - - endfunction - -func1007_check_hangar_accessed: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0042, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0043, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - set_stage_flag STAGEFLAG_HANGAR_ACCESSED - message CHR_P1P2, 0x2c27 // "Hangar has been accessed." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1008_check_end_level: - beginloop 0x04 - if_door_state 0x11, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x09 - if_door_state 0x12, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x09 - endloop 0x04 - - beginloop 0x09 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0060, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - message CHR_P1P2, 0x2c28 // "Met up with CI agent." - set_stage_flag STAGEFLAG_MET_JON - yield - yield - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x2e - if_chr_dying CHR_JOANNA, /*goto*/ 0x2e - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x2e - goto_next 0x06 - - label 0x2e - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2e - if_chr_dying CHR_VELVET, /*goto*/ 0x2e - if_chr_unloaded CHR_VELVET, /*goto*/ 0x2e - goto_next 0x06 - - label 0x2e - 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 - -func1009_check_radar_shut_down: - beginloop 0x04 - if_object_in_good_condition OBJ_RADAR_TERMINAL, /*goto*/ 0x06 - goto_next 0x2e - label 0x06 - endloop 0x04 - - label 0x2e - message CHR_JOANNA, 0x2c29 // "Air intercept radar shut down." - mute_channel CHANNEL_0 - set_stage_flag STAGEFLAG_RADAR_SHUT_DOWN - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100b_final_hangar: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_objective_complete 0, /*goto*/ 0x2e - reloop 0x04 - - label 0x2e - if_difficulty_lt DIFF_SA, /*goto*/ 0x2e - if_objective_complete 1, /*goto*/ 0x2e - reloop 0x04 - - label 0x2e - if_difficulty_lt DIFF_PA, /*goto*/ 0x2e - if_objective_complete 2, /*goto*/ 0x2e - reloop 0x04 - - label 0x2e - if_objective_complete 3, /*goto*/ 0x2e - reloop 0x04 - - label 0x2e - if_chr_distance_to_pad_lt CHR_P1P2, 200, 0x01d2, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - set_stage_flag STAGEFLAG_ENTERED_FINAL_HANGAR - play_x_music CHANNEL_10, 60 - restart_timer - unlock_door 0x11, 0x08 - unlock_door 0x12, 0x08 - try_spawn_chr BODY_A51AIRMAN, HEAD_RANDOM, 0x01c6, 0x0411, 0x00000210, /*goto*/ 0x09 - - beginloop 0x09 - if_timer_gt 30, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - try_spawn_chr BODY_A51AIRMAN, HEAD_RANDOM, 0x01c6, 0x0412, 0x00000210, /*goto*/ 0x0a - - beginloop 0x0a - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x0a - - label 0x06 - try_spawn_chr BODY_A51AIRMAN, HEAD_RANDOM, 0x01c6, 0x0413, 0x00000210, /*goto*/ 0x0b - - beginloop 0x0b - if_timer_gt 90, /*goto*/ 0x06 - endloop 0x0b - - label 0x06 - try_spawn_chr BODY_A51AIRMAN, HEAD_RANDOM, 0x01c6, 0x0414, 0x00000210, /*goto*/ 0x0c - - // @bug: This timer check will pass immediately. - // It was probably intended to be 120. - beginloop 0x0c - if_timer_gt 1, /*goto*/ 0x06 - endloop 0x0c - - label 0x06 - - // This guard will shoot the spawned guards above, but this guard is NOT Jon - beginloop 0x60 - try_spawn_chr BODY_A51AIRMAN, HEAD_RANDOM, 0x01c6, FUNC_TRAITOR, 0x00000210, /*goto*/ 0x0d - endloop 0x60 - - label 0x0d - yield - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0411_init_hangar_guard1: - set_chr_dodge_rating 2, 0x0a - set_accuracy 8 - set_reaction_speed 30 - set_chr_health CHR_SELF, 40 - set_armor 10 - set_recovery_speed 35 - set_shield 0 - set_group 0x0b - set_self_flag_bankx CHRFLAG1_00080000, BANK_1 - set_self_flag_bank3 CHRFLAG3_00000040 - set_chr_id 0x2c - set_self_flag_bankx CHRFLAG0_10000000, BANK_0 - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - try_draw_weapon MODEL_CHRDRAGON, WEAPON_DRAGON, 0x00000000, /*goto*/ 0x06 - label 0x06 - jog_to_pad 0x0420 - yield - set_function CHR_SELF, FUNC_ALERT_WHEN_STOPPED - endfunction - -func0412_init_hangar_guard2: - set_chr_dodge_rating 2, 0x0a - set_accuracy 8 - set_reaction_speed 30 - set_chr_health CHR_SELF, 40 - set_armor 10 - set_recovery_speed 35 - set_shield 0 - set_self_flag_bankx CHRFLAG1_00080000, BANK_1 - set_group 0x0b - set_self_flag_bank3 CHRFLAG3_00000040 - set_chr_id 0x2d - set_self_flag_bankx CHRFLAG0_10000000, BANK_0 - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - try_draw_weapon MODEL_CHRDRAGON, WEAPON_DRAGON, 0x00000000, /*goto*/ 0x06 - label 0x06 - jog_to_pad 0x041f - yield - set_function CHR_SELF, FUNC_ALERT_WHEN_STOPPED - endfunction - -func0413_init_hangar_guard3: - set_chr_dodge_rating 2, 0x0a - set_accuracy 8 - set_reaction_speed 30 - set_chr_health CHR_SELF, 40 - set_armor 10 - set_recovery_speed 35 - set_shield 0 - set_self_flag_bankx CHRFLAG1_00080000, BANK_1 - set_group 0x0b - set_self_flag_bank3 CHRFLAG3_00000040 - set_chr_id 0x2e - set_self_flag_bankx CHRFLAG0_10000000, BANK_0 - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - try_draw_weapon MODEL_CHRDRAGON, WEAPON_DRAGON, 0x00000000, /*goto*/ 0x06 - label 0x06 - jog_to_pad 0x041e - yield - set_function CHR_SELF, FUNC_ALERT_WHEN_STOPPED - endfunction - -func0414_init_hangar_guard4: - set_chr_dodge_rating 2, 0x0a - set_accuracy 8 - set_reaction_speed 30 - set_chr_health CHR_SELF, 40 - set_armor 10 - set_recovery_speed 35 - set_shield 0 - set_self_flag_bankx CHRFLAG1_00080000, BANK_1 - set_group 0x0b - set_self_flag_bank3 CHRFLAG3_00000040 - set_chr_id 0x2f - set_self_flag_bankx CHRFLAG0_10000000, BANK_0 - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - try_draw_weapon MODEL_CHRDRAGON, WEAPON_DRAGON, 0x00000000, /*goto*/ 0x06 - label 0x06 - jog_to_pad 0x041d - yield - set_target_chr CHR_JOANNA - set_function CHR_SELF, FUNC_ALERT_WHEN_STOPPED - endfunction - -func0415_alert_when_stopped: - // @bug: This loop should have a check for seeing Jo or a distance check to - // Jo. Without it, the guards will run past Jo at the end if she's already - // at the door. - beginloop 0x04 - if_chr_stopped /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -/** - * This is NOT assigned to Jon. - */ -func0417_traitor: - set_self_flag_bank3 CHRFLAG3_00000040 - set_self_flag_bankx CHRFLAG1_WARNED, BANK_1 - set_accuracy 100 - set_reaction_speed 100 - restart_timer - try_draw_weapon MODEL_CHRDY357, WEAPON_DY357MAGNUM, 0x00000000, /*goto*/ 0x03 - - beginloop 0x03 - if_timer_gt 300, /*goto*/ 0x09 - endloop 0x03 - - label 0x09 - open_door 0x11 - if_chr_dying 0x2f, /*goto*/ 0x0d - if_chr_unloaded 0x2f, /*goto*/ 0x0d - set_target_chr 0x2f - goto_next 0x2e - - label 0x0d - if_chr_dying 0x2e, /*goto*/ 0x0e - if_chr_unloaded 0x2e, /*goto*/ 0x0e - set_target_chr 0x2e - goto_next 0x2e - - label 0x0e - if_chr_dying 0x2d, /*goto*/ 0x0f - if_chr_unloaded 0x2d, /*goto*/ 0x0f - set_target_chr 0x2d - goto_next 0x2e - - label 0x0f - if_chr_dying 0x2c, /*goto*/ 0x10 - if_chr_unloaded 0x2c, /*goto*/ 0x10 - set_target_chr 0x2c - - label 0x2e - call_rng - if_rand_gt 128, /*goto*/ 0x2e - try_chr_kneel_and_shoot_thing 0x0220, 0x0000, /*goto*/ 0x0a - - label 0x2e - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x0a - dprint "SHOOTFAILED\n" - yield - label 0x0a - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x0b - goto_next 0x0c - - beginloop 0x0b - consider_coop_for_p1p2_chr CHR_SELF - if_chr_y CHR_P1P2, -1373 OPERATOR_LESS_THAN, /*goto*/ 0x10 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_y CHR_P1P2, -1373 OPERATOR_LESS_THAN, /*goto*/ 0x10 - if_chr_stopped /*goto*/ 0x0c - endloop 0x0b - - label 0x0c - if_chr_death_animation_finished 0x2f, /*goto*/ 0x2e - chr_shoot_chr CHR_SELF, 0x2f, WEAPON_DY357MAGNUM - goto_next 0x06 - - label 0x2e - if_chr_death_animation_finished 0x2e, /*goto*/ 0x2e - chr_shoot_chr CHR_SELF, 0x2e, WEAPON_DY357MAGNUM - goto_next 0x06 - - label 0x2e - if_chr_death_animation_finished 0x2d, /*goto*/ 0x2e - chr_shoot_chr CHR_SELF, 0x2d, WEAPON_DY357MAGNUM - goto_next 0x06 - - label 0x2e - if_chr_death_animation_finished 0x2c, /*goto*/ 0x06 - chr_shoot_chr CHR_SELF, 0x2c, WEAPON_DY357MAGNUM - label 0x06 - goto_first 0x09 - - label 0x10 - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_00100000 - run_to_pad 0x0197 - - beginloop 0x60 - if_chr_stopped /*goto*/ 0x2e - endloop 0x60 - - label 0x2e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0416_mechanic: - set_onshot_function FUNC_MECHANIC - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2e - if_chr_dying CHR_SELF, /*goto*/ 0x2e - if_chr_unloaded CHR_SELF, /*goto*/ 0x2e - goto_next 0x06 - - label 0x2e - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - label 0x06 - if_just_injured CHR_SELF, /*goto*/ 0x2e - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x0f - goto_next 0x04 - - label 0x2e - set_chr_alliance CHR_SELF, ALLIANCE_ENEMY - cmd0145_rebuild_groups - cmd0146_rebuild_groups - - beginloop 0x6a - if_chr_stopped /*goto*/ 0x2e - endloop 0x6a - - // Not alert - at interceptor - label 0x04 - call_rng - animation ANIM_STANDING_TYPE_ONE_HAND, 0, 193, 0x1010, CHR_SELF, 2 - - beginloop 0x09 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_stage_flag_eq STAGEFLAG_TRIGGER_INTERCEPTOR, TRUE, /*goto*/ 0x2f - if_just_injured CHR_SELF, /*goto*/ 0x2e - if_target_chr_in_sight /*goto*/ 0x2e - if_chr_stopped /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - goto_first 0x04 - - label 0x2f - jog_to_pad 0x0385 - - beginloop 0x0c - if_chr_stopped /*goto*/ 0x0e - endloop 0x0c - - // In bunker - label 0x0e - animation ANIM_STANDING_TYPE_ONE_HAND, 0, 193, 0x1010, CHR_SELF, 2 - - beginloop 0x0d - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_shot_at_close_range /*goto*/ 0x2e - if_target_chr_in_sight /*goto*/ 0x2e - if_chr_stopped /*goto*/ 0x06 - endloop 0x0d - - label 0x06 - goto_first 0x0e - - label 0x2e - set_alertness 100 - restart_timer - try_face_entity 0x0200, 0x0000, /*goto*/ 0x0a - - beginloop 0x0a - if_angle_to_target_chr_lt 10, /*goto*/ 0x06 - if_timer_gt 30, /*goto*/ 0x06 - endloop 0x0a - - label 0x0f - set_chr_alliance CHR_SELF, ALLIANCE_ENEMY - cmd0145_rebuild_groups - cmd0146_rebuild_groups - play_sound 0x80f7, CHANNEL_7 - label 0x06 - set_return_function CHR_SELF, GFUNC_ALERTED - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -func1001_objectives_failed_msg: - yield - set_object_flag_bank1 OBJ_MINE1, OBJECTFLAG1_INVISIBLE - set_object_flag_bank1 OBJ_MINE2, OBJECTFLAG1_INVISIBLE - set_object_flag_bank1 OBJ_MINE3, OBJECTFLAG1_INVISIBLE - set_object_flag_bank1 0x1a, OBJECTFLAG1_INVISIBLE // invalid object - set_object_flag_bank1 OBJ_MINE4, OBJECTFLAG1_INVISIBLE - set_object_flag_bank1 OBJ_MINE5, OBJECTFLAG1_INVISIBLE - set_object_flag_bank1 OBJ_MINE6, OBJECTFLAG1_INVISIBLE - set_chr_flag_bank3 CHR_MECHANIC, CHRFLAG3_04000000 - set_function CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG - endfunction - -func040a_top_interceptor: - set_chr_health CHR_SELF, 5000 - set_object_flag_bank0 OBJ_INTERCEPTOR3, OBJECTFLAG0_INTERCEPTOR_DISABLED - restart_timer - - beginloop 0x03 - if_object_in_good_condition OBJ_INTERCEPTOR3, /*goto*/ 0x2e - set_function CHR_SELF, GFUNC_IDLE - label 0x2e - if_stage_flag_eq STAGEFLAG_TRIGGER_INTERCEPTOR, TRUE, /*goto*/ 0x06 - endloop 0x03 - - label 0x06 - unset_object_flag_bank0 OBJ_INTERCEPTOR3, OBJECTFLAG0_INTERCEPTOR_DISABLED - cmd0143 - begin_hovercar_path 0x22 - set_chr_health CHR_SELF, 5000 - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_sees_player /*goto*/ 0x59 - endloop 0x04 - - label 0x58 - yield - label 0x09 - begin_hovercar_path 0x22 - - beginloop 0x0a - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - label 0x06 - if_chr_sees_player /*goto*/ 0x59 - reloop 0x0a - - // Unreachable - label 0x5a - dprint "CHANGE TO LOW\n" - goto_first 0x09 - - label 0x59 - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x5b - reloop 0x0a - - label 0x5b - yield - if_chr_sees_player /*goto*/ 0x5c - restart_timer - - beginloop 0x5d - if_timer_gt 480, /*goto*/ 0x5e - if_chr_sees_player /*goto*/ 0x5c - endloop 0x5d - - label 0x5e - stop_chr - endloop 0x0a - - label 0x5c - goto_first 0x5b - - endfunction - -func040c_init_bottom_interceptors: - set_chr_health CHR_SELF, 5000 - set_object_flag_bank0 OBJ_INTERCEPTOR1, OBJECTFLAG0_INTERCEPTOR_DISABLED - set_object_flag_bank0 OBJ_INTERCEPTOR2, OBJECTFLAG0_INTERCEPTOR_DISABLED - - beginloop 0x04 - endloop 0x04 - - endfunction - -func040d_90c8: - set_self_flag_bank3 CHRFLAG3_00000020 - set_accuracy 30 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func040e_outro: - open_door 0x11 - hide_object OBJ_HOVERBIKE - camera_movement 0x017d - set_music_track MUSIC_INFILTRATION_OUTRO - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0xf1, CHRFLAG3_HIDDEN - set_function CHR_P1P2, GFUNC_IDLE - set_chr_flag_bank3 CHR_JONATHAN, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_OUTRO_GUARD, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - - unset_chr_flag_bank3 CHR_P1P2, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_P1P2, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_P1P2, CHRFLAG2_00020000 - animation 0x017f, -1, -1, 0x0600, CHR_P1P2, 4 - set_chr_hud_visible CHR_P1P2, TRUE - - set_chr_flag_bank3 CHR_JONATHAN, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_JONATHAN, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_JONATHAN, CHRFLAG2_00020000 - animation 0x017e, -1, -1, 0x0600, CHR_JONATHAN, 4 - - set_chr_flag_bank3 CHR_OUTRO_GUARD, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_OUTRO_GUARD, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_OUTRO_GUARD, CHRFLAG2_00020000 - animation 0x0180, -1, -1, 0x0600, CHR_OUTRO_GUARD, 4 - - restart_timer - show_nonessential_chrs FALSE - set_cutscene_weapon CHR_P1P2, -1, -1 - yield - set_cutscene_weapon CHR_P1P2, -1, WEAPON_FALCON2 - - .macro wait_until time loopid - beginloop \loopid - if_controller_button_pressed /*goto*/ 0x54 - if_timer_gt \time, /*goto*/ 0x06 - endloop \loopid - label 0x06 - .endm - - wait_until 1, 0x60 - speak CHR_P1P2, 0x2c43, 0x7421, CHANNEL_5, COLOR_07_RED // "Agent Dark! Over here!" - - wait_until 46, 0x61 - play_sound 0x0171, CHANNEL_7 - - wait_until 74, 0x62 - play_sound 0x0172, CHANNEL_6 - - wait_until 100, 0x64 - play_sound 0x0173, CHANNEL_7 - - wait_until 150, 0x65 - speak CHR_P1P2, 0x2c44, 0x7422, CHANNEL_5, COLOR_09_BLUE // "There you are! I was beginning to wonder if..." - - wait_until 188, 0x66 - play_sound 0x0174, CHANNEL_6 - - wait_until 278, 0x67 - play_sound 0x0175, CHANNEL_7 - - wait_until 290, 0x68 - set_chr_shooting_in_cutscene CHR_JONATHAN, TRUE - yield - yield - set_chr_shooting_in_cutscene CHR_JONATHAN, FALSE - - wait_until 296, 0x79 - play_sound 0x8076, CHANNEL_10 - - wait_until 310, 0x7a - play_sound 0x0090, CHANNEL_10 - - wait_until 392, 0x69 - play_sound 0x808e, CHANNEL_10 - - wait_until 406, 0x6c - speak CHR_P1P2, 0x2c45, 0x7423, CHANNEL_5, COLOR_07_RED // "If what?" - - wait_until 410, 0x6a - play_sound 0x0176, CHANNEL_6 - - wait_until 424, 0x6b - play_sound 0x0177, CHANNEL_6 - - wait_until 426, 0x6c - play_sound 0x0177, CHANNEL_7 - - wait_until 464, 0x6d - play_sound 0x007d, CHANNEL_10 - - wait_until 472, 0x6e - speak CHR_P1P2, 0x2c46, 0x7424, CHANNEL_5, COLOR_09_BLUE // "If you'd been discovered yet. And frankly, if this..." - - wait_until 900, 0x70 - speak CHR_P1P2, 0x2c47, 0x7425, CHANNEL_5, COLOR_07_RED // "I was tidying up one of your loose ends." - - wait_until 936, 0x6f - play_sound 0x0178, CHANNEL_7 - - wait_until 1080, 0x71 - speak CHR_P1P2, 0x2c48, 0x7426, CHANNEL_5, COLOR_09_BLUE // "My loose ends?" - - wait_until 1180, 0x72 - speak CHR_P1P2, 0x2c49, 0x7427, CHANNEL_5, COLOR_07_RED // "I'm sorry, I didn't realize you wanted him to shoo..." - - wait_until 1228, 0x73 - play_sound 0x0171, CHANNEL_7 - - wait_until 1286, 0x74 - play_sound 0x0172, CHANNEL_7 - - wait_until 1434, 0x75 - play_sound 0x0173, CHANNEL_7 - - wait_until 1462, 0x77 - play_sound 0x0174, CHANNEL_6 - - wait_until 1585, 0x76 - speak CHR_P1P2, 0x2c4a, 0x7428, CHANNEL_5, COLOR_09_BLUE // "Okay, okay, forget about it. I'm going to let the ..." - - wait_until 1588, 0x78 - play_sound 0x0175, CHANNEL_7 - - beginloop 0x09 - if_camera_animating /*goto*/ 0x2e - goto_next 0x54 - - label 0x2e - if_controller_button_pressed /*goto*/ 0x54 - label 0x2e - endloop 0x09 - - label 0x54 - label 0x06 - remove_chr CHR_OUTRO_GUARD - set_chr_hud_visible CHR_P1P2, FALSE - end_level - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0410_intro: - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - if_controller_button_pressed /*goto*/ 0x54 - set_music_track MUSIC_INFILTRATION_INTRO - camera_movement 0x0181 - set_chr_flag_bank3 0x0c, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0x0d, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0x32, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x32, CHRFLAG3_HIDDEN - set_chr_flag_bank2 0x32, CHRFLAG2_00020000 - animation 0x0182, -1, -1, 0x0600, 0x32, 4 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - restart_timer - fade_to_color 0x000000ff, 0 - fade_to_color 0x00000000, 90 - set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_JOANNA, WEAPON_FALCON2, WEAPON_NONE - - wait_until 26, 0x60 - speak CHR_JOANNA, 0x2c3a, 0x7418, CHANNEL_7, COLOR_06_WHITE // "Okay, Joanna, take a look at this. Our operative i..." - - wait_until 500, 0x61 - speak CHR_JOANNA, 0x2c3b, 0x7419, CHANNEL_7, COLOR_06_WHITE // "This is your entry point... A deserted helipad on ..." - - wait_until 800, 0x62 - speak CHR_JOANNA, 0x2c3c, 0x741a, CHANNEL_7, COLOR_06_WHITE // "The lift down to the hangars and the rendezvous po..." - - wait_until 1200, 0x63 - - wait_until 1236, 0x64 - speak CHR_JOANNA, 0x2c3d, 0x741b, CHANNEL_7, COLOR_06_WHITE // "Here is the communications antenna. Attach a comms..." - - beginloop 0x09 - if_camera_animating /*goto*/ 0x2e - goto_next 0x06 - - label 0x2e - if_controller_button_pressed /*goto*/ 0x06 - label 0x2e - endloop 0x09 - - label 0x06 - label 0x55 - unset_chr_flag_bank3 0x32, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - label 0x54 - if_controller_button_pressed /*goto*/ 0x54 - camera_movement 0x0183 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - - set_chr_flag_bank3 0x29, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x29, CHRFLAG3_HIDDEN - set_chr_flag_bank2 0x29, CHRFLAG2_00020000 - animation 0x0184, -1, -1, 0x0600, 0x29, 4 - - set_chr_flag_bank3 0x2a, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x2a, CHRFLAG3_HIDDEN - set_chr_flag_bank2 0x2a, CHRFLAG2_00020000 - animation 0x0185, -1, -1, 0x0600, 0x2a, 4 - - set_chr_flag_bank3 0x2b, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x2b, CHRFLAG3_HIDDEN - set_chr_flag_bank2 0x2b, CHRFLAG2_00020000 - animation 0x0186, -1, -1, 0x0600, 0x2b, 4 - - set_object_flag_bank1 0x2f, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x2f, OBJECTFLAG2_00000010 - object_do_animation 0x0187, 0x2f, 0x04ff, 0xff - restart_timer - - wait_until 186, 0x65 - speak CHR_JOANNA, 0x2c3e, 0x81b9, CHANNEL_7, COLOR_09_BLUE // "Oh, my God!" - - wait_until 380, 0x66 - speak CHR_JOANNA, 0x2c3f, 0x741d, CHANNEL_7, COLOR_06_WHITE // "Here is our friend. He appears to be physically un..." - - beginloop 0x0a - if_camera_animating /*goto*/ 0x2e - goto_next 0x06 - - label 0x2e - if_controller_button_pressed /*goto*/ 0x06 - label 0x2e - endloop 0x0a - - label 0x06 - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x29, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x2a, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x2b, CHRFLAG3_UNPLAYABLE - unset_object_flag_bank1 0x2f, OBJECTFLAG1_04000000 - label 0x54 - if_controller_button_pressed /*goto*/ 0x54 - camera_movement 0x0188 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - - set_chr_flag_bank3 0x2a, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x2a, CHRFLAG3_HIDDEN - set_chr_flag_bank2 0x2a, CHRFLAG2_00020000 - animation 0x0189, -1, -1, 0x0600, 0x2a, 4 - - set_chr_flag_bank3 0x2b, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x2b, CHRFLAG3_HIDDEN - set_chr_flag_bank2 0x2b, CHRFLAG2_00020000 - animation 0x018a, -1, -1, 0x0600, 0x2b, 4 - - set_object_flag_bank1 0x2f, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x2f, OBJECTFLAG2_00000010 - object_do_animation 0x018b, 0x2f, 0x04ff, 0xff - restart_timer - - wait_until 416, 0x67 - speak CHR_JOANNA, 0x2c40, 0x741e, CHANNEL_7, COLOR_09_BLUE // "But who was...?" - - wait_until 485, 0x68 - speak CHR_JOANNA, 0x2c41, 0x741f, CHANNEL_7, COLOR_06_WHITE // "Any questions? No. Good. Away you go to the hangar..." - - beginloop 0x0b - if_camera_animating /*goto*/ 0x2e - goto_next 0x06 - - label 0x2e - if_controller_button_pressed /*goto*/ 0x06 - label 0x2e - endloop 0x0b - - label 0x06 - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x2a, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x2b, CHRFLAG3_UNPLAYABLE - unset_object_flag_bank1 0x2f, OBJECTFLAG1_04000000 - label 0x54 - camera_movement 0x00f0 - cmd0175 60 - if_controller_button_pressed /*goto*/ 0x54 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x00f1, -1, -1, 0x0600, CHR_JOANNA, 4 - set_chr_flag_bank3 0x03, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 0x03, CHRFLAG2_00020000 - unset_chr_flag_bank3 0x03, CHRFLAG3_HIDDEN - restart_timer - - wait_until 1, 0x69 - speak CHR_JOANNA, 0x2c42, 0x7420, CHANNEL_10, COLOR_09_BLUE // "Agent Dark Mission Log, 1028 hours. Against my bet..." - - wait_until 340, 0x6a - play_sound 0x80d5, CHANNEL_10 - - wait_until 364, 0x6b - play_sound 0x04b0, CHANNEL_10 - - wait_until 458, 0x6c - play_sound 0x046e, CHANNEL_10 - - play_sound 0x80d5, CHANNEL_10 - wait_until 496, 0x6d - play_sound 0x80cc, CHANNEL_10 - - play_sound 0x80cd, CHANNEL_10 - wait_until 638, 0x6e - - wait_until 688, 0x6f - play_sound 0x046f, CHANNEL_10 - play_sound 0x80ce, CHANNEL_10 - play_sound 0x80cf, CHANNEL_10 - - wait_until 750, 0x70 - play_sound 0x016a, CHANNEL_10 - - wait_until 815, 0x71 - play_sound 0x016b, CHANNEL_10 - - wait_until 844, 0x72 - play_sound 0x016c, CHANNEL_10 - - wait_until 908, 0x73 - play_sound 0x0169, CHANNEL_10 - - wait_until 916, 0x74 - - beginloop 0x0c - if_camera_animating /*goto*/ 0x2e - goto_next 0x54 - - label 0x2e - if_controller_button_pressed /*goto*/ 0x54 - label 0x2e - endloop 0x0c - - label 0x54 - mute_channel CHANNEL_10 - mute_channel CHANNEL_7 - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x0c, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x0d, CHRFLAG3_HIDDEN - remove_chr 0x32 - remove_chr 0x29 - remove_chr 0x2a - remove_chr 0x2b - hide_object 0x2f - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x00f1, -2, -1, 0x0600, CHR_JOANNA, 2 - unset_chr_flag_bank3 0x03, CHRFLAG3_UNPLAYABLE - set_function 0x02, 0x0426 - set_function 0x03, 0x0426 - unset_object_flag_bank1 OBJ_INTERCEPTOR1, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank1 OBJ_INTERCEPTOR2, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank1 OBJ_INTERCEPTOR3, OBJECTFLAG1_INVISIBLE - restart_default_music - reset_ambience - enter_firstperson - set_stage_flag STAGEFLAG_INTRO_FINISHED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * This pad is right next to where you start. Most likely the guard was changed - * to use a path instead, but this function remained. - * - * @unused - */ -func0418_walk_to_pad: - walk_to_pad 0x0019 - beginloop 0x09 - endloop 0x09 - - endfunction - -func1010_bunker_lighting: - yield - set_chr_alliance CHR_COUNTEROP, ALLIANCE_ENEMY - restart_timer - - beginloop 0x09 - if_stage_flag_eq STAGEFLAG_EXPLOSIVES_PLACED, TRUE, /*goto*/ 0x06 - if_stage_flag_eq STAGEFLAG_ANY_LASER_DESTROYED, TRUE, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - mute_channel CHANNEL_0 - yield - assign_sound 0x04ac, CHANNEL_0 - play_sound_from_object CHANNEL_0, 0x10, 0x0320, 0x044c - set_lights_state 0x0009, 0x03, 0xff, 0x32, 0x78 - if_difficulty_lt DIFF_SA, /*goto*/ 0x0e - restart_timer - - beginloop 0x0a - if_timer_gt 30, /*goto*/ 0x2e - endloop 0x0a - - label 0x2e - - beginloop 0x0b - if_timer_gt 40, /*goto*/ 0x2e - endloop 0x0b - - label 0x2e - label 0x0e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1012_bunker_laser1: - if_difficulty_gt DIFF_A, /*goto*/ 0x2e - set_function CHR_SELF, GFUNC_IDLE - - // SA and PA only - label 0x2e - restart_timer - - beginloop 0x09 - if_stage_flag_eq STAGEFLAG_EXPLOSIVES_PLACED, TRUE, /*goto*/ 0x0a - if_stage_flag_eq STAGEFLAG_ANY_LASER_DESTROYED, TRUE, /*goto*/ 0x0a - endloop 0x09 - - label 0x0a - restart_timer - close_door 0x1e - - beginloop 0x0b - if_stage_flag_eq STAGEFLAG_RADAR_SHUT_DOWN, TRUE, /*goto*/ 0x10 - if_timer_gt 180, /*goto*/ 0x06 - endloop 0x0b - - label 0x06 - restart_timer - open_door 0x1e - - beginloop 0x0c - if_stage_flag_eq STAGEFLAG_RADAR_SHUT_DOWN, TRUE, /*goto*/ 0x10 - if_timer_gt 180, /*goto*/ 0x06 - endloop 0x0c - - label 0x06 - goto_first 0x0a - - label 0x10 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1013_bunker_lasers234: - if_difficulty_gt DIFF_A, /*goto*/ 0x2e - set_function CHR_SELF, GFUNC_IDLE - - label 0x2e - restart_timer - - beginloop 0x09 - if_stage_flag_eq STAGEFLAG_EXPLOSIVES_PLACED, TRUE, /*goto*/ 0x0a - if_stage_flag_eq STAGEFLAG_ANY_LASER_DESTROYED, TRUE, /*goto*/ 0x0a - endloop 0x09 - - label 0x0a - restart_timer - close_door 0x1f - close_door 0x20 - close_door 0x21 - - beginloop 0x0b - if_stage_flag_eq STAGEFLAG_RADAR_SHUT_DOWN, TRUE, /*goto*/ 0x10 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x0b - - label 0x06 - restart_timer - open_door 0x1f - open_door 0x20 - open_door 0x21 - - beginloop 0x0c - if_stage_flag_eq STAGEFLAG_RADAR_SHUT_DOWN, TRUE, /*goto*/ 0x10 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x0c - - label 0x06 - goto_first 0x0a - - label 0x10 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1013_bunker_lasers56: - if_difficulty_gt DIFF_A, /*goto*/ 0x2e - set_function CHR_SELF, GFUNC_IDLE - - label 0x2e - restart_timer - - beginloop 0x09 - if_stage_flag_eq STAGEFLAG_EXPLOSIVES_PLACED, TRUE, /*goto*/ 0x0a - if_stage_flag_eq STAGEFLAG_ANY_LASER_DESTROYED, TRUE, /*goto*/ 0x0a - endloop 0x09 - - label 0x0a - restart_timer - close_door 0x22 - - beginloop 0x0b - if_stage_flag_eq STAGEFLAG_RADAR_SHUT_DOWN, TRUE, /*goto*/ 0x10 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x0b - - label 0x06 - restart_timer - open_door 0x22 - close_door 0x23 - - beginloop 0x0c - if_stage_flag_eq STAGEFLAG_RADAR_SHUT_DOWN, TRUE, /*goto*/ 0x10 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x0c - - label 0x06 - label 0x06 - restart_timer - open_door 0x23 - close_door 0x24 - - beginloop 0x0d - if_stage_flag_eq STAGEFLAG_RADAR_SHUT_DOWN, TRUE, /*goto*/ 0x10 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x0d - - label 0x06 - label 0x06 - restart_timer - open_door 0x24 - - beginloop 0x0e - if_stage_flag_eq STAGEFLAG_RADAR_SHUT_DOWN, TRUE, /*goto*/ 0x10 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x0e - - label 0x06 - goto_first 0x0a - - label 0x10 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1013_bunker_lasers: - if_difficulty_gt DIFF_A, /*goto*/ 0x03 - - // Agent - hide lasers - hide_object 0x1e - hide_object 0x1f - hide_object 0x20 - hide_object 0x21 - hide_object 0x22 - hide_object 0x23 - hide_object 0x24 - set_function CHR_SELF, GFUNC_IDLE - - // SA and PA - label 0x03 - set_object_flag_bank0 0x1e, OBJECTFLAG0_40000000 - set_object_flag_bank0 0x1f, OBJECTFLAG0_40000000 - set_object_flag_bank0 0x20, OBJECTFLAG0_40000000 - set_object_flag_bank0 0x21, OBJECTFLAG0_40000000 - set_object_flag_bank0 0x22, OBJECTFLAG0_40000000 - set_object_flag_bank0 0x23, OBJECTFLAG0_40000000 - set_object_flag_bank0 0x24, OBJECTFLAG0_40000000 - open_door 0x1e - open_door 0x1f - open_door 0x20 - open_door 0x21 - open_door 0x22 - open_door 0x23 - open_door 0x24 - set_object_flag_bank0 0x1e, OBJECTFLAG0_40000000 - set_object_flag_bank0 0x1f, OBJECTFLAG0_40000000 - set_object_flag_bank0 0x20, OBJECTFLAG0_40000000 - set_object_flag_bank0 0x21, OBJECTFLAG0_40000000 - set_object_flag_bank0 0x22, OBJECTFLAG0_40000000 - set_object_flag_bank0 0x23, OBJECTFLAG0_40000000 - set_object_flag_bank0 0x24, OBJECTFLAG0_40000000 - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_EXPLOSIVES_PLACED, TRUE, /*goto*/ 0x09 - if_stage_flag_eq STAGEFLAG_ANY_LASER_DESTROYED, TRUE, /*goto*/ 0x09 - if_door_state 0x1e, DOORSTATE_CLOSED | DOORSTATE_CLOSING, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - goto_first 0x03 - - beginloop 0x09 - if_stage_flag_eq STAGEFLAG_RADAR_SHUT_DOWN, TRUE, /*goto*/ 0x2e - endloop 0x09 - - label 0x2e - open_door 0x1e - open_door 0x1f - open_door 0x20 - open_door 0x21 - open_door 0x22 - open_door 0x23 - open_door 0x24 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1011_bunker_explosives: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, OBJ_RADAR_TERMINAL, /*goto*/ 0x2e - reloop 0x04 - - label 0x2e - if_chr_weapon_equipped CHR_P1P2, WEAPON_EXPLOSIVES, /*goto*/ 0x2e - message CHR_P1P2, 0x2c2d // "Access denied." - goto_first 0x04 - - label 0x2e - unset_object_flag_bank1 OBJ_EXPLOSIVE_BRICK, OBJECTFLAG1_INVISIBLE - message CHR_P1P2, 0x2c2e // "Explosive has been placed." - remove_weapon_from_inventory WEAPON_EXPLOSIVES - set_stage_flag STAGEFLAG_EXPLOSIVES_PLACED - restart_timer - - beginloop 0x0a - if_timer_gt 180, /*goto*/ 0x06 - endloop 0x0a - - label 0x06 - yield - set_countdown_timer 20 - if_difficulty_lt DIFF_SA, /*goto*/ 0x2e - if_stage_flag_eq STAGEFLAG_ANY_LASER_DESTROYED, TRUE, /*goto*/ 0x06 - message CHR_P1P2, 0x2c2f // "Intruder detected - security system online." - goto_next 0x06 - - // Agent - label 0x2e - message CHR_P1P2, 0x2c4b // "Foreign object detected - security alerted." - label 0x06 - play_x_music CHANNEL_10, 20 - yield - show_countdown_timer - start_countdown_timer - - beginloop 0x09 - if_countdown_timer_lt 1, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - hide_countdown_timer - unset_object_flag_bank0 OBJ_RADAR_TERMINAL, OBJECTFLAG0_INVINCIBLE - yield - move_object_to_pad 0x25, 0x036b - hide_object OBJ_EXPLOSIVE_BRICK - unset_object_flag_bank0 0x25, OBJECTFLAG0_INVINCIBLE - destroy_object 0x25 - destroy_object OBJ_RADAR_TERMINAL - mute_channel CHANNEL_0 - assign_sound 0x0479, CHANNEL_0 - control_sound_from_object CHANNEL_0, OBJ_RADAR_TERMINAL, TRUE - restart_timer - - beginloop 0x0b - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x0b - - label 0x06 - move_object_to_pad 0x26, 0x0375 - unset_object_flag_bank0 0x26, OBJECTFLAG0_INVINCIBLE - destroy_object 0x26 - move_object_to_pad 0x27, 0x0376 - unset_object_flag_bank0 0x27, OBJECTFLAG0_INVINCIBLE - destroy_object 0x27 - move_object_to_pad 0x28, 0x0372 - unset_object_flag_bank0 0x28, OBJECTFLAG0_INVINCIBLE - destroy_object 0x28 - yield - restart_timer - - beginloop 0x0c - if_timer_gt 90, /*goto*/ 0x06 - endloop 0x0c - - label 0x06 - unset_object_flag_bank0 0x51, OBJECTFLAG0_INVINCIBLE - destroy_object 0x51 - restart_timer - - beginloop 0x7b - if_timer_gt 90, /*goto*/ 0x06 - endloop 0x7b - - label 0x06 - unset_object_flag_bank0 0x2d, OBJECTFLAG0_INVINCIBLE - move_object_to_pad 0x2d, 0x0379 - destroy_object 0x2d - restart_timer - - beginloop 0x11 - if_timer_gt 90, /*goto*/ 0x06 - endloop 0x11 - - label 0x06 - label 0x06 - unset_object_flag_bank0 0x29, OBJECTFLAG0_INVINCIBLE - move_object_to_pad 0x29, 0x0373 - destroy_object 0x29 - restart_timer - - beginloop 0x0d - if_timer_gt 90, /*goto*/ 0x06 - endloop 0x0d - - label 0x06 - unset_object_flag_bank0 0x2a, OBJECTFLAG0_INVINCIBLE - move_object_to_pad 0x2a, 0x0374 - destroy_object 0x2a - restart_timer - - beginloop 0x0e - if_timer_gt 90, /*goto*/ 0x06 - endloop 0x0e - - label 0x06 - unset_object_flag_bank0 0x2b, OBJECTFLAG0_INVINCIBLE - move_object_to_pad 0x2b, 0x0377 - destroy_object 0x2b - restart_timer - - beginloop 0x0f - if_timer_gt 90, /*goto*/ 0x06 - endloop 0x0f - - label 0x06 - unset_object_flag_bank0 0x2c, OBJECTFLAG0_INVINCIBLE - move_object_to_pad 0x2c, 0x0378 - destroy_object 0x2c - restart_timer - - beginloop 0x10 - if_timer_gt 90, /*goto*/ 0x06 - endloop 0x10 - - label 0x06 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1016_trigger_interceptor: - restart_timer - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_COMMSBUG_PLACED, TRUE, /*goto*/ 0x2e - reloop 0x04 - - label 0x2e - if_difficulty_lt DIFF_SA, /*goto*/ 0x09 - if_difficulty_lt DIFF_PA, /*goto*/ 0x0a - - // PA - 60 seconds - if_timer_gt 3600, /*goto*/ 0x06 - goto_first 0x04 - - // Agent - 120 seconds - label 0x09 - if_timer_gt 7200, /*goto*/ 0x06 - reloop 0x04 - - // SA - 90 seconds - label 0x0a - if_timer_gt 5400, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - set_stage_flag STAGEFLAG_TRIGGER_INTERCEPTOR - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1017_radar_terminal_noise: - yield - assign_sound 0x8146, CHANNEL_0 - play_sound_from_object CHANNEL_0, OBJ_RADAR_TERMINAL, 0x0320, 0x044c - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1018_unhide_guards: - set_chr_flag_bank3 0x35, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0x1f, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0x20, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0x21, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0x22, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0x23, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0x24, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0x35, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 0x1f, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 0x20, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 0x21, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 0x22, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 0x23, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 0x24, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - - // Agent: wait until guards 0x10 and 0x11 are dead - // (two guards near antenna blue door) - // SA and PA: Wait until bug thrown on antenna - beginloop 0x04 - if_difficulty_lt DIFF_SA, /*goto*/ 0x06 - if_objective_complete 1, /*goto*/ 0x2e - reloop 0x04 - - label 0x06 - if_chr_death_animation_finished 0x10, /*goto*/ 0x06 - if_chr_dying 0x10, /*goto*/ 0x06 - if_chr_unloaded 0x10, /*goto*/ 0x06 - goto_first 0x04 - - label 0x06 - if_chr_death_animation_finished 0x11, /*goto*/ 0x2e - if_chr_dying 0x11, /*goto*/ 0x2e - if_chr_unloaded 0x11, /*goto*/ 0x2e - endloop 0x04 - - // Enable 4 more guards - the ones inside the blue door - label 0x2e - unset_chr_flag_bank3 0x1f, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x20, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x21, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x22, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x1f, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x20, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x21, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x22, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x1f, FUNC_TROOPER_ALERTED - set_function 0x20, FUNC_TROOPER_ALERTED - set_function 0x21, FUNC_TROOPER_ALERTED - set_function 0x22, FUNC_TROOPER_ALERTED - - // Wait until player in room 0x0044 (first hangar ramp) - beginloop 0x09 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0044, /*goto*/ 0x2e - endloop 0x09 - - // Enable 2 more guards - label 0x2e - unset_chr_flag_bank3 0x23, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x24, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x23, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x24, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x23, FUNC_DRAGON_ALERTED - set_function 0x24, FUNC_DRAGON_ALERTED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0419_clone_spawner: - set_chr_dodge_rating 2, 0x0a - set_accuracy 8 - set_reaction_speed 30 - set_chr_health CHR_SELF, 40 - set_armor 10 - set_recovery_speed 35 - set_shield 0 - 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 - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_ENTERED_FINAL_HANGAR, TRUE, /*goto*/ 0x2e - reloop 0x04 - - label 0x2e - dprint "OBJECTIVE DONE\n" - if_never_been_onscreen /*goto*/ 0x4f - if_chr_sees_player /*goto*/ 0x09 - reloop 0x04 - - label 0x09 - set_function CHR_SELF, FUNC_ALERTED_SPAWNED_GUARD - - label 0x4f - unset_self_flag_bank3 CHRFLAG3_HIDDEN - unset_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x4f - reloop 0x04 - - label 0x4f - try_spawn_clone2 CHR_SELF, FUNC_INIT_ALERTED_SPAWNED_GUARD, 0x00000000, /*goto*/ 0x2e - set_function CHR_SELF, FUNC_ALERTED_SPAWNED_GUARD - - label 0x2e - yield - endloop 0x04 - - endfunction - -func041a_init_alerted_spawned_guard: - set_self_flag_bankx CHRFLAG1_00080000, BANK_1 - label 0x04 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - try_inherit_properties 0x25, /*goto*/ 0x06 - label 0x06 - set_function CHR_SELF, FUNC_ALERTED_SPAWNED_GUARD - endfunction - -func041b_alerted_spawned_guard: - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -func1019_spawn_guards_at_antenna: - // Agent: wait until guards 0x10 and 0x11 are dead - // (two guards near antenna blue door) - // SA and PA: Wait until bug thrown on antenna - beginloop 0x04 - dprint "CHECK FOR OBJECTIVE\n" - if_difficulty_lt DIFF_SA, /*goto*/ 0x06 - if_objective_complete 1, /*goto*/ 0x2e - reloop 0x04 - - label 0x06 - if_chr_death_animation_finished 0x10, /*goto*/ 0x06 - if_chr_dying 0x10, /*goto*/ 0x06 - if_chr_unloaded 0x10, /*goto*/ 0x06 - reloop 0x04 - - label 0x06 - if_chr_death_animation_finished 0x11, /*goto*/ 0x2e - if_chr_dying 0x11, /*goto*/ 0x2e - if_chr_unloaded 0x11, /*goto*/ 0x2e - endloop 0x04 - - // Spawn 3 guards - label 0x2e - label 0x06 - set_var_a 3 - - beginloop 0x56 - dprint "TRY CREATE\n" - if_var_a_lt 1, /*goto*/ 0x06 - try_spawn_chr BODY_A51TROOPER, HEAD_RANDOM, 0x00a0, FUNC_SPAWNED_GUARD, 0x00000200, /*goto*/ 0x57 - reloop 0x56 - - label 0x57 - yield - dprint "CREATE\n" - subtract_var_a 1 - restart_timer - - beginloop 0x09 - if_timer_gt 10, /*goto*/ 0x2e - endloop 0x09 - - label 0x2e - endloop 0x56 - - label 0x06 - yield - yield - yield - yield - yield - unset_chr_flag_bank3 0x35, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x35, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x35, GFUNC_SEARCH_FOR_PLAYER - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040f_spawned_guard: - try_draw_weapon MODEL_CHRLEEGUN1, WEAPON_MAGSEC4, 0x00000000, /*goto*/ 0x06 - label 0x06 - set_chr_alliance CHR_SELF, ALLIANCE_ENEMY - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - set_self_flag_bankx CHRFLAG0_04000000, BANK_0 - set_group 0x0e - set_self_flag_bank3 CHRFLAG3_00080000 - try_inherit_properties 0x35, /*goto*/ 0x06 - label 0x06 - restart_timer - - beginloop 0x0a - if_timer_gt 300, /*goto*/ 0x2e - endloop 0x0a - - label 0x2e - run_to_pad 0x0095 // outside blue door - - beginloop 0x09 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - set_function CHR_SELF, GFUNC_SEARCH_FOR_PLAYER - endfunction - -.macro init_guard accuracy reaction armor recovery function - set_accuracy \accuracy - set_reaction_speed \reaction - set_chr_health CHR_SELF, 40 - set_armor \armor - set_recovery_speed \recovery - set_shield 0 - set_function CHR_SELF, \function -.endm - -func041d_trooper_unalerted: - set_chr_dodge_rating 2, 0x0a - init_guard 6, 50, 0, 0, GFUNC_UNALERTED - endfunction - -func041f_trooper_alerted: - set_chr_dodge_rating 2, 0x0a - init_guard 6, 50, 0, 0, GFUNC_ALERTED - endfunction - -func041e_dragon_unalerted: - init_guard 8, 30, 10, 35, GFUNC_UNALERTED - endfunction - -func0420_dragon_alerted: - init_guard 8, 30, 10, 35, GFUNC_ALERTED - endfunction - -func141f_start_lifts: - activate_lift 2, 0x31 - activate_lift 3, 0x32 - activate_lift 4, 0x33 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101a_check_mechanic_dead: - yield - unset_eeprom_flag EEPROMFLAG_RESCUE_MECHANIC_DEAD - - beginloop 0x04 - if_chr_dying CHR_MECHANIC, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - set_eeprom_flag EEPROMFLAG_RESCUE_MECHANIC_DEAD - dprint "DELETE MECH\n" - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * @bug: This message cannot be played because the player has no way to get to - * room 0x0001, which is above the bunker roof. - */ -func101b_msg_airinterceptradar: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0001, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - speak CHR_P1P2, 0x2c35, 0x817d, CHANNEL_6, COLOR_09_BLUE // "The air intercept radar is controlled from that bu..." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101c_msg_cantthrow: - if_difficulty_lt DIFF_SA, /*goto*/ 0x0e - restart_timer - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0013, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - speak CHR_P1P2, 0x2c36, 0x73b9, CHANNEL_6, COLOR_09_BLUE // "There's the antenna, but... I can't throw a bug th..." - label 0x0e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * This message is also unplayable. - */ -func101d_msg_hangarlift: - // Wait for radar shut down and player in room 0x0001 (which is impossible) - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_objective_complete 0, /*goto*/ 0x2e - reloop 0x04 - - label 0x2e - if_chr_in_room CHR_P1P2, 0x00, 0x0001, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - speak CHR_P1P2, 0x2c37, 0x817e, CHANNEL_6, COLOR_09_BLUE // "The hangar lift is on the other side of that huge ..." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101e_msg_triggerfinger: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0051, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - speak CHR_P1P2, 0x2c38, 0x817f, CHANNEL_6, COLOR_09_BLUE // "Careful with that trigger finger, Agent Dark - you..." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0421_activate_autogun: - set_onshot_function GFUNC_ALERTED - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x2e - if_shot_at_close_range /*goto*/ 0x2e - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - run_to_pad 0x0384 - - beginloop 0x09 - if_object_in_good_condition OBJ_AUTOGUN_AT_START, /*goto*/ 0x06 - goto_next 0x0e - - label 0x06 - if_chr_stopped /*goto*/ 0x2e - endloop 0x09 - - label 0x2e - animation ANIM_STANDING_TYPE_ONE_HAND, 0, 120, 0x1010, CHR_SELF, 2 - - beginloop 0x0a - if_chr_stopped /*goto*/ 0x2e - endloop 0x0a - - label 0x2e - if_object_in_good_condition OBJ_AUTOGUN_AT_START, /*goto*/ 0x2e - goto_next 0x06 - - label 0x2e - unset_object_flag_bank0 OBJ_AUTOGUN_AT_START, OBJECTFLAG0_DEACTIVATED - label 0x06 - set_function CHR_SELF, GFUNC_ALERTED - - label 0x0e - say_quip CHR_JOANNA, 0x12, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00 - restart_timer - animation ANIM_SURPRISED_0202, 0, -1, 0x0010, CHR_SELF, 2 - - beginloop 0x7c - if_timer_gt 60, /*goto*/ 0x7d - endloop 0x7c - - label 0x7d - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -/** - * Randomly select one of two guards near the start to be the one who will - * attempt to activate the autogun. - */ -func1020_choose_autogun_guard: - yield - call_rng - if_rand_gt 128, /*goto*/ 0x2e - set_function 0x00, FUNC_ACTIVATE_AUTOGUN - set_function CHR_SELF, GFUNC_IDLE - - label 0x2e - set_function 0x01, FUNC_ACTIVATE_AUTOGUN - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1021_damage_rl_guard: - yield - damage_chr CHR_ROCKETLAUNCHER_GUARD, 18 - yield - damage_chr CHR_ROCKETLAUNCHER_GUARD, 18 - yield - damage_chr CHR_ROCKETLAUNCHER_GUARD, 18 - yield - damage_chr CHR_ROCKETLAUNCHER_GUARD, 18 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1022_check_lift_switches_destroyed: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_LIFT1_CALLED, TRUE, /*goto*/ 0x06 - if_stage_flag_eq STAGEFLAG_LIFT2_CALLED, TRUE, /*goto*/ 0x06 - if_object_in_good_condition OBJ_LIFT1_SWITCH, /*goto*/ 0x2e - if_object_in_good_condition OBJ_LIFT2_SWITCH, /*goto*/ 0x2e - message CHR_JOANNA, 0x2c39 // "Lift access terminals destroyed." - set_stage_flag STAGEFLAG_LIFT_SWITCHES_DESTROYED - goto_next 0x06 - - label 0x2e - endloop 0x04 - - label 0x06 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1024_lift_door_sounds: - beginloop 0x7e - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, 0x3c, /*goto*/ 0x0a - if_chr_activated_object CHR_P1P2, 0x3e, /*goto*/ 0x0b - if_chr_activated_object CHR_P1P2, 0x3d, /*goto*/ 0x41 - if_chr_activated_object CHR_P1P2, 0x3f, /*goto*/ 0x41 - if_chr_activated_object CHR_P1P2, 0x40, /*goto*/ 0x2e - if_chr_activated_object CHR_P1P2, 0x41, /*goto*/ 0x2e - if_chr_activated_object CHR_P1P2, 0x42, /*goto*/ 0x2e - if_chr_activated_object CHR_P1P2, 0x43, /*goto*/ 0x2e - goto_first 0x7e - - label 0x0a - if_door_locked 0x3c, 0x02, /*goto*/ 0x2f - goto_next 0x41 - - label 0x0b - if_door_locked 0x3e, 0x02, /*goto*/ 0x2f - goto_next 0x41 - - label 0x41 - play_sound 0x01dc, -1 - goto_next 0x06 - - label 0x2e - play_sound 0x81b0, -1 - goto_next 0x06 - - label 0x2f - play_sound 0x05dd, -1 - label 0x06 - restart_timer - - beginloop 0x09 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - endloop 0x7e - - endfunction - -func1025_spawn_bunker_guards: - // This logic is pointless and all leads to label 0x04 anyway - if_difficulty_gt DIFF_SA, /*goto*/ 0x2e - goto_next 0x04 - label 0x2e - if_difficulty_lt DIFF_PA, /*goto*/ 0x0e - - beginloop 0x04 - yield - yield - yield - yield - if_stage_flag_eq STAGEFLAG_EXPLOSIVES_PLACED, TRUE, /*goto*/ 0x2e - if_difficulty_lt DIFF_SA, /*goto*/ 0x06 - if_stage_flag_eq STAGEFLAG_ANY_LASER_DESTROYED, TRUE, /*goto*/ 0x2e - label 0x06 - endloop 0x04 - - label 0x2e - if_difficulty_lt DIFF_SA, /*goto*/ 0x2e - if_stage_flag_eq STAGEFLAG_ANY_LASER_DESTROYED, FALSE, /*goto*/ 0x0e - label 0x2e - restart_timer - - beginloop 0x60 - try_spawn_chr BODY_A51AIRMAN, HEAD_RANDOM, 0x0057, 0x0423, 0x00000300, /*goto*/ 0x0a - endloop 0x60 - - beginloop 0x0a - if_timer_gt 30, /*goto*/ 0x06 - endloop 0x0a - - label 0x06 - - beginloop 0x61 - try_spawn_chr BODY_A51AIRMAN, HEAD_RANDOM, 0x0050, 0x0423, 0x00000300, /*goto*/ 0x0b - endloop 0x61 - - beginloop 0x0b - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x0b - - label 0x06 - label 0x0e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0423_a5e8: - try_inherit_properties 0x25, /*goto*/ 0x06 - label 0x06 - set_alertness 100 - set_self_flag_bankx CHRFLAG0_CAN_HEAR_ALARMS, BANK_0 - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - set_self_flag_bankx CHRFLAG0_AIVSAI, BANK_0 - set_self_flag_bankx CHRFLAG0_CAN_HEARSPAWN, BANK_0 - try_draw_weapon MODEL_CHRDRAGON, WEAPON_DRAGON, 0x00000000, /*goto*/ 0x06 - label 0x06 - set_chr_alliance CHR_SELF, ALLIANCE_ENEMY - yield - yield - yield - yield - yield - yield - yield - yield - yield - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, FUNC_TROOPER_ALERTED - endfunction - -.macro watch_for_laser_broken crate1 crate2 laser - if_difficulty_gt DIFF_A, /*goto*/ 0x7e - set_function CHR_SELF, GFUNC_IDLE - - // SA and PA - beginloop 0x7e - if_object_in_good_condition \crate1, /*goto*/ 0x2e - goto_next 0x06 - - label 0x2e - if_object_in_good_condition \crate2, /*goto*/ 0x2e - goto_next 0x06 - - label 0x2e - endloop 0x7e - - label 0x06 - hide_object \laser - set_function CHR_SELF, FUNC_ACTIVATE_LASERS -.endm - -func1026_check_laser1_broken: - watch_for_laser_broken 0x44, 0x45, 0x1e - endfunction - -func1027_check_laser2_broken: - watch_for_laser_broken 0x46, 0x47, 0x1f - endfunction - -func1028_check_laser3_broken: - watch_for_laser_broken 0x48, 0x49, 0x20 - endfunction - -func1029_check_laser4_broken: - watch_for_laser_broken 0x4a, 0x4b, 0x21 - endfunction - -func102a_check_laser5_broken: - watch_for_laser_broken 0x4c, 0x4d, 0x22 - endfunction - -func102b_check_laser6_broken: - watch_for_laser_broken 0x4e, 0x4f, 0x23 - endfunction - -func102c_check_laser7_broken: - watch_for_laser_broken 0x50, 0x52, 0x24 - endfunction - -func0424_activate_lasers: - if_difficulty_lt DIFF_PA, /*goto*/ 0x2e - - // PA - label 0x7e - if_stage_flag_eq STAGEFLAG_ANY_LASER_DESTROYED, TRUE, /*goto*/ 0x2e - set_stage_flag STAGEFLAG_ANY_LASER_DESTROYED - if_stage_flag_eq STAGEFLAG_EXPLOSIVES_PLACED, TRUE, /*goto*/ 0x2e - message CHR_JOANNA, 0x2c2f // "Intruder detected - security system online." - - // A and SA - label 0x2e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0425_a7d4: - label 0x04 - yield - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_UNEXPLODABLE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * This hidden guard is used as a template for cloning others. - */ -func041c_template_guard: - label 0x04 - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_UNEXPLODABLE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func102d_check_antenna_switch_destroyed: - if_difficulty_lt DIFF_SA, /*goto*/ 0x0e - - beginloop 0x04 - if_object_in_good_condition OBJ_ANTENNA_SWITCH, /*goto*/ 0x06 - goto_next 0x2e - - label 0x06 - endloop 0x04 - - label 0x2e - if_stage_flag_eq STAGEFLAG_ANTENNA_LOWERED, TRUE, /*goto*/ 0x2e - message CHR_JOANNA, 0x2c2a // "Critical mission object destroyed." - set_stage_flag STAGEFLAG_ANTENNA_DESTROYED - label 0x2e - label 0x0e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func102e_setup_rtracker: - yield - set_object_flag_bank2 OBJ_ROCKETLAUNCHER, OBJECTFLAG2_RTRACKED_BLUE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func142f_setup_lighting: - yield - set_lighting 0x0000, 0x00, 0x00 - set_lighting 0x0000, 0x01, 0x00 - set_lighting 0x0000, 0x02, 0x00 - set_lighting 0x0000, 0x03, 0x00 - set_lighting 0x0000, 0x04, 0x00 - set_lighting 0x0001, 0x06, 0x01 - set_lighting 0x0002, 0x05, 0x01 - set_lighting 0x0002, 0x06, 0x01 - set_lighting 0x0003, 0x05, 0x01 - set_lighting 0x0004, 0x05, 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 0x000a, 0x05, 0x01 - set_lighting 0x000b, 0x05, 0x01 - set_lighting 0x000e, 0x05, 0x01 - set_lighting 0x0010, 0x05, 0x01 - set_lighting 0x0011, 0x05, 0x01 - set_lighting 0x0012, 0x05, 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 0x0018, 0x05, 0x01 - set_lighting 0x0019, 0x05, 0x01 - set_lighting 0x001a, 0x05, 0x01 - set_lighting 0x001b, 0x05, 0x01 - set_lighting 0x001c, 0x05, 0x01 - set_lighting 0x001d, 0x05, 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 0x0017, 0x05, 0x01 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -functions: - register_function func0401_start_path00 0x0401 - register_function func0402_start_path01 0x0402 - register_function func0403_start_path02 0x0403 - register_function func0404_start_path03 0x0404 - register_function func0405_start_path04 0x0405 - register_function func0406_start_path05 0x0406 - register_function func0407_start_path06 0x0407 - register_function func0408_start_path07 0x0408 - register_function func0409_set_rotor_speed 0x0409 - register_function func040a_top_interceptor 0x040a - register_function func040b_stop_vehicle 0x040b - register_function func040c_init_bottom_interceptors 0x040c - register_function func040d_90c8 0x040d - register_function func0411_init_hangar_guard1 0x0411 - register_function func0412_init_hangar_guard2 0x0412 - register_function func0413_init_hangar_guard3 0x0413 - register_function func0414_init_hangar_guard4 0x0414 - register_function func0415_alert_when_stopped 0x0415 - register_function func0416_mechanic 0x0416 - register_function func0417_traitor 0x0417 - register_function func0418_walk_to_pad 0x0418 - register_function func040f_spawned_guard 0x040f - register_function func040e_outro 0x040e - register_function func0410_intro 0x0410 - register_function func0419_clone_spawner 0x0419 - register_function func041a_init_alerted_spawned_guard 0x041a - register_function func041c_template_guard 0x041c - register_function func041b_alerted_spawned_guard 0x041b - register_function func041d_trooper_unalerted 0x041d - register_function func041e_dragon_unalerted 0x041e - register_function func041f_trooper_alerted 0x041f - register_function func0420_dragon_alerted 0x0420 - register_function func0421_activate_autogun 0x0421 - register_function func0422_check_bug_wasted_target 0x0422 - register_function func0423_a5e8 0x0423 - register_function func0424_activate_lasers 0x0424 - register_function func0425_a7d4 0x0425 - register_function func0426_8420 0x0426 - - register_function func0c00_init_intro 0x0c00 - register_function func040e_outro 0x0c01 - - register_function func1400_give_bugs 0x1400 - register_function func1001_objectives_failed_msg 0x1001 - register_function func0c00_init_intro 0x1002 - register_function func1003_check_bug_wasted_joanna 0x1003 - register_function func1004_check_antenna_destroyed 0x1004 - register_function func1405_antenna_switch 0x1405 - register_function func1006_lift_switches 0x1006 - register_function func1007_check_hangar_accessed 0x1007 - register_function func1008_check_end_level 0x1008 - register_function func1009_check_radar_shut_down 0x1009 - register_function func100b_final_hangar 0x100b - register_function func100c_maingate_switch 0x100c - register_function func140e_check_interceptors_destroyed 0x140e - register_function func1010_bunker_lighting 0x1010 - register_function func1011_bunker_explosives 0x1011 - register_function func1012_bunker_laser1 0x1012 - register_function func1013_bunker_lasers 0x1013 - register_function func1013_bunker_lasers234 0x1014 - register_function func1013_bunker_lasers56 0x1015 - register_function func1016_trigger_interceptor 0x1016 - register_function func1017_radar_terminal_noise 0x1017 - register_function func1018_unhide_guards 0x1018 - register_function func1019_spawn_guards_at_antenna 0x1019 - register_function func101a_check_mechanic_dead 0x101a - register_function func101b_msg_airinterceptradar 0x101b - register_function func101c_msg_cantthrow 0x101c - register_function func101d_msg_hangarlift 0x101d - register_function func101e_msg_triggerfinger 0x101e - register_function func141f_start_lifts 0x141f - register_function func1020_choose_autogun_guard 0x1020 - register_function func1021_damage_rl_guard 0x1021 - register_function func1022_check_lift_switches_destroyed 0x1022 - register_function func1023_check_bug_wasted_velvet 0x1023 - register_function func1024_lift_door_sounds 0x1024 - register_function func1025_spawn_bunker_guards 0x1025 - register_function func1026_check_laser1_broken 0x1026 - register_function func1027_check_laser2_broken 0x1027 - register_function func1028_check_laser3_broken 0x1028 - register_function func1029_check_laser4_broken 0x1029 - register_function func102a_check_laser5_broken 0x102a - register_function func102b_check_laser6_broken 0x102b - register_function func102c_check_laser7_broken 0x102c - register_function func102d_check_antenna_switch_destroyed 0x102d - register_function func102e_setup_rtracker 0x102e - register_function func142f_setup_lighting 0x142f - endfunctions - -.align 4 diff --git a/asm/setup/setupmp1.s b/asm/setup/setupmp1.s deleted file mode 100644 index 1ac2cc1e1..000000000 --- a/asm/setup/setupmp1.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Base (MP) -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupmp11.s b/asm/setup/setupmp11.s deleted file mode 100644 index 76f77ed0e..000000000 --- a/asm/setup/setupmp11.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Felicity (MP) -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupmp12.s b/asm/setup/setupmp12.s deleted file mode 100644 index 22984d0ad..000000000 --- a/asm/setup/setupmp12.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Fortress (MP) -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupmp13.s b/asm/setup/setupmp13.s deleted file mode 100644 index ec453ac06..000000000 --- a/asm/setup/setupmp13.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Villa (MP) -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupmp14.s b/asm/setup/setupmp14.s deleted file mode 100644 index a90d6b466..000000000 --- a/asm/setup/setupmp14.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Stage ID 0x46 -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupmp15.s b/asm/setup/setupmp15.s deleted file mode 100644 index 8268b2c42..000000000 --- a/asm/setup/setupmp15.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Grid (MP) -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupmp16.s b/asm/setup/setupmp16.s deleted file mode 100644 index 668410174..000000000 --- a/asm/setup/setupmp16.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Stage ID 0x48 -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupmp17.s b/asm/setup/setupmp17.s deleted file mode 100644 index 2bd398582..000000000 --- a/asm/setup/setupmp17.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Stage ID 0x49 -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupmp18.s b/asm/setup/setupmp18.s deleted file mode 100644 index 26921ffdc..000000000 --- a/asm/setup/setupmp18.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Stage ID 0x4a -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupmp19.s b/asm/setup/setupmp19.s deleted file mode 100644 index c049007a3..000000000 --- a/asm/setup/setupmp19.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Stage ID 0x4b -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupmp2.s b/asm/setup/setupmp2.s deleted file mode 100644 index a985c3305..000000000 --- a/asm/setup/setupmp2.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Stage ID 0x3a -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupmp20.s b/asm/setup/setupmp20.s deleted file mode 100644 index f4e35b417..000000000 --- a/asm/setup/setupmp20.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Stage ID 0x4c -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupmp3.s b/asm/setup/setupmp3.s deleted file mode 100644 index e45c7eef4..000000000 --- a/asm/setup/setupmp3.s +++ /dev/null @@ -1,27 +0,0 @@ -# -# Area 52 (MP) -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -func1000_0038: - cmd01b2_mponly 20 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -functions: - register_function func1000_0038 0x1000 - endfunctions - -.align 4 diff --git a/asm/setup/setupmp4.s b/asm/setup/setupmp4.s deleted file mode 100644 index 981d5498d..000000000 --- a/asm/setup/setupmp4.s +++ /dev/null @@ -1,26 +0,0 @@ -# -# Warehouse (MP) -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - endintro - -path00: - endpath - -paths: - endpaths - -func0000_0034: - endfunction - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupmp5.s b/asm/setup/setupmp5.s deleted file mode 100644 index 5d588678c..000000000 --- a/asm/setup/setupmp5.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Car Park (MP) -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupmp6.s b/asm/setup/setupmp6.s deleted file mode 100644 index cb66af1a6..000000000 --- a/asm/setup/setupmp6.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Stage ID 0x3e -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupmp7.s b/asm/setup/setupmp7.s deleted file mode 100644 index f484b59fb..000000000 --- a/asm/setup/setupmp7.s +++ /dev/null @@ -1,20 +0,0 @@ -# -# Stage ID 0x3f -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupmp8.s b/asm/setup/setupmp8.s deleted file mode 100644 index 2c9471d76..000000000 --- a/asm/setup/setupmp8.s +++ /dev/null @@ -1,23 +0,0 @@ -# -# Stage ID 0x40 -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - endintro - -path00: - endpath - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupmp9.s b/asm/setup/setupmp9.s deleted file mode 100644 index 37d4f4da4..000000000 --- a/asm/setup/setupmp9.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Ruins (MP) -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupoat.s b/asm/setup/setupoat.s deleted file mode 100644 index 42b5a6b86..000000000 --- a/asm/setup/setupoat.s +++ /dev/null @@ -1,235 +0,0 @@ -# -# Skedar (MP) -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -// Functions -.set FUNC0401_INIT_ENEMY, 0x0401 -.set FUNC0402_INIT_MAIAN, 0x0402 - -props: - endprops - -intro: - spawn 0x0063 - outfit OUTFIT_DEFAULT - intro_weapon WEAPON_FALCON2, -1 - intro_weapon WEAPON_CMP150, -1 - intro_weapon WEAPON_AR34, -1 - intro_weapon WEAPON_REAPER, -1 - ammo AMMOTYPE_PISTOL, 500 - ammo AMMOTYPE_RIFLE, 500 - endintro - -func0406_idle: - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0408_idle_with_10_health: - set_chr_health CHR_SELF, 10 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0404_spawn_enemies: - // Spawn 12 enemies - set_chr_alliance CHR_SELF, ALLIANCE_ENEMY - restart_timer - dprint "B4CHECK\n" - set_var_a 12 - label 0x04 - if_var_a_lt 1, /*goto*/ 0x01 - try_spawn_clone BODY_DDSHOCK, HEAD_DDSHOCK, 0x06, FUNC0401_INIT_ENEMY, 0x00000010, /*goto*/ 0xa2 - goto_next 0x01 - label 0xa2 - yield - subtract_var_a 1 - goto_first 0x04 - - label 0x01 - yield - yield - yield - yield - yield - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, FUNC0401_INIT_ENEMY - endfunction - -func0401_init_enemy: - try_draw_weapon MODEL_CHRCMP150, WEAPON_CMP150, 0x00000000, /*goto*/ 0x01 - label 0x01 - try_inherit_properties 0x06, /*goto*/ 0x01 - label 0x01 - assign_path 0 - start_path - set_return_function CHR_SELF, GFUNC_CHOOSE_TARGET_CHR - set_function CHR_SELF, GFUNC_CHOOSE_TARGET_CHR - endfunction - -func0405_spawn_maians: - // Spawn 12 Maians - set_chr_alliance CHR_SELF, ALLIANCE_ALLY - stop_chr - restart_timer - dprint "B4CHEK\n" - set_var_a 12 - label 0x04 - if_var_a_lt 1, /*goto*/ 0x01 - try_spawn_clone BODY_ELVIS1, HEAD_ELVIS, 0x07, FUNC0402_INIT_MAIAN, 0x00000010, /*goto*/ 0xa2 - goto_next 0x01 - label 0xa2 - yield - subtract_var_a 1 - goto_first 0x04 - - label 0x01 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - yield - yield - yield - yield - yield - set_function CHR_SELF, FUNC0402_INIT_MAIAN - endfunction - -func0402_init_maian: - set_chr_alliance CHR_SELF, ALLIANCE_ALLY - try_draw_weapon MODEL_CHRFALCON2, WEAPON_MAGSEC4, 0x00000000, /*goto*/ 0x01 - label 0x01 - try_inherit_properties 0x07, /*goto*/ 0x01 - label 0x01 - assign_path 0 - start_path - set_return_function CHR_SELF, GFUNC_CHOOSE_TARGET_CHR - set_function CHR_SELF, GFUNC_CHOOSE_TARGET_CHR - endfunction - -func1001_01a4: - noop016c - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE - endfunction - -unregistered_function1: - // Print "t" to console when Joanna is looking at some object. - // The object doesn't exist in the props code though, so was likely removed. - label 0x04 - yield - if_chr_looking_at_object CHR_JOANNA, 0x00, /*goto*/ 0x01 - goto_first 0x04 - - label 0x01 - dprint "t" - goto_first 0x04 - - endfunction - -func1000_idle: - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0403_init_some_sound: - play_sound 0x0037, -1 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -// This function is never assigned. -func0407_defend_pad: - set_onshot_function 0x0407 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0xa5 - if_chr_distance_to_pad_lt CHR_SELF, 200, TARGET_PAD, /*goto*/ 0x01 - - // Go to target pad, but stop when seen player or when near pad - label 0xdb - jog_to_pad TARGET_PAD - label 0xdc - yield - dprint "GO TO PAD\n" - if_enemy_distance_lt_and_los 2540, /*goto*/ 0xa5 - if_chr_distance_to_pad_lt CHR_SELF, 200, TARGET_PAD, /*goto*/ 0x01 - goto_first 0xdc - - // Near pad. Wait until detected player. - label 0x01 - stop_chr - label 0xa6 - yield - dprint "AT PAD\n" - if_enemy_distance_lt_and_los 2540, /*goto*/ 0xa5 - if_chr_distance_to_pad_gt CHR_SELF, 300, TARGET_PAD, /*goto*/ 0x01 - goto_first 0xa6 - - label 0x01 - goto_first 0xdb - - // Do combat - label 0xa5 - dprint "DETECTED\n" - set_return_function CHR_SELF, 0x0407 - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - endfunction - -functions: - register_function func0401_init_enemy 0x0401 - register_function func0402_init_maian 0x0402 - register_function func0403_init_some_sound 0x0403 - register_function func0404_spawn_enemies 0x0404 - register_function func0405_spawn_maians 0x0405 - register_function func0406_idle 0x0406 - register_function func0407_defend_pad 0x0407 - register_function func0408_idle_with_10_health 0x0408 - register_function func1000_idle 0x1000 - register_function func1001_01a4 0x1001 - endfunctions - -path00: - pad 0x0014 - pad 0x0015 - endpath - -path01: - pad 0x0064 - pad 0x0066 - endpath - -path02: - pad 0x0037 - pad 0x0033 - pad 0x0034 - endpath - -path03: - pad 0x0038 - pad 0x0039 - pad 0x003a - endpath - -path04: - pad 0x0033 - pad 0x0037 - pad 0x0036 - pad 0x003d - pad 0x003e - pad 0x003f - pad 0x0045 - pad 0x0048 - pad 0x003b - pad 0x003a - pad 0x0039 - endpath - -paths: - register_path path00, 0, 0 - register_path path01, 1, 0 - register_path path00, 0, 0 - register_path path02, 2, 0 - register_path path03, 3, 0 - register_path path04, 4, 0 - endpaths - -.align 4 diff --git a/asm/setup/setupold.s b/asm/setup/setupold.s deleted file mode 100644 index 1fdd0ba9a..000000000 --- a/asm/setup/setupold.s +++ /dev/null @@ -1,152 +0,0 @@ -# -# Stage ID 0x4e -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - tag 0x00, 1 - object 0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x01, 1 - object 0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x02, 1 - object 0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -/** - * Some kind of camera movement test? When you press a button it jumps forward - * to the next camera animation rather than ending the cutscene. - */ -func0c00_017c: - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_music_track MUSIC_G5_INTRO - camera_movement 0x045d - cmd01c8 2 - - beginloop 0x12 - cmd01c9 /*goto*/ 0x59 - endloop 0x12 - - label 0x59 - cmd01c8 3 - - beginloop 0x13 - cmd01c9 /*goto*/ 0x59 - endloop 0x13 - - label 0x59 - camera_movement 0x045d - show_object 0x00 - set_object_flag_bank1 0x00, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x00, OBJECTFLAG2_00000010 - object_do_animation 0x045e, 0x00, 0x04ff, 0xff - - beginloop 0x08 - if_camera_animating /*goto*/ 0x31 - goto_next 0x59 - - label 0x31 - if_controller_button_pressed /*goto*/ 0x59 - label 0x31 - endloop 0x08 - - label 0x59 - hide_object 0x00 - camera_movement 0x0464 - show_object 0x01 - set_object_flag_bank1 0x01, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x01, OBJECTFLAG2_00000010 - object_do_animation 0x0465, 0x01, 0x04ff, 0xff - - beginloop 0x0b - if_camera_animating /*goto*/ 0x31 - goto_next 0x59 - - label 0x31 - if_controller_button_pressed /*goto*/ 0x59 - label 0x31 - endloop 0x0b - - label 0x59 - hide_object 0x01 - camera_movement 0x0461 - - show_object 0x00 - set_object_flag_bank1 0x00, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x00, OBJECTFLAG2_00000010 - object_do_animation 0x0462, 0x00, 0x04ff, 0xff - - show_object 0x01 - set_object_flag_bank1 0x01, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x01, OBJECTFLAG2_00000010 - object_do_animation 0x0463, 0x01, 0x04ff, 0xff - - beginloop 0x0a - if_camera_animating /*goto*/ 0x31 - goto_next 0x59 - - label 0x31 - if_controller_button_pressed /*goto*/ 0x59 - label 0x31 - endloop 0x0a - - label 0x59 - hide_object 0x01 - hide_object 0x00 - camera_movement 0x046c - - show_object 0x01 - unset_object_flag_bank1 0x01, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x01, OBJECTFLAG2_00000010 - object_do_animation 0x046e, 0x01, 0x04ff, 0xff - - show_object 0x00 - set_object_flag_bank1 0x00, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x00, OBJECTFLAG2_00000010 - object_do_animation 0x046d, 0x00, 0x04ff, 0xff - - show_object 0x02 - set_object_flag_bank1 0x02, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x02, OBJECTFLAG2_00000010 - object_do_animation 0x046f, 0x02, 0x04ff, 0xff - - beginloop 0x0e - if_camera_animating /*goto*/ 0x31 - goto_next 0x59 - - label 0x31 - if_controller_button_pressed /*goto*/ 0x59 - label 0x31 - endloop 0x0e - - label 0x59 - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - cmd01c8 5 - - beginloop 0x15 - cmd01c9 /*goto*/ 0x59 - endloop 0x15 - - label 0x59 - restart_default_music - reset_ambience - enter_firstperson - set_function CHR_SELF, GFUNC_IDLE - endfunction - -functions: - register_function func0c00_017c 0x0401 - register_function func0c00_017c 0x0c00 - endfunctions - -.align 4 diff --git a/asm/setup/setuppam.s b/asm/setup/setuppam.s deleted file mode 100644 index 469cbbbfb..000000000 --- a/asm/setup/setuppam.s +++ /dev/null @@ -1,4665 +0,0 @@ -# -# Deep Sea -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -// Characters -.set CHR_ELVIS, 0x00 -.set CHR_BLONDE1, 0x22 -.set CHR_BLONDE2, 0x23 -.set CHR_DRCAROLL, 0x24 - -// Objects -.set OBJ_POWERNODE1, 0x00 -.set OBJ_POWERNODE2, 0x01 -.set OBJ_POWERNODE3, 0x02 -.set OBJ_BACKUPDISK, 0x74 -.set OBJ_PROXYMINES, 0xb0 - -// Stage flags -.set STAGEFLAG_DRCAROLL_RESTORED, 0x00000001 -.set STAGEFLAG_ELVIS_SAID_SABOTAGE, 0x00000002 -.set STAGEFLAG_DONE_FIRST_TELEPORT, 0x00000004 -.set STAGEFLAG_PURPLE_GUARD_SHOT_JO_OR_ELVIS, 0x00000010 -.set STAGEFLAG_TELEPORT_DONE, 0x00000020 -.set STAGEFLAG_ELVIS_FOLLOWING_VELVET, 0x00000080 -.set STAGEFLAG_TELEPORTALS_ACTIVATED, 0x00000100 -.set STAGEFLAG_MIDCUTSCENE_FINISHED, 0x00000200 -.set STAGEFLAG_ESCAPED, 0x00000400 -.set STAGEFLAG_ALLY_DEAD, 0x00000800 -.set STAGEFLAG_FARSIGHT_AMMO_WASTED, 0x00001000 -.set STAGEFLAG_TIMER_EXPIRED, 0x00002000 -.set STAGEFLAG_AGENT_MEGAWEAPON_DISABLED, 0x00004000 -.set STAGEFLAG_BLONDES_DEAD, 0x00008000 -.set STAGEFLAG_SA_EXIT_TELEPORT_DISABLED, 0x00010000 -.set STAGEFLAG_MEGAWEAPON_DISABLED, 0x00020000 -.set STAGEFLAG_TRIGGER_MINISKEDAR_SPAWNING, 0x00040000 -.set STAGEFLAG_ELVIS_STARTED_SA_MEGAWEAPON, 0x00080000 -.set STAGEFLAG_PA_EARLYDOORCYLINDER1_DESTROYED, 0x00100000 -.set STAGEFLAG_PA_EARLYDOORCYLINDER2_DESTROYED, 0x00200000 -.set STAGEFLAG_PA_EARLYDOORCYLINDER3_DESTROYED, 0x00400000 -.set STAGEFLAG_PA_EARLYDOORCYLINDER4_DESTROYED, 0x00800000 -.set STAGEFLAG_PA_EARLYDOORCYLINDER5_DESTROYED, 0x01000000 -.set STAGEFLAG_PA_LATEDOORCYLINDER1_DESTROYED, 0x02000000 -.set STAGEFLAG_PA_LATEDOORCYLINDER2_DESTROYED, 0x04000000 -.set STAGEFLAG_PA_LATEDOORCYLINDER3_DESTROYED, 0x08000000 -.set STAGEFLAG_PA_LATEDOORCYLINDER4_DESTROYED, 0x10000000 -.set STAGEFLAG_PA_CANISTER1_DESTROYED, 0x20000000 -.set STAGEFLAG_PA_CANISDER2_DESTROYED, 0x40000000 -.set STAGEFLAG_PA_MIDDOORCYLINDER_DESTROYED, 0x80000000 - -// Functions -.set FUNC_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS, 0x0402 -.set FUNC_ELVIS_GIVE_FARSIGHT, 0x0403 -.set FUNC_ELVIS_FOLLOW_AND_DO_AGENT_MEGAWEAPON, 0x0404 -.set FUNC_ELVIS_FOLLOW_AND_DO_SA_MEGAWEAPON, 0x0406 -.set FUNC_ELVIS_GO_TO_SA_TELEPORT, 0x0407 -.set FUNC_INIT_ELVIS, 0x040b -.set FUNC_BLONDE, 0x040c -.set FUNC_MINISKEDAR_SEND_CLONES, 0x040d -.set FUNC_INIT_MINISKEDAR, 0x040e -.set FUNC_MINISKEDAR, 0x040f -.set FUNC_OUTRO, 0x0410 -.set FUNC_HIDE, 0x0411 -.set FUNC_CLOAK_AND_HIDE, 0x0413 -.set FUNC_TELEPORT_JOANNA_TO_SAPA, 0x0414 -.set FUNC_TELEPORT_JOANNA_TO_DRCAROLL, 0x0415 -.set FUNC_TELEPORT_JOANNA_TO_A_PA_DRCAROLL, 0x0416 -.set FUNC_TELEPORT_VELVET_TO_SAPA, 0x0417 -.set FUNC_TELEPORT_VELVET_TO_DRCAROLL, 0x0418 -.set FUNC_TELEPORT_VELVET_TO_A_PA_DRCAROLL, 0x0419 -.set FUNC_INIT_SNIPER, 0x041a -.set FUNC_SNIPER_WAIT_FOR_DETECTION, 0x041b -.set FUNC_TELEPORT_ACTIVATION_RESPONDER, 0x041c -.set FUNC_SNIPER, 0x041d -.set FUNC_INIT_SA_MEGAWEAPON_MINISKEDAR, 0x041e -.set FUNC_INIT_PA_CIRCLEROOM_MINISKEDAR, 0x041f -.set FUNC_INIT_PA_DEADENDROOM_MINISKEDAR, 0x0420 -.set FUNC_MIDCUTSCENE, 0x042a -.set FUNC_RUN_TO_EXIT, 0x042b -.set FUNC_ELVIS_STOP, 0x042c -.set FUNC_ELVIS_WARP_TO_OUTSIDE_DRCAROLL, 0x042d -.set FUNC_ELVIS_RUN_TO_EXIT, 0x042e -.set FUNC_INIT_PELAGIC_GUARD, 0x042f -.set FUNC_MINISKEDAR_UNALERTED, 0x0431 -.set FUNC_DEAD_SKEDAR, 0x0432 - -// Pads -.set PAD_STARTAREA_TELEPORT, 0x0116 -.set PAD_AGENTAREA_ENTRY, 0x01a2 -.set PAD_AGENTAREA_TELEPORT, 0x01fd -.set PAD_SAPAAREA_ENTRY, 0x01b6 -.set PAD_SAPAAREA_TELEPORT, 0x01f9 -.set PAD_PAAREA_ENTRY, 0x01a5 -.set PAD_PAAREA_TELEPORT, 0x0200 -.set PAD_DRCAROLLROOM_ENTRY, 0x01cb - -props: - briefing 0, 0x3001 - briefing 1, 0x3000 - briefing 2, 0x3002 - briefing 3, 0x3003 - - beginobjective 0, 0x3005, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Reactivate teleportals" - complete_flags STAGEFLAG_TELEPORTALS_ACTIVATED - endobjective - - beginobjective 1, 0x3006, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Disable Cetan megaweapon" - complete_flags STAGEFLAG_MEGAWEAPON_DISABLED - fail_flags STAGEFLAG_FARSIGHT_AMMO_WASTED - endobjective - - beginobjective 2, 0x3007, DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Secure control room" - complete_flags STAGEFLAG_BLONDES_DEAD - endobjective - - beginobjective 3, 0x3008, DIFFBIT_PA | DIFFBIT_PD // "Restore Dr. Caroll's personality" - complete_flags STAGEFLAG_DRCAROLL_RESTORED - endobjective - - beginobjective 4, 0x3009, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Escape from Cetan ship" - complete_flags STAGEFLAG_ESCAPED - fail_flags STAGEFLAG_ALLY_DEAD - fail_flags STAGEFLAG_TIMER_EXPIRED - endobjective - - chr 0x00000400, 0x40, 0x01b3, BODY_DDSNIPER, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 200, 0x00002000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x0040, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 - chr 0x00010000, 0x00, 0x002e, BODY_THEKING, HEAD_ELVIS, GFUNC_IDLE, -1, -1, 1000, 200, 0x00002000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRZ2020, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FARSIGHTXR20, 0x00ffffff, 0x00000000 - tag 0x73, -1 - chr 0x00000200, 0x01, 0x018d, BODY_DDSNIPER, HEAD_RANDOM, FUNC_INIT_SNIPER, -1, -1, 100, 30, 0x48080000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x02, 0x019a, BODY_DDSNIPER, HEAD_RANDOM, FUNC_INIT_SNIPER, -1, -1, 100, 100, 0x48080000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x03, 0x019b, BODY_DDSNIPER, HEAD_RANDOM, FUNC_INIT_SNIPER, -1, -1, 100, 100, 0x48080000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x0003, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x04, 0x0006, BODY_DDSNIPER, HEAD_RANDOM, FUNC_INIT_SNIPER, -1, -1, 100, 100, 0x48080000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x0004, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x05, 0x019c, BODY_DDSNIPER, HEAD_RANDOM, FUNC_INIT_SNIPER, -1, -1, 100, 100, 0x48080000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x0005, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x06, 0x0190, BODY_DDSNIPER, HEAD_RANDOM, FUNC_INIT_SNIPER, -1, -1, 100, 100, 0x48080000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x0006, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x07, 0x0191, BODY_DDSNIPER, HEAD_RANDOM, FUNC_INIT_SNIPER, -1, -1, 100, 100, 0x48080000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x0007, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x08, 0x0008, BODY_DDSNIPER, HEAD_RANDOM, FUNC_INIT_SNIPER, -1, -1, 100, 100, 0x48080000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x0008, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x09, 0x000a, BODY_DDSNIPER, HEAD_RANDOM, FUNC_INIT_SNIPER, -1, -1, 100, 100, 0x48080000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0a, 0x019d, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0421, -1, -1, 1000, 100, 0xc0008601, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0b, 0x019e, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_INIT_PELAGIC_GUARD, -1, -1, 1000, 100, 0xc8080000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0c, 0x009a, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_INIT_PELAGIC_GUARD, -1, -1, 1000, 100, 0xc8080000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0d, 0x001e, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0422, -1, -1, 1000, 100, 0xe8080000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0e, 0x001b, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0423, -1, -1, 1000, 100, 0xe8080000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0f, 0x0022, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0425, -1, -1, 1000, 100, 0xe8080000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x10, 0x0021, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0424, -1, -1, 1000, 100, 0xe8080000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0010, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x11, 0x002c, BODY_MRBLONDE, HEAD_MRBLONDE, GFUNC_UNALERTED, 0x0027, -1, 3000, 10, 0x80028004, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0011, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x12, 0x0029, BODY_PELAGIC_GUARD, HEAD_RANDOM, GFUNC_UNALERTED, 0x0024, -1, 3000, 100, 0x80028204, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0012, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x13, 0x002b, BODY_PELAGIC_GUARD, HEAD_RANDOM, GFUNC_UNALERTED, 0x0026, -1, 3000, 100, 0x80028204, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0013, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x14, 0x01b3, BODY_DDSNIPER, HEAD_RANDOM, FUNC_CLOAK_AND_HIDE, 0x01b3, -1, 1000, 100, 0x80028004, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x15, 0x01b4, BODY_DDSNIPER, HEAD_RANDOM, FUNC_CLOAK_AND_HIDE, 0x01b4, -1, 1000, 100, 0x80028004, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0015, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x16, 0x01b5, BODY_DDSNIPER, HEAD_RANDOM, FUNC_CLOAK_AND_HIDE, 0x01b5, -1, 1000, 100, 0x80028004, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x25, 0x0064, BODY_MINISKEDAR, 0x00, FUNC_HIDE, -1, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - chr 0x00000000, 0x26, 0x0079, BODY_MINISKEDAR, 0x00, FUNC_HIDE, -1, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - chr 0x00000000, 0x27, 0x0067, BODY_MINISKEDAR, 0x00, FUNC_HIDE, -1, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - chr 0x00000000, 0x28, 0x0075, BODY_MINISKEDAR, 0x00, FUNC_HIDE, -1, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - chr 0x00000000, 0x29, 0x0080, BODY_MINISKEDAR, 0x00, FUNC_HIDE, -1, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - chr 0x00000000, 0x2a, 0x0085, BODY_MINISKEDAR, 0x00, FUNC_HIDE, -1, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - chr 0x00000000, 0x2b, 0x007c, BODY_MINISKEDAR, 0x00, FUNC_HIDE, -1, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - chr 0x000002c0, 0x17, 0x00c5, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0426, -1, -1, 100, 100, 0xc8090000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0017, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x000002c0, 0x18, 0x00c7, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0427, -1, -1, 100, 100, 0xc8090000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x000002c0, 0x19, 0x00cb, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0428, -1, -1, 100, 100, 0xc8090000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0019, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x000002c0, 0x1a, 0x01b8, BODY_PELAGIC_GUARD, HEAD_RANDOM, GFUNC_UNALERTED, -1, -1, 100, 100, 0xc8090000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x000002c0, 0x1b, 0x01b7, BODY_PELAGIC_GUARD, HEAD_RANDOM, GFUNC_UNALERTED, -1, -1, 100, 100, 0xc8090000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x001b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x000002c0, 0x1c, 0x00be, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0429, -1, -1, 100, 100, 0xc8090000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x001c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x000002c0, 0x1d, 0x01b9, BODY_PELAGIC_GUARD, HEAD_RANDOM, GFUNC_UNALERTED, -1, -1, 100, 100, 0xc0012000, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x001d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x000002c0, 0x1e, 0x01ba, BODY_PELAGIC_GUARD, HEAD_RANDOM, GFUNC_UNALERTED, -1, -1, 100, 100, 0xc0012000, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x001e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x000002c0, 0x1f, 0x01bb, BODY_PELAGIC_GUARD, HEAD_RANDOM, GFUNC_UNALERTED, -1, -1, 100, 100, 0xc0012000, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x001f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x000002c0, 0x20, 0x01bc, BODY_PELAGIC_GUARD, HEAD_RANDOM, GFUNC_UNALERTED, -1, -1, 100, 100, 0xc0012000, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0020, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000100, 0x22, 0x0192, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_BLONDE, -1, -1, 100, 100, 0xc8082000, 0x00000000, 0x10, 0x0f, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0022, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00010500, 0x24, 0x0193, BODY_DRCARROLL, 0x00, GFUNC_IDLE, -1, -1, 100, 100, 0xc8080000, 0x00000000, 0x10, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0024, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000100, 0x23, 0x0194, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_BLONDE, -1, -1, 100, 100, 0xc8082000, 0x00000000, 0x10, 0x0f, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0023, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x2f, 0x01a6, BODY_MINISKEDAR, 0x00, FUNC_MINISKEDAR_UNALERTED, -1, -1, 1000, 12, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - chr 0x00000100, 0x30, 0x01a7, BODY_MINISKEDAR, 0x00, GFUNC_IDLE, -1, -1, 1000, 12, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - chr 0x00000100, 0x31, 0x01a8, BODY_MINISKEDAR, 0x00, GFUNC_IDLE, -1, -1, 1000, 12, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - chr 0x00000100, 0x32, 0x01a9, BODY_MINISKEDAR, 0x00, GFUNC_IDLE, -1, -1, 1000, 12, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - chr 0x00000100, 0x33, 0x01aa, BODY_MINISKEDAR, 0x00, GFUNC_IDLE, -1, -1, 1000, 12, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - chr 0x00000100, 0x34, 0x01ab, BODY_MINISKEDAR, 0x00, GFUNC_IDLE, -1, -1, 1000, 12, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - chr 0x00000100, 0x35, 0x01ac, BODY_MINISKEDAR, 0x00, GFUNC_IDLE, -1, -1, 1000, 12, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - chr 0x00000000, 0x36, 0x01ad, BODY_MINISKEDAR, 0x00, FUNC_MINISKEDAR_UNALERTED, -1, -1, 1000, 12, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - chr 0x00000000, 0x37, 0x01ae, BODY_MINISKEDAR, 0x00, FUNC_MINISKEDAR_UNALERTED, -1, -1, 1000, 12, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - chr 0x00000000, 0x38, 0x01af, BODY_MINISKEDAR, 0x00, GFUNC_IDLE, -1, -1, 1000, 11, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - chr 0x00000000, 0x39, 0x01b0, BODY_MINISKEDAR, 0x00, GFUNC_IDLE, -1, -1, 1000, 11, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - chr 0x00000000, 0x3a, 0x01b1, BODY_MINISKEDAR, 0x00, GFUNC_IDLE, -1, -1, 1000, 11, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - chr 0x00000000, 0x3b, 0x01b2, BODY_MINISKEDAR, 0x00, GFUNC_IDLE, -1, -1, 1000, 11, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - chr 0x00000200, 0x3c, 0x01c0, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 5, 0xe8080000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x003c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x3d, 0x01c1, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 5, 0xe8080000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x003d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x3e, 0x01c2, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 5, 0xe8080000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x003e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x3f, 0x0012, BODY_PELAGIC_GUARD, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 100, 30, 0x48080000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x003f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 - chr 0x00004400, 0x21, 0x0117, BODY_SKEDAR, HEAD_RANDOM, FUNC_DEAD_SKEDAR, -1, -1, 100, 100, 0xc8090000, 0x00000000, 0x80, 0x07, -1, 0, 0x00000000 - tag 0x75, 1 - door 0x0100, MODEL_CETANDOOR, 0x0157, 0x10000000, 0x30000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00007333, 0x00006666, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0xae, 1 - door 0x0100, MODEL_CETANDOOR, 0x0156, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00007333, 0x00006666, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0xab, 1 - door 0x0100, MODEL_CETANDOOR, 0x015c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00007333, 0x00006666, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CETANDOOR, 0x0158, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00007333, 0x00006666, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0xb3, 2 - tag 0xb4, 2 - door 0x0100, MODEL_AL_AIRLOCK, 0x014b, 0x10000000, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00006666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AL_AIRLOCK, 0x014c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00006666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0xb5, 2 - tag 0xb6, 2 - door 0x0100, MODEL_AL_AIRLOCK, 0x014d, 0x10000000, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00006666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AL_AIRLOCK, 0x014e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00006666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AL_AIRLOCK, 0x014f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000570a, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AL_AIRLOCK, 0x0150, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000570a, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AL_AIRLOCK, 0x0151, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00005c28, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AL_AIRLOCK, 0x0152, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00005c28, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x03, 3 - tag 0x04, 3 - tag 0x05, 3 - door 0x0100, MODEL_CETANSMALLDOOR, 0x0153, 0x02000400, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000001, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CETANSMALLDOOR, 0x0155, 0x02000400, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000001, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CETANSMALLDOOR, 0x0154, 0x02000400, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000001, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CETANDOOR, 0x016f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CETANDOOR, 0x016e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CETANDOORSIDE, 0x0174, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000b333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CETANDOORSIDE, 0x0175, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000b333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0xb7, 2 - tag 0xb8, 2 - door 0x0100, MODEL_CETANDOORSIDE, 0x0177, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000b333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CETANDOORSIDE, 0x0176, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000b333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CETANDOORSIDE, 0x0179, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000b333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CETANDOORSIDE, 0x0178, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000b333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CETANDOOR, 0x0169, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CETANDOOR, 0x016a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CETANDOOR, 0x016b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0xb1, 1 - door 0x0100, MODEL_CETANDOOR, 0x016c, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CETANDOOR, 0x016d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x09, 1 - door 0x0100, MODEL_CETANDOOR, 0x0159, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00009999, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CETANDOOR, 0x015a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00009999, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CETANDOOR, 0x015d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00009999, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CETANDOOR, 0x015b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00009999, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x0b, 1 - door 0x0100, MODEL_CETANDOOR, 0x015e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CETANDOOR, 0x015f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CETANDOOR, 0x0160, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CETANDOOR, 0x0161, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CETANDOOR, 0x0162, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CETANDOOR, 0x0163, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CETANDOOR, 0x0164, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CETANDOOR, 0x0165, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x0d, 1 - door 0x0100, MODEL_CETANDOOR, 0x0166, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CETANDOOR, 0x0167, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x0f, 1 - door 0x0100, MODEL_CETANDOOR, 0x0168, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x07, 1 - lift 0x0100, MODEL_AL_DOCKLIFT, 0x0185, 0x03520508, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0185, 0x0186, 0x01870186, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x00085555, 0x15000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x00, 3 - tag 0x01, 3 - tag 0x02, 3 - object 0x00e6, MODEL_POWERNODE, 0x028d, 0x004005e1, 0x00000300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00e6, MODEL_POWERNODE, 0x028e, 0x004005e1, 0x00000300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00e6, MODEL_POWERNODE, 0x028f, 0x004005e1, 0x00000300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x08, 1 - weapon 0x0180, MODEL_CHRBUG, 0xffff, 0x00000001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FARSIGHTXR20, 0x00ffffff, 0x00000000 - tag 0x11, 4 - tag 0x12, 4 - tag 0x13, 4 - tag 0x9c, 4 - glass 0x0100, MODEL_CETANWINDOW1, 0x0203, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW1, 0x0204, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW1, 0x0205, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - object 0x0100, MODEL_CHRREMOTEMINE, 0x0291, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x14, 4 - tag 0x15, 4 - tag 0x16, 4 - tag 0x9d, 4 - glass 0x0100, MODEL_CETANWINDOW1, 0x0206, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW1, 0x0207, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW1, 0x0208, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - object 0x0100, MODEL_CHRREMOTEMINE, 0x0290, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x17, 4 - tag 0x18, 4 - tag 0x19, 4 - tag 0x9e, 4 - glass 0x0100, MODEL_CETANWINDOW1, 0x0209, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW1, 0x020a, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW1, 0x020b, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - object 0x0100, MODEL_CHRREMOTEMINE, 0x0292, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x1a, 4 - tag 0x1b, 4 - tag 0x1c, 4 - tag 0x9f, 4 - glass 0x0100, MODEL_CETANWINDOW1, 0x020c, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW1, 0x020d, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW1, 0x020e, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - object 0x0100, MODEL_CHRREMOTEMINE, 0x0293, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x1d, 4 - tag 0x1e, 4 - tag 0x1f, 4 - tag 0xa0, 4 - glass 0x0100, MODEL_CETANWINDOW1, 0x020f, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW1, 0x0210, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW1, 0x0211, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - object 0x0100, MODEL_CHRREMOTEMINE, 0x0294, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x20, 12 - tag 0x21, 12 - tag 0x22, 12 - tag 0x23, 12 - tag 0x24, 12 - tag 0x25, 12 - tag 0x26, 12 - tag 0x27, 12 - tag 0x28, 12 - tag 0x29, 12 - tag 0x2a, 12 - tag 0x2b, 12 - glass 0x0100, MODEL_CETANWINDOW2, 0x0212, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x0213, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x0214, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x0215, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x0216, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x0217, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x0218, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x0219, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x021a, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x021b, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x021c, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x021d, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - object 0x0100, MODEL_CHRREMOTEMINE, 0x0295, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0xa1, -1 - tag 0x2c, 12 - tag 0x2d, 12 - tag 0x2e, 12 - tag 0x2f, 12 - tag 0x30, 12 - tag 0x31, 12 - tag 0x32, 12 - tag 0x33, 12 - tag 0x34, 12 - tag 0x35, 12 - tag 0x36, 12 - tag 0x37, 12 - glass 0x0100, MODEL_CETANWINDOW2, 0x021e, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x021f, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x0220, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x0221, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x0222, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x0223, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x0224, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x0225, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x0226, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x0227, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x0228, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x0229, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - object 0x0100, MODEL_CHRREMOTEMINE, 0x0296, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0xa2, -1 - tag 0x38, 12 - tag 0x39, 12 - tag 0x3a, 12 - tag 0x3b, 12 - tag 0x3c, 12 - tag 0x3d, 12 - tag 0x3e, 12 - tag 0x3f, 12 - tag 0x40, 12 - tag 0x41, 12 - tag 0x42, 12 - tag 0x43, 12 - glass 0x0100, MODEL_CETANWINDOW2, 0x022a, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x022b, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x022c, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x022d, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x022e, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x022f, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x0230, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x0231, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x0232, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x0233, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x0234, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x0235, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - object 0x0100, MODEL_CHRREMOTEMINE, 0x0297, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0xa3, -1 - tag 0x44, 12 - tag 0x45, 12 - tag 0x46, 12 - tag 0x47, 12 - tag 0x48, 12 - tag 0x49, 12 - tag 0x4a, 12 - tag 0x4b, 12 - tag 0x4c, 12 - tag 0x4d, 12 - tag 0x4e, 12 - tag 0x4f, 12 - glass 0x0100, MODEL_CETANWINDOW2, 0x0236, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x0237, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x0238, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x0239, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x023a, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x023b, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x023c, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x023d, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x023e, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x023f, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x0240, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x0241, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - object 0x0100, MODEL_CHRREMOTEMINE, 0x0298, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0xa4, -1 - tag 0x50, 12 - tag 0x51, 12 - tag 0x52, 12 - tag 0x52, 12 - tag 0x53, 12 - tag 0x54, 12 - tag 0x55, 12 - tag 0x56, 12 - tag 0x57, 12 - tag 0x58, 12 - tag 0x59, 12 - tag 0x5a, 12 - glass 0x0100, MODEL_CETANWINDOW2, 0x0242, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x0243, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x0244, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x0245, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x0246, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x0247, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x0248, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x0249, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x024a, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x024b, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x024c, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x024d, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - object 0x0100, MODEL_CHRREMOTEMINE, 0x0299, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0xa5, -1 - chr 0x00000100, 0x41, 0x024e, BODY_MINISKEDAR, HEAD_MRBLONDE, GFUNC_IDLE, -1, -1, 100, 100, 0xc8082000, 0x00000000, 0x80, 0x0f, -1, 0, 0x00000000 - chr 0x00000100, 0x42, 0x025a, BODY_MINISKEDAR, HEAD_MRBLONDE, GFUNC_IDLE, -1, -1, 100, 100, 0xc8082000, 0x00000000, 0x80, 0x0f, -1, 0, 0x00000000 - tag 0x5b, 12 - tag 0x5c, 12 - tag 0x5d, 12 - tag 0x5e, 12 - tag 0x5f, 12 - tag 0x60, 12 - tag 0x61, 12 - tag 0x62, 12 - tag 0x63, 12 - tag 0x64, 12 - tag 0x65, 12 - tag 0x66, 12 - glass 0x0100, MODEL_CETANWINDOW2, 0x024e, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x024f, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x0250, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x0251, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x0252, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x0253, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x0254, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x0255, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x0256, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x0257, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x0258, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x0259, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - object 0x0100, MODEL_CHRREMOTEMINE, 0x029a, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0xa6, -1 - tag 0x67, 12 - tag 0x68, 12 - tag 0x69, 12 - tag 0x6a, 12 - tag 0x6b, 12 - tag 0x6c, 12 - tag 0x6d, 12 - tag 0x6e, 12 - tag 0x6f, 12 - tag 0x70, 12 - tag 0x71, 12 - tag 0x72, 12 - glass 0x0100, MODEL_CETANWINDOW2, 0x025a, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x025b, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x025c, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x025d, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x025e, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x025f, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x0260, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x0261, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x0262, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x0263, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW2, 0x0264, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_CETANWINDOW3, 0x0265, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - object 0x0100, MODEL_CHRREMOTEMINE, 0x029b, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0xa7, -1 - tag 0xa8, 1 - autogun 0x0100, MODEL_CETROOFGUN, 0x0188, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00e40000, 0x00000000, 0x00020000, 0xfffe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000da, 0x00640000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0xa9, 1 - autogun 0x0100, MODEL_CETROOFGUN, 0x0189, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00f80000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000da, 0x00640000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0xaa, 1 - autogun 0x0100, MODEL_CETROOFGUN, 0x018a, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00e40000, 0x00000000, 0x00008000, 0xffff8000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000da, 0x00640000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x0266, 0x14020b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0xbb, 1 - object 0x0040, MODEL_ZIGGYCARD, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x74, 1 - weapon 0x0180, MODEL_CHRDATATHIEF, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_BACKUPDISK, 0x00ffffff, 0x00000000 - rename_object -1, 0x44, 0x3017, 0x3018, 0x3019, 0x301a, 0x301b, 0x0000, 0x0000 // "" - tag 0x76, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x77, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x78, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x79, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x7a, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x7b, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x7c, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x7d, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x7e, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x7f, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x80, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x81, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x82, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x83, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x84, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x85, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x86, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x87, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x88, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x89, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x8a, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x8b, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x8c, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x8d, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x8e, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x8f, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x90, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x91, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x92, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x93, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x94, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x95, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x96, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x97, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x98, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x99, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x9a, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x9b, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0xac, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x0012, 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 0xad, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x001a, 0x00004001, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000 - tag 0xb0, 1 - weapon 0x0080, MODEL_MULTI_AMMO_CRATE, 0x0008, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PROXIMITYMINE, 0x00ffffff, 0x00000000 - endprops - -intro: - intro_weapon WEAPON_FALCON2_SCOPE, -1 - ammo AMMOTYPE_PISTOL, 50 - ammo AMMOTYPE_PROXY_MINE, 2 - intro_weapon WEAPON_SHOTGUN, -1 - ammo AMMOTYPE_SHOTGUN, 100 - ammo AMMOTYPE_FARSIGHT, 50 - intro_weapon WEAPON_IRSCANNER, -1 - spawn 0x018b - outfit OUTFIT_DEEPSEA - endintro - -path02: - pad 0x0099 - pad 0x0098 - pad 0x000e - pad 0x000d - pad 0x000c - endpath - -path03: - pad 0x001e - pad 0x0096 - pad 0x0095 - endpath - -path04: - pad 0x001b - pad 0x001a - pad 0x001c - pad 0x001d - endpath - -path05: - pad 0x0021 - pad 0x0020 - pad 0x001f - endpath - -path06: - pad 0x0022 - pad 0x001a - pad 0x001c - endpath - -path07: - pad 0x00c4 - pad 0x00c5 - pad 0x00c6 - pad 0x00c7 - endpath - -path08: - pad 0x00c7 - pad 0x00c8 - endpath - -path09: - pad 0x00cb - pad 0x00cc - endpath - -path10: - pad 0x00be - pad 0x00bf - pad 0x00c1 - endpath - -func0401_unused: - dprint "hov\n" - begin_hovercar_path 0x00 - set_vehicle_speed 384, 120 - - beginloop 0x04 - endloop 0x04 - - endfunction - -func1001_objectives_failed_msg: - yield - 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 - -func040b_init_elvis: - set_self_flag_bank3 CHRFLAG3_00080000 - set_self_flag_bank3 CHRFLAG3_00040000 - set_self_flag_bank3 CHRFLAG3_01000000 - set_accuracy 100 - set_reaction_speed 100 - set_alertness 100 - set_chr_health CHR_SELF, 1 - set_armor 900 - set_function CHR_SELF, FUNC_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS - endfunction - -func0402_elvis_follow_and_reactive_teleportals: - dprint "BACK TO ELVIS\n" - set_return_function CHR_SELF, FUNC_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS - set_onshot_function FUNC_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS - set_target_chr FOLLOW_CHR - if_chr_dying CHR_SELF, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2e - if_chr_unloaded CHR_SELF, /*goto*/ 0x2e - goto_next 0x06 - - // Dying - label 0x2e - set_function CHR_SELF, GFUNC_IDLE - - label 0x06 - if_just_injured CHR_SELF, /*goto*/ 0x2e - goto_next 0x06 - - // Injured - label 0x2e - if_sound_finished CHANNEL_6, /*goto*/ 0x2f - goto_next 0x12 - - label 0x2f - say_quip CHR_JOANNA, 0x29, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00 - - beginloop 0x12 - if_chr_stopped /*goto*/ 0x06 - endloop 0x12 - - // Not injured - label 0x06 - if_self_flag_bankx_eq CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x2e - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08 - goto_next 0x06 - - // Has flag - label 0x2e - if_enemy_distance_lt_and_los 100, /*goto*/ 0x08 - - // No enemy nearby - label 0x06 - set_target_chr FOLLOW_CHR - if_chr_distance_lt 200, /*goto*/ 0x06 - - // Jo distance >= 200 - label 0x03 - dprint "GOTOW\n" - set_target_chr FOLLOW_CHR - restart_timer - if_chr_distance_gt 300, /*goto*/ 0x06 - try_run_to_target_chr_with_hand_up /*goto*/ 0x04 - - // Jo distance < 200 or distance > 300 - label 0x06 - try_run_to_target_chr /*goto*/ 0x04 - - beginloop 0x04 - if_self_flag_bankx_eq CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x2e - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08 - goto_next 0x06 - label 0x2e - if_enemy_distance_lt_and_los 100, /*goto*/ 0x08 - label 0x06 - if_stage_flag_eq STAGEFLAG_TELEPORTALS_ACTIVATED, TRUE, /*goto*/ 0x2e - if_chr_in_room CHR_ELVIS, 0x00, 0x003c, /*goto*/ 0x5f - label 0x2e - set_target_chr FOLLOW_CHR - if_chr_distance_lt 200, /*goto*/ 0x06 - if_timer_gt 60, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - goto_first 0x03 - - // Waiting next to Jo? - label 0x06 - stop_chr - - beginloop 0x09 - if_self_flag_bankx_eq CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x2e - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08 - goto_next 0x06 - label 0x2e - if_enemy_distance_lt_and_los 100, /*goto*/ 0x08 - label 0x06 - if_stage_flag_eq STAGEFLAG_TELEPORTALS_ACTIVATED, TRUE, /*goto*/ 0x2e - if_chr_in_room CHR_ELVIS, 0x00, 0x003c, /*goto*/ 0x5f - label 0x2e - set_target_chr FOLLOW_CHR - if_chr_distance_gt 300, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - goto_first 0x03 - - // Enemy detected - label 0x08 - yield - if_sound_finished CHANNEL_6, /*goto*/ 0x06 - goto_next 0x2e - label 0x06 - call_rng - if_rand_lt 85, /*goto*/ 0x63 - if_rand_lt 170, /*goto*/ 0x64 - - say_quip CHR_JOANNA, 0x26, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00 - goto_next 0x2e - - label 0x63 - say_quip CHR_JOANNA, 0x27, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00 - goto_next 0x2e - - label 0x64 - say_quip CHR_JOANNA, 0x28, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00 - label 0x2e - set_onshot_function FUNC_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS - set_return_function CHR_SELF, FUNC_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - - // In teleport control room - label 0x5f - stop_chr - speak TARGET_CHR, 0x301d, 0x14eb, CHANNEL_6, COLOR_04_ORANGE // "Time to reactivate those teleportals." - jog_to_pad 0x01c3 - - beginloop 0x0f - if_chr_stopped /*goto*/ 0x2e - endloop 0x0f - - label 0x6f - label 0x2e - unset_self_flag_bank3 CHRFLAG3_01000000 - animation ANIM_OPERATE_0204, -1, -1, 0x0210, CHR_SELF, 2 - - beginloop 0x10 - if_chr_stopped /*goto*/ 0x06 - endloop 0x10 - - label 0x06 - say_quip CHR_JOANNA, 0x2c, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00 - message CHR_JOANNA, 0x301e // "Teleportals have been reactivated." - set_stage_flag STAGEFLAG_TELEPORTALS_ACTIVATED - set_self_flag_bank3 CHRFLAG3_01000000 - play_sound 0x8148, -1 - set_lights_state 0x003c, 0x04, 0x00, 0xff, 0xb4 - set_chr_flag_bank3 0x14, CHRFLAG3_00040000 - set_chr_flag_bank3 0x15, CHRFLAG3_00040000 - set_chr_flag_bank3 0x16, CHRFLAG3_00040000 - unset_chr_flag_bank3 0x14, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x15, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x16, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x14, FUNC_TELEPORT_ACTIVATION_RESPONDER - set_function 0x15, FUNC_TELEPORT_ACTIVATION_RESPONDER - set_function 0x16, FUNC_TELEPORT_ACTIVATION_RESPONDER - goto_first 0x03 - - label 0x60 - set_function CHR_SELF, FUNC_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS - endfunction - -func0433_unused: - beginloop 0x04 - set_target_chr CHR_JOANNA - if_within_units_of_sight 30, /*goto*/ 0x06 - set_target_chr CHR_VELVET - if_within_units_of_sight 30, /*goto*/ 0x06 - set_target_chr CHR_COUNTEROP - if_within_units_of_sight 30, /*goto*/ 0x06 - goto_next 0x2e - - label 0x06 - endloop 0x04 - - label 0x2e - unset_self_flag_bankx CHRFLAG0_UNSURPRISABLE, BANK_0 - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -/** - * This is also assigned to Elvis on PA, but in that case it's a general follow - * function because he can't enter the agent megaweapon room on PA. - */ -func0404_elvis_follow_and_do_agent_megaweapon: - set_self_flag_bank3 CHRFLAG3_00080000 - unset_self_flag_bankx CHRFLAG1_00200000, BANK_1 - set_onshot_function FUNC_ELVIS_FOLLOW_AND_DO_AGENT_MEGAWEAPON - set_target_chr FOLLOW_CHR - if_chr_dying CHR_SELF, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2e - if_chr_unloaded CHR_SELF, /*goto*/ 0x2e - goto_next 0x06 - - // Dying - label 0x2e - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x06 - if_just_injured CHR_SELF, /*goto*/ 0x2e - goto_next 0x06 - - // Injured - label 0x2e - say_quip CHR_JOANNA, 0x29, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00 - - beginloop 0x12 - if_chr_stopped /*goto*/ 0x06 - endloop 0x12 - - // Healthy - label 0x06 - if_stage_flag_eq STAGEFLAG_AGENT_MEGAWEAPON_DISABLED, TRUE, /*goto*/ 0x2e - if_stage_flag_eq STAGEFLAG_ELVIS_SAID_SABOTAGE, TRUE, /*goto*/ 0x5f - label 0x2e - if_enemy_distance_lt_and_los 2000, /*goto*/ 0x08 - set_target_chr FOLLOW_CHR - if_chr_distance_lt 200, /*goto*/ 0x06 - label 0x03 - set_target_chr FOLLOW_CHR - restart_timer - if_chr_distance_gt 300, /*goto*/ 0x06 - try_run_to_target_chr_with_hand_up /*goto*/ 0x04 - label 0x06 - try_run_to_target_chr /*goto*/ 0x04 - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_AGENT_MEGAWEAPON_DISABLED, TRUE, /*goto*/ 0x2e - if_chr_in_room CHR_ELVIS, 0x00, 0x006c, /*goto*/ 0x1d - label 0x2e - dprint "GO TO PAD\n" - if_enemy_distance_lt_and_los 2000, /*goto*/ 0x08 - set_target_chr FOLLOW_CHR - if_chr_distance_lt 200, /*goto*/ 0x06 - if_timer_gt 60, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - goto_first 0x03 - - label 0x06 - stop_chr - - beginloop 0x09 - dprint "B4 PAD\n" - if_stage_flag_eq STAGEFLAG_AGENT_MEGAWEAPON_DISABLED, TRUE, /*goto*/ 0x2e - if_chr_in_room CHR_ELVIS, 0x00, 0x006c, /*goto*/ 0x1d - label 0x2e - dprint "AT PAD\n" - if_enemy_distance_lt_and_los 2000, /*goto*/ 0x08 - set_target_chr FOLLOW_CHR - if_chr_distance_gt 300, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - goto_first 0x03 - - label 0x08 - dprint "DETECTED\n" - call_rng - if_rand_lt 85, /*goto*/ 0x63 - if_rand_lt 170, /*goto*/ 0x64 - - say_quip CHR_JOANNA, 0x26, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00 - goto_next 0x2e - - label 0x63 - say_quip CHR_JOANNA, 0x27, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00 - goto_next 0x2e - - label 0x64 - say_quip CHR_JOANNA, 0x28, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00 - - label 0x2e - set_onshot_function FUNC_ELVIS_FOLLOW_AND_DO_AGENT_MEGAWEAPON - set_return_function CHR_SELF, FUNC_ELVIS_FOLLOW_AND_DO_AGENT_MEGAWEAPON - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - - // In Agent megaweapon room - label 0x1d - speak TARGET_CHR, 0x301c, 0x14ec, CHANNEL_6, COLOR_04_ORANGE // "It looks like this could benefit from a little bit..." - label 0x5f - set_stage_flag STAGEFLAG_ELVIS_SAID_SABOTAGE - stop_chr - jog_to_pad 0x005f - - beginloop 0x0f - if_chr_stopped /*goto*/ 0x2e - endloop 0x0f - - label 0x6f - label 0x2e - unset_self_flag_bank3 CHRFLAG3_01000000 - restart_timer - animation ANIM_OPERATE_0205, -1, -1, 0x0010, CHR_SELF, 2 - - beginloop 0x10 - if_chr_stopped /*goto*/ 0x06 - endloop 0x10 - - label 0x06 - say_quip CHR_JOANNA, 0x2c, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00 - set_self_flag_bank3 CHRFLAG3_01000000 - message CHR_JOANNA, 0x3014 // "Cetan megaweapon has been disabled." - set_stage_flag STAGEFLAG_AGENT_MEGAWEAPON_DISABLED - set_stage_flag STAGEFLAG_MEGAWEAPON_DISABLED - set_lights_state 0x006c, 0x03, 0x64, 0xff, 0x78 - assign_sound 0x8148, CHANNEL_7 - play_sound_from_entity CHANNEL_7, CHR_SELF, 0x0bb8, 0x1770, 0x01 - unlock_door 0xb7, 0x02 - unlock_door 0xb8, 0x02 - goto_first 0x03 - - label 0x60 - set_function CHR_SELF, FUNC_ELVIS_FOLLOW_AND_DO_AGENT_MEGAWEAPON - endfunction - -/** - * Seems to be a general follow function for Elvis. - * He does not engage in combat. - * - * @unused - */ -func0405_elvis_follow_nocombat: - set_self_flag_bank3 CHRFLAG3_00080000 - unset_self_flag_bankx CHRFLAG1_00200000, BANK_1 - set_onshot_function 0x0405 - set_target_chr FOLLOW_CHR - if_chr_dying CHR_SELF, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2e - if_chr_unloaded CHR_SELF, /*goto*/ 0x2e - goto_next 0x06 - - // Dying - label 0x2e - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x06 - if_just_injured CHR_SELF, /*goto*/ 0x2e - goto_next 0x06 - - // Injured - label 0x2e - say_quip CHR_JOANNA, 0x29, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00 - - beginloop 0x12 - if_chr_stopped /*goto*/ 0x06 - endloop 0x12 - - label 0x06 - if_enemy_distance_lt_and_los 300, /*goto*/ 0x08 - set_target_chr FOLLOW_CHR - if_chr_distance_lt 200, /*goto*/ 0x06 - label 0x03 - set_target_chr FOLLOW_CHR - restart_timer - if_chr_distance_gt 300, /*goto*/ 0x06 - try_run_to_target_chr_with_hand_up /*goto*/ 0x04 - label 0x06 - try_run_to_target_chr /*goto*/ 0x04 - - beginloop 0x04 - label 0x2e - dprint "GO TO PAD\n" - if_enemy_distance_lt_and_los 300, /*goto*/ 0x08 - set_target_chr FOLLOW_CHR - if_chr_distance_lt 200, /*goto*/ 0x06 - if_timer_gt 60, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - goto_first 0x03 - - label 0x06 - stop_chr - - beginloop 0x09 - dprint "B4 PAD\n" - label 0x2e - dprint "AT PAD\n" - if_enemy_distance_lt_and_los 2000, /*goto*/ 0x08 - set_target_chr FOLLOW_CHR - if_chr_distance_gt 300, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - goto_first 0x03 - - // Detected enemy - label 0x08 - restart_timer - say_quip CHR_JOANNA, 0x29, 0xff, 0x14, 0xff, BANK_1, 0x00, 0x00 - retreat 0x02, 0x01 - - beginloop 0x09 - if_timer_gt 120, /*goto*/ 0x2e - endloop 0x09 - - label 0x2e - goto_first 0x03 - - endfunction - -func0406_elvis_follow_and_do_sa_megaweapon: - set_onshot_function FUNC_ELVIS_FOLLOW_AND_DO_SA_MEGAWEAPON - set_target_chr FOLLOW_CHR - if_chr_dying CHR_SELF, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2e - if_chr_unloaded CHR_SELF, /*goto*/ 0x2e - goto_next 0x06 - - // Dying - label 0x2e - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x06 - if_just_injured CHR_SELF, /*goto*/ 0x2e - goto_next 0x5f - - // Injured - label 0x2e - say_quip CHR_JOANNA, 0x29, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00 - - beginloop 0x12 - if_chr_stopped /*goto*/ 0x5f - endloop 0x12 - - label 0x5f - if_stage_flag_eq STAGEFLAG_ELVIS_STARTED_SA_MEGAWEAPON, TRUE, /*goto*/ 0x1b - restart_timer - if_chr_distance_lt 400, /*goto*/ 0x2e - jog_to_pad 0x00b4 - goto_next 0x0f - - label 0x2e - label 0x1c - run_to_pad 0x00b4 - - beginloop 0x0f - if_timer_gt 300, /*goto*/ 0x06 - if_chr_stopped /*goto*/ 0x2e - endloop 0x0f - - label 0x06 - goto_first 0x5f - - label 0x2e - restart_timer - try_face_entity 0x0008, 0x0115, /*goto*/ 0x97 - - beginloop 0x97 - if_timer_gt 60, /*goto*/ 0x06 - if_chr_stopped /*goto*/ 0x06 - endloop 0x97 - - label 0x06 - restart_timer - - label 0x1b - set_stage_flag STAGEFLAG_ELVIS_STARTED_SA_MEGAWEAPON - unset_self_flag_bank3 CHRFLAG3_01000000 - call_rng - if_rand_lt 86, /*goto*/ 0x63 - if_rand_lt 172, /*goto*/ 0x64 - - animation ANIM_OPERATE_0204, -1, -1, 0x0210, CHR_SELF, 2 - goto_next 0x11 - - label 0x63 - animation ANIM_OPERATE_0205, -1, -1, 0x0210, CHR_SELF, 2 - goto_next 0x11 - - label 0x64 - animation ANIM_OPERATE_0206, -1, -1, 0x0210, CHR_SELF, 2 - goto_next 0x11 - - beginloop 0x11 - if_chr_idle /*goto*/ 0x2e - goto_next 0x06 - - label 0x2e - if_timer_gt 3600, /*goto*/ 0x2e - endloop 0x11 - - label 0x06 - goto_first 0x1b - - label 0x2e - say_quip CHR_JOANNA, 0x2c, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00 - set_self_flag_bank3 CHRFLAG3_01000000 - message CHR_JOANNA, 0x3014 // "Cetan megaweapon has been disabled." - set_stage_flag STAGEFLAG_MEGAWEAPON_DISABLED - try_draw_weapon MODEL_CHRMAIANPISTOL, WEAPON_PHOENIX, 0x00000000, /*goto*/ 0x04 - label 0x04 - set_function CHR_SELF, FUNC_ELVIS_GO_TO_SA_TELEPORT - goto_first 0x03 - - label 0x60 - set_function CHR_SELF, FUNC_ELVIS_FOLLOW_AND_DO_SA_MEGAWEAPON - endfunction - -func0407_elvis_go_to_sa_teleport: - set_onshot_function FUNC_ELVIS_GO_TO_SA_TELEPORT - set_target_chr FOLLOW_CHR - if_chr_dying CHR_SELF, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2e - if_chr_unloaded CHR_SELF, /*goto*/ 0x2e - goto_next 0x06 - - // Dying - label 0x2e - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x06 - if_just_injured CHR_SELF, /*goto*/ 0x2e - goto_next 0x5f - - // Injured - label 0x2e - say_quip CHR_JOANNA, 0x29, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00 - - beginloop 0x12 - if_chr_stopped /*goto*/ 0x06 - endloop 0x12 - - label 0x06 - set_target_chr FOLLOW_CHR - label 0x5f - restart_timer - if_chr_distance_lt 1400, /*goto*/ 0x2e - jog_to_pad 0x00c0 - goto_next 0x0f - - label 0x2e - run_to_pad 0x00c0 - - beginloop 0x0f - if_enemy_distance_lt_and_los 800, /*goto*/ 0x08 - if_timer_gt 300, /*goto*/ 0x06 - if_chr_stopped /*goto*/ 0x2e - endloop 0x0f - - label 0x06 - goto_first 0x5f - - label 0x2e - stop_chr - - beginloop 0x10 - if_enemy_distance_lt_and_los 800, /*goto*/ 0x08 - endloop 0x10 - - label 0x06 - restart_timer - label 0x08 - dprint "DETECTED\n" - call_rng - if_rand_lt 85, /*goto*/ 0x63 - if_rand_lt 170, /*goto*/ 0x64 - say_quip CHR_JOANNA, 0x26, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00 - goto_next 0x2e - - label 0x63 - say_quip CHR_JOANNA, 0x27, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00 - goto_next 0x2e - - label 0x64 - say_quip CHR_JOANNA, 0x28, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00 - label 0x2e - set_onshot_function FUNC_ELVIS_GO_TO_SA_TELEPORT - set_return_function CHR_SELF, FUNC_ELVIS_GO_TO_SA_TELEPORT - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - endfunction - -func0403_elvis_give_farsight: - set_onshot_function FUNC_ELVIS_GIVE_FARSIGHT - set_target_chr FOLLOW_CHR - if_chr_dying CHR_SELF, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2e - if_chr_unloaded CHR_SELF, /*goto*/ 0x2e - goto_next 0x06 - - // Dying - label 0x2e - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x06 - if_just_injured CHR_SELF, /*goto*/ 0x2e - goto_next 0x06 - - // Injured - label 0x2e - say_quip CHR_JOANNA, 0x29, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00 - - beginloop 0x12 - if_chr_stopped /*goto*/ 0x06 - endloop 0x12 - - // Healthy - label 0x06 - set_target_chr FOLLOW_CHR - if_chr_distance_lt 200, /*goto*/ 0x06 - - label 0x03 - set_target_chr FOLLOW_CHR - restart_timer - if_chr_distance_gt 300, /*goto*/ 0x06 - try_run_to_target_chr_with_hand_up /*goto*/ 0x04 - label 0x06 - try_run_to_target_chr /*goto*/ 0x04 - - beginloop 0x04 - dprint "GO TO PAD\n" - set_target_chr FOLLOW_CHR - if_chr_distance_lt 200, /*goto*/ 0x06 - if_timer_gt 60, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - goto_first 0x03 - - label 0x06 - stop_chr - label 0x09 - do_special_animation 5 - speak TARGET_CHR, 0x3012, 0x12ea, CHANNEL_6, COLOR_04_ORANGE // "Here, take this gun and keep those Skedar off my b..." - give_object_to_chr 0x73, TARGET_CHR - yield - set_stage_flag STAGEFLAG_TRIGGER_MINISKEDAR_SPAWNING - - beginloop 0x0a - if_sound_finished CHANNEL_6, /*goto*/ 0x2e - endloop 0x0a - - label 0x2e - if_difficulty_lt DIFF_SA, /*goto*/ 0x2e - if_difficulty_lt DIFF_PA, /*goto*/ 0x06 - - // PA - unset_self_flag_bankx CHRFLAG1_00200000, BANK_1 - yield - try_draw_weapon MODEL_CHRMAIANPISTOL, WEAPON_PHOENIX, 0x00000000, /*goto*/ 0x2f - label 0x2f - set_function CHR_SELF, FUNC_ELVIS_FOLLOW_AND_DO_AGENT_MEGAWEAPON - - // SA - label 0x06 - set_function CHR_SELF, FUNC_ELVIS_FOLLOW_AND_DO_SA_MEGAWEAPON - - // Agent - label 0x2e - yield - try_draw_weapon MODEL_CHRMAIANPISTOL, WEAPON_PHOENIX, 0x00000000, /*goto*/ 0x2e - label 0x2e - set_function CHR_SELF, FUNC_ELVIS_FOLLOW_AND_DO_AGENT_MEGAWEAPON - endfunction - -.macro powernode_logic node door - label 0x04 - yield - if_object_in_good_condition \node, /*goto*/ 0x2e - if_door_state \door, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x2e - open_door \door - goto_first 0x04 - - label 0x2e - if_object_health_lt \node, 250, /*goto*/ 0x2e - - .if \node == OBJ_POWERNODE3 - set_object_flag_bank0 \node, OBJECTFLAG0_INVINCIBLE - set_object_health \node, 0 - .else - set_object_health \node, 0 - set_object_flag_bank0 \node, OBJECTFLAG0_INVINCIBLE - .endif - - open_door \door - set_object_flag_bank0 \door, OBJECTFLAG0_40000000 - goto_first 0x04 - - label 0x2e - goto_first 0x04 -.endm - -func1003_powernode1: - powernode_logic OBJ_POWERNODE1, 0x03 - endfunction - -func1004_powernode2: - powernode_logic OBJ_POWERNODE2, 0x04 - endfunction - -func1005_powernode3: - powernode_logic OBJ_POWERNODE3, 0x05 - endfunction - -func0c01_midcutscene: - remove_weapon_from_inventory WEAPON_BACKUPDISK - fade_to_color 0x000000ff, 0 - fade_to_color 0x00000000, 15 - set_chr_flag_bank3 0xf1, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_function CHR_ELVIS, GFUNC_IDLE - set_music_track MUSIC_DEEPSEA_MIDCUTSCENE - camera_movement 0x01d4 - set_chr_flag_bank3 CHR_P1P2, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_P1P2, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_P1P2, CHRFLAG2_00020000 - animation 0x01d5, -1, -1, 0x0600, CHR_P1P2, 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 0x01d6, -1, -1, 0x0600, CHR_ELVIS, 4 - set_chr_flag_bank3 CHR_DRCAROLL, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_DRCAROLL, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_DRCAROLL, CHRFLAG2_00020000 - animation 0x01d7, -1, -1, 0x0600, CHR_DRCAROLL, 4 - show_object 0xbb - set_object_flag_bank1 0xbb, OBJECTFLAG1_04000000 - set_object_flag_bank2 0xbb, OBJECTFLAG2_00000010 - object_do_animation 0x01d8, 0xbb, 0x04ff, 0xff - restart_timer - set_cutscene_weapon CHR_P1P2, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_P1P2, WEAPON_NONE, WEAPON_NONE - set_cutscene_weapon CHR_ELVIS, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_ELVIS, WEAPON_NONE, WEAPON_NONE - show_nonessential_chrs FALSE - - .macro wait_until time loopid - beginloop \loopid - if_controller_button_pressed /*goto*/ 0x57 - if_timer_gt \time, /*goto*/ 0x06 - endloop \loopid - label 0x06 - .endm - - .macro wait_until_with_images time loopid image1 image2 - beginloop \loopid - set_drcaroll_image CHR_DRCAROLL, \image1, \image2 - if_controller_button_pressed /*goto*/ 0x57 - if_timer_gt \time, /*goto*/ 0x06 - endloop \loopid - label 0x06 - .endm - - wait_until 114, 0x63 - speak CHR_JOANNA, 0x3023, 0x746d, CHANNEL_10, COLOR_09_BLUE // "Here goes. I just hope dataDyne haven't done anyth..." - - wait_until 300, 0x64 - play_sound 0x0171, CHANNEL_2 - - wait_until 378, 0x65 - play_sound 0x04fc, CHANNEL_3 - - wait_until 408, 0x6a - play_sound 0x0423, CHANNEL_5 - - wait_until 440, 0x1a - play_sound 0x04f7, CHANNEL_10 - - wait_until 490, 0x6b - speak CHR_JOANNA, 0x3024, 0x746e, CHANNEL_10, COLOR_04_ORANGE // "Virus detected." - - wait_until 570, 0x69 - - label 0x6c - set_drcaroll_image CHR_DRCAROLL, 0x02, 0x03 - yield - set_drcaroll_image CHR_DRCAROLL, 0x03, 0x02 - yield - if_controller_button_pressed /*goto*/ 0x57 - if_timer_gt 600, /*goto*/ 0x06 - goto_first 0x6c - - label 0x06 - set_drcaroll_image CHR_DRCAROLL, 0x02, 0x02 - speak CHR_JOANNA, 0x3025, 0x746f, CHANNEL_10, COLOR_09_BLUE // "Me and my big mouth." - - wait_until 700, 0x6d - play_sound 0x0172, CHANNEL_6 - - wait_until 712, 0x6f - play_sound 0x04f8, CHANNEL_2 - - wait_until 716, 0x70 - play_sound 0x0127, CHANNEL_3 - - label 0x71 - yield - set_drcaroll_image CHR_DRCAROLL, 0x07, 0x07 - if_controller_button_pressed /*goto*/ 0x57 - if_timer_gt 742, /*goto*/ 0x06 - goto_first 0x71 - - label 0x06 - speak CHR_JOANNA, 0x3026, 0x7470, CHANNEL_10, COLOR_04_ORANGE // "Commencing countermeasures. Commenc..... *** ooOOo..." - - wait_until_with_images 746, 0x73, 0x02, 0x08 - play_sound 0x0128, CHANNEL_5 - - wait_until_with_images 760, 0x75, 0x08, 0x08 - emit_sparks CHR_DRCAROLL - - wait_until_with_images 764, 0x76, 0x08, 0x02 - play_sound 0x0173, CHANNEL_2 - - wait_until_with_images 784, 0x79, 0x08, 0x08 - play_sound 0x0174, CHANNEL_5 - - wait_until_with_images 808, 0x7c, 0x08, 0x02 - emit_sparks CHR_DRCAROLL - - wait_until_with_images 872, 0x81, 0x08, 0x08 - play_sound 0x04fa, CHANNEL_7 - - wait_until_with_images 886, 0x83, 0x00, 0x08 - play_sound 0x0129, CHANNEL_3 - - wait_until_with_images 894, 0x85, 0x08, 0x02 - play_sound 0x012a, CHANNEL_5 - label 0x86 - - wait_until_with_images 914, 0x87, 0x08, 0x08 - emit_sparks CHR_DRCAROLL - - wait_until_with_images 980, 0x8b, 0x00, 0x08 - emit_sparks CHR_DRCAROLL - - wait_until_with_images 992, 0x8e, 0x08, 0x00 - play_sound 0x04f9, CHANNEL_2 - - wait_until_with_images 1012, 0x90, 0x08, 0x08 - play_sound 0x012b, CHANNEL_4 - - wait_until_with_images 1018, 0x91, 0x00, 0x08 - emit_sparks CHR_DRCAROLL - - wait_until_with_images 1026, 0x93, 0x08, 0x08 - play_sound 0x0129, CHANNEL_7 - - wait_until_with_images 1034, 0x94, 0x08, 0x00 - play_sound 0x0176, CHANNEL_2 - set_drcaroll_image CHR_DRCAROLL, 0x00, 0x00 - - wait_until_with_images 1036, 0x95, 0x08, 0x08 - emit_sparks CHR_DRCAROLL - - wait_until_with_images 1068, 0x98, 0x08, 0x00 - play_sound 0x0177, CHANNEL_6 - emit_sparks CHR_DRCAROLL - - wait_until_with_images 1074, 0x99, 0x08, 0x08 - emit_sparks CHR_DRCAROLL - - wait_until_with_images 1090, 0xfc, 0x00, 0x08 - emit_sparks CHR_DRCAROLL - - wait_until_with_images 1112, 0x9e, 0x08, 0x08 - play_sound 0x0127, CHANNEL_6 - - wait_until_with_images 1124, 0xa0, 0x08, 0x00 - play_sound 0x04f7, CHANNEL_2 - emit_sparks CHR_DRCAROLL - - wait_until_with_images 1130, 0xa1, 0x00, 0x08 - play_sound 0x04ff, CHANNEL_3 - emit_sparks CHR_DRCAROLL - - wait_until_with_images 1188, 0xa7, 0x08, 0x08 - emit_sparks CHR_DRCAROLL - - wait_until_with_images 1238, 0xaa, 0x08, 0x00 - play_sound 0x04f7, CHANNEL_6 - emit_sparks CHR_DRCAROLL - - wait_until_with_images 1304, 0xb2, 0x00, 0x08 - play_sound 0x0129, CHANNEL_2 - - wait_until_with_images 1308, 0xb3, 0x08, 0x08 - play_sound 0x0178, CHANNEL_3 - - wait_until_with_images 1354, 0xba, 0x08, 0x00 - play_sound 0x04f7, CHANNEL_4 - - wait_until_with_images 1406, 0xc5, 0x00, 0x08 - emit_sparks CHR_DRCAROLL - - wait_until_with_images 1468, 0xcd, 0x00, 0x08 - play_sound 0x012b, CHANNEL_5 - - wait_until_with_images 1480, 0xcf, 0x00, 0x08 - play_sound 0x0173, CHANNEL_6 - - wait_until_with_images 1487, 0xd0, 0x08, 0x00 - play_sound 0x04f9, CHANNEL_2 - emit_sparks CHR_DRCAROLL - - wait_until_with_images 1494, 0xd1, 0x08, 0x00 - play_sound 0x0171, CHANNEL_3 - - wait_until_with_images 1500, 0xd4, 0x08, 0x00 - speak CHR_JOANNA, 0x3027, 0x7471, CHANNEL_10, COLOR_09_BLUE // "Dr. Caroll? Are you in control again? Can you stop..." - set_drcaroll_image CHR_DRCAROLL, 0x00, 0x00 - - wait_until 1534, 0xd6 - play_sound 0x04f9, CHANNEL_6 - - wait_until 1564, 0xda - play_sound 0x0178, CHANNEL_5 - - wait_until 1630, 0xe0 - play_sound 0x0175, CHANNEL_5 - - wait_until 1810, 0xe3 - speak CHR_JOANNA, 0x3028, 0x7472, CHANNEL_10, COLOR_04_ORANGE // "Yes, I'm back again, my dear. But the program has ..." - - wait_until 1810, 0xe5 - play_sound 0x0177, CHANNEL_3 - - wait_until 1886, 0xe7 - play_sound 0x0175, CHANNEL_5 - - wait_until 2378, 0xe9 - mute_channel CHANNEL_7 - speak CHR_JOANNA, 0x3029, 0x7473, CHANNEL_10, COLOR_09_BLUE // "What do you mean?" - - wait_until 2510, 0xea - speak CHR_JOANNA, 0x302a, 0x7474, CHANNEL_10, COLOR_04_ORANGE // "When the program has run, I will have control of a..." - - wait_until 3126, 0xf5 - play_sound 0x012b, CHANNEL_5 - - wait_until 3156, 0xf6 - emit_sparks CHR_DRCAROLL - - set_drcaroll_image CHR_DRCAROLL, 0x00, 0x08 - yield - set_drcaroll_image CHR_DRCAROLL, 0x00, 0x08 - yield - set_drcaroll_image CHR_DRCAROLL, 0x00, 0x08 - yield - set_drcaroll_image CHR_DRCAROLL, 0x00, 0x00 - - wait_until 3266, 0xf7 - emit_sparks CHR_DRCAROLL - - set_drcaroll_image CHR_DRCAROLL, 0x00, 0x08 - yield - set_drcaroll_image CHR_DRCAROLL, 0x00, 0x08 - yield - set_drcaroll_image CHR_DRCAROLL, 0x00, 0x08 - yield - set_drcaroll_image CHR_DRCAROLL, 0x00, 0x00 - - wait_until 3556, 0xf8 - - set_drcaroll_image CHR_DRCAROLL, 0x00, 0x08 - yield - set_drcaroll_image CHR_DRCAROLL, 0x00, 0x08 - yield - set_drcaroll_image CHR_DRCAROLL, 0x00, 0x08 - yield - set_drcaroll_image CHR_DRCAROLL, 0x00, 0x00 - emit_sparks CHR_DRCAROLL - - wait_until 3606, 0xf9 - emit_sparks CHR_DRCAROLL - - set_drcaroll_image CHR_DRCAROLL, 0x00, 0x08 - yield - set_drcaroll_image CHR_DRCAROLL, 0x00, 0x08 - yield - set_drcaroll_image CHR_DRCAROLL, 0x00, 0x08 - yield - set_drcaroll_image CHR_DRCAROLL, 0x00, 0x00 - - wait_until 3985, 0x10 - play_sound 0x0424, CHANNEL_1 - - wait_until 4046, 0xfa - emit_sparks CHR_DRCAROLL - - set_drcaroll_image CHR_DRCAROLL, 0x00, 0x08 - yield - set_drcaroll_image CHR_DRCAROLL, 0x00, 0x08 - yield - set_drcaroll_image CHR_DRCAROLL, 0x00, 0x08 - yield - set_drcaroll_image CHR_DRCAROLL, 0x00, 0x00 - - wait_until 4106, 0xfb - emit_sparks CHR_DRCAROLL - - label 0x11 - yield - if_controller_button_pressed /*goto*/ 0x57 - if_timer_gt 4250, /*goto*/ 0x06 - mute_channel CHANNEL_1 - goto_first 0x11 - - label 0x06 - fade_to_color 0x000000ff, 250 - - wait_until 4500, 0x12 - play_sound 0x012b, CHANNEL_5 - - beginloop 0x08 - if_camera_animating /*goto*/ 0x2e - goto_next 0x57 - - label 0x2e - if_controller_button_pressed /*goto*/ 0x57 - label 0x2e - endloop 0x08 - - label 0x57 - mute_channel CHANNEL_10 - mute_channel CHANNEL_7 - mute_channel CHANNEL_6 - mute_channel CHANNEL_5 - mute_channel CHANNEL_4 - mute_channel CHANNEL_3 - mute_channel CHANNEL_2 - mute_channel CHANNEL_1 - mute_channel CHANNEL_0 - fade_to_color 0xffffffff, 0 - fade_to_color 0x00000000, 15 - hide_object 0xbb - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_P1P2, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_P1P2, CHRFLAG2_00020000 - animation 0x01d5, -2, -1, 0x0600, CHR_P1P2, 2 - unset_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_ELVIS, CHRFLAG2_00020000 - animation 0x01d6, -2, -1, 0x0600, CHR_ELVIS, 2 - unset_chr_flag_bank3 CHR_DRCAROLL, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_DRCAROLL, CHRFLAG2_00020000 - animation 0x01d7, -2, -1, 0x0600, CHR_DRCAROLL, 2 - set_cutscene_weapon CHR_ELVIS, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_ELVIS, WEAPON_PHOENIX, WEAPON_NONE - set_function CHR_ELVIS, GFUNC_IDLE - yield - chr_move_to_pad CHR_ELVIS, 0x0013, 0x01, /*goto*/ 0x2e - label 0x2e - set_chr_flag_bank2 CHR_ELVIS, CHRFLAG2_00020000 - chr_move_to_pad CHR_JOANNA, 0x019f, 0x01, /*goto*/ 0x2e - label 0x2e - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - restart_default_music - reset_ambience - play_x_music CHANNEL_10, 60 - set_function CHR_ELVIS, GFUNC_IDLE - chr_move_to_pad CHR_ELVIS, 0x0017, 0x01, /*goto*/ 0x2e - label 0x2e - remove_weapon_from_inventory WEAPON_BACKUPDISK - set_function CHR_ELVIS, FUNC_ELVIS_WARP_TO_OUTSIDE_DRCAROLL - show_nonessential_chrs TRUE - set_stage_flag STAGEFLAG_MIDCUTSCENE_FINISHED - set_function CHR_SELF, GFUNC_END_CINEMA - endfunction - -func042d_elvis_warp_to_outside_drcaroll: - stop_chr - - beginloop 0x04 - dprint "TELEPORT FAILED\n" - chr_move_to_pad CHR_ELVIS, 0x0017, 0x01, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - dprint "TELEPORT GOOD\n" - set_chr_flag_bank2 CHR_ELVIS, CHRFLAG2_00020000 - stop_chr - set_function CHR_SELF, FUNC_ELVIS_RUN_TO_EXIT - endfunction - -func0c02_outro: - show_nonessential_chrs FALSE - hide_countdown_timer - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_music_track MUSIC_DEEPSEA_OUTRO - camera_movement 0x02d7 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - restart_timer - - // @bug: Missing button checks makes the outro unskippable until a certain - // point. - .macro blow_mine time loopid msg mine pad - beginloop \loopid - if_timer_gt \time, /*goto*/ 0x2e - endloop \loopid - label 0x2e - dprint \msg - show_object \mine - yield - move_object_to_pad \mine, \pad - yield - destroy_object \mine - .endm - - blow_mine 40, 0x63, "1\n", 0x76, 0x028c - blow_mine 72, 0x64, "2\n", 0x77, 0x028b - blow_mine 155, 0x65, "3\n", 0x78, 0x028a - blow_mine 176, 0x66, "4\n", 0x79, 0x0289 - blow_mine 194, 0x6a, "5\n", 0x7a, 0x0288 - blow_mine 252, 0x6b, "6\n", 0x7b, 0x0287 - blow_mine 300, 0x6c, "7\n", 0x7c, 0x0286 - blow_mine 331, 0x6d, "8\n", 0x7d, 0x0285 - blow_mine 355, 0x6e, "9\n", 0x7e, 0x0284 - blow_mine 411, 0x6f, "10\n", 0x7f, 0x0283 - blow_mine 441, 0x70, "11\n", 0x80, 0x0282 - blow_mine 485, 0x71, "12\n", 0x81, 0x0281 - blow_mine 543, 0x72, "13\n", 0x82, 0x0280 - blow_mine 594, 0x73, "14\n", 0x83, 0x027f - blow_mine 607, 0x74, "15\n", 0x84, 0x027e - blow_mine 629, 0x75, "16\n", 0x85, 0x027d - blow_mine 671, 0x76, "17\n", 0x86, 0x027c - blow_mine 720, 0x77, "18\n", 0x87, 0x027b - blow_mine 776, 0x78, "19\n", 0x88, 0x027a - blow_mine 865, 0x79, "20\n", 0x89, 0x0279 - blow_mine 914, 0x7a, "21\n", 0x8a, 0x0278 - blow_mine 991, 0x7b, "22\n", 0x8b, 0x0277 - - beginloop 0x7c - if_timer_gt 1011, /*goto*/ 0x2e - endloop 0x7c - - label 0x2e - dprint "23\n" - - blow_mine 1038, 0x7d, "24\n", 0x8d, 0x0275 - blow_mine 1071, 0x7e, "25\n", 0x8e, 0x0274 - blow_mine 1090, 0x7f, "26\n", 0x8f, 0x0273 - blow_mine 1110, 0x80, "27\n", 0x90, 0x0272 - blow_mine 1137, 0x81, "28\n", 0x91, 0x0271 - - wait_until 1150, 0x8e - open_door 0xb3 - open_door 0xb4 - open_door 0xb5 - open_door 0xb6 - - blow_mine 1191, 0x82, "29\n", 0x92, 0x0270 - blow_mine 1214, 0x83, "30\n", 0x93, 0x026f - blow_mine 1266, 0x84, "31\n", 0x94, 0x026e - blow_mine 1285, 0x85, "32\n", 0x95, 0x026d - blow_mine 1296, 0x86, "33\n", 0x96, 0x026c - blow_mine 1320, 0x87, "34\n", 0x97, 0x026b - - wait_until 1355, 0x8f - close_door 0xb5 - close_door 0xb6 - - blow_mine 1360, 0x88, "35\n", 0x98, 0x026a - blow_mine 1390, 0x89, "36\n", 0x99, 0x0269 - blow_mine 1412, 0x8a, "37\n", 0x9a, 0x0268 - - wait_until 1416, 0x90 - close_door 0xb3 - close_door 0xb4 - - blow_mine 1424, 0x8b, "38\n", 0x9b, 0x0267 - - beginloop 0x08 - if_camera_animating /*goto*/ 0x2e - goto_next 0x57 - - label 0x2e - if_controller_button_pressed /*goto*/ 0x57 - label 0x2e - endloop 0x08 - - label 0x57 - if_all_objectives_complete /*goto*/ 0x06 - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - explosions_around_chr CHR_JOANNA - label 0x2e - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - enter_firstperson - grant_control CHR_JOANNA - restart_timer - - beginloop 0x0d - if_timer_gt 120, /*goto*/ 0x2f - endloop 0x0d - - label 0x2f - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2e - explosions_around_chr CHR_VELVET - label 0x2e - - beginloop 0x0e - if_timer_gt 240, /*goto*/ 0x06 - endloop 0x0e - - label 0x06 - end_level - set_function CHR_SELF, GFUNC_IDLE - - label 0x2e - end_level - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1002_intro: - set_drcaroll_image CHR_DRCAROLL, 0x02, 0x02 - chr_draw_weapon_in_cutscene CHR_JOANNA, WEAPON_FALCON2_SCOPE - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_music_track MUSIC_DEEPSEA_INTRO - camera_movement 0x01ef - cmd0175 60 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x01f0, -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 0x01f1, -1, -1, 0x0600, CHR_ELVIS, 4 - set_object_flag_bank0 0x07, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank1 0x07, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x07, OBJECTFLAG2_00000010 - object_do_animation 0x01f2, 0x07, 0x04ff, 0xff - set_chr_flag_bank3 0x40, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x40, CHRFLAG3_HIDDEN - set_chr_flag_bank2 0x40, CHRFLAG2_00020000 - animation 0x0471, -1, -1, 0x0600, 0x40, 4 - restart_timer - set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_JOANNA, WEAPON_FALCON2_SCOPE, WEAPON_NONE - - wait_until 0, 0x63 - play_sound_from_object2 CHANNEL_5, 0x07, 0x81aa, 0x00, 0x00 - - wait_until 260, 0x8a - play_sound 0x80d5, CHANNEL_10 - - wait_until 280, 0x8b - play_sound 0x80d4, CHANNEL_10 - - wait_until 300, 0x89 - play_sound 0x005b, CHANNEL_7 - set_chr_flag_bank2 0x40, CHRFLAG2_CLOAKED - play_sound 0x80d7, CHANNEL_10 - - wait_until 320, 0x8c - play_sound 0x80d6, CHANNEL_10 - - wait_until 852, 0x64 - play_sound 0x0171, CHANNEL_7 - - wait_until 1210, 0x65 - speak CHR_JOANNA, 0x301f, 0x7469, CHANNEL_10, COLOR_04_ORANGE // "This doesn't seem normal. No one's around." - - wait_until 1266, 0x66 - play_sound 0x0172, CHANNEL_7 - - wait_until 1300, 0x6a - play_sound 0x0171, CHANNEL_7 - - wait_until 1430, 0x6b - mute_channel CHANNEL_5 - play_sound_from_object2 CHANNEL_5, 0x07, 0x81a9, 0x00, 0x00 - - wait_until 1522, 0x6c - speak CHR_JOANNA, 0x3020, 0x746a, CHANNEL_10, COLOR_09_BLUE // "No signs of conflict. No spent ammo cases or bulle..." - - wait_until 1548, 0x6d - play_sound 0x0174, CHANNEL_7 - - wait_until 1594, 0x6e - play_sound 0x0175, CHANNEL_7 - - wait_until 1662, 0x6f - play_sound 0x0176, CHANNEL_7 - - wait_until 1762, 0x70 - play_sound 0x0177, CHANNEL_7 - - wait_until 1945, 0x71 - speak CHR_JOANNA, 0x3021, 0x746b, CHANNEL_10, COLOR_04_ORANGE // "But there ought to be a rear guard at least. It ma..." - - wait_until 1958, 0x72 - play_sound 0x0178, CHANNEL_7 - - wait_until 2066, 0x73 - play_sound 0x0171, CHANNEL_7 - - wait_until 2118, 0x74 - play_sound 0x0172, CHANNEL_7 - - wait_until 2167, 0x75 - play_sound 0x0173, CHANNEL_7 - - wait_until 2213, 0x76 - play_sound 0x0174, CHANNEL_7 - - wait_until 2346, 0x77 - play_sound 0x0175, CHANNEL_7 - - wait_until 2362, 0x78 - play_sound 0x0176, CHANNEL_7 - - wait_until 2376, 0x79 - play_sound 0x0177, CHANNEL_7 - - wait_until 2390, 0x7a - play_sound 0x0178, CHANNEL_7 - - wait_until 2420, 0x7b - speak CHR_JOANNA, 0x3022, 0x746c, CHANNEL_10, COLOR_09_BLUE // "There has to be someone farther inside. Cover me." - - wait_until 2426, 0x7c - play_sound 0x0171, CHANNEL_7 - - wait_until 2470, 0x7d - play_sound 0x0172, CHANNEL_7 - - wait_until 2485, 0x7e - play_sound 0x0173, CHANNEL_7 - - wait_until 2520, 0x7f - play_sound 0x0174, CHANNEL_7 - - wait_until 2545, 0x80 - play_sound 0x0175, CHANNEL_7 - - wait_until 2582, 0x81 - play_sound 0x0171, CHANNEL_7 - - wait_until 2585, 0x82 - play_sound 0x0176, CHANNEL_6 - - wait_until 2720, 0x83 - play_sound 0x0172, CHANNEL_7 - - wait_until 2842, 0x84 - play_sound 0x0173, CHANNEL_7 - - wait_until 2880, 0x85 - play_sound 0x0174, CHANNEL_7 - - wait_until 2898, 0x86 - play_sound 0x0175, CHANNEL_7 - - wait_until 3040, 0x87 - play_sound 0x0176, CHANNEL_7 - - wait_until 3042, 0x88 - play_sound 0x0177, CHANNEL_6 - - beginloop 0x08 - if_camera_animating /*goto*/ 0x2e - goto_next 0x57 - - label 0x2e - if_controller_button_pressed /*goto*/ 0x57 - label 0x2e - endloop 0x08 - - label 0x57 - mute_channel CHANNEL_7 - mute_channel CHANNEL_6 - mute_channel CHANNEL_5 - mute_channel CHANNEL_4 - mute_channel CHANNEL_10 - remove_chr 0x40 - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x01f0, -2, -1, 0x0600, CHR_JOANNA, 2 - unset_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_ELVIS, CHRFLAG2_00020000 - animation 0x01f1, -2, -1, 0x0600, CHR_ELVIS, 2 - if_coop_mode /*goto*/ 0x45 - unset_object_flag_bank0 0x07, OBJECTFLAG0_DEACTIVATED - unset_object_flag_bank1 0x07, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x07, OBJECTFLAG2_00000010 - object_do_animation 0x01f2, 0x07, 0x01ff, 0xfe - goto_next 0x46 - - label 0x45 - hide_object 0x07 - label 0x46 - restart_default_music - reset_ambience - label 0x0d - enter_firstperson - yield - set_function CHR_ELVIS, FUNC_INIT_ELVIS - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func042f_init_pelagic_guard: - set_chr_dodge_rating 2, 0x0a - set_accuracy 20 - set_reaction_speed 65 - set_chr_health CHR_SELF, 70 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func0430_unused: - set_accuracy 20 - set_reaction_speed 65 - set_chr_health CHR_SELF, 10 - set_armor 70 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func1006_msg_thiswillhelpus: - beginloop 0x04 - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0x0d - if_chr_dying CHR_ELVIS, /*goto*/ 0x0d - if_chr_unloaded CHR_ELVIS, /*goto*/ 0x0d - if_objective_complete 0, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - restart_timer - - beginloop 0x08 - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0x0d - if_chr_dying CHR_ELVIS, /*goto*/ 0x0d - if_chr_unloaded CHR_ELVIS, /*goto*/ 0x0d - if_timer_gt 180, /*goto*/ 0x2e - endloop 0x08 - - label 0x2e - speak CHR_P1P2, 0x300a, 0x73d4, CHANNEL_6, COLOR_04_ORANGE // "This will help us to get round the ship quicker." - label 0x0d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1007_msg_antibodymasking: - restart_timer - - beginloop 0x04 - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0x0d - if_chr_dying CHR_ELVIS, /*goto*/ 0x0d - if_chr_unloaded CHR_ELVIS, /*goto*/ 0x0d - endloop 0x04 - - // Unreachable - label 0x2e - speak CHR_JOANNA, 0x300b, 0x73d5, CHANNEL_6, COLOR_09_BLUE // "This antibody masking will protect us from the aut..." - - label 0x0d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1008_msg_theresdrcaroll: - beginloop 0x04 - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0x0d - if_chr_dying CHR_ELVIS, /*goto*/ 0x0d - if_chr_unloaded CHR_ELVIS, /*goto*/ 0x0d - - if_chr_death_animation_finished CHR_DRCAROLL, /*goto*/ 0x0d - if_chr_dying CHR_DRCAROLL, /*goto*/ 0x0d - if_chr_unloaded CHR_DRCAROLL, /*goto*/ 0x0d - - if_door_state 0xae, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2e - reloop 0x04 - - label 0x2e - if_chr_in_room CHR_ELVIS, 0x00, 0x004c, /*goto*/ 0x2e - goto_next 0x0d - - label 0x2e - if_chr_propsoundcount_zero CHR_ELVIS, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - speak CHR_JOANNA, 0x300c, 0x73d6, CHANNEL_6, COLOR_04_ORANGE // "There's Dr. Caroll. Let's see if we can reverse wh..." - - // Elvis dead, Dr Caroll dead, or Elvis didn't get teleported - label 0x0d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1009_msg_getoutofhere: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_MIDCUTSCENE_FINISHED, TRUE, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - restart_timer - - beginloop 0x08 - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0x0d - if_chr_dying CHR_ELVIS, /*goto*/ 0x0d - if_chr_unloaded CHR_ELVIS, /*goto*/ 0x0d - if_timer_gt 120, /*goto*/ 0x2e - endloop 0x08 - - label 0x2e - speak CHR_JOANNA, 0x300d, 0x73d7, CHANNEL_6, COLOR_04_ORANGE // "We have to get out of here!" - - label 0x0d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Entry point for all of Joanna's teleports. - * - * Map of how these functions call each other: - * - * 100a func100a_joanna_teleports - * - calls 0414 teleport_joanna_to_sapa - * - calls 0416 teleport_joanna_to_a_pa_drcaroll - * - calls 0415 teleport_joanna_to_drcaroll - * - calls 0415 teleport_joanna_to_drcaroll - */ -func100a_joanna_teleports: - beginloop 0x1f - if_stage_flag_eq STAGEFLAG_TELEPORTALS_ACTIVATED, TRUE, /*goto*/ 0x04 - endloop 0x1f - - beginloop 0x04 - if_chr_distance_to_pad_lt CHR_JOANNA, 250, PAD_STARTAREA_TELEPORT, /*goto*/ 0x59 - if_chr_distance_to_pad_lt CHR_JOANNA, 250, PAD_SAPAAREA_TELEPORT, /*goto*/ 0x09 - if_chr_distance_to_pad_lt CHR_JOANNA, 250, PAD_AGENTAREA_TELEPORT, /*goto*/ 0x08 - if_chr_distance_to_pad_lt CHR_JOANNA, 250, PAD_PAAREA_TELEPORT, /*goto*/ 0x08 - if_stage_flag_eq STAGEFLAG_DONE_FIRST_TELEPORT, TRUE, /*goto*/ 0x2e - endloop 0x04 - - // Done first teleport - label 0x2e - if_difficulty_gt DIFF_A, /*goto*/ 0x2e - goto_first 0x04 - - label 0x2e - if_difficulty_lt DIFF_PA, /*goto*/ 0x2e - goto_first 0x04 - - // Done first teleport and difficulty is SA - label 0x2e - set_stage_flag STAGEFLAG_SA_EXIT_TELEPORT_DISABLED - if_objective_complete 1, /*goto*/ 0x2e - goto_first 0x04 - - // Done first teleport, difficult is SA and megaweapon is disabled - label 0x2e - unset_stage_flag STAGEFLAG_SA_EXIT_TELEPORT_DISABLED - goto_first 0x04 - - // - // At start area teleport - // - label 0x59 - set_stage_flag STAGEFLAG_DONE_FIRST_TELEPORT - revoke_control CHR_JOANNA, 0 - teleport_to_pad PAD_STARTAREA_TELEPORT, CHR_JOANNA - - label 0x5b - if_teleport_full_white /*goto*/ 0x5e, CHR_JOANNA - yield - goto_first 0x5b - - label 0x5e - set_function CHR_ELVIS, FUNC_ELVIS_STOP - - label 0x2e - if_difficulty_lt DIFF_SA, /*goto*/ 0x64 - set_function CHR_JOANNA, FUNC_TELEPORT_JOANNA_TO_SAPA - unset_stage_flag STAGEFLAG_TELEPORT_DONE - - beginloop 0x31 - if_stage_flag_eq STAGEFLAG_TELEPORT_DONE, TRUE, /*goto*/ 0x2e - endloop 0x31 - - label 0x2e - grant_control CHR_JOANNA - teleport_to_pad 0x0000, CHR_JOANNA - goto_first 0x04 - - // - // At SA/PA area teleport - // - beginloop 0x09 - if_difficulty_gt DIFF_SA, /*goto*/ 0x2e - set_stage_flag STAGEFLAG_SA_EXIT_TELEPORT_DISABLED - if_objective_complete 1, /*goto*/ 0x2e - reloop 0x09 - - // Teleport is active - label 0x2e - unset_stage_flag STAGEFLAG_SA_EXIT_TELEPORT_DISABLED - if_chr_distance_to_pad_lt CHR_JOANNA, 250, PAD_SAPAAREA_TELEPORT, /*goto*/ 0x59 - endloop 0x09 - - label 0x59 - teleport_to_pad 0x00c0, CHR_JOANNA - revoke_control CHR_JOANNA, 0 - - label 0x5c - if_teleport_full_white /*goto*/ 0x5e, CHR_JOANNA - yield - goto_first 0x5c - - label 0x5e - set_function CHR_ELVIS, FUNC_ELVIS_STOP - if_difficulty_lt DIFF_PA, /*goto*/ 0x64 - goto_next 0x2e - - // - // At start area teleport on Agent, or SA/PA area teleport on SA - // - label 0x64 - goto_next 0x2e - - label 0x2e - set_function CHR_JOANNA, FUNC_TELEPORT_JOANNA_TO_A_PA_DRCAROLL - unset_stage_flag STAGEFLAG_TELEPORT_DONE - - beginloop 0x32 - if_stage_flag_eq STAGEFLAG_TELEPORT_DONE, TRUE, /*goto*/ 0x2e - endloop 0x32 - - label 0x2e - grant_control CHR_JOANNA - teleport_to_pad 0x0000, CHR_JOANNA - if_difficulty_lt DIFF_SA, /*goto*/ 0x06 - if_difficulty_lt DIFF_PA, /*goto*/ 0x2e - label 0x06 - goto_first 0x04 - - label 0x2e - set_function CHR_SELF, GFUNC_IDLE - - // - // At Agent or PA teleport - // - beginloop 0x08 - if_chr_distance_to_pad_lt CHR_JOANNA, 250, PAD_AGENTAREA_TELEPORT, /*goto*/ 0x59 - if_chr_distance_to_pad_lt CHR_JOANNA, 250, PAD_PAAREA_TELEPORT, /*goto*/ 0x5a - endloop 0x08 - - // Agent teleport - label 0x59 - revoke_control CHR_JOANNA, 0 - teleport_to_pad 0x0054, CHR_JOANNA - goto_next 0x5d - - // PA teleport - label 0x5a - revoke_control CHR_JOANNA, 0 - teleport_to_pad 0x0111, CHR_JOANNA - - label 0x5d - if_teleport_full_white /*goto*/ 0x5e, CHR_JOANNA - yield - goto_first 0x5d - - label 0x5e - set_function CHR_ELVIS, FUNC_ELVIS_STOP - set_function CHR_JOANNA, FUNC_TELEPORT_JOANNA_TO_DRCAROLL - unset_stage_flag STAGEFLAG_TELEPORT_DONE - - beginloop 0x33 - if_stage_flag_eq STAGEFLAG_TELEPORT_DONE, TRUE, /*goto*/ 0x2e - endloop 0x33 - - label 0x2e - grant_control CHR_JOANNA - teleport_to_pad 0x0000, CHR_JOANNA - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0414_teleport_joanna_to_sapa: - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP - if_stage_flag_eq STAGEFLAG_ELVIS_FOLLOWING_VELVET, FALSE, /*goto*/ 0x61 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x61 - if_chr_dying CHR_VELVET, /*goto*/ 0x61 - if_chr_unloaded CHR_VELVET, /*goto*/ 0x61 - goto_next 0x62 - - label 0x61 - set_function CHR_ELVIS, FUNC_ELVIS_STOP - - label 0x08 - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0x06 - if_chr_dying CHR_ELVIS, /*goto*/ 0x06 - if_chr_unloaded CHR_ELVIS, /*goto*/ 0x06 - - beginloop 0x63 - chr_move_to_pad CHR_ELVIS, 0x01c6, 0x01, /*goto*/ 0x06 - endloop 0x63 - - label 0x06 - set_chr_flag_bank2 CHR_ELVIS, CHRFLAG2_00020000 - label 0x62 - - beginloop 0x64 - chr_move_to_pad CHR_SELF, PAD_SAPAAREA_ENTRY, 0x01, /*goto*/ 0x06 - endloop 0x64 - - label 0x06 - yield - stop_chr - set_stage_flag STAGEFLAG_TELEPORT_DONE - if_stage_flag_eq STAGEFLAG_ELVIS_FOLLOWING_VELVET, FALSE, /*goto*/ 0x61 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x61 - if_chr_dying CHR_VELVET, /*goto*/ 0x61 - if_chr_unloaded CHR_VELVET, /*goto*/ 0x61 - goto_next 0x62 - label 0x61 - set_function CHR_ELVIS, FUNC_ELVIS_GIVE_FARSIGHT - label 0x62 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0415_teleport_joanna_to_drcaroll: - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP - if_stage_flag_eq STAGEFLAG_ELVIS_FOLLOWING_VELVET, FALSE, /*goto*/ 0x61 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x61 - if_chr_dying CHR_VELVET, /*goto*/ 0x61 - if_chr_unloaded CHR_VELVET, /*goto*/ 0x61 - goto_next 0x62 - - label 0x61 - set_function CHR_ELVIS, FUNC_ELVIS_STOP - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0x07 - if_chr_dying CHR_ELVIS, /*goto*/ 0x07 - if_chr_unloaded CHR_ELVIS, /*goto*/ 0x07 - - beginloop 0x65 - chr_move_to_pad CHR_ELVIS, 0x01bf, 0x01, /*goto*/ 0x06 - endloop 0x65 - - label 0x06 - set_chr_flag_bank2 CHR_ELVIS, CHRFLAG2_00020000 - goto_next 0x63 - label 0x07 - message CHR_JOANNA, 0x300e // "Elvis has been killed." - - label 0x62 - - beginloop 0x63 - chr_move_to_pad CHR_SELF, PAD_DRCAROLLROOM_ENTRY, 0x01, /*goto*/ 0x06 - endloop 0x63 - - label 0x06 - stop_chr - yield - set_stage_flag STAGEFLAG_TELEPORT_DONE - if_stage_flag_eq STAGEFLAG_ELVIS_FOLLOWING_VELVET, FALSE, /*goto*/ 0x61 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x61 - if_chr_dying CHR_VELVET, /*goto*/ 0x61 - if_chr_unloaded CHR_VELVET, /*goto*/ 0x61 - goto_next 0x62 - - label 0x61 - set_function CHR_ELVIS, FUNC_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS - - label 0x62 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * If Agent: Warp to Agent area - * If SA: Warp to Dr Caroll Area - * If PA: Warp to PA area - */ -func0416_teleport_joanna_to_a_pa_drcaroll: - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP - if_stage_flag_eq STAGEFLAG_ELVIS_FOLLOWING_VELVET, FALSE, /*goto*/ 0x61 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x61 - if_chr_dying CHR_VELVET, /*goto*/ 0x61 - if_chr_unloaded CHR_VELVET, /*goto*/ 0x61 - goto_next 0x62 - - label 0x61 - set_function CHR_ELVIS, FUNC_ELVIS_STOP - - label 0x62 - if_difficulty_lt DIFF_SA, /*goto*/ 0x09 - if_difficulty_lt DIFF_PA, /*goto*/ 0x08 - - // PA - if_stage_flag_eq STAGEFLAG_ELVIS_FOLLOWING_VELVET, FALSE, /*goto*/ 0x61 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x61 - if_chr_dying CHR_VELVET, /*goto*/ 0x61 - if_chr_unloaded CHR_VELVET, /*goto*/ 0x61 - goto_next 0x62 - - label 0x61 - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0x07 - if_chr_dying CHR_ELVIS, /*goto*/ 0x07 - if_chr_unloaded CHR_ELVIS, /*goto*/ 0x07 - - beginloop 0x66 - chr_move_to_pad CHR_ELVIS, 0x01be, 0x01, /*goto*/ 0x06 - endloop 0x66 - - label 0x06 - set_chr_flag_bank2 CHR_ELVIS, CHRFLAG2_00020000 - label 0x62 - label 0x07 - - beginloop 0x67 - chr_move_to_pad CHR_SELF, PAD_PAAREA_ENTRY, 0x01, /*goto*/ 0x06 - endloop 0x67 - - label 0x06 - label 0x2e - stop_chr - yield - if_stage_flag_eq STAGEFLAG_ELVIS_FOLLOWING_VELVET, FALSE, /*goto*/ 0x61 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x61 - if_chr_dying CHR_VELVET, /*goto*/ 0x61 - if_chr_unloaded CHR_VELVET, /*goto*/ 0x61 - goto_next 0x62 - - label 0x61 - set_function CHR_ELVIS, FUNC_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS - - label 0x62 - set_stage_flag STAGEFLAG_TELEPORT_DONE - set_function CHR_SELF, GFUNC_IDLE - - // SA - label 0x08 - set_function CHR_SELF, FUNC_TELEPORT_JOANNA_TO_DRCAROLL - - // Agent - label 0x09 - if_stage_flag_eq STAGEFLAG_ELVIS_FOLLOWING_VELVET, FALSE, /*goto*/ 0x61 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x61 - if_chr_dying CHR_VELVET, /*goto*/ 0x61 - if_chr_unloaded CHR_VELVET, /*goto*/ 0x61 - goto_next 0x62 - - label 0x61 - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0x07 - if_chr_dying CHR_ELVIS, /*goto*/ 0x07 - if_chr_unloaded CHR_ELVIS, /*goto*/ 0x07 - - beginloop 0x6b - chr_move_to_pad CHR_ELVIS, 0x0040, 0x01, /*goto*/ 0x06 - endloop 0x6b - - label 0x06 - set_chr_flag_bank2 CHR_ELVIS, CHRFLAG2_00020000 - label 0x62 - label 0x07 - - beginloop 0x68 - chr_move_to_pad CHR_SELF, PAD_AGENTAREA_ENTRY, 0x01, /*goto*/ 0x06 - endloop 0x68 - - label 0x06 - label 0x2e - stop_chr - yield - set_stage_flag STAGEFLAG_TELEPORT_DONE - if_stage_flag_eq STAGEFLAG_ELVIS_FOLLOWING_VELVET, FALSE, /*goto*/ 0x61 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x61 - if_chr_dying CHR_VELVET, /*goto*/ 0x61 - if_chr_unloaded CHR_VELVET, /*goto*/ 0x61 - goto_next 0x62 - - label 0x61 - set_function CHR_ELVIS, FUNC_ELVIS_GIVE_FARSIGHT - label 0x62 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Entry point for all of Velvet's teleports. - * - * Map of how these functions call each other: - * - * 100b func100b_velvet_teleports - * - calls 0417 teleport_velvet_to_sapa - * - calls 0419 teleport_velvet_to_a_pa_drcaroll - * - calls 0418 teleport_velvet_to_drcaroll - * - calls 0418 teleport_velvet_to_drcaroll - */ -func100b_velvet_teleports: - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2e - goto_next 0x1f - - label 0x2e - set_function CHR_SELF, GFUNC_IDLE - - beginloop 0x1f - if_stage_flag_eq STAGEFLAG_TELEPORTALS_ACTIVATED, TRUE, /*goto*/ 0x04 - endloop 0x1f - - beginloop 0x04 - if_chr_distance_to_pad_lt CHR_VELVET, 250, PAD_STARTAREA_TELEPORT, /*goto*/ 0x59 - if_chr_distance_to_pad_lt CHR_VELVET, 250, PAD_SAPAAREA_TELEPORT, /*goto*/ 0x09 - if_chr_distance_to_pad_lt CHR_VELVET, 250, PAD_AGENTAREA_TELEPORT, /*goto*/ 0x08 - if_chr_distance_to_pad_lt CHR_VELVET, 250, PAD_PAAREA_TELEPORT, /*goto*/ 0x08 - endloop 0x04 - - // - // At start area teleport - // - label 0x59 - revoke_control CHR_VELVET, 0 - teleport_to_pad PAD_STARTAREA_TELEPORT, CHR_VELVET - - label 0x5b - if_teleport_full_white /*goto*/ 0x5e, CHR_VELVET - yield - goto_first 0x5b - - label 0x5e - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x61 - if_chr_dying CHR_JOANNA, /*goto*/ 0x61 - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x61 - goto_next 0x62 - - label 0x61 - set_function CHR_ELVIS, FUNC_ELVIS_STOP - label 0x62 - label 0x2e - if_difficulty_lt DIFF_SA, /*goto*/ 0x64 - set_function CHR_VELVET, FUNC_TELEPORT_VELVET_TO_SAPA - unset_stage_flag STAGEFLAG_TELEPORT_DONE - - beginloop 0x31 - if_stage_flag_eq STAGEFLAG_TELEPORT_DONE, TRUE, /*goto*/ 0x2e - endloop 0x31 - - label 0x2e - grant_control CHR_VELVET - teleport_to_pad 0x0000, CHR_VELVET - goto_first 0x04 - - // - // At SA/PA area teleport - // - beginloop 0x09 - if_difficulty_gt DIFF_SA, /*goto*/ 0x2e - set_stage_flag STAGEFLAG_SA_EXIT_TELEPORT_DISABLED - if_objective_complete 1, /*goto*/ 0x2e - reloop 0x09 - - label 0x2e - unset_stage_flag STAGEFLAG_SA_EXIT_TELEPORT_DISABLED - if_chr_distance_to_pad_lt CHR_VELVET, 250, PAD_SAPAAREA_TELEPORT, /*goto*/ 0x59 - endloop 0x09 - - label 0x59 - teleport_to_pad 0x00c0, CHR_VELVET - revoke_control CHR_VELVET, 0 - - label 0x5c - if_teleport_full_white /*goto*/ 0x5e, CHR_VELVET - yield - goto_first 0x5c - - label 0x5e - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x61 - if_chr_dying CHR_JOANNA, /*goto*/ 0x61 - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x61 - goto_next 0x62 - - label 0x61 - set_function CHR_ELVIS, FUNC_ELVIS_STOP - label 0x62 - if_difficulty_lt DIFF_PA, /*goto*/ 0x64 - goto_next 0x2e - - label 0x64 - goto_next 0x2e - - label 0x2e - set_function CHR_VELVET, FUNC_TELEPORT_VELVET_TO_A_PA_DRCAROLL - unset_stage_flag STAGEFLAG_TELEPORT_DONE - - beginloop 0x32 - if_stage_flag_eq STAGEFLAG_TELEPORT_DONE, TRUE, /*goto*/ 0x2e - endloop 0x32 - - label 0x2e - grant_control CHR_VELVET - teleport_to_pad 0x0000, CHR_VELVET - if_difficulty_lt DIFF_SA, /*goto*/ 0x06 - if_difficulty_lt DIFF_PA, /*goto*/ 0x2e - label 0x06 - goto_first 0x04 - - label 0x2e - set_function CHR_SELF, GFUNC_IDLE - - // - // At Agent or PA area teleport - // - beginloop 0x08 - if_chr_distance_to_pad_lt CHR_VELVET, 250, PAD_AGENTAREA_TELEPORT, /*goto*/ 0x59 - if_chr_distance_to_pad_lt CHR_VELVET, 250, PAD_PAAREA_TELEPORT, /*goto*/ 0x5a - endloop 0x08 - - // Agent teleport - label 0x59 - revoke_control CHR_VELVET, 0 - teleport_to_pad 0x0054, CHR_VELVET - goto_next 0x5d - - // PA teleport - label 0x5a - revoke_control CHR_VELVET, 0 - teleport_to_pad 0x0111, CHR_VELVET - - label 0x5d - if_teleport_full_white /*goto*/ 0x5e, CHR_VELVET - yield - goto_first 0x5d - - label 0x5e - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x61 - if_chr_dying CHR_JOANNA, /*goto*/ 0x61 - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x61 - goto_next 0x62 - - label 0x61 - set_function CHR_ELVIS, FUNC_ELVIS_STOP - label 0x62 - set_function CHR_VELVET, FUNC_TELEPORT_VELVET_TO_DRCAROLL - unset_stage_flag STAGEFLAG_TELEPORT_DONE - - beginloop 0x33 - if_stage_flag_eq STAGEFLAG_TELEPORT_DONE, TRUE, /*goto*/ 0x2e - endloop 0x33 - - label 0x2e - grant_control CHR_VELVET - teleport_to_pad 0x0000, CHR_VELVET - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0417_teleport_velvet_to_sapa: - if_stage_flag_eq STAGEFLAG_ELVIS_FOLLOWING_VELVET, TRUE, /*goto*/ 0x61 - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x61 - if_chr_dying CHR_JOANNA, /*goto*/ 0x61 - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x61 - goto_next 0x62 - - label 0x61 - set_function CHR_ELVIS, FUNC_ELVIS_STOP - - label 0x08 - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0x06 - if_chr_dying CHR_ELVIS, /*goto*/ 0x06 - if_chr_unloaded CHR_ELVIS, /*goto*/ 0x06 - - beginloop 0x63 - chr_move_to_pad CHR_ELVIS, 0x01c6, 0x01, /*goto*/ 0x06 - endloop 0x63 - - label 0x06 - set_chr_flag_bank2 CHR_ELVIS, CHRFLAG2_00020000 - label 0x62 - - beginloop 0x64 - chr_move_to_pad CHR_SELF, PAD_SAPAAREA_ENTRY, 0x01, /*goto*/ 0x06 - endloop 0x64 - - label 0x06 - yield - stop_chr - set_stage_flag STAGEFLAG_TELEPORT_DONE - if_stage_flag_eq STAGEFLAG_ELVIS_FOLLOWING_VELVET, TRUE, /*goto*/ 0x61 - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x61 - if_chr_dying CHR_JOANNA, /*goto*/ 0x61 - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x61 - goto_next 0x62 - - label 0x61 - set_function CHR_ELVIS, FUNC_ELVIS_GIVE_FARSIGHT - - label 0x62 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0418_teleport_velvet_to_drcaroll: - if_stage_flag_eq STAGEFLAG_ELVIS_FOLLOWING_VELVET, TRUE, /*goto*/ 0x61 - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x61 - if_chr_dying CHR_JOANNA, /*goto*/ 0x61 - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x61 - goto_next 0x62 - - label 0x61 - set_function CHR_ELVIS, FUNC_ELVIS_STOP - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0x07 - if_chr_dying CHR_ELVIS, /*goto*/ 0x07 - if_chr_unloaded CHR_ELVIS, /*goto*/ 0x07 - - beginloop 0x65 - chr_move_to_pad CHR_ELVIS, 0x01bf, 0x01, /*goto*/ 0x06 - endloop 0x65 - - label 0x06 - set_chr_flag_bank2 CHR_ELVIS, CHRFLAG2_00020000 - goto_next 0x63 - - label 0x07 - message CHR_JOANNA, 0x300e // "Elvis has been killed." - label 0x62 - - beginloop 0x63 - chr_move_to_pad CHR_SELF, PAD_DRCAROLLROOM_ENTRY, 0x01, /*goto*/ 0x06 - endloop 0x63 - - label 0x06 - stop_chr - yield - set_stage_flag STAGEFLAG_TELEPORT_DONE - if_stage_flag_eq STAGEFLAG_ELVIS_FOLLOWING_VELVET, TRUE, /*goto*/ 0x61 - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x61 - if_chr_dying CHR_JOANNA, /*goto*/ 0x61 - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x61 - goto_next 0x62 - - label 0x61 - set_function CHR_ELVIS, FUNC_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS - label 0x62 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * If Agent: Warp to Agent area - * If SA: Warp to Dr Caroll Area - * If PA: Warp to PA area - */ -func0419_teleport_velvet_to_a_pa_drcaroll: - if_stage_flag_eq STAGEFLAG_ELVIS_FOLLOWING_VELVET, TRUE, /*goto*/ 0x61 - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x61 - if_chr_dying CHR_JOANNA, /*goto*/ 0x61 - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x61 - goto_next 0x62 - - label 0x61 - set_function CHR_ELVIS, FUNC_ELVIS_STOP - label 0x62 - if_difficulty_lt DIFF_SA, /*goto*/ 0x09 - if_difficulty_lt DIFF_PA, /*goto*/ 0x08 - - // PA - if_stage_flag_eq STAGEFLAG_ELVIS_FOLLOWING_VELVET, TRUE, /*goto*/ 0x61 - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x61 - if_chr_dying CHR_JOANNA, /*goto*/ 0x61 - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x61 - goto_next 0x62 - - label 0x61 - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0x07 - if_chr_dying CHR_ELVIS, /*goto*/ 0x07 - if_chr_unloaded CHR_ELVIS, /*goto*/ 0x07 - - beginloop 0x66 - chr_move_to_pad CHR_ELVIS, 0x01be, 0x01, /*goto*/ 0x06 - endloop 0x66 - - label 0x06 - set_chr_flag_bank2 CHR_ELVIS, CHRFLAG2_00020000 - label 0x62 - label 0x07 - - beginloop 0x67 - chr_move_to_pad CHR_SELF, PAD_PAAREA_ENTRY, 0x01, /*goto*/ 0x06 - endloop 0x67 - - label 0x06 - label 0x2e - stop_chr - yield - if_stage_flag_eq STAGEFLAG_ELVIS_FOLLOWING_VELVET, TRUE, /*goto*/ 0x61 - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x61 - if_chr_dying CHR_JOANNA, /*goto*/ 0x61 - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x61 - goto_next 0x62 - - label 0x61 - set_function CHR_ELVIS, FUNC_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS - label 0x62 - set_stage_flag STAGEFLAG_TELEPORT_DONE - set_function CHR_SELF, GFUNC_IDLE - - // SA - label 0x08 - set_function CHR_SELF, FUNC_TELEPORT_VELVET_TO_DRCAROLL - - // Agent - label 0x09 - if_stage_flag_eq STAGEFLAG_ELVIS_FOLLOWING_VELVET, TRUE, /*goto*/ 0x61 - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x61 - if_chr_dying CHR_JOANNA, /*goto*/ 0x61 - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x61 - goto_next 0x62 - label 0x61 - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0x07 - if_chr_dying CHR_ELVIS, /*goto*/ 0x07 - if_chr_unloaded CHR_ELVIS, /*goto*/ 0x07 - - beginloop 0x6b - chr_move_to_pad CHR_ELVIS, 0x0040, 0x01, /*goto*/ 0x06 - endloop 0x6b - - label 0x06 - set_chr_flag_bank2 CHR_ELVIS, CHRFLAG2_00020000 - label 0x62 - label 0x07 - - beginloop 0x68 - chr_move_to_pad CHR_SELF, PAD_AGENTAREA_ENTRY, 0x01, /*goto*/ 0x06 - endloop 0x68 - - label 0x06 - label 0x2e - stop_chr - yield - set_stage_flag STAGEFLAG_TELEPORT_DONE - if_stage_flag_eq STAGEFLAG_ELVIS_FOLLOWING_VELVET, TRUE, /*goto*/ 0x61 - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x61 - if_chr_dying CHR_JOANNA, /*goto*/ 0x61 - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x61 - goto_next 0x62 - - label 0x61 - set_function CHR_ELVIS, FUNC_ELVIS_GIVE_FARSIGHT - label 0x62 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Wait until not in sight of player (usually immediately), then unhide. - * - * Once the teleportals are activated, this is assigned to 3 guards at the - * entrance to the grotto thing. - */ -func041c_teleport_activation_responder: - beginloop 0x04 - set_target_chr CHR_JOANNA - if_chr_sees_player /*goto*/ 0x2e - set_target_chr CHR_VELVET - if_chr_sees_player /*goto*/ 0x2e - unset_self_flag_bank3 CHRFLAG3_HIDDEN - set_function CHR_SELF, FUNC_INIT_SNIPER - label 0x2e - endloop 0x04 - - endfunction - -func041a_init_sniper: - if_difficulty_lt DIFF_SA, /*goto*/ 0x2e - - // SA and PA - set_accuracy 30 - set_reaction_speed 65 - set_chr_health CHR_SELF, 10 - set_armor 70 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, FUNC_SNIPER_WAIT_FOR_DETECTION - - // Agent - label 0x2e - set_accuracy 20 - set_reaction_speed 65 - set_chr_health CHR_SELF, 10 - set_armor 70 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, FUNC_SNIPER_WAIT_FOR_DETECTION - endfunction - -func041b_sniper_wait_for_detection: - unset_self_flag_bank3 CHRFLAG3_UNEXPLODABLE - yield - set_onshot_function FUNC_SNIPER - label 0x06 - set_reaction_speed 100 - set_onshot_function FUNC_SNIPER - restart_timer - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_sees_player /*goto*/ 0x2e - if_enemy_distance_lt_and_los 1000, /*goto*/ 0x2e - if_saw_death 0x00, /*goto*/ 0x2e - reloop 0x04 - - label 0x2e - if_chr_distance_lt 400, /*goto*/ 0x06 - if_distance_to_target_chr_lt 30, /*goto*/ 0x06 - if_chr_in_view /*goto*/ 0x06 - if_saw_death 0x00, /*goto*/ 0x06 - if_alertness 100, OPERATOR_GREATER_THAN, /*goto*/ 0x06 - if_difficulty_lt DIFF_SA, /*goto*/ 0x2e - if_timer_gt 180, /*goto*/ 0x06 - label 0x2e - endloop 0x04 - - label 0x06 - set_group_alertness 100 - set_self_flag_bank3 CHRFLAG3_00040000 - set_chr_cloaked CHR_SELF, TRUE, TRUE - set_function CHR_SELF, FUNC_SNIPER - endfunction - -func041d_sniper: - set_self_flag_bank3 CHRFLAG3_00000040 - set_onshot_function FUNC_SNIPER - set_chr_cloaked CHR_SELF, TRUE, FALSE - 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 0x03 - - // Dying - label 0x06 - goto_next 0x10 - - // Alive - label 0x03 - restart_timer - cmd0139 70, 0x02, TRUE - - beginloop 0x63 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_sees_player /*goto*/ 0x2e - dprint "NO PLAYER TARGET\n" - if_enemy_distance_lt_and_los 1000, /*goto*/ 0x2f - dprint "NO OPP\n" - goto_next 0x2f - - label 0x2e - set_target_chr CHR_P1P2 - label 0x2f - if_chr_lost_track_of_target_maybe /*goto*/ 0x2f - goto_next 0x2e - - label 0x2f - dprint "THE PLAYER is it\n" - if_timer_gt 180, /*goto*/ 0x06 - if_chr_stopped /*goto*/ 0x06 - endloop 0x63 - - label 0x06 - dprint "1\n" - stop_chr - call_rng - if_rand_gt 128, /*goto*/ 0x06 - restart_timer - - beginloop 0x0e - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x0e - - label 0x06 - dprint "2\n" - set_follow_chr TARGET_CHR - goto_next 0x06 - - // Unreachable - if_chr_lost_track_of_target_maybe /*goto*/ 0x2e - goto_next 0x06 - - label 0x2e - dprint "CHECK PLAYER DIR\n" - if_player_looking_at_something_maybe 0x14, 0x01, 0x00, /*goto*/ 0x0d - dprint "3\n" - label 0x06 - if_chr_sees_player /*goto*/ 0x2e - dprint "4\n" - goto_next 0x0d - - label 0x2e - restart_timer - dprint "5\n" - set_chr_cloaked CHR_SELF, FALSE, TRUE - label 0x0a - label 0x2e - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x2e - label 0x2e - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x0b - - beginloop 0x0b - if_chr_stopped /*goto*/ 0x0c - endloop 0x0b - - label 0x0c - if_chr_lost_track_of_target_maybe /*goto*/ 0x2e - goto_next 0x06 - - label 0x2e - if_chr_injured_target CHR_SELF, /*goto*/ 0x2e - goto_next 0x06 - - label 0x2e - set_stage_flag STAGEFLAG_PURPLE_GUARD_SHOT_JO_OR_ELVIS - label 0x06 - set_chr_cloaked CHR_SELF, TRUE, TRUE - label 0x0d - set_target_chr FOLLOW_CHR - goto_first 0x03 - - label 0x10 - if_chr_flag_bank2 CHR_SELF, CHRFLAG2_CLOAKED, /*goto*/ 0x2e - set_function CHR_SELF, GFUNC_IDLE - label 0x2e - set_chr_cloaked CHR_SELF, FALSE, TRUE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040c_blonde: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x004c, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - unset_self_flag_bank3 CHRFLAG3_UNEXPLODABLE - set_chr_alliance CHR_SELF, ALLIANCE_ENEMY - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_onshot_function GFUNC_ALERTED - - beginloop 0x08 - if_shot_near_chr 0x00, /*goto*/ 0x06 - if_saw_death 0x00, /*goto*/ 0x06 - if_chr_sees_player /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - set_return_function CHR_SELF, GFUNC_ALERTED - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -func100c_countdown_timer: - beginloop 0x03 - if_stage_flag_eq STAGEFLAG_MIDCUTSCENE_FINISHED, TRUE, /*goto*/ 0x2e - endloop 0x03 - - label 0x2e - set_countdown_timer 60 - show_countdown_timer - start_countdown_timer - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_countdown_timer_lt 1, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x000c, /*goto*/ 0x2e - endloop 0x04 - - // Timer expired - label 0x06 - set_stage_flag STAGEFLAG_TIMER_EXPIRED - yield - set_function CHR_SELF, FUNC_OUTRO - set_function CHR_SELF, GFUNC_IDLE - - // Player escaped - label 0x2e - message CHR_P1P2, 0x3010 // "Cetan ship evacuation successful." - set_stage_flag STAGEFLAG_ESCAPED - restart_timer - stop_countdown_timer - hide_countdown_timer - - label 0x09 - yield - label 0x2e - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x2e - if_chr_dying CHR_JOANNA, /*goto*/ 0x2e - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x2e - goto_next 0x06 - - label 0x2e - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2e - if_chr_dying CHR_VELVET, /*goto*/ 0x2e - if_chr_unloaded CHR_VELVET, /*goto*/ 0x2e - goto_next 0x06 - - // Both players dead - label 0x2e - end_level - set_function CHR_SELF, GFUNC_IDLE - - // Mission complete - label 0x06 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function CHR_SELF, FUNC_OUTRO - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100e_check_elvis_dead: - beginloop 0x04 - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0x2e - if_chr_dying CHR_ELVIS, /*goto*/ 0x2e - if_chr_unloaded CHR_ELVIS, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - message CHR_JOANNA, 0x300e // "Elvis has been killed." - set_stage_flag STAGEFLAG_ALLY_DEAD - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100f_check_drcaroll_dead: - beginloop 0x04 - if_chr_death_animation_finished CHR_DRCAROLL, /*goto*/ 0x2e - if_chr_dying CHR_DRCAROLL, /*goto*/ 0x2e - if_chr_unloaded CHR_DRCAROLL, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - message CHR_JOANNA, 0x300f // "Dr. Caroll has been killed." - set_stage_flag STAGEFLAG_ALLY_DEAD - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040f_miniskedar_send_clones: - dprint "DETECTED\n" - set_self_flag_bank3 CHRFLAG3_00000002 - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_self_flag_bank3 CHRFLAG3_00040000 - - beginloop 0x04 - goto_next 0x52 - reloop 0x04 - - label 0x52 - if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x52 - reloop 0x04 - - label 0x52 - try_spawn_clone2 CHR_SELF, FUNC_INIT_MINISKEDAR, 0x00000010, /*goto*/ 0x2e - reloop 0x04 - - label 0x2e - yield - endloop 0x04 - - endfunction - -func040e_init_miniskedar: - set_self_flag_bank3 CHRFLAG3_00080000 - set_self_flag_bank3 CHRFLAG3_00020000 - set_accuracy 0 - set_reaction_speed 65 - set_chr_health CHR_SELF, 20 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_self_flag_bank3 CHRFLAG3_00080000 - set_chr_alliance CHR_SELF, ALLIANCE_ENEMY - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, FUNC_MINISKEDAR - endfunction - -func040f_miniskedar: - set_onshot_function FUNC_MINISKEDAR - if_chr_dying CHR_SELF, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2e - if_chr_unloaded CHR_SELF, /*goto*/ 0x2e - goto_next 0x06 - - // Dying - label 0x2e - yield - restart_timer - - beginloop 0x10 - if_timer_gt 30, /*goto*/ 0x2e - endloop 0x10 - - label 0x2e - say_quip CHR_JOANNA, 0x05, 0xff, 0x00, 0xff, BANK_0, 0x00, 0x00 - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x06 - - beginloop 0x03 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x2e - label 0x2e - if_chr_sees_player /*goto*/ 0x2e - goto_next 0x1e - - label 0x2e - if_chr_distance_lt 400, /*goto*/ 0x30 - label 0x1e - restart_timer - - label 0x09 - restart_timer - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x06 - label 0x06 - try_run_to_target_chr /*goto*/ 0x0a - - beginloop 0x0a - if_chr_sees_player /*goto*/ 0x2e - goto_next 0x06 - - label 0x2e - if_chr_distance_lt 400, /*goto*/ 0x30 - label 0x06 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x0a - - label 0x06 - goto_first 0x09 - - label 0x30 - restart_timer - dprint "FACE TARGET\n" - stop_chr - try_face_entity 0x0200, 0x0000, /*goto*/ 0x0b - - beginloop 0x0b - if_timer_gt 30, /*goto*/ 0x06 - reloop 0x0b - - label 0x2e - if_angle_to_target_chr_lt 10, /*goto*/ 0x06 - cmd004f 246, /*goto*/ 0x06 - endloop 0x0b - - label 0x06 - say_quip CHR_JOANNA, 0x04, 0xff, 0x00, 0xff, BANK_0, 0x00, 0x00 - if_chr_distance_lt 200, /*goto*/ 0x2f - miniskedar_try_pounce 0x04, 0x000e, /*goto*/ 0x34 - reloop 0x03 - - beginloop 0x34 - if_chr_stopped /*goto*/ 0x2e - endloop 0x34 - - label 0x2e - restart_timer - if_chr_injured_target CHR_SELF, /*goto*/ 0x2e - goto_next 0x06 - - label 0x2e - label 0x2f - retreat 0x02, 0x01 - - beginloop 0x0c - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x0c - - label 0x06 - endloop 0x03 - - endfunction - -func1010_agent_hallway_spawner: - // This flag is also set when Elvis gives you the Farsight, so perhaps that - // used to be the trigger for miniskedar spawning but was changed so they - // spawn immediately. - set_stage_flag STAGEFLAG_TRIGGER_MINISKEDAR_SPAWNING - - beginloop 0x03 - if_stage_flag_eq STAGEFLAG_TRIGGER_MINISKEDAR_SPAWNING, TRUE, /*goto*/ 0x2e - endloop 0x03 - - label 0x2e - set_function 0x25, FUNC_MINISKEDAR_SEND_CLONES - set_function 0x26, FUNC_MINISKEDAR_SEND_CLONES - - // Wait until player in a certain room - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0054, /*goto*/ 0x2e - endloop 0x04 - - // Activate a different set of miniskedar - label 0x2e - remove_chr 0x25 - remove_chr 0x26 - set_function 0x27, FUNC_MINISKEDAR_SEND_CLONES - set_function 0x28, FUNC_MINISKEDAR_SEND_CLONES - - // Wait until player in a certain room - beginloop 0x08 - consider_coop_for_p1p2_chr CHR_P1P2 - if_chr_in_room CHR_P1P2, 0x00, 0x005a, /*goto*/ 0x2e - endloop 0x08 - - // Activate a different set of miniskedar - label 0x2e - remove_chr 0x27 - remove_chr 0x28 - set_function 0x2b, FUNC_MINISKEDAR_SEND_CLONES - set_function 0x2a, FUNC_MINISKEDAR_SEND_CLONES - - // Wait until player in a certain room - beginloop 0x09 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0067, /*goto*/ 0x2e - endloop 0x09 - - label 0x2e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0411_hide: - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_00040000 - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0412_unused: - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_CLOAKED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Assigned to 3 guards who appear after teleports activated. - */ -func0413_cloak_and_hide: - set_chr_cloaked CHR_SELF, TRUE, FALSE - stop_chr - yield - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_00040000 - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1012_sa_megaweapon_spawner: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_ELVIS_STARTED_SA_MEGAWEAPON, TRUE, /*goto*/ 0x1f - endloop 0x04 - - label 0x1f - restart_timer - - beginloop 0x20 - dprint "TIME\n" - if_stage_flag_eq STAGEFLAG_MEGAWEAPON_DISABLED, TRUE, /*goto*/ 0x06 - - // Megaweapon not disabled yet - spawn every 8 seconds - if_timer_lt 480, /*goto*/ 0x21 - goto_next 0x2e - - // Megaweapon disabled - spawn every 48 seconds - label 0x06 - if_timer_lt 2880, /*goto*/ 0x21 - - // Consider spawn - label 0x2e - dprint "SQUAD\n" - if_num_chrs_in_group_gt 5, 0x0e, /*goto*/ 0x21 - call_rng - if_rand_gt 86, /*goto*/ 0x63 - if_rand_gt 172, /*goto*/ 0x64 - try_spawn_chr BODY_MINISKEDAR, HEAD_RANDOM, 0x01f4, FUNC_INIT_SA_MEGAWEAPON_MINISKEDAR, 0x00000010, /*goto*/ 0x22 - goto_next 0x21 - - label 0x63 - try_spawn_chr BODY_MINISKEDAR, HEAD_RANDOM, 0x01f5, FUNC_INIT_SA_MEGAWEAPON_MINISKEDAR, 0x00000010, /*goto*/ 0x22 - goto_next 0x21 - - label 0x64 - try_spawn_chr BODY_MINISKEDAR, HEAD_RANDOM, 0x01f6, FUNC_INIT_SA_MEGAWEAPON_MINISKEDAR, 0x00000010, /*goto*/ 0x22 - goto_next 0x21 - - label 0x21 - endloop 0x20 - - label 0x22 - yield - cmd0145_rebuild_groups - cmd0146_rebuild_groups - goto_first 0x1f - - endfunction - -// SA megaweapon miniskedar -func041e_init_sa_megaweapon_miniskedar: - set_group 0x0e - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, FUNC_INIT_MINISKEDAR - endfunction - -/** - * On PA, in the room with 5 cylinders that must be destroyed to open the door. - */ -.macro doorcylinder_logic glass1 glass2 glass3 mine stageflag - beginloop 0x04 - if_object_in_good_condition \glass1, /*goto*/ 0x2e - goto_next 0x06 - label 0x2e - if_object_in_good_condition \glass2, /*goto*/ 0x2e - goto_next 0x06 - label 0x2e - if_object_in_good_condition \glass3, /*goto*/ 0x2e - goto_next 0x06 - label 0x2e - endloop 0x04 - - label 0x06 - assign_sound 0x8147, CHANNEL_7 - control_sound_from_object CHANNEL_7, \mine, TRUE - yield - destroy_object \mine - destroy_object \glass1 - destroy_object \glass2 - destroy_object \glass3 - set_stage_flag \stageflag - set_function CHR_SELF, 0x0408 -.endm - -func1013_pa_doorcylinder1: - set_lights_state 0x00a1, 0x04, 0x00, 0xff, 0xb4 - set_lights_state 0x00a9, 0x04, 0x00, 0xff, 0xb4 - set_lights_state 0x00ac, 0x04, 0x00, 0xff, 0xb4 - set_lights_state 0x00b4, 0x04, 0x00, 0xff, 0xb4 - set_lights_state 0x00b7, 0x04, 0x00, 0xff, 0xb4 - set_lights_state 0x00bf, 0x04, 0x00, 0xff, 0xb4 - set_lights_state 0x00c0, 0x04, 0x00, 0xff, 0xb4 - set_lights_state 0x00c1, 0x04, 0x00, 0xff, 0xb4 - set_lights_state 0x00c2, 0x04, 0x00, 0xff, 0xb4 - set_lights_state 0x00c3, 0x04, 0x00, 0xff, 0xb4 - set_lights_state 0x006c, 0x04, 0x00, 0xff, 0xf0 - - doorcylinder_logic 0x11, 0x12, 0x13, 0x9c, STAGEFLAG_PA_EARLYDOORCYLINDER1_DESTROYED - endfunction - -func1014_pa_doorcylinder2: - doorcylinder_logic 0x14, 0x15, 0x16, 0x9d, STAGEFLAG_PA_EARLYDOORCYLINDER2_DESTROYED - endfunction - -func1015_pa_doorcylinder3: - doorcylinder_logic 0x17, 0x18, 0x19, 0x9e, STAGEFLAG_PA_EARLYDOORCYLINDER3_DESTROYED - endfunction - -func1016_pa_doorcylinder4: - doorcylinder_logic 0x1a, 0x1b, 0x1c, 0x9f, STAGEFLAG_PA_EARLYDOORCYLINDER4_DESTROYED - endfunction - -func1017_pa_doorcylinder5: - doorcylinder_logic 0x1d, 0x1e, 0x1f, 0xa0, STAGEFLAG_PA_EARLYDOORCYLINDER5_DESTROYED - endfunction - -func0408_check_pa_earlydoorcylinders_destroyed: - label 0x04 - yield - if_stage_flag_eq STAGEFLAG_PA_EARLYDOORCYLINDER1_DESTROYED, TRUE, /*goto*/ 0x2e - set_function CHR_SELF, GFUNC_IDLE - label 0x2e - if_stage_flag_eq STAGEFLAG_PA_EARLYDOORCYLINDER2_DESTROYED, TRUE, /*goto*/ 0x2e - set_function CHR_SELF, GFUNC_IDLE - label 0x2e - if_stage_flag_eq STAGEFLAG_PA_EARLYDOORCYLINDER3_DESTROYED, TRUE, /*goto*/ 0x2e - set_function CHR_SELF, GFUNC_IDLE - label 0x2e - if_stage_flag_eq STAGEFLAG_PA_EARLYDOORCYLINDER4_DESTROYED, TRUE, /*goto*/ 0x2e - set_function CHR_SELF, GFUNC_IDLE - label 0x2e - if_stage_flag_eq STAGEFLAG_PA_EARLYDOORCYLINDER5_DESTROYED, TRUE, /*goto*/ 0x08 - set_function CHR_SELF, GFUNC_IDLE - - beginloop 0x08 - if_door_state 0x09, DOORSTATE_CLOSED | DOORSTATE_CLOSING, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - set_lights_state 0x008b, 0x03, 0xff, 0x0a, 0x78 - set_lights_state 0x00bf, 0x03, 0xff, 0x0a, 0x78 - set_lights_state 0x00c0, 0x03, 0xff, 0x0a, 0x78 - set_lights_state 0x00c1, 0x03, 0xff, 0x0a, 0x78 - set_lights_state 0x00c2, 0x03, 0xff, 0x0a, 0x78 - set_lights_state 0x00c3, 0x03, 0xff, 0x0a, 0x78 - open_door 0x09 - open_door 0x0a - goto_first 0x08 - - endfunction - -.macro pa_cylinder glass mine - // Wait until any object destroyed - beginloop 0x04 - if_object_in_good_condition \glass, /*goto*/ 0x2e - goto_next 0x06 - label 0x2e - if_object_in_good_condition \glass + 1, /*goto*/ 0x2e - goto_next 0x06 - label 0x2e - if_object_in_good_condition \glass + 2, /*goto*/ 0x2e - goto_next 0x06 - label 0x2e - - // @bug: One of the PA door glasses is checked twice, and one is not - // checked at all. - .if \glass == 0x50 - if_object_in_good_condition \glass + 2, /*goto*/ 0x2e - goto_next 0x06 - label 0x2e - .endif - - if_object_in_good_condition \glass + 3, /*goto*/ 0x2e - goto_next 0x06 - label 0x2e - if_object_in_good_condition \glass + 4, /*goto*/ 0x2e - goto_next 0x06 - label 0x2e - if_object_in_good_condition \glass + 5, /*goto*/ 0x2e - goto_next 0x06 - label 0x2e - if_object_in_good_condition \glass + 6, /*goto*/ 0x2e - goto_next 0x06 - label 0x2e - if_object_in_good_condition \glass + 7, /*goto*/ 0x2e - goto_next 0x06 - label 0x2e - if_object_in_good_condition \glass + 8, /*goto*/ 0x2e - goto_next 0x06 - label 0x2e - if_object_in_good_condition \glass + 9, /*goto*/ 0x2e - goto_next 0x06 - label 0x2e - if_object_in_good_condition \glass + 10, /*goto*/ 0x2e - goto_next 0x06 - label 0x2e - - .if \glass != 0x50 - if_object_in_good_condition \glass + 11, /*goto*/ 0x2e - goto_next 0x06 - label 0x2e - .endif - endloop 0x04 - - label 0x06 - destroy_object \mine - destroy_object \glass - destroy_object \glass + 1 - destroy_object \glass + 2 - .if \glass == 0x50 - destroy_object \glass + 2 - .endif - destroy_object \glass + 3 - destroy_object \glass + 4 - destroy_object \glass + 5 - destroy_object \glass + 6 - destroy_object \glass + 7 - destroy_object \glass + 8 - destroy_object \glass + 9 - destroy_object \glass + 10 - .if \glass != 0x50 - destroy_object \glass + 11 - .endif -.endm - -func1018_pa_door1: - pa_cylinder 0x20, 0xa1 - set_stage_flag STAGEFLAG_PA_MIDDOORCYLINDER_DESTROYED - set_lights_state 0x00a1, 0x03, 0xff, 0x0a, 0x78 - label 0x08 - yield - if_door_state 0x0b, DOORSTATE_CLOSED | DOORSTATE_CLOSING, /*goto*/ 0x06 - goto_first 0x08 - - label 0x06 - open_door 0x0b - open_door 0x0c - goto_first 0x08 - - endfunction - -/** - * The 4 cylinders in the tunnels that must be destroyed before the door to the - * final room opens. - */ -func0409_check_pa_latedoorcylinders_destroyed: - label 0x04 - yield - if_stage_flag_eq STAGEFLAG_PA_LATEDOORCYLINDER1_DESTROYED, TRUE, /*goto*/ 0x2e - set_function CHR_SELF, GFUNC_IDLE - label 0x2e - if_stage_flag_eq STAGEFLAG_PA_LATEDOORCYLINDER2_DESTROYED, TRUE, /*goto*/ 0x2e - set_function CHR_SELF, GFUNC_IDLE - label 0x2e - if_stage_flag_eq STAGEFLAG_PA_LATEDOORCYLINDER3_DESTROYED, TRUE, /*goto*/ 0x2e - set_function CHR_SELF, GFUNC_IDLE - label 0x2e - if_stage_flag_eq STAGEFLAG_PA_LATEDOORCYLINDER4_DESTROYED, TRUE, /*goto*/ 0x08 - set_function CHR_SELF, GFUNC_IDLE - - beginloop 0x08 - if_door_state 0x0d, DOORSTATE_CLOSED | DOORSTATE_CLOSING, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - open_door 0x0d - open_door 0x0e - goto_first 0x08 - - endfunction - -func1019_pa_door2: - pa_cylinder 0x2c, 0xa2 - set_lights_state 0x00a9, 0x03, 0xff, 0x0a, 0x78 - label 0x08 - set_stage_flag STAGEFLAG_PA_LATEDOORCYLINDER1_DESTROYED - set_function CHR_SELF, 0x0409 - endfunction - -func101a_pa_door3: - pa_cylinder 0x38, 0xa3 - set_lights_state 0x00ac, 0x03, 0xff, 0x0a, 0x78 - label 0x08 - set_stage_flag STAGEFLAG_PA_LATEDOORCYLINDER2_DESTROYED - set_function CHR_SELF, 0x0409 - endfunction - -func101b_pa_door4: - pa_cylinder 0x44, 0xa4 - set_lights_state 0x00b4, 0x03, 0xff, 0x0a, 0x78 - label 0x08 - set_stage_flag STAGEFLAG_PA_LATEDOORCYLINDER3_DESTROYED - set_function CHR_SELF, 0x0409 - endfunction - -func101c_pa_door5: - pa_cylinder 0x50, 0xa5 - set_lights_state 0x00b7, 0x03, 0xff, 0x0a, 0x78 - label 0x08 - set_stage_flag STAGEFLAG_PA_LATEDOORCYLINDER4_DESTROYED - set_function CHR_SELF, 0x0409 - endfunction - -func101d_pa_canister1: - pa_cylinder 0x5b, 0xa6 - label 0x08 - set_stage_flag STAGEFLAG_PA_CANISTER1_DESTROYED - set_function CHR_SELF, 0x040a - endfunction - -func101e_pa_canister2: - pa_cylinder 0x67, 0xa7 - label 0x08 - set_stage_flag STAGEFLAG_PA_CANISDER2_DESTROYED - set_function CHR_SELF, 0x040a - endfunction - -func040a_check_pa_canisters_destroyed: - label 0x04 - yield - if_stage_flag_eq STAGEFLAG_PA_CANISTER1_DESTROYED, TRUE, /*goto*/ 0x2e - set_function CHR_SELF, GFUNC_IDLE - label 0x2e - if_stage_flag_eq STAGEFLAG_PA_CANISDER2_DESTROYED, TRUE, /*goto*/ 0x2e - set_function CHR_SELF, GFUNC_IDLE - - // Both canisters destroyed - label 0x2e - set_object_flag_bank0 0x0f, OBJECTFLAG0_40000000 - set_lights_state 0x00bc, 0x03, 0xff, 0x0a, 0x78 - - beginloop 0x08 - if_door_state 0x0f, DOORSTATE_CLOSED | DOORSTATE_CLOSING, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - if_stage_flag_eq STAGEFLAG_MEGAWEAPON_DISABLED, TRUE, /*goto*/ 0x2e - message CHR_JOANNA, 0x302b // "Cetan megaweapon has been disabled." - set_stage_flag STAGEFLAG_MEGAWEAPON_DISABLED - label 0x2e - open_door 0x0f - open_door 0x10 - goto_first 0x08 - - endfunction - -/** - * The room with 5 cylinders that open a door. - */ -func101f_pa_circleroom_spawner: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_door_state 0x09, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2e - if_chr_in_room CHR_P1P2, 0x00, 0x008b, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - restart_timer - - beginloop 0x0d - if_door_state 0x09, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x1f - if_timer_gt 300, /*goto*/ 0x1f - endloop 0x0d - - label 0x1f - restart_timer - - beginloop 0x20 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x008c, /*goto*/ 0x58 - dprint "TIME\n" - if_timer_lt 300, /*goto*/ 0x21 - label 0x2e - dprint "SQUAD\n" - if_num_chrs_in_group_gt 3, 0x0d, /*goto*/ 0x21 - call_rng - if_rand_gt 128, /*goto*/ 0x63 - try_spawn_chr BODY_MINISKEDAR, HEAD_RANDOM, 0x00dd, FUNC_INIT_PA_CIRCLEROOM_MINISKEDAR, 0x00000000, /*goto*/ 0x22 - goto_next 0x21 - label 0x63 - try_spawn_chr BODY_MINISKEDAR, HEAD_RANDOM, 0x00dd, FUNC_INIT_PA_CIRCLEROOM_MINISKEDAR, 0x00000000, /*goto*/ 0x22 - goto_next 0x21 - label 0x21 - endloop 0x20 - - label 0x22 - yield - cmd0145_rebuild_groups - cmd0146_rebuild_groups - goto_first 0x1f - - label 0x58 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func041f_init_pa_circleroom_miniskedar: - set_group 0x0d - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, FUNC_INIT_MINISKEDAR - endfunction - -func1020_pa_deadendroom_spawner: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x00b4, /*goto*/ 0x2e - if_chr_in_room CHR_P1P2, 0x00, 0x00b8, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - set_function 0x38, FUNC_INIT_PA_DEADENDROOM_MINISKEDAR - set_function 0x39, FUNC_INIT_PA_DEADENDROOM_MINISKEDAR - set_function 0x3a, FUNC_INIT_PA_DEADENDROOM_MINISKEDAR - set_function 0x3b, FUNC_INIT_PA_DEADENDROOM_MINISKEDAR - label 0x1f - restart_timer - - beginloop 0x20 - dprint "TIME\n" - if_timer_lt 300, /*goto*/ 0x21 - label 0x2e - dprint "SQUAD\n" - if_num_chrs_in_group_gt 3, 0x0b, /*goto*/ 0x21 - call_rng - if_rand_gt 64, /*goto*/ 0x63 - if_rand_gt 128, /*goto*/ 0x64 - if_rand_gt 196, /*goto*/ 0x65 - try_spawn_chr BODY_MINISKEDAR, HEAD_RANDOM, 0x01af, FUNC_INIT_PA_DEADENDROOM_MINISKEDAR, 0x00000000, /*goto*/ 0x22 - goto_next 0x21 - label 0x63 - try_spawn_chr BODY_MINISKEDAR, HEAD_RANDOM, 0x01b0, FUNC_INIT_PA_DEADENDROOM_MINISKEDAR, 0x00000000, /*goto*/ 0x22 - goto_next 0x21 - label 0x64 - try_spawn_chr BODY_MINISKEDAR, HEAD_RANDOM, 0x01b1, FUNC_INIT_PA_DEADENDROOM_MINISKEDAR, 0x00000000, /*goto*/ 0x22 - goto_next 0x21 - label 0x65 - try_spawn_chr BODY_MINISKEDAR, HEAD_RANDOM, 0x01b2, FUNC_INIT_PA_DEADENDROOM_MINISKEDAR, 0x00000000, /*goto*/ 0x22 - goto_next 0x21 - label 0x21 - endloop 0x20 - - label 0x22 - yield - cmd0145_rebuild_groups - cmd0146_rebuild_groups - goto_first 0x1f - - endfunction - -func0420_init_pa_deadendroom_miniskedar: - set_group 0x0b - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, FUNC_INIT_MINISKEDAR - endfunction - -func1021_c6c4: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_PA_MIDDOORCYLINDER_DESTROYED, TRUE, /*goto*/ 0x2e - if_chr_dying 0x30, /*goto*/ 0x2e - if_chr_dying 0x31, /*goto*/ 0x2e - if_chr_dying 0x32, /*goto*/ 0x2e - if_chr_dying 0x33, /*goto*/ 0x2e - if_chr_dying 0x34, /*goto*/ 0x2e - if_chr_dying 0x35, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - set_function 0x30, FUNC_INIT_MINISKEDAR - set_function 0x31, FUNC_INIT_MINISKEDAR - set_function 0x32, FUNC_INIT_MINISKEDAR - set_function 0x33, FUNC_INIT_MINISKEDAR - set_function 0x34, FUNC_INIT_MINISKEDAR - set_function 0x35, FUNC_INIT_MINISKEDAR - set_function CHR_SELF, GFUNC_IDLE - endfunction - -.macro init_path pathid function - set_chr_dodge_rating 2, 0x0a - set_accuracy 20 - set_reaction_speed 65 - set_chr_health CHR_SELF, 70 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_return_function CHR_SELF, \function - assign_path \pathid - start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 -.endm - -func0421_start_path02: - init_path 2, 0x0421 - endfunction - -func0422_start_path03: - init_path 3, 0x0422 - endfunction - -func0423_start_path04: - init_path 4, 0x0423 - endfunction - -func0424_start_path05: - init_path 5, 0x0424 - endfunction - -func0425_start_path06: - init_path 6, 0x0425 - endfunction - -func0426_start_path07: - init_path 7, 0x0426 - endfunction - -func0427_start_path08: - init_path 8, 0x0427 - endfunction - -func0428_start_path09: - init_path 9, 0x0428 - endfunction - -func0429_start_path10: - init_path 10, 0x0429 - endfunction - -func1022_control_room: - if_difficulty_lt DIFF_SA, /*goto*/ 0x2e - goto_next 0x04 - - // Agent - label 0x2e - remove_chr CHR_BLONDE1 - remove_chr CHR_BLONDE2 - set_function CHR_SELF, GFUNC_IDLE - - // SA and PA - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x004c, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - if_chr_dying CHR_BLONDE1, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_BLONDE1, /*goto*/ 0x2e - if_chr_unloaded CHR_BLONDE1, /*goto*/ 0x2e - goto_first 0x04 - - label 0x2e - if_chr_dying CHR_BLONDE2, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_BLONDE2, /*goto*/ 0x2e - if_chr_unloaded CHR_BLONDE2, /*goto*/ 0x2e - goto_first 0x04 - - label 0x2e - message CHR_P1P2, 0x3015 // "Control Room has been secured." - set_stage_flag STAGEFLAG_BLONDES_DEAD - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1023_check_drcaroll_restored: - if_difficulty_lt DIFF_PA, /*goto*/ 0x04 - yield - give_object_to_chr OBJ_BACKUPDISK, CHR_JOANNA - - beginloop 0x04 - if_chr_death_animation_finished CHR_DRCAROLL, /*goto*/ 0x0d - if_chr_dying CHR_DRCAROLL, /*goto*/ 0x0d - if_chr_unloaded CHR_DRCAROLL, /*goto*/ 0x0d - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0x0d - if_chr_dying CHR_ELVIS, /*goto*/ 0x0d - if_chr_unloaded CHR_ELVIS, /*goto*/ 0x0d - consider_coop_for_p1p2_chr CHR_SELF - if_chr_distance_to_pad_lt CHR_P1P2, 200, 0x0193, /*goto*/ 0x2e - reloop 0x04 - - label 0x2e - if_difficulty_lt DIFF_SA, /*goto*/ 0x08 - if_stage_flag_eq STAGEFLAG_BLONDES_DEAD, TRUE, /*goto*/ 0x2e - reloop 0x04 - - label 0x2e - if_difficulty_lt DIFF_PA, /*goto*/ 0x08 - if_chr_distance_to_pad_lt CHR_P1P2, 200, 0x0193, /*goto*/ 0x2e - reloop 0x04 - - label 0x2e - if_chr_weapon_equipped CHR_P1P2, WEAPON_BACKUPDISK, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - set_stage_flag STAGEFLAG_DRCAROLL_RESTORED - label 0x08 - set_function CHR_SELF, FUNC_MIDCUTSCENE - label 0x0d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1024_update_elvis_target_chr: - beginloop 0x04 - if_chr_dying CHR_JOANNA, /*goto*/ 0x08 - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x08 - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x08 - set_chr_target_chr CHR_ELVIS, CHR_JOANNA - unset_stage_flag STAGEFLAG_ELVIS_FOLLOWING_VELVET - endloop 0x04 - - beginloop 0x08 - if_chr_dying CHR_VELVET, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2e - if_chr_unloaded CHR_VELVET, /*goto*/ 0x2e - set_chr_target_chr CHR_ELVIS, CHR_VELVET - set_stage_flag STAGEFLAG_ELVIS_FOLLOWING_VELVET - endloop 0x08 - - label 0x2e - goto_first 0x04 - - endfunction - -unregistered_function1: - label 0x04 - chr_move_to_pad CHR_ELVIS, 0x01bf, 0x01, /*goto*/ 0x06 - label 0x06 - set_chr_flag_bank2 CHR_ELVIS, CHRFLAG2_00020000 - set_function CHR_ELVIS, FUNC_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1026_setup_autoguns: - yield - set_autoturret_type 0xa8, 0x12 - set_autoturret_type 0xa9, 0x12 - set_autoturret_type 0xaa, 0x12 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func042e_elvis_run_to_exit: - set_self_flag_bank3 CHRFLAG3_00080000 - set_onshot_function FUNC_ELVIS_RUN_TO_EXIT - set_return_function CHR_SELF, FUNC_ELVIS_RUN_TO_EXIT - set_target_chr FOLLOW_CHR - if_chr_dying CHR_SELF, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2e - if_chr_unloaded CHR_SELF, /*goto*/ 0x2e - goto_next 0x06 - - // Dying - label 0x2e - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x06 - if_just_injured CHR_SELF, /*goto*/ 0x2e - goto_next 0x5f - - // Injured - label 0x2e - say_quip CHR_JOANNA, 0x29, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00 - - beginloop 0x12 - if_chr_stopped /*goto*/ 0x06 - endloop 0x12 - - // Healthy - label 0x1f - label 0x06 - set_target_chr FOLLOW_CHR - label 0x5f - restart_timer - if_chr_distance_lt 1400, /*goto*/ 0x2e - jog_to_pad 0x0004 - goto_next 0x0f - - label 0x2e - run_to_pad 0x0004 - - beginloop 0x0f - if_enemy_distance_lt_and_los 800, /*goto*/ 0x08 - if_timer_gt 300, /*goto*/ 0x06 - if_chr_stopped /*goto*/ 0x2e - endloop 0x0f - - label 0x06 - goto_first 0x5f - - label 0x2e - stop_chr - goto_first 0x1f - - label 0x06 - restart_timer - label 0x08 - if_chr_lost_track_of_target_maybe /*goto*/ 0x06 - goto_next 0x2e - label 0x06 - goto_first 0x1f - - label 0x2e - dprint "DETECTED\n" - call_rng - if_rand_lt 85, /*goto*/ 0x63 - if_rand_lt 170, /*goto*/ 0x64 - say_quip CHR_JOANNA, 0x26, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00 - goto_next 0x2e - label 0x63 - say_quip CHR_JOANNA, 0x27, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00 - goto_next 0x2e - label 0x64 - say_quip CHR_JOANNA, 0x28, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00 - label 0x2e - set_onshot_function FUNC_ELVIS_RUN_TO_EXIT - set_return_function CHR_SELF, FUNC_ELVIS_RUN_TO_EXIT - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - endfunction - -func1027_powernode_illumination: - beginloop 0x04 - if_door_state 0x03, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x2e - unset_object_flag_bank0 OBJ_POWERNODE1, OBJECTFLAG0_ILLUMINATED - goto_next 0x06 - label 0x2e - set_object_flag_bank0 OBJ_POWERNODE1, OBJECTFLAG0_ILLUMINATED - - label 0x06 - if_door_state 0x04, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x2e - unset_object_flag_bank0 OBJ_POWERNODE2, OBJECTFLAG0_ILLUMINATED - goto_next 0x06 - label 0x2e - set_object_flag_bank0 OBJ_POWERNODE2, OBJECTFLAG0_ILLUMINATED - - label 0x06 - if_door_state 0x05, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x2e - unset_object_flag_bank0 OBJ_POWERNODE3, OBJECTFLAG0_ILLUMINATED - goto_next 0x06 - label 0x2e - set_object_flag_bank0 OBJ_POWERNODE3, OBJECTFLAG0_ILLUMINATED - label 0x06 - endloop 0x04 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Enables 3 guards near the grotto entrace during the escape timer. - */ -func1028_enable_last_3_guards: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_MIDCUTSCENE_FINISHED, TRUE, /*goto*/ 0x2e - reloop 0x04 - - label 0x2e - if_door_state 0xab, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - unset_chr_flag_bank3 0x3c, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x3d, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x3e, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x3c, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x3d, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 0x3e, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x3c, FUNC_RUN_TO_EXIT - set_function 0x3d, FUNC_RUN_TO_EXIT - set_function 0x3e, FUNC_RUN_TO_EXIT - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func042b_run_to_exit: - set_chr_dodge_rating 2, 0x0a - set_accuracy 40 - set_reaction_speed 65 - set_chr_health CHR_SELF, 10 - set_armor 70 - set_recovery_speed 0 - set_shield 0 - label 0x04 - run_to_pad 0x0000 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func1429_start_lift: - if_coop_mode /*goto*/ 0x45 - activate_lift 1, 0x07 - label 0x45 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func102a_kill_pelagic_guard: - yield - damage_chr 0x3f, 18 - yield - damage_chr 0x3f, 18 - yield - damage_chr 0x3f, 18 - yield - damage_chr 0x3f, 18 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func102b_proxymines: - beginloop 0x04 - if_chr_death_animation_finished 0x08, /*goto*/ 0x06 - if_chr_dying 0x08, /*goto*/ 0x06 - if_chr_unloaded 0x08, /*goto*/ 0x06 - if_stage_flag_eq STAGEFLAG_PURPLE_GUARD_SHOT_JO_OR_ELVIS, TRUE, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - set_object_flag_bank0 OBJ_PROXYMINES, OBJECTFLAG0_00100000 - set_object_flag_bank1 OBJ_PROXYMINES, OBJECTFLAG1_INVISIBLE - - label 0x06 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func102c_lock_doors: - label 0x04 - yield - if_difficulty_lt DIFF_PA, /*goto*/ 0x2e - - // PA - lock_door 0xb1, 0x80 - lock_door 0xb2, 0x80 - set_object_flag_bank1 0xb1, OBJECTFLAG1_20000000 - set_object_flag_bank1 0xb2, OBJECTFLAG1_20000000 - - // A and SA - label 0x2e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040f_miniskedar_unalerted: - set_onshot_function FUNC_MINISKEDAR - set_self_flag_bank3 CHRFLAG3_00080000 - set_self_flag_bank3 CHRFLAG3_00020000 - set_accuracy 0 - set_reaction_speed 65 - set_chr_health CHR_SELF, 20 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_self_flag_bank3 CHRFLAG3_00080000 - set_chr_alliance CHR_SELF, ALLIANCE_ENEMY - cmd0145_rebuild_groups - cmd0146_rebuild_groups - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_sees_player /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - set_function CHR_SELF, FUNC_MINISKEDAR - endfunction - -func0432_dead_skedar: - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - - label 0x08 - yield - animation ANIM_SKEDAR_COLLAPSE, -1, -1, 0x0600, 0x21, 2 - label 0x2e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -unregistered_function2: - set_lights_state 0x0009, 0x04, 0x00, 0xff, 0xfa - - beginloop 0x08 - endloop 0x08 - - label 0x2e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func102e_open_powernode_doors_on_agent: - if_difficulty_lt DIFF_SA, /*goto*/ 0x08 - set_function CHR_SELF, GFUNC_IDLE - - // Agent - label 0x08 - open_door 0x03 - set_object_flag_bank0 0x03, OBJECTFLAG0_40000000 - open_door 0x04 - set_object_flag_bank0 0x04, OBJECTFLAG0_40000000 - open_door 0x05 - set_object_flag_bank0 0x05, OBJECTFLAG0_40000000 - label 0x2e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Stop whatever Elvis is doing in preparation for teleporting. - */ -func042c_elvis_stop: - label 0x08 - stop_chr - - // @bug: This needs to set the onshot function to GFUNC_IDLE too, otherwise - // his function will be reassigned if he takes damage between here and the - // teleport. This causes him to not teleport. - label 0x2e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func102f_unlock_drcaroll_door: - // Wait until player in Dr Caroll room - beginloop 0x08 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x004c, /*goto*/ 0x2e - endloop 0x08 - - // Unlock exit door - label 0x2e - unlock_door 0x75, 0x02 - unlock_door 0x76, 0x02 - unset_object_flag_bank1 0x75, OBJECTFLAG1_20000000 - unset_object_flag_bank1 0x76, OBJECTFLAG1_20000000 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1030_unlock_agent_teleport_door: - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_MEGAWEAPON_DISABLED, TRUE, /*goto*/ 0x2e - endloop 0x08 - - // Agent area, near megaweapon. Door that leads to exit teleport. - label 0x2e - unlock_door 0xb7, 0x02 - unlock_door 0xb8, 0x02 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Wait until Jo has the trigger buddy warp flag set, then unset it 30 seconds - * later. - */ -func1031_unset_trigger_buddy_warp: - beginloop 0x08 - if_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP, /*goto*/ 0x2e - reloop 0x08 - - label 0x2e - restart_timer - - beginloop 0x09 - if_timer_gt 1800, /*goto*/ 0x2e - endloop 0x09 - - label 0x2e - unset_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP - endloop 0x08 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Toggle a stage flag every 5 seconds. - * - * There's a good chance that this flag had a different meaning back when this - * was working. - */ -unregistered_function3: - label 0x1f - restart_timer - - beginloop 0x08 - if_timer_gt 300, /*goto*/ 0x2e - endloop 0x08 - - label 0x2e - unset_stage_flag STAGEFLAG_SA_EXIT_TELEPORT_DISABLED - restart_timer - - beginloop 0x09 - if_timer_gt 300, /*goto*/ 0x2e - endloop 0x09 - - label 0x2e - set_stage_flag STAGEFLAG_SA_EXIT_TELEPORT_DISABLED - goto_first 0x1f - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1032_setup_rtracker: - yield - set_object_flag_bank2 OBJ_PROXYMINES, OBJECTFLAG2_RTRACKED_BLUE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1433_setup_lighting: - yield - set_lighting 0x0000, 0x09, 0x01 - set_lighting 0x0002, 0x05, 0x00 - set_lighting 0x0003, 0x05, 0x00 - set_lighting 0x0004, 0x05, 0x00 - set_lighting 0x0006, 0x05, 0x00 - set_lighting 0x0007, 0x05, 0x00 - set_lighting 0x0008, 0x05, 0x00 - set_lighting 0x000c, 0x05, 0x00 - set_lighting 0x000d, 0x05, 0x00 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1034_enable_blondes: - if_difficulty_lt DIFF_SA, /*goto*/ 0x0d - yield - hide_chr CHR_BLONDE1 - hide_chr CHR_BLONDE2 - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x004c, /*goto*/ 0x2e - endloop 0x04 - - label 0x2e - show_chr CHR_BLONDE1 - show_chr CHR_BLONDE2 - set_function CHR_BLONDE1, FUNC_BLONDE - set_function CHR_BLONDE2, FUNC_BLONDE - label 0x0d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func102d_check_farsight_ammo_wasted: - if_difficulty_lt DIFF_PA, /*goto*/ 0x0d - - // Probable @bug: Looks like the objective will fail if one buddy uses all - // their ammo but the other is still stocked. - beginloop 0x1f - if_chr_weapon_equipped CHR_JOANNA, WEAPON_FARSIGHTXR20, /*goto*/ 0x2e - if_chr_weapon_equipped CHR_VELVET, WEAPON_FARSIGHTXR20, /*goto*/ 0x2f - endloop 0x1f - - label 0x2e - set_target_chr CHR_JOANNA - goto_next 0x63 - - label 0x2f - set_target_chr CHR_VELVET - - beginloop 0x63 - if_objective_complete 1, /*goto*/ 0x0d - if_ammo_quantity_lt TARGET_CHR, AMMOTYPE_FARSIGHT, 1, /*goto*/ 0x2e - endloop 0x63 - - label 0x2e - message CHR_JOANNA, 0x302c // "Ammo wasted - unable to disable megaweapon." - set_stage_flag STAGEFLAG_FARSIGHT_AMMO_WASTED - set_function CHR_SELF, GFUNC_IDLE - label 0x0d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -unregistered_function4: - cmd0185_mponly - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE - endfunction - -functions: - register_function func0401_unused 0x0401 - register_function func1400_setup_counterop 0x1400 - register_function func1001_objectives_failed_msg 0x1001 - register_function func1002_intro 0x1002 - register_function func1003_powernode1 0x1003 - register_function func1004_powernode2 0x1004 - register_function func1005_powernode3 0x1005 - register_function func1006_msg_thiswillhelpus 0x1006 - register_function func1007_msg_antibodymasking 0x1007 - register_function func1008_msg_theresdrcaroll 0x1008 - register_function func1009_msg_getoutofhere 0x1009 - register_function func100a_joanna_teleports 0x100a - register_function func100b_velvet_teleports 0x100b - register_function func100c_countdown_timer 0x100c - register_function func100e_check_elvis_dead 0x100e - register_function func100f_check_drcaroll_dead 0x100f - register_function func1010_agent_hallway_spawner 0x1010 - register_function func1012_sa_megaweapon_spawner 0x1012 - register_function func1013_pa_doorcylinder1 0x1013 - register_function func1014_pa_doorcylinder2 0x1014 - register_function func1015_pa_doorcylinder3 0x1015 - register_function func1016_pa_doorcylinder4 0x1016 - register_function func1017_pa_doorcylinder5 0x1017 - register_function func1018_pa_door1 0x1018 - register_function func1019_pa_door2 0x1019 - register_function func101a_pa_door3 0x101a - register_function func101b_pa_door4 0x101b - register_function func101c_pa_door5 0x101c - register_function func101d_pa_canister1 0x101d - register_function func101e_pa_canister2 0x101e - register_function func101f_pa_circleroom_spawner 0x101f - register_function func1020_pa_deadendroom_spawner 0x1020 - register_function func1021_c6c4 0x1021 - register_function func1022_control_room 0x1022 - register_function func1023_check_drcaroll_restored 0x1023 - register_function func1024_update_elvis_target_chr 0x1024 - register_function func1026_setup_autoguns 0x1026 - register_function func1027_powernode_illumination 0x1027 - register_function func1028_enable_last_3_guards 0x1028 - register_function func1429_start_lift 0x1429 - register_function func102a_kill_pelagic_guard 0x102a - register_function func102b_proxymines 0x102b - register_function func102c_lock_doors 0x102c - register_function func102d_check_farsight_ammo_wasted 0x102d - register_function func102e_open_powernode_doors_on_agent 0x102e - register_function func102f_unlock_drcaroll_door 0x102f - register_function func1030_unlock_agent_teleport_door 0x1030 - register_function func1031_unset_trigger_buddy_warp 0x1031 - register_function func1032_setup_rtracker 0x1032 - register_function func1433_setup_lighting 0x1433 - register_function func1034_enable_blondes 0x1034 - - register_function func1002_intro 0x0c00 - register_function func0c01_midcutscene 0x0c01 - register_function func0c02_outro 0x0c02 - - register_function func0411_hide 0x0411 - register_function func0412_unused 0x0412 - register_function func040e_init_miniskedar 0x040e - register_function func040f_miniskedar 0x040f - register_function func0c02_outro 0x0410 - register_function func040f_miniskedar_send_clones 0x040d - register_function func040c_blonde 0x040c - register_function func040b_init_elvis 0x040b - register_function func0402_elvis_follow_and_reactive_teleportals 0x0402 - register_function func0403_elvis_give_farsight 0x0403 - register_function func0404_elvis_follow_and_do_agent_megaweapon 0x0404 - register_function func0405_elvis_follow_nocombat 0x0405 - register_function func0406_elvis_follow_and_do_sa_megaweapon 0x0406 - register_function func0407_elvis_go_to_sa_teleport 0x0407 - register_function func0408_check_pa_earlydoorcylinders_destroyed 0x0408 - register_function func0409_check_pa_latedoorcylinders_destroyed 0x0409 - register_function func040a_check_pa_canisters_destroyed 0x040a - register_function func0414_teleport_joanna_to_sapa 0x0414 - register_function func0415_teleport_joanna_to_drcaroll 0x0415 - register_function func0416_teleport_joanna_to_a_pa_drcaroll 0x0416 - register_function func0417_teleport_velvet_to_sapa 0x0417 - register_function func0418_teleport_velvet_to_drcaroll 0x0418 - register_function func0419_teleport_velvet_to_a_pa_drcaroll 0x0419 - register_function func041a_init_sniper 0x041a - register_function func041b_sniper_wait_for_detection 0x041b - register_function func041c_teleport_activation_responder 0x041c - register_function func041d_sniper 0x041d - register_function func041e_init_sa_megaweapon_miniskedar 0x041e - register_function func041f_init_pa_circleroom_miniskedar 0x041f - register_function func0420_init_pa_deadendroom_miniskedar 0x0420 - register_function func0421_start_path02 0x0421 - register_function func0422_start_path03 0x0422 - register_function func0423_start_path04 0x0423 - register_function func0424_start_path05 0x0424 - register_function func0425_start_path06 0x0425 - register_function func0426_start_path07 0x0426 - register_function func0427_start_path08 0x0427 - register_function func0428_start_path09 0x0428 - register_function func0429_start_path10 0x0429 - register_function func042b_run_to_exit 0x042b - register_function func042d_elvis_warp_to_outside_drcaroll 0x042d - register_function func042e_elvis_run_to_exit 0x042e - register_function func0c01_midcutscene 0x042a - register_function func0413_cloak_and_hide 0x0413 - register_function func042f_init_pelagic_guard 0x042f - register_function func0430_unused 0x0430 - register_function func040f_miniskedar_unalerted 0x0431 - register_function func0432_dead_skedar 0x0432 - register_function func0433_unused 0x0433 - register_function func042c_elvis_stop 0x042c - endfunctions - -paths: - register_path path02, 2, 0 - register_path path03, 3, 0 - register_path path04, 4, 0 - register_path path05, 5, 0 - register_path path06, 6, 0 - register_path path07, 7, 0 - register_path path08, 8, 0 - register_path path09, 9, 0 - register_path path10, 10, 0 - endpaths - -.align 4 diff --git a/asm/setup/setuppete.s b/asm/setup/setuppete.s deleted file mode 100644 index 0babdc7cc..000000000 --- a/asm/setup/setuppete.s +++ /dev/null @@ -1,3229 +0,0 @@ -# -# Chicago -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -// Characters -.set CHR_TOPSTAIRS, 0x07 -.set CHR_SEALER1, 0x0d -.set CHR_SEALER2, 0x0e -.set CHR_SEALER3, 0x0f -.set CHR_SEALER4, 0x10 -.set CHR_FBI1, 0x17 -.set CHR_FBI2, 0x18 -.set CHR_FBI3, 0x19 -.set CHR_CIA1, 0x1a -.set CHR_CIA2, 0x1b // bug spotter -.set CHR_CIA3, 0x1c -.set CHR_CIA4, 0x1d -.set CHR_HIDDENGUY, 0x1e // positioned just behind Jo's starting place, never unhidden, and used for distance checks and something related to the robot -.set CHR_ROBOT, 0x1f - -// Objects -.set OBJ_CAR1, 0x00 -.set OBJ_CAR2, 0x01 -.set OBJ_CAR3, 0x02 -.set OBJ_CAR4, 0x03 -.set OBJ_CAR5, 0x05 -.set OBJ_BRIEFCASE1, 0x06 -.set OBJ_BRIEFCASE2, 0x07 -.set OBJ_FIREDOORTOP, 0x08 -.set OBJ_FIREDOORBOTTOM, 0x09 -.set OBJ_TAXI, 0x0a -.set OBJ_LIMO, 0x0c -.set OBJ_SWITCH, 0x0e -.set OBJ_BRIEFCASE3, 0x0f -.set OBJ_MINE1, 0x12 -.set OBJ_MINE2, 0x13 -.set OBJ_BRIEFCASE4, 0x1b -.set OBJ_BRIEFCASE5, 0x1d -.set OBJ_BRIEFCASE6, 0x1e -.set OBJ_WIREFENCE, 0x21 -.set OBJ_FALCON2, 0x22 -.set OBJ_DUMPSTER, 0x25 - -// Stage flags -.set STAGEFLAG_ALARM_GROUP1_DEAD, 0x00000001 -.set STAGEFLAG_ALARM_GROUP2_DEAD, 0x00000002 -.set STAGEFLAG_ALARM_GROUP3_DEAD, 0x00000004 -.set STAGEFLAG_TRACERBUG_SPOTTED, 0x00000008 -.set STAGEFLAG_CRASH_FINISHED, 0x00000010 -.set STAGEFLAG_TRIGGER_CRASH, 0x00000020 -.set STAGEFLAG_ROBOT_NEAR_CORNER, 0x00000040 -.set STAGEFLAG_TRACERBUG_SAFE, 0x00000080 -.set STAGEFLAG_ONE_BUG_REMAINING, 0x00000100 -.set STAGEFLAG_MINE_PLACED, 0x00000200 -.set STAGEFLAG_MINE_WASTED, 0x00000400 -.set STAGEFLAG_TAXI_REPROGRAMMED, 0x00000800 -.set STAGEFLAG_TRACERBUG_PLACED, 0x00001000 -.set STAGEFLAG_TRACERBUG_WASTED, 0x00002000 -.set STAGEFLAG_LIMO_DESTROYED, 0x00004000 -.set STAGEFLAG_TAXI_DESTROYED, 0x00008000 -.set STAGEFLAG_ROBOT_DESTROYED, 0x00010000 -.set STAGEFLAG_IN_ELEVATOR, 0x00020000 -.set STAGEFLAG_LIMO_READY_TO_LEAVE, 0x00040000 -.set STAGEFLAG_LIMO_READY_15SEC_AGO, 0x00080000 -.set STAGEFLAG_TRIGGER_TAXI_LEAVE, 0x00100000 -.set STAGEFLAG_TAXI_ALMOST_READY_TO_CRASH, 0x00200000 -.set STAGEFLAG_ALARM_SOUNDED, 0x00400000 -.set STAGEFLAG_ROBOT_NEAR_HOME, 0x00800000 -.set STAGEFLAG_ROBOT_ON_DRAIN_STREET, 0x01000000 -.set STAGEFLAG_TRIGGER_INTRO, 0x02000000 -.set STAGEFLAG_LIMO_ESCAPED, 0x04000000 -.set STAGEFLAG_CIVILIAN_DEAD, 0x08000000 -.set STAGEFLAG_ELEVATOR_SEALED, 0x10000000 -.set STAGEFLAG_INTRO_FINISHED, 0x20000000 -.set STAGEFLAG_DIVERSION_CREATED, 0x40000000 -.set STAGEFLAG_TAXI_READY_TO_CRASH, 0x80000000 - -// Functions -.set FUNC_OUTRO, 0x040b -.set FUNC_CIA, 0x0412 -.set FUNC_BUGSPOTTER, 0x0413 -.set FUNC_INIT_CIA1, 0x0419 -.set FUNC_ROBOT, 0x041a -.set FUNC_INIT_ROBOT, 0x041b -.set FUNC_HIDDENGUY, 0x041c -.set FUNC_FBI, 0x041d -.set FUNC_SEALER1, 0x041e -.set FUNC_ALARM_RESPONDER, 0x041f -.set FUNC_JOG_TO_ACCIDENT, 0x0420 - -// Other -.set GROUP_ALARM_RESPONDER, 0x09 - -props: - briefing 0, 0x3201 - briefing 1, 0x3200 - briefing 2, 0x3202 - briefing 3, 0x3203 - - beginobjective 0, 0x3209, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Retrieve drop point equipment" - require_object_collected OBJ_BRIEFCASE1 - require_object_collected OBJ_BRIEFCASE2 - endobjective - - beginobjective 1, 0x320a, DIFFBIT_PA | DIFFBIT_PD // "Attach tracer to limousine" - complete_flags STAGEFLAG_TRACERBUG_PLACED - fail_flags STAGEFLAG_TRACERBUG_WASTED - fail_flags STAGEFLAG_LIMO_DESTROYED - fail_flags STAGEFLAG_LIMO_ESCAPED - fail_flags STAGEFLAG_TRACERBUG_SPOTTED - endobjective - - beginobjective 2, 0x320b, DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Prepare escape route" - complete_flags STAGEFLAG_MINE_PLACED - fail_flags STAGEFLAG_MINE_WASTED - endobjective - - beginobjective 3, 0x320d, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Create vehicular diversion" - complete_flags STAGEFLAG_DIVERSION_CREATED - fail_flags STAGEFLAG_TAXI_DESTROYED - fail_flags STAGEFLAG_ROBOT_DESTROYED - endobjective - - beginobjective 4, 0x320e, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Gain entry to G5 building" - complete_flags STAGEFLAG_IN_ELEVATOR - fail_flags STAGEFLAG_CIVILIAN_DEAD - fail_flags STAGEFLAG_ELEVATOR_SEALED - endobjective - - chr 0x00010c00, 0x1a, 0x00a9, BODY_CIAGUY, HEAD_RANDOM, FUNC_INIT_CIA1, -1, -1, 1000, 6, 0x80004000, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000 - chr 0x00000200, 0x00, 0x00aa, BODY_G5_GUARD, HEAD_RANDOM, 0x0414, -1, -1, 1000, 10, 0xa0004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x000000c0, 0x17, 0x00ab, BODY_FBIGUY, HEAD_RANDOM, 0x0411, -1, -1, 800, 30, 0x8000a000, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000 - chr 0x00000200, 0x01, 0x00ac, BODY_G5_GUARD, HEAD_RANDOM, 0x0415, -1, -1, 1000, 10, 0xa0004408, 0x00000000, 0x20, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000080, 0x18, 0x00af, BODY_FBIGUY, HEAD_RANDOM, 0x0411, -1, -1, 500, 30, 0x8000e008, 0x00000000, 0x20, 0x01, -1, 0, 0x01000000 - chr 0x00000200, 0x02, 0x00ad, BODY_G5_GUARD, HEAD_RANDOM, 0x0416, -1, -1, 1000, 10, 0xa0004008, 0x00000000, 0x20, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x03, 0x00ae, BODY_G5_GUARD, HEAD_RANDOM, 0x040e, -1, -1, 1000, 50, 0xc0004008, 0x00000000, 0x20, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0003, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x04, 0x00b0, BODY_G5_GUARD, HEAD_RANDOM, 0x040e, -1, -1, 1000, 50, 0xc0004008, 0x00000000, 0x20, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0004, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x05, 0x00b1, BODY_G5_GUARD, HEAD_RANDOM, 0x0417, -1, -1, 1000, 50, 0xa0004008, 0x00000000, 0x20, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0005, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x19, 0x00b3, BODY_FBIGUY, HEAD_RANDOM, 0x0411, -1, -1, 500, 20, 0xc000a000, 0x00000000, 0x20, 0x04, -1, 0, 0x02000000 - chr 0x00000200, 0x06, 0x00b4, BODY_G5_GUARD, HEAD_RANDOM, 0x040f, -1, -1, 1000, 10, 0xc0004008, 0x00000000, 0x20, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0006, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000300, 0x0a, 0x00b6, BODY_G5_GUARD, HEAD_RANDOM, 0x040f, -1, -1, 1000, 10, 0xd0002008, 0x00000000, 0x20, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x07, 0x00b5, BODY_G5_GUARD, HEAD_RANDOM, 0x040f, -1, -1, 1000, 10, 0xd0002008, 0x00001000, 0x20, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0007, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0b, 0x00b7, BODY_G5_GUARD, HEAD_RANDOM, 0x040f, -1, -1, 1000, 10, 0xc0004008, 0x00000000, 0x20, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000240, 0x08, 0x00cb, BODY_G5_GUARD, HEAD_RANDOM, 0x040f, -1, -1, 1000, 10, 0xd0002008, 0x00000000, 0x20, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000280, 0x09, 0x00cc, BODY_G5_GUARD, HEAD_RANDOM, 0x040f, -1, -1, 1000, 10, 0xd0002008, 0x00000000, 0x20, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0c, 0x00b8, BODY_G5_GUARD, HEAD_RANDOM, 0x0418, -1, -1, 500, 10, 0xc0004008, 0x00000000, 0x20, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00010c00, 0x1c, 0x00b9, BODY_CIAGUY, HEAD_RANDOM, FUNC_CIA, -1, -1, 1000, 6, 0x80000008, 0x00000000, 0x20, 0x05, -1, 0, 0x01000000 - chr 0x00010c00, 0x1d, 0x0042, BODY_CIAGUY, HEAD_RANDOM, FUNC_CIA, -1, -1, 1000, 6, 0x80002000, 0x00000000, 0x20, 0x05, -1, 0, 0x02000000 - chr 0x00000400, 0x0d, 0x00bf, BODY_G5_GUARD, HEAD_RANDOM, FUNC_SEALER1, -1, -1, 1000, 15, 0xc0004008, 0x00000000, 0x20, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x0e, 0x00bc, BODY_G5_GUARD, HEAD_RANDOM, 0x040e, 0x00c5, -1, 1000, 15, 0xc0084008, 0x00000000, 0x20, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x0f, 0x00bd, BODY_G5_GUARD, HEAD_RANDOM, 0x040e, 0x00c6, -1, 1000, 15, 0xc0084008, 0x00000000, 0x20, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000600, 0x10, 0x00be, BODY_G5_GUARD, HEAD_RANDOM, 0x040e, 0x00c7, -1, 1000, 15, 0xc0084008, 0x00000000, 0x20, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0010, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00010c00, 0x1b, 0x00b2, BODY_CIAGUY, HEAD_RANDOM, FUNC_BUGSPOTTER, -1, -1, 1000, 6, 0x80000000, 0x00000000, 0x20, 0x01, -1, 0, 0x00000000 - chr 0x00000000, 0x11, 0x00c9, BODY_G5_GUARD, HEAD_RANDOM, GFUNC_IDLE, 0x00c9, -1, 1000, 30, 0xc1086008, 0x00000000, 0x20, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0011, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x12, 0x00ca, BODY_G5_GUARD, HEAD_RANDOM, GFUNC_IDLE, 0x00ca, -1, 1000, 30, 0xc1086008, 0x00000000, 0x20, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0012, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000400, 0x1f, 0x0020, BODY_CHICROB, 0x00, FUNC_INIT_ROBOT, -1, -1, 1000, 15, 0x00000000, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000 - chr 0x00000000, 0x1e, 0x0063, BODY_G5_GUARD, HEAD_RANDOM, FUNC_HIDDENGUY, 0x00c8, -1, 1000, 15, 0x40084008, 0x00000000, 0x20, 0x01, -1, 0, 0x00000000 - chr 0x00000200, 0x13, 0x00cd, BODY_G5_GUARD, HEAD_RANDOM, 0x040e, -1, -1, 500, 10, 0xc0004208, 0x00000000, 0x20, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0013, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x14, 0x00ce, BODY_G5_GUARD, HEAD_RANDOM, 0x040e, -1, -1, 500, 10, 0xc0004208, 0x00000000, 0x20, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x15, 0x00cf, BODY_G5_GUARD, HEAD_RANDOM, 0x040e, -1, -1, 500, 10, 0xc0004208, 0x00000000, 0x20, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0015, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x16, 0x00d1, BODY_G5_GUARD, HEAD_RANDOM, 0x040e, -1, -1, 1, 10, 0xc0004008, 0x00000000, 0x20, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - tag 0x00, 1 - object 0x0100, MODEL_TAXICAB, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x01, 1 - object 0x0100, MODEL_TAXICAB, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x02, 1 - object 0x0100, MODEL_TAXICAB, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x03, 1 - object 0x0100, MODEL_POLICECAR, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x05, 1 - object 0x0100, MODEL_POLICECAR, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x06, 1 - weapon 0x0180, MODEL_CHRBRIEFCASE, 0x00a6, 0x00422001, 0x00000001, 0x20400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REMOTEMINE, 0x00ffffff, 0x00000000 - rename_object -1, 0x22, 0x3226, 0x3227, 0x3228, 0x3229, 0x322a, 0x0000, 0x0000 // "Obtain Remote Mine." - tag 0x0f, 1 - weapon 0x0180, MODEL_CHRBRIEFCASE, 0xffff, 0x00000001, 0x00000001, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRACERBUG, 0x00ffffff, 0x00000000 - rename_object -1, 0x3e, 0x322b, 0x322c, 0x322d, 0x322e, 0x322f, 0x0000, 0x0000 // "Obtain Tracer Bug." - tag 0x1d, 1 - weapon 0x0180, MODEL_CHRBRIEFCASE, 0xffff, 0x00000001, 0x00000001, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRACERBUG, 0x00ffffff, 0x00000000 - rename_object -1, 0x3e, 0x322b, 0x322c, 0x322d, 0x322e, 0x322f, 0x0000, 0x0000 // "Obtain Tracer Bug." - tag 0x0e, 1 - singlemonitor 0x0019, MODEL_G5_LASER_SWITCH, 0x00eb, 0x00000002, 0x00002301, 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, 0xffffff13 - tag 0x07, 1 - weapon 0x0180, MODEL_CHRBRIEFCASE, 0x00a6, 0x00462001, 0x00000001, 0x20400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DATAUPLINK, 0x00ffffff, 0x00000000 - rename_object -1, 0x36, 0x3231, 0x3232, 0x3233, 0x3234, 0x3235, 0x0000, 0x0000 // "Obtain Reprogrammer." - tag 0x1b, 1 - weapon 0x0180, MODEL_CHRBRIEFCASE, 0x001c, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SCOPE, 0x00ffffff, 0x00000000 - rename_object -1, 0x04, 0x3237, 0x3238, 0x3239, 0x323a, 0x323b, 0x0000, 0x0000 // "Obtain Remote Mine." - tag 0x1e, 1 - weapon 0x0180, MODEL_CHRBRIEFCASE, 0x001c, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SCOPE, 0x00ffffff, 0x00000000 - rename_object -1, 0x04, 0x3237, 0x3238, 0x3239, 0x323a, 0x323b, 0x0000, 0x0000 // "Obtain Remote Mine." - tag 0x1f, 1 - object 0x0100, MODEL_CHRBRIEFCASE, 0x009c, 0x012004e1, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x0a, 1 - hover_vehicle 0x0100, MODEL_TAXICAB, 0x00a3, 0x20000108, 0x00000001, 0x10010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000002bc, 0x00000000, 0x00000000, 0x0fff0000, 0x0000040c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x0c, 1 - hover_vehicle 0x00cc, MODEL_LIMO, 0x00a4, 0x20000108, 0x00000001, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000002bc, 0x00000000, 0x00000000, 0x0fff0000, 0x0000040d, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x21, 1 - object 0x0100, MODEL_WIREFENCE, 0xffff, 0x00021501, 0x00008000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x08, 1 - door 0x0100, MODEL_G5_ESCDOORUP, 0x00fb, 0x13520d00, 0x20304300, 0x00000000, 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 - tag 0x09, 1 - door 0x0100, MODEL_G5_ESCDOORDOWN, 0x00fc, 0x13520d00, 0x20304300, 0x00000000, 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 - tag 0x10, 2 - tag 0x11, 2 - door 0x0100, MODEL_G5CARLIFTDOOR, 0x00ec, 0x10000000, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00003333, 0x00014000, 0x00001333, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_G5CARLIFTDOOR, 0x00ed, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00003333, 0x00014000, 0x00001333, 0x00080000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x14, 1 - door 0x0100, MODEL_CH_SHUTTER1, 0x00ee, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f5c2, 0x0000f333, 0x00003333, 0x00014000, 0x00001333, 0x00040004, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x1a, 1 - door 0x0100, MODEL_CH_SHUTTER1, 0x00ef, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f5c2, 0x0000f333, 0x00003333, 0x00014000, 0x00001333, 0x00040004, 0x00000000, 0x00000708, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x00f0, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f5c2, 0x0000f333, 0x00003333, 0x00014000, 0x00001333, 0x00040004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x00f1, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f5c2, 0x0000f333, 0x00003333, 0x00014000, 0x00001333, 0x00040004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x15, 2 - tag 0x16, 2 - door 0x0100, MODEL_CH_SHUTTER1, 0x00f2, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f5c2, 0x0000f333, 0x00003333, 0x00014000, 0x00001333, 0x000c0004, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x00f3, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f5c2, 0x0000f333, 0x00003333, 0x00014000, 0x00001333, 0x000c0004, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x19, 1 - door 0x0100, MODEL_CH_SHUTTER1, 0x00f4, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f5c2, 0x0000f333, 0x00003333, 0x00014000, 0x00001333, 0x000c0004, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x17, 2 - tag 0x18, 2 - door 0x0100, MODEL_CH_SHUTTER1, 0x00f5, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f5c2, 0x0000f333, 0x00003333, 0x00014000, 0x00001333, 0x000c0004, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x00f6, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f5c2, 0x0000f333, 0x00003333, 0x00014000, 0x00001333, 0x000c0004, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x00f7, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f5c2, 0x0000f333, 0x00003333, 0x00014000, 0x00001333, 0x000c0004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x12, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0x0067, 0x012004e1, 0x00086001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x13, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0x0067, 0x012004e1, 0x00086001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - door 0x0100, MODEL_DOOR2A_G5, 0x00fd, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00003333, 0x00014000, 0x00001333, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2A_G5, 0x00fe, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00003333, 0x00014000, 0x00001333, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x0104, 0x00000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x00000005, 0x00000001, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x0105, 0x20000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x00000005, 0x00000001, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x25, 1 - object 0x0100, MODEL_DUMPSTER, 0x011e, 0x004001e1, 0x00004000, 0x00000801, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - weapon 0x0100, MODEL_CHRBRIEFCASE, 0xffff, 0x40008000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CAMSPY, 0x00ffffff, 0x00000000 - tag 0x24, -1 - object 0x0100, MODEL_BARREL, 0x010b, 0x000001e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x010c, 0x000001e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x010e, 0x000001e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x010f, 0x000001e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0110, 0x000001e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0111, 0x000001e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0112, 0x000001e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0113, 0x000001e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0114, 0x000001e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0115, 0x000001e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0116, 0x000001e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0117, 0x000001e8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0119, 0x000000e8, 0x00080001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x011d, 0x000000e8, 0x00080001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x011c, 0x000000e8, 0x00080001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x011b, 0x000000e8, 0x00080001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0118, 0x000000e8, 0x00080001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x011a, 0x000000e8, 0x00080001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DUMPSTER, 0x0106, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DUMPSTER, 0x0107, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DUMPSTER, 0x0108, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DUMPSTER, 0x0109, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DUMPSTER, 0x010a, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - door 0x0100, MODEL_DD_GRATE, 0x00f8, 0x10000400, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x00010000, 0x00003333, 0x00014000, 0x00001333, 0x08000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_GRATE, 0x00f9, 0x10000400, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x00010000, 0x00003333, 0x00014000, 0x00001333, 0x08000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_GRATE, 0x00fa, 0x10000400, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x00010000, 0x00003333, 0x00014000, 0x00001333, 0x08000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x22, 2 - tag 0x23, 2 - weapon 0x0100, MODEL_CHRFALCON2, 0x011f, 0x00420001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SCOPE, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRFALCON2, 0x011f, 0x00420001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SCOPE, 0x00ffffff, 0x00000000 - link_collectibles -1, -2 - tag 0x1c, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x0121, 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 0x20, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x0122, 0x00000001, 0x000000c0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0123, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0124, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0125, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - pad_effect PADEFFECT_SPLASH, 0x009b - pad_effect PADEFFECT_SPLASH, 0x009c - pad_effect PADEFFECT_SPLASH, 0x009d - pad_effect PADEFFECT_SPLASH, 0x009e - endprops - -intro: - ammo AMMOTYPE_PISTOL, 50 - outfit OUTFIT_TRENCH - spawn 0x0063 - endintro - -path00: - pad 0x00d3 - pad 0x00d4 - pad 0x00d9 - pad 0x00d6 - pad 0x00d7 - pad 0x0036 - pad 0x00d7 - pad 0x00d6 - pad 0x00d9 - pad 0x00d4 - pad 0x00d3 - endpath - -path01: - pad 0x00da - pad 0x00d7 - pad 0x00d7 - pad 0x00d6 - pad 0x00d9 - pad 0x00d5 - pad 0x00d4 - pad 0x00db - pad 0x00de - pad 0x00d3 - endpath - -path02: - pad 0x00a4 - pad 0x00a4 - pad 0x00a4 - pad 0x00a4 - pad 0x00a4 - endpath - -path03: - pad 0x00e3 - endpath - -path04: - pad 0x00a3 - pad 0x00a3 - pad 0x00a3 - pad 0x00a3 - pad 0x00a3 - endpath - -path05: - pad 0x00e8 - endpath - -path06: - pad 0x00ea - pad 0x00ea - pad 0x00ea - pad 0x00e8 - endpath - -path07: - pad 0x0061 - pad 0x0060 - pad 0x0065 - pad 0x005f - pad 0x005e - pad 0x005d - pad 0x005e - pad 0x005f - pad 0x0065 - pad 0x0060 - endpath - -path08: - pad 0x0038 - pad 0x002e - pad 0x000c - pad 0x002e - pad 0x0038 - pad 0x0037 - endpath - -path09: - pad 0x0033 - pad 0x0035 - pad 0x0034 - pad 0x002d - pad 0x0028 - pad 0x002a - pad 0x001d - pad 0x002a - pad 0x0028 - pad 0x002d - pad 0x0034 - pad 0x0035 - endpath - -path10: - pad 0x0047 - pad 0x0046 - pad 0x0047 - endpath - -path11: - pad 0x0034 - pad 0x0043 - pad 0x0041 - pad 0x0051 - pad 0x0041 - pad 0x0043 - pad 0x0034 - endpath - -path12: - pad 0x0061 - pad 0x0060 - pad 0x0066 - pad 0x0062 - pad 0x0063 - pad 0x0064 - pad 0x0063 - pad 0x0062 - pad 0x0066 - pad 0x0060 - endpath - -path13: - pad 0x00da - pad 0x00d7 - pad 0x00d7 - pad 0x00d6 - pad 0x00d9 - pad 0x00d5 - pad 0x00d4 - pad 0x00db - pad 0x00de - pad 0x00d3 - endpath - -.macro chicago_car_do_animation object animation - show_object \object - set_object_flag_bank1 \object, OBJECTFLAG1_04000000 - set_object_flag_bank2 \object, OBJECTFLAG2_00000010 - object_do_animation \animation, \object, 0x04ff, 0xff -.endm - -.macro chicago_wait_for_camera - beginloop 0x05 - if_camera_animating /*goto*/ 0x03 - goto_next 0x04 - label 0x03 - if_controller_button_pressed /*goto*/ 0x04 - goto_first 0x05 - label 0x04 -.endm - -func0401_3ae8: - set_stage_flag STAGEFLAG_TRIGGER_INTRO - if_controller_button_pressed /*goto*/ 0x00 - camera_movement 0x00cf - set_music_track MUSIC_CHICAGO_INTRO - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - - chicago_car_do_animation OBJ_CAR1, 0x00d6 - chicago_car_do_animation OBJ_CAR2, 0x00d7 - chicago_car_do_animation OBJ_CAR3, 0x00d8 - chicago_car_do_animation OBJ_CAR4, 0x00d5 - - set_chr_flag_bank3 CHR_CIA1, CHRFLAG3_HIDDEN - fade_to_color 0x000000ff, 0 - fade_to_color 0x00000000, 90 - - chicago_wait_for_camera - - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - hide_object OBJ_CAR1 - hide_object OBJ_CAR2 - hide_object OBJ_CAR3 - hide_object OBJ_CAR4 - unset_chr_flag_bank3 CHR_CIA1, CHRFLAG3_HIDDEN - label 0x00 - return - endfunction - -func0402_3bb4: - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - if_controller_button_pressed /*goto*/ 0x00 - camera_movement 0x00d0 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - - chicago_car_do_animation OBJ_CAR1, 0x00dc - chicago_car_do_animation OBJ_CAR2, 0x00dd - chicago_car_do_animation OBJ_CAR4, 0x00d9 - chicago_car_do_animation OBJ_CAR5, 0x00db - - set_chr_flag_bank3 CHR_CIA1, CHRFLAG3_HIDDEN - - chicago_wait_for_camera - - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - hide_object OBJ_CAR1 - hide_object OBJ_CAR2 - hide_object OBJ_CAR4 - hide_object OBJ_CAR5 - unset_chr_flag_bank3 CHR_CIA1, CHRFLAG3_HIDDEN - label 0x00 - return - endfunction - -func0403_3c74: - if_controller_button_pressed /*goto*/ 0x00 - camera_movement 0x00d1 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - show_object OBJ_CAR4 - set_object_flag_bank1 OBJ_CAR4, OBJECTFLAG1_04000000 - set_object_flag_bank2 OBJ_CAR4, OBJECTFLAG2_00000010 - object_do_animation 0x00de, OBJ_CAR4, 0x04ff, 0xff - set_chr_flag_bank3 CHR_CIA1, CHRFLAG3_HIDDEN - - set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_JOANNA, WEAPON_FALCON2_SCOPE, WEAPON_NONE - - chicago_wait_for_camera - - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - hide_object OBJ_CAR4 - unset_chr_flag_bank3 CHR_CIA1, CHRFLAG3_HIDDEN - label 0x00 - return - endfunction - -func0404_3ce0: - show_object OBJ_WIREFENCE - set_object_flag_bank1 OBJ_WIREFENCE, OBJECTFLAG1_04000000 - set_object_flag_bank2 OBJ_WIREFENCE, OBJECTFLAG2_00000010 - object_do_animation 0x0470, OBJ_WIREFENCE, 0x01ff, 0xff - - if_controller_button_pressed /*goto*/ 0x00 - camera_movement 0x00e0 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x00e1, -1, -1, 0x0600, CHR_JOANNA, 4 - set_chr_flag_bank3 CHR_CIA1, CHRFLAG3_HIDDEN - - chicago_wait_for_camera - - unset_chr_flag_bank3 CHR_CIA1, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - label 0x00 - return - endfunction - -func0405_3d50: - camera_movement 0x00d2 - cmd0175 60 - if_controller_button_pressed /*goto*/ 0x00 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x00df, -1, -1, 0x0600, CHR_JOANNA, 4 - set_chr_flag_bank3 CHR_CIA1, CHRFLAG3_HIDDEN - - restart_timer - - beginloop 0x2d - if_controller_button_pressed /*goto*/ 0x2f - if_timer_gt 480, /*goto*/ 0x04 - endloop 0x2d - - label 0x04 - set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE - - beginloop 0x2f - if_controller_button_pressed /*goto*/ 0x04 - if_timer_gt 910, /*goto*/ 0x04 - endloop 0x2f - - label 0x04 - chicago_wait_for_camera - - label 0x00 - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - mute_channel CHANNEL_7 - unset_chr_flag_bank3 CHR_CIA1, CHRFLAG3_HIDDEN - - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x00df, -2, -1, 0x0600, CHR_JOANNA, 2 - - restart_default_music - reset_ambience - set_stage_flag STAGEFLAG_INTRO_FINISHED - enter_firstperson - set_function CHR_SELF, GFUNC_IDLE - endfunction - -unregistered_function1: - set_return_function CHR_SELF, GFUNC_END_CINEMA - set_function CHR_SELF, 0x0401 - endfunction - -unregistered_function2: - set_return_function CHR_SELF, GFUNC_END_CINEMA - set_function CHR_SELF, 0x0402 - endfunction - -unregistered_function3: - set_return_function CHR_SELF, GFUNC_END_CINEMA - set_function CHR_SELF, 0x0403 - endfunction - -unregistered_function4: - set_return_function CHR_SELF, GFUNC_END_CINEMA - set_function CHR_SELF, 0x0404 - endfunction - -unregistered_function5: - set_function CHR_SELF, 0x0405 - endfunction - -func040a_intro: - set_return_function CHR_SELF, 0x0406 - set_function CHR_SELF, 0x0401 - endfunction - -func0406_3e54: - set_return_function CHR_SELF, 0x0407 - set_function CHR_SELF, 0x0402 - endfunction - -func0407_3e60: - set_return_function CHR_SELF, 0x0408 - set_function CHR_SELF, 0x0403 - endfunction - -func0408_3e6c: - set_return_function CHR_SELF, 0x0409 - set_function CHR_SELF, 0x0404 - endfunction - -func0409_3e78: - set_function CHR_SELF, 0x0405 - endfunction - -func100f_check_mine: - if_difficulty_lt DIFF_SA, /*goto*/ 0x0a - - // SA and PA - yield - beginloop 0x08 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_has_object CHR_P1P2, OBJ_BRIEFCASE1, /*goto*/ 0x03 - reloop 0x08 - - label 0x03 - set_target_chr CHR_P1P2 - - beginloop 0x11 - dprint "MAIN\n" - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x29 - if_chr_dying TARGET_CHR, /*goto*/ 0x29 - if_chr_unloaded TARGET_CHR, /*goto*/ 0x29 - if_ammo_quantity_lt TARGET_CHR, AMMOTYPE_REMOTE_MINE, 1, /*goto*/ 0x03 - endloop 0x11 - - label 0x29 - label 0x54 - yield - dprint "DEAD\n" - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x28 - if_chr_dying TARGET_CHR, /*goto*/ 0x28 - if_chr_unloaded TARGET_CHR, /*goto*/ 0x28 - yield - dprint "NOTDEAD\n" - if_ammo_quantity_lt CHR_JOANNA, AMMOTYPE_REMOTE_MINE, 1, /*goto*/ 0x29 - reloop 0x08 - - label 0x29 - if_ammo_quantity_lt CHR_VELVET, AMMOTYPE_REMOTE_MINE, 1, /*goto*/ 0x29 - endloop 0x08 - - label 0x29 - dprint "NOAMMO\n" - label 0x28 - dprint "STILLDEAD\n" - goto_first 0x54 - - label 0x03 - dprint "FAIL\n" - yield - yield - yield - yield - yield - if_weapon_thrown WEAPON_REMOTEMINE, /*goto*/ 0x04 - goto_first 0x11 - - label 0x04 - restart_timer - - beginloop 0x05 - if_weapon_thrown_on_object WEAPON_REMOTEMINE, OBJ_FIREDOORTOP, /*goto*/ 0x06 - if_weapon_thrown_on_object WEAPON_REMOTEMINE, OBJ_FIREDOORBOTTOM, /*goto*/ 0x08 - if_timer_gt 120, /*goto*/ 0x07 - endloop 0x05 - - label 0x08 - unset_eeprom_flag EEPROMFLAG_G5_MINE - goto_next 0x03 - label 0x06 - set_eeprom_flag EEPROMFLAG_G5_MINE - - label 0x03 - set_stage_flag STAGEFLAG_MINE_PLACED - message CHR_P1P2, 0x320f // "Mine placed correctly." - - // Check that the player hasn't detonated the mine - beginloop 0x2d - if_weapon_thrown_on_object WEAPON_REMOTEMINE, OBJ_FIREDOORTOP, /*goto*/ 0x03 - if_weapon_thrown_on_object WEAPON_REMOTEMINE, OBJ_FIREDOORBOTTOM, /*goto*/ 0x03 - goto_next 0x04 - label 0x03 - endloop 0x2d - - label 0x04 - set_stage_flag STAGEFLAG_MINE_WASTED - message CHR_P1P2, 0x3248 // "Remote Mine has been wasted." - set_function CHR_SELF, GFUNC_IDLE - - label 0x07 - set_stage_flag STAGEFLAG_MINE_WASTED - message CHR_P1P2, 0x3210 // "Mine placed incorrectly." - - label 0x0a - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1026_uplink: - beginloop 0x10 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, OBJ_TAXI, /*goto*/ 0x03 - reloop 0x10 - - label 0x03 - if_stage_flag_eq STAGEFLAG_TAXI_REPROGRAMMED, FALSE, /*goto*/ 0x04 - message CHR_P1P2, 0x3211 // "Virus already downloaded into NavComp." - reloop 0x10 - - label 0x04 - if_chr_weapon_equipped CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ 0x03 - message CHR_P1P2, 0x3212 // "Hovcab is unresponsive - need Reprogrammer." - reloop 0x10 - - // Uplinking - label 0x03 - message CHR_P1P2, 0x3213 // "Accessing hovercab navigation systems." - assign_sound 0x0456, CHANNEL_7 - control_sound_from_object CHANNEL_7, OBJ_TAXI, TRUE - restart_timer - - beginloop 0x05 - if_timer_gt 300, /*goto*/ 0x04 - if_chr_distance_to_pad_gt CHR_P1P2, 350, 0x00a3, /*goto*/ 0x06 - endloop 0x05 - - label 0x04 - message CHR_P1P2, 0x3214 // "Virus downloaded successfully." - yield - message CHR_P1P2, 0x3215 // "Hovercab navigation systems reprogrammed." - mute_channel CHANNEL_7 - assign_sound 0x01c1, CHANNEL_7 - control_sound_from_object CHANNEL_7, OBJ_TAXI, TRUE - yield - set_stage_flag STAGEFLAG_TAXI_REPROGRAMMED - set_function CHR_SELF, GFUNC_IDLE - - // Moved away while uplinking - label 0x06 - message CHR_P1P2, 0x3216 // "Connection to hovercab broken." - mute_channel CHANNEL_7 - yield - yield - yield - assign_sound 0x0457, CHANNEL_4 - play_sound_from_object CHANNEL_4, OBJ_TAXI, 0x012c, 0x0190 - restart_timer - - beginloop 0x1d - if_timer_gt 120, /*goto*/ 0x04 - endloop 0x1d - - label 0x04 - mute_channel CHANNEL_4 - endloop 0x10 - - endfunction - -func040d_limo: - begin_hovercar_path 0x02 - set_vehicle_speed SPEED_WALK, 0 - if_difficulty_lt DIFF_SA, /*goto*/ 0x03 - - // SA and PA - set_chr_health CHR_SELF, 34464 - goto_next 0x04 - - // A - label 0x03 - set_chr_health CHR_SELF, 65456 - - // All difficulties - label 0x04 - - // Wait for flag set, provided limo not destroyed - beginloop 0x05 - if_object_in_good_condition OBJ_LIMO, /*goto*/ 0x03 - set_function CHR_SELF, GFUNC_IDLE - - label 0x03 - if_stage_flag_eq STAGEFLAG_LIMO_READY_TO_LEAVE, TRUE, /*goto*/ 0x04 - endloop 0x05 - - label 0x04 - - // Wait until not in room - beginloop 0x2d - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0002, /*goto*/ 0x03 - if_chr_in_room CHR_P1P2, 0x00, 0x0010, /*goto*/ 0x03 - if_chr_in_room CHR_P1P2, 0x00, 0x0012, /*goto*/ 0x03 - goto_next 0x04 - label 0x03 - endloop 0x2d - - label 0x04 - set_object_flag_bank1 OBJ_LIMO, OBJECTFLAG1_04000000 - set_object_flag_bank2 OBJ_LIMO, OBJECTFLAG2_00000010 - object_do_animation 0x02d6, OBJ_LIMO, 0x04ff, 0xff - - assign_sound 0x01b4, CHANNEL_1 - play_sound_from_object CHANNEL_1, OBJ_LIMO, 0x0960, 0x0c80 - if_stage_flag_eq STAGEFLAG_TRACERBUG_PLACED, TRUE, /*goto*/ 0x03 - if_difficulty_lt DIFF_PA, /*goto*/ 0x03 - set_stage_flag STAGEFLAG_LIMO_ESCAPED - message CHR_JOANNA, 0x321c // "DataDyne limo has escaped." - label 0x03 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040c_taxi: - if_difficulty_lt DIFF_SA, /*goto*/ 0x03 - - // SA and PA - set_chr_health CHR_SELF, 34464 - goto_next 0x04 - - // A - label 0x03 - set_chr_health CHR_SELF, 65456 - begin_hovercar_path 0x04 - set_vehicle_speed SPEED_WALK, 0 - - // All difficulties - label 0x04 - - beginloop 0x05 - if_stage_flag_eq STAGEFLAG_TRIGGER_TAXI_LEAVE, TRUE, /*goto*/ 0x04 - label 0x03 - endloop 0x05 - - // Check taxi healthy - label 0x04 - if_object_in_good_condition OBJ_TAXI, /*goto*/ 0x03 - set_function CHR_SELF, GFUNC_IDLE - - // Take off - label 0x03 - assign_sound 0x8000, CHANNEL_0 - play_sound_from_object CHANNEL_0, OBJ_TAXI, 0x0960, 0x0c80 - object_do_animation 0x0168, OBJ_TAXI, 0x04ff, 0xff - set_object_flag_bank1 OBJ_TAXI, OBJECTFLAG1_04000000 - - // Wait for flag - beginloop 0x06 - if_stage_flag_eq STAGEFLAG_TAXI_ALMOST_READY_TO_CRASH, TRUE, /*goto*/ 0x04 - endloop 0x06 - - // Check taxi healthy - label 0x04 - if_object_in_good_condition OBJ_TAXI, /*goto*/ 0x03 - set_function CHR_SELF, GFUNC_IDLE - - label 0x03 - set_stage_flag STAGEFLAG_TAXI_READY_TO_CRASH - - // Wait for another flag - beginloop 0x07 - if_stage_flag_eq STAGEFLAG_ROBOT_NEAR_CORNER, TRUE, /*goto*/ 0x04 - endloop 0x07 - - label 0x04 - label 0x38 - dprint "GO FOR CRASH\n" - set_stage_flag STAGEFLAG_TRIGGER_CRASH - yield - mute_channel CHANNEL_0 - object_do_animation 0x0169, OBJ_TAXI, 0x04ff, 0xff - label 0x0a - set_function CHR_SELF, GFUNC_IDLE - endfunction - -.macro tracerbug_logic chr chr2 - set_follow_chr \chr - if_difficulty_lt DIFF_PA, /*goto*/ 0x54 - goto_next 0x04 - - // A or SA - label 0x54 - set_function CHR_SELF, GFUNC_IDLE - - // PA - label 0x04 - yield - - beginloop 0x11 - dprint "BUG C1\n" - set_target_chr \chr2 - if_chr_death_animation_finished \chr, /*goto*/ 0x2f - if_chr_dying \chr, /*goto*/ 0x2f - if_chr_unloaded \chr, /*goto*/ 0x2f - if_ammo_quantity_lt \chr, AMMOTYPE_BUG, 1, /*goto*/ 0x03 - label 0x04 - endloop 0x11 - - // Dead - not sure why it checks this a second time - beginloop 0x2f - dprint "BUG DO\n" - set_target_chr \chr2 - if_chr_death_animation_finished \chr, /*goto*/ 0x30 - if_chr_dying \chr, /*goto*/ 0x30 - if_chr_unloaded \chr, /*goto*/ 0x30 - label 0x31 - yield - yield - yield - yield - yield - goto_first 0x11 - - label 0x30 - endloop 0x2f - - // Alive but has no bug - label 0x03 - dprint "BUG C2\n" - yield - if_weapon_thrown WEAPON_TRACERBUG, /*goto*/ 0x04 - goto_first 0x03 - - // Check limo healthy - label 0x04 - if_object_in_good_condition OBJ_LIMO, /*goto*/ 0x04 - set_function CHR_SELF, GFUNC_IDLE - - label 0x04 - restart_timer - - beginloop 0x05 - dprint "BUG C3\n" - if_weapon_thrown_on_object WEAPON_TRACERBUG, OBJ_LIMO, /*goto*/ 0x06 - if_timer_gt 120, /*goto*/ 0x07 - endloop 0x05 - - label 0x06 - set_stage_flag STAGEFLAG_TRACERBUG_PLACED - unset_stage_flag STAGEFLAG_TRACERBUG_WASTED - message \chr, 0x3217 // "Tracer Bug placed correctly." - restart_timer - - beginloop 0x08 - dprint "BUG C4\n" - if_timer_gt 300, /*goto*/ 0x04 - goto_first 0x08 - - label 0x04 - set_stage_flag STAGEFLAG_TRACERBUG_SAFE - set_function CHR_SELF, GFUNC_IDLE - - // Bug wasted - label 0x07 - dprint "WRONG1\n" - if_stage_flag_eq STAGEFLAG_ONE_BUG_REMAINING, TRUE, /*goto*/ 0x03 - dprint "WRONG2\n" - set_stage_flag STAGEFLAG_ONE_BUG_REMAINING - set_function CHR_SELF, GFUNC_IDLE - - label 0x03 - dprint "WRONG3\n" - set_stage_flag STAGEFLAG_TRACERBUG_WASTED - message \chr, 0x3218 // "Tracer Bug placed incorrectly." - set_function CHR_SELF, GFUNC_IDLE -.endm - -func1004_tracerbug_joanna: - tracerbug_logic CHR_JOANNA, CHR_JOANNA - endfunction - -func1011_trackerbug_velvet: - yield - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x03 - goto_next 0x04 - - label 0x03 - set_stage_flag STAGEFLAG_ONE_BUG_REMAINING - set_function CHR_SELF, GFUNC_IDLE - - label 0x04 - tracerbug_logic CHR_VELVET, FOLLOW_CHR - endfunction - -func1005_check_things_destroyed: - beginloop 0x10 - // Check limo - if_stage_flag_eq STAGEFLAG_LIMO_DESTROYED, TRUE, /*goto*/ 0x03 - if_object_in_good_condition OBJ_LIMO, /*goto*/ 0x03 - set_stage_flag STAGEFLAG_LIMO_DESTROYED - mute_channel CHANNEL_1 - if_difficulty_lt DIFF_SA, /*goto*/ 0x03 - message CHR_JOANNA, 0x3219 // "Mission critical vehicle destroyed." - - // Check taxi - label 0x03 - if_stage_flag_eq STAGEFLAG_DIVERSION_CREATED, TRUE, /*goto*/ 0x03 - if_stage_flag_eq STAGEFLAG_TAXI_DESTROYED, TRUE, /*goto*/ 0x03 - if_object_in_good_condition OBJ_TAXI, /*goto*/ 0x03 - mute_channel CHANNEL_0 - set_stage_flag STAGEFLAG_TAXI_DESTROYED - message CHR_JOANNA, 0x3219 // "Mission critical vehicle destroyed." - - // Check robot - label 0x03 - if_stage_flag_eq STAGEFLAG_DIVERSION_CREATED, TRUE, /*goto*/ 0x03 - if_stage_flag_eq STAGEFLAG_ROBOT_DESTROYED, TRUE, /*goto*/ 0x03 - if_chr_dying CHR_ROBOT, /*goto*/ 0x04 - goto_next 0x03 - - label 0x04 - restart_timer - - beginloop 0x05 - if_timer_gt 120, /*goto*/ 0x04 - endloop 0x05 - - label 0x04 - set_stage_flag STAGEFLAG_ROBOT_DESTROYED - message CHR_JOANNA, 0x3219 // "Mission critical vehicle destroyed." - label 0x03 - endloop 0x10 - - endfunction - -func1006_check_for_end: - beginloop 0x05 - consider_coop_for_p1p2_chr CHR_SELF - if_objective_complete 0, /*goto*/ 0x03 - reloop 0x05 - - label 0x03 - if_objective_complete 3, /*goto*/ 0x03 - reloop 0x05 - - label 0x03 - if_difficulty_lt DIFF_SA, /*goto*/ 0x0a - if_objective_complete 2, /*goto*/ 0x03 - reloop 0x05 - - label 0x03 - if_difficulty_lt DIFF_PA, /*goto*/ 0x0a - if_objective_complete 1, /*goto*/ 0x0a - reloop 0x05 - - label 0x0a - dprint "PAD CHECK\n" - if_chr_distance_to_pad_lt CHR_P1P2, 350, 0x00a7, /*goto*/ 0x04 - endloop 0x05 - - label 0x04 - set_stage_flag STAGEFLAG_IN_ELEVATOR - dprint "IN THE ELEVATOR\n" - yield - yield - set_invincible CHR_JOANNA - revoke_control CHR_JOANNA, 4 - - // But there is no countdown timer... - hide_countdown_timer - stop_countdown_timer - - if_all_objectives_complete /*goto*/ 0x05 - - // Objectives failed - message CHR_P1P2, 0x321a // "MISSION FAILED" - label 0x03 - restart_timer - - beginloop 0x13 - if_timer_gt 280, /*goto*/ 0x12 - endloop 0x13 - - label 0x12 - end_level - set_function CHR_SELF, GFUNC_IDLE - - // Objectives complete - label 0x05 - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x03 - if_chr_dying CHR_JOANNA, /*goto*/ 0x03 - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x03 - goto_next 0x04 - - label 0x03 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x03 - if_chr_dying CHR_VELVET, /*goto*/ 0x03 - if_chr_unloaded CHR_VELVET, /*goto*/ 0x03 - goto_next 0x04 - - label 0x03 - end_level - set_function CHR_SELF, GFUNC_IDLE - - label 0x04 - set_function CHR_SELF, FUNC_OUTRO - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040d_limo_timing: - // Wait for any of the following: - // - Taxi reprogrammed - // - Tracer bug placed and robot on drain street - // - 2 minutes elapsed and robot on drain street (3 mins on Agent) - restart_timer - - beginloop 0x05 - if_stage_flag_eq STAGEFLAG_TAXI_REPROGRAMMED, TRUE, /*goto*/ 0x04 - if_stage_flag_eq STAGEFLAG_ROBOT_ON_DRAIN_STREET, TRUE, /*goto*/ 0x03 - reloop 0x05 - - label 0x03 - if_stage_flag_eq STAGEFLAG_TRACERBUG_PLACED, TRUE, /*goto*/ 0x04 - if_difficulty_gt DIFF_SA, /*goto*/ 0x07 - if_difficulty_gt DIFF_A, /*goto*/ 0x06 - - // A - 3 minute timer - if_timer_gt 10800, /*goto*/ 0x04 - reloop 0x05 - - // SA - 2 minute timer - label 0x06 - if_timer_gt 7200, /*goto*/ 0x04 - reloop 0x05 - - // PA - 2 minute timer - label 0x07 - if_timer_gt 7200, /*goto*/ 0x04 - endloop 0x05 - - // Ready to leave - label 0x04 - set_stage_flag STAGEFLAG_LIMO_READY_TO_LEAVE - dprint "LIMO READY TO GO\n" - restart_timer - - // Wait 15 seconds - beginloop 0x0a - if_timer_gt 900, /*goto*/ 0x04 - endloop 0x0a - - label 0x04 - set_stage_flag STAGEFLAG_LIMO_READY_15SEC_AGO - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040c_taxi_timing: - // Wait for both conditions - beginloop 0x07 - if_stage_flag_eq STAGEFLAG_ROBOT_ON_DRAIN_STREET, TRUE, /*goto*/ 0x03 - reloop 0x07 - - label 0x03 - if_stage_flag_eq STAGEFLAG_TAXI_REPROGRAMMED, TRUE, /*goto*/ 0x03 - endloop 0x07 - - // Wait 3.3 seconds - label 0x03 - restart_timer - - beginloop 0x05 - if_timer_gt 200, /*goto*/ 0x04 - endloop 0x05 - - label 0x04 - set_stage_flag STAGEFLAG_TRIGGER_TAXI_LEAVE - restart_timer - - // Wait 10 seconds - beginloop 0x06 - if_timer_gt 600, /*goto*/ 0x04 - endloop 0x06 - - label 0x04 - set_stage_flag STAGEFLAG_TAXI_ALMOST_READY_TO_CRASH - unset_object_flag_bank1 OBJ_TAXI, OBJECTFLAG1_04000000 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0412_cia: - set_return_function CHR_SELF, FUNC_CIA - set_onshot_function FUNC_CIA - if_chr_dying CHR_SELF, /*goto*/ 0x04 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x04 - if_chr_unloaded CHR_SELF, /*goto*/ 0x04 - goto_next 0x03 - - label 0x04 - set_function CHR_SELF, GFUNC_IDLE - - label 0x03 - if_chr_idle /*goto*/ 0x43 - if_num_times_shot_lt 1, /*goto*/ 0x10 - - // Has been shot - beginloop 0x0d - if_chr_stopped /*goto*/ 0x04 - endloop 0x0d - - label 0x04 - goto_next 0x0c - - // Unreachable - restart_timer - - // Chr is idle - beginloop 0x43 - if_saw_death 0x00, /*goto*/ 0x1d - if_shot_near_chr 0x00, /*goto*/ 0x1e - dprint "DURINGTALK\n" - if_timer_gt 180, /*goto*/ 0x04 - endloop 0x43 - - // Idle + 3 seconds - label 0x04 - if_self_flag_bankx_eq CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x54 - dprint "NOT A PATROLLER\n" - stop_chr - goto_next 0x10 - - // Patroller - label 0x54 - dprint "PAT RET\n" - start_path - - // Not shot, not a patroller, or patroller who has started his path - label 0x10 - yield - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_self_flag_bankx_eq CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x37 - call_rng - if_rand_gt 128, /*goto*/ 0x37 - label 0x2d - restart_timer - label 0x08 - stop_chr - if_self_flag_bankx_eq CHRFLAG1_DONE_SEARCH_ANIM, TRUE, BANK_1, /*goto*/ 0x03 - call_rng - if_rand_gt 128, /*goto*/ 0x03 - call_rng - if_rand_lt 64, /*goto*/ 0x50 - if_rand_lt 128, /*goto*/ 0x51 - if_rand_lt 196, /*goto*/ 0x52 - set_self_flag_bankx CHRFLAG1_DONE_SEARCH_ANIM, BANK_1 - animation ANIM_SMOKE_CIGARETTE, 0, -1, 0x100a, CHR_SELF, 2 - goto_next 0x36 - - label 0x50 - animation ANIM_SCRATCH_HEAD, 0, -1, 0x100a, CHR_SELF, 2 - goto_next 0x36 - - label 0x51 - animation ANIM_YAWN, 0, -1, 0x100a, CHR_SELF, 2 - goto_next 0x36 - - label 0x52 - animation ANIM_GRAB_CROTCH, 0, -1, 0x100a, CHR_SELF, 2 - goto_next 0x36 - - label 0x53 - animation ANIM_TWO_GUN_HOLD, 0, 100, 0x100a, CHR_SELF, 2 - goto_next 0x36 - - label 0x03 - unset_self_flag_bankx CHRFLAG1_DONE_SEARCH_ANIM, BANK_1 - cmd0049 0x003e, /*goto*/ 0x04 - set_target_pad 0x00ba - goto_next 0x03 - - label 0x04 - call_rng - if_rand_lt 64, /*goto*/ 0x50 - if_rand_lt 128, /*goto*/ 0x51 - if_rand_lt 196, /*goto*/ 0x52 - try_set_target_pad_to_something 0x08, /*goto*/ 0x03 - label 0x50 - try_set_target_pad_to_something 0x02, /*goto*/ 0x03 - label 0x51 - try_set_target_pad_to_something 0x04, /*goto*/ 0x03 - label 0x52 - try_set_target_pad_to_something 0x08, /*goto*/ 0x03 - goto_next 0x36 - - label 0x03 - go_to_target_pad SPEED_WALK - - beginloop 0x36 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_saw_death 0x00, /*goto*/ 0x1d - if_shot_near_chr 0x00, /*goto*/ 0x1e - if_target_chr_in_sight /*goto*/ 0x04 - if_chr_stopped /*goto*/ 0x35 - endloop 0x36 - - label 0x35 - goto_first 0x10 - - label 0x37 - if_saw_death 0x00, /*goto*/ 0x1d - if_shot_near_chr 0x00, /*goto*/ 0x1e - if_target_chr_in_sight /*goto*/ 0x04 - goto_first 0x10 - - label 0x04 - restart_timer - label 0x05 - yield - if_saw_death 0x00, /*goto*/ 0x1d - if_shot_near_chr 0x00, /*goto*/ 0x1e - if_chr_weapon_equipped CHR_P1P2, WEAPON_UNARMED, /*goto*/ 0x03 - goto_next 0x04 - - label 0x03 - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x03 - if_chr_distance_gt 450, /*goto*/ 0x03 - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - set_return_function CHR_SELF, FUNC_CIA - set_function CHR_SELF, GFUNC_CIVILIAN_SAY_COMMENT - - label 0x03 - if_timer_lt 600, /*goto*/ 0x03 - unset_self_flag_bankx CHRFLAG0_00002000, BANK_0 - label 0x03 - dprint "LIMO READY TO GO\n" - goto_first 0x10 - - label 0x1e - restart_timer - try_face_entity 0x0200, 0x0000, /*goto*/ 0x09 - - beginloop 0x09 - if_angle_to_target_chr_lt 10, /*goto*/ 0x04 - if_timer_gt 40, /*goto*/ 0x04 - endloop 0x09 - - // Saw a death - label 0x1d - restart_timer - animation ANIM_LOOK_AROUND_FRANTIC, 0, 193, 0x1010, CHR_SELF, 2 - - // Shot near chr, or follow through from above - beginloop 0x1e - if_timer_gt 90, /*goto*/ 0x0c - endloop 0x1e - - label 0x04 - set_group_alertness 100 - - beginloop 0x38 - if_any_chr_doing_action ACTION_COWER, /*goto*/ 0x04 - goto_next 0x03 - - // A civilian is cowering - label 0x04 - restart_timer - - beginloop 0x3a - if_timer_gt 120, /*goto*/ 0x04 - endloop 0x3a - - label 0x04 - set_self_flag_bankx CHRFLAG0_00000080, BANK_0 - set_group 0x03 - endloop 0x38 - - label 0x03 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_action ACTION_COWER, FALSE - say_quip CHR_JOANNA, 0x18, 0xff, 0x00, 0xff, 0x81, 0x00, 0x00 - animation ANIM_SURRENDER_002E, 0, 193, 0x1010, CHR_SELF, 2 - - beginloop 0x0a - if_timer_gt 120, /*goto*/ 0x0c - endloop 0x0a - - // Alerted - label 0x0c - set_action ACTION_SCAN, FALSE - if_self_flag_bankx_eq CHRFLAG0_00000080, FALSE, BANK_0, /*goto*/ 0x03 - set_group 0x04 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - label 0x03 - set_chr_alliance CHR_SELF, ALLIANCE_ALLY - cmd0145_rebuild_groups - cmd0146_rebuild_groups - try_target_chr_in_same_group /*goto*/ 0x04 - goto_next 0x0b - - label 0x03 - goto_first 0x05 - - label 0x04 - set_chr_alliance CHR_SELF, 0x80 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - try_run_to_chr FOLLOW_CHR, /*goto*/ 0x06 - - beginloop 0x06 - if_self_distance_to_chr_lt 2520, CHR_HIDDENGUY, /*goto*/ 0x03 - reloop 0x06 - - label 0x03 - if_detected_chr FOLLOW_CHR, /*goto*/ 0x04 - endloop 0x06 - - label 0x04 - set_group_alertness 100 - say_quip CHR_JOANNA, 0x19, 0xff, 0x00, 0xff, 0x81, 0x00, 0x00 - label 0x0b - set_chr_alliance CHR_SELF, 0x80 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x2d - if_self_flag_bankx_eq CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x2f - run_to_pad 0x00c8 - goto_next 0x07 - - label 0x2d - run_to_pad 0x005a - goto_next 0x07 - - label 0x2f - run_to_pad 0x0026 - label 0x07 - yield - if_chr_stopped /*goto*/ 0x04 - label 0x03 - goto_first 0x07 - - label 0x04 - - label 0x0e - animation ANIM_COWER_0229, -1, -1, 0x100a, CHR_SELF, 2 - - beginloop 0x0f - if_chr_stopped /*goto*/ 0x03 - endloop 0x0f - - label 0x03 - goto_first 0x0e - - endfunction - -func0413_bugspotter: - .set LABEL_RUN_AWAY, 0x0d - - set_alertness 255 - set_onshot_function FUNC_BUGSPOTTER - if_chr_dying CHR_SELF, /*goto*/ 0x04 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x04 - if_chr_unloaded CHR_SELF, /*goto*/ 0x04 - goto_next 0x03 - - label 0x04 - set_function CHR_SELF, GFUNC_IDLE - - label 0x03 - - // Wait until player in sight (mainly) - beginloop 0x10 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x04 - if_stage_flag_eq STAGEFLAG_LIMO_READY_TO_LEAVE, TRUE, /*goto*/ LABEL_RUN_AWAY - if_stage_flag_eq STAGEFLAG_TRACERBUG_PLACED, TRUE, /*goto*/ LABEL_RUN_AWAY - if_stage_flag_eq STAGEFLAG_TAXI_READY_TO_CRASH, TRUE, /*goto*/ LABEL_RUN_AWAY - if_object_in_good_condition OBJ_LIMO, /*goto*/ 0x03 - goto_next LABEL_RUN_AWAY - label 0x03 - endloop 0x10 - - // Player in sight - face them - label 0x04 - restart_timer - try_face_entity 0x0200, 0x0000, /*goto*/ 0x04 - - beginloop 0x09 - if_angle_to_target_chr_lt 10, /*goto*/ 0x04 - if_timer_gt 40, /*goto*/ 0x04 - endloop 0x09 - - // Make a comment - label 0x04 - if_chr_weapon_equipped CHR_P1P2, WEAPON_UNARMED, /*goto*/ 0x03 - if_chr_weapon_equipped CHR_P1P2, WEAPON_NONE, /*goto*/ 0x03 - say_quip CHR_JOANNA, 0x1a, 0xff, 0x0a, 0xff, 0x81, 0x00, 0x00 - goto_next 0x04 - label 0x03 - say_quip CHR_JOANNA, 0x17, 0xff, 0x0a, 0xff, 0x81, 0x00, 0x00 - label 0x04 - animation ANIM_TALKING_00A3, 0, -1, 0x0010, CHR_SELF, 2 - - // Looks like he spots if the tracer bug if he sees Jo within 8.3 seconds of - // the bug landing on the limo. - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_LIMO_READY_TO_LEAVE, TRUE, /*goto*/ LABEL_RUN_AWAY - if_stage_flag_eq STAGEFLAG_TAXI_READY_TO_CRASH, TRUE, /*goto*/ LABEL_RUN_AWAY - if_object_in_good_condition OBJ_LIMO, /*goto*/ 0x03 - goto_next LABEL_RUN_AWAY - - label 0x03 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x03 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x03 - goto_next 0x0a - label 0x03 - if_stage_flag_eq STAGEFLAG_TRACERBUG_SAFE, TRUE, /*goto*/ 0x0a - if_stage_flag_eq STAGEFLAG_TRACERBUG_PLACED, TRUE, /*goto*/ 0x04 - label 0x0a - if_timer_gt 500, /*goto*/ 0x03 - endloop 0x08 - - label 0x03 - if_stage_flag_eq STAGEFLAG_TRACERBUG_PLACED, TRUE, /*goto*/ LABEL_RUN_AWAY - goto_first 0x10 - - // Bug was thrown recently - label 0x04 - animation ANIM_TALKING_00A3, 0, -1, 0x0010, CHR_SELF, 2 - assign_sound 0x044a, CHANNEL_6 - play_sound_from_entity CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01 - set_stage_flag STAGEFLAG_TRACERBUG_SPOTTED - message CHR_JOANNA, 0x3243 // "Tracer Bug has been spotted." - - // Wait for talking animation to finish - beginloop 0x05 - if_stage_flag_eq STAGEFLAG_LIMO_READY_TO_LEAVE, TRUE, /*goto*/ LABEL_RUN_AWAY - if_stage_flag_eq STAGEFLAG_TAXI_READY_TO_CRASH, TRUE, /*goto*/ LABEL_RUN_AWAY - if_object_in_good_condition OBJ_LIMO, /*goto*/ 0x03 - goto_next LABEL_RUN_AWAY - label 0x03 - if_chr_stopped /*goto*/ 0x04 - endloop 0x05 - - // Find another guard and run to them - label 0x04 - try_target_chr_in_same_group /*goto*/ 0x04 - goto_next 0x0b - - label 0x04 - try_run_to_chr FOLLOW_CHR, /*goto*/ 0x06 - - // Wait until detected target guard - beginloop 0x06 - if_stage_flag_eq STAGEFLAG_LIMO_READY_TO_LEAVE, TRUE, /*goto*/ LABEL_RUN_AWAY - if_stage_flag_eq STAGEFLAG_TAXI_READY_TO_CRASH, TRUE, /*goto*/ LABEL_RUN_AWAY - if_object_in_good_condition OBJ_LIMO, /*goto*/ 0x03 - goto_next LABEL_RUN_AWAY - label 0x03 - if_detected_chr FOLLOW_CHR, /*goto*/ 0x04 - endloop 0x06 - - // Alert everyone in group - label 0x04 - set_group_alertness 100 - assign_sound 0x0467, CHANNEL_6 - play_sound_from_entity CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01 - - // No other guard to run to - label 0x0b - retreat 0x02, 0x02 - - beginloop 0x07 - if_stage_flag_eq STAGEFLAG_LIMO_READY_TO_LEAVE, TRUE, /*goto*/ LABEL_RUN_AWAY - if_stage_flag_eq STAGEFLAG_TAXI_READY_TO_CRASH, TRUE, /*goto*/ LABEL_RUN_AWAY - if_object_in_good_condition OBJ_LIMO, /*goto*/ 0x03 - goto_next LABEL_RUN_AWAY - label 0x03 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_within_units_of_sight 30, /*goto*/ 0x03 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_within_units_of_sight 30, /*goto*/ 0x03 - goto_next 0x04 - label 0x03 - goto_first 0x07 - - label 0x04 - restart_timer - - beginloop 0x0e - if_timer_gt 10, /*goto*/ 0x03 - endloop 0x0e - - label 0x03 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_within_units_of_sight 30, /*goto*/ 0x03 - goto_next 0x04 - label 0x03 - goto_first 0x07 - - label 0x04 - unset_self_flag_bank3 CHRFLAG3_KILLCOUNTABLE - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - yield - drop_gun_and_fade_out - set_function CHR_SELF, GFUNC_IDLE - - label LABEL_RUN_AWAY - jog_to_pad 0x004f - - beginloop 0x0e - if_chr_stopped /*goto*/ 0x04 - endloop 0x0e - - label 0x04 - stop_chr - set_function CHR_SELF, GFUNC_IDLE - endfunction - -.macro init_patroller pathid - set_chr_dodge_rating 2, 0x0a - set_accuracy 4 - set_reaction_speed 30 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - assign_path \pathid - start_path - set_function CHR_SELF, GFUNC_UNALERTED - - beginloop 0x04 - endloop 0x04 -.endm - -func0414_start_path07: - init_patroller 0x07 - endfunction - -func0415_start_path08: - init_patroller 0x08 - endfunction - -func0416_start_path09: - init_patroller 0x09 - endfunction - -func0417_start_path10: - init_patroller 0x0a - endfunction - -func0418_start_path11: - init_patroller 0x0b - endfunction - -/** - * This chr waits 2 seconds before starting his path. - */ -func0419_init_cia1: - restart_timer - - beginloop 0x05 - if_timer_gt 120, /*goto*/ 0x04 - endloop 0x05 - - label 0x04 - assign_path 12 - start_path - set_function CHR_SELF, FUNC_CIA - - beginloop 0x04 - endloop 0x04 - - endfunction - -func041d_fbi: - set_onshot_function FUNC_FBI - if_chr_dying CHR_SELF, /*goto*/ 0x04 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x04 - if_chr_unloaded CHR_SELF, /*goto*/ 0x04 - goto_next 0x03 - - label 0x04 - set_function CHR_SELF, GFUNC_IDLE - - label 0x03 - if_num_times_shot_lt 1, /*goto*/ 0x19 - - // Shot - wait for animation to finish - beginloop 0x05 - if_chr_stopped /*goto*/ 0x04 - endloop 0x05 - - label 0x04 - goto_next 0x17 - - // Unreachable - label 0x04 - say_quip CHR_JOANNA, 0x1b, 0xff, 0x00, 0xff, 0x81, 0x00, 0x00 - set_group_alertness 100 - goto_next 0x16 - - // Not shot - label 0x19 - set_action ACTION_SCAN, TRUE - yield - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_alertness 100, OPERATOR_LESS_THAN, /*goto*/ 0x04 - goto_next 0x16 - - label 0x04 - if_target_chr_in_sight /*goto*/ 0x18 - if_near_miss /*goto*/ 0x18 - if_num_times_shot_gt 0, /*goto*/ 0x18 - if_hears_gunfire /*goto*/ 0x16 - if_shot_near_chr 0x00, /*goto*/ 0x16 - if_saw_death 0x00, /*goto*/ 0x16 - if_dying /*goto*/ 0x16 - endloop 0x19 - - label 0x16 - if_stage_flag_eq STAGEFLAG_ALARM_SOUNDED, FALSE, /*goto*/ 0x04 - - // Draw magnum and go after player - label 0x17 - try_draw_weapon MODEL_CHRDY357, WEAPON_DY357MAGNUM, 0x10000000, /*goto*/ 0x03 - label 0x03 - set_function CHR_SELF, GFUNC_ALERTED - - label 0x04 - dprint "TRACK PLAYER\n" - try_run_to_target_chr_with_hand_up /*goto*/ 0x06 - - beginloop 0x06 - if_chr_distance_lt 500, /*goto*/ 0x18 - if_target_chr_in_sight /*goto*/ 0x18 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x18 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - endloop 0x06 - - label 0x18 - if_stage_flag_eq STAGEFLAG_ALARM_SOUNDED, FALSE, /*goto*/ 0x04 - try_draw_weapon MODEL_CHRDY357, WEAPON_DY357MAGNUM, 0x10000000, /*goto*/ 0x03 - label 0x03 - set_function CHR_SELF, GFUNC_ALERTED - - label 0x04 - restart_timer - try_face_entity 0x0200, 0x0000, /*goto*/ 0x0d - - beginloop 0x0d - if_angle_to_target_chr_lt 10, /*goto*/ 0x04 - if_timer_gt 40, /*goto*/ 0x04 - endloop 0x0d - - label 0x04 - say_quip CHR_JOANNA, 0x1b, 0xff, 0x00, 0xff, 0x81, 0x00, 0x00 - animation 0x0266, 0, 193, 0x0010, CHR_SELF, 2 - - beginloop 0x0e - if_difficulty_lt DIFF_SA, /*goto*/ 0x03 - if_chr_propsoundcount_zero CHR_SELF, /*goto*/ 0x04 - label 0x03 - if_chr_stopped /*goto*/ 0x04 - endloop 0x0e - - label 0x04 - dprint "CREATED WEAP\n" - try_draw_weapon MODEL_CHRDY357, WEAPON_DY357MAGNUM, 0x10000000, /*goto*/ 0x04 - label 0x04 - yield - set_stage_flag STAGEFLAG_ALARM_SOUNDED - activate_alarm - dprint "CREATED WEAP\n" - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -.macro check_cia_dead chr - beginloop 0x10 - if_chr_dying \chr, /*goto*/ 0x05 - endloop 0x10 - - // Unreachable - label 0x03 - set_function CHR_SELF, GFUNC_IDLE - - label 0x05 - set_stage_flag STAGEFLAG_CIVILIAN_DEAD - message CHR_JOANNA, 0x321d // "Mission failed - unacceptable civilian casualties." - set_function CHR_SELF, GFUNC_IDLE -.endm - -func1009_check_cia1_dead: - check_cia_dead CHR_CIA1 - endfunction - -/** - * This guy is allowed to be killed once he has a certain flag. - */ -func100a_check_cia2_dead: - beginloop 0x10 - if_chr_flag_bankx CHR_CIA2, CHRFLAG0_00002000, BANK_0, /*goto*/ 0x03 - if_chr_dying CHR_CIA2, /*goto*/ 0x05 - endloop 0x10 - - // Stop checking this chr - label 0x03 - set_function CHR_SELF, GFUNC_IDLE - - label 0x05 - set_stage_flag STAGEFLAG_CIVILIAN_DEAD - message CHR_JOANNA, 0x321d // "Mission failed - unacceptable civilian casualties." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100b_check_cia3_dead: - check_cia_dead CHR_CIA3 - endfunction - -func100c_check_cia4_dead: - check_cia_dead CHR_CIA4 - endfunction - -func041b_init_robot: - set_accuracy 40 - set_shield 100 - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_10000000 - set_function CHR_SELF, FUNC_ROBOT - endfunction - -func041a_robot: - set_self_flag_bank3 CHRFLAG3_00040000 - set_chr_health CHR_SELF, 1 - if_chr_dying CHR_SELF, /*goto*/ 0x0c - assign_path 0 - start_path - - beginloop 0x02 - set_target_chr CHR_HIDDENGUY - if_something_chicago_robot /*goto*/ 0x03 - unset_stage_flag STAGEFLAG_ROBOT_NEAR_HOME - goto_next 0x04 - - label 0x03 - set_stage_flag STAGEFLAG_ROBOT_NEAR_HOME - - label 0x04 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_stage_flag_eq STAGEFLAG_TRIGGER_CRASH, TRUE, /*goto*/ 0x01 - if_target_chr_in_sight /*goto*/ 0x08 - call_rng - if_rand_gt 5, /*goto*/ 0x03 - if_sound_finished CHANNEL_5, /*goto*/ 0x04 - goto_next 0x03 - - label 0x04 - call_rng - if_rand_lt 86, /*goto*/ 0x06 - if_rand_lt 172, /*goto*/ 0x07 - assign_sound 0x046a, CHANNEL_5 - play_sound_from_entity CHANNEL_5, CHR_SELF, 0x0bb8, 0x1770, 0x01 - goto_next 0x03 - - label 0x06 - assign_sound 0x046b, CHANNEL_5 - play_sound_from_entity CHANNEL_5, CHR_SELF, 0x0bb8, 0x1770, 0x01 - goto_next 0x03 - - label 0x07 - assign_sound 0x046c, CHANNEL_5 - play_sound_from_entity CHANNEL_5, CHR_SELF, 0x0bb8, 0x1770, 0x01 - label 0x03 - - if_path_started /*goto*/ 0x03 - start_path - label 0x03 - reloop 0x02 - - label 0x08 - restart_timer - stop_chr - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x05 - play_sound 0x1aeb, -1 - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - label 0x05 - try_unset_chr_flag_bank3_02000000 CHR_SELF, /*goto*/ 0x03 - goto_next 0x05 - - label 0x03 - if_self_flag_bankx_eq CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x05 - play_sound 0x1aec, -1 - set_self_flag_bankx CHRFLAG0_00004000, BANK_0 - - beginloop 0x05 - set_target_chr CHR_HIDDENGUY - if_something_chicago_robot /*goto*/ 0x03 - unset_stage_flag STAGEFLAG_ROBOT_NEAR_HOME - goto_next 0x04 - label 0x03 - set_stage_flag STAGEFLAG_ROBOT_NEAR_HOME - label 0x04 - set_target_chr CHR_P1P2 - if_stage_flag_eq STAGEFLAG_TRIGGER_CRASH, TRUE, /*goto*/ 0x01 - if_timer_gt 120, /*goto*/ 0x04 - if_self_flag_bankx_eq CHRFLAG0_00002000, FALSE, BANK_0, /*goto*/ 0x2a - if_target_chr_in_sight /*goto*/ 0x03 - label 0x2a - endloop 0x05 - - label 0x03 - set_target_chr CHR_P1P2 - restart_timer - try_aim_and_shoot_thing1 0x0200, 0x0000, /*goto*/ 0x09 - reloop 0x02 - - beginloop 0x09 - unset_stage_flag STAGEFLAG_ROBOT_NEAR_HOME - set_target_chr CHR_P1P2 - if_stage_flag_eq STAGEFLAG_TRIGGER_CRASH, TRUE, /*goto*/ 0x01 - if_timer_gt 60, /*goto*/ 0x04 - if_chr_stopped /*goto*/ 0x04 - endloop 0x09 - - label 0x04 - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - start_path - endloop 0x02 - - label 0x0c - assign_sound 0x1aec, CHANNEL_6 - play_sound_from_entity CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01 - set_function CHR_SELF, GFUNC_IDLE - - label 0x01 - label 0x04 - label 0x38 - set_chr_flag_bank3 CHR_ROBOT, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_ROBOT, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_ROBOT, CHRFLAG2_00020000 - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank2 CHR_SELF, CHRFLAG2_10000000 - set_function CHR_ROBOT, GFUNC_IDLE - set_shield 0 - animation 0x016a, 0, -1, 0x0600, CHR_SELF, 4 - - beginloop 0x2d - dprint "PART 4\n" - if_chr_stopped /*goto*/ 0x04 - goto_first 0x2d - - label 0x04 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func041e_sealer1: - .set LABEL_ALERTED, 0x18 - - set_chr_dodge_rating 2, 0x0a - set_accuracy 4 - set_reaction_speed 30 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_onshot_function GFUNC_IDLE - - beginloop 0x19 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_stage_flag_eq STAGEFLAG_CRASH_FINISHED, TRUE, /*goto*/ 0x03 - if_alertness 100, OPERATOR_LESS_THAN, /*goto*/ 0x04 - goto_next LABEL_ALERTED - - label 0x04 - if_target_chr_in_sight /*goto*/ LABEL_ALERTED - if_near_miss /*goto*/ LABEL_ALERTED - if_num_times_shot_gt 0, /*goto*/ LABEL_ALERTED - if_hears_gunfire /*goto*/ LABEL_ALERTED - if_shot_near_chr 0x00, /*goto*/ LABEL_ALERTED - if_saw_death 0x00, /*goto*/ LABEL_ALERTED - if_dying /*goto*/ LABEL_ALERTED - endloop 0x19 - - // Crash happened - label 0x03 - unset_chr_flag_bank2 CHR_SELF, CHRFLAG2_00000400 - jog_to_pad 0x00c4 - set_function CHR_SEALER2, FUNC_JOG_TO_ACCIDENT - set_function CHR_SEALER3, FUNC_JOG_TO_ACCIDENT - set_function CHR_SEALER4, FUNC_JOG_TO_ACCIDENT - - beginloop 0x0d - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x03 - if_chr_stopped /*goto*/ 0x04 - endloop 0x0d - - // At crash site - label 0x04 - restart_timer - - beginloop 0x0c - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x03 - if_timer_gt 120, /*goto*/ 0x04 - endloop 0x0c - - label 0x03 - set_function CHR_SELF, GFUNC_UNALERTED - - // Conversation - label 0x04 - assign_sound 0x814b, CHANNEL_6 - play_sound_from_entity CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01 - animation ANIM_TALKING_0098, -1, -1, 0x0200, CHR_SELF, 2 - restart_timer - - beginloop 0x07 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x04 - if_timer_gt 120, /*goto*/ 0x03 - endloop 0x07 - - label 0x03 - assign_sound 0x044f, CHANNEL_6 - play_sound_from_entity CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01 - animation ANIM_TALKING_0231, -1, -1, 0x0200, CHR_SEALER1, 2 - animation ANIM_TWO_GUN_HOLD, -1, -1, 0x0200, CHR_SELF, 2 - - beginloop 0x08 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x04 - if_sound_finished CHANNEL_6, /*goto*/ 0x03 - goto_first 0x08 - - label 0x03 - assign_sound 0x0450, CHANNEL_6 - play_sound_from_entity CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01 - animation ANIM_TALKING_0233, -1, -1, 0x0200, CHR_SEALER3, 2 - animation ANIM_TWO_GUN_HOLD, -1, -1, 0x0200, CHR_SEALER1, 2 - restart_timer - - beginloop 0x09 - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x04 - if_timer_gt 180, /*goto*/ 0x03 - goto_first 0x09 - - label 0x03 - assign_sound 0x0451, CHANNEL_6 - play_sound_from_entity CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01 - animation ANIM_TALKING_0232, -1, -1, 0x0200, CHR_SEALER1, 2 - animation ANIM_TWO_GUN_HOLD, -1, -1, 0x0200, CHR_SEALER3, 2 - restart_timer - - beginloop 0x0a - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x04 - if_timer_gt 120, /*goto*/ 0x03 - goto_first 0x0a - - label 0x03 - assign_sound 0x0452, CHANNEL_6 - play_sound_from_entity CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01 - animation ANIM_TALKING_0234, -1, -1, 0x0200, CHR_SEALER3, 2 - animation ANIM_TWO_GUN_HOLD, -1, -1, 0x0200, CHR_SEALER1, 2 - - beginloop 0x0b - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x04 - if_shot_near_chr 0x00, /*goto*/ 0x04 - if_sound_finished CHANNEL_6, /*goto*/ 0x04 - endloop 0x0b - - label 0x04 - set_function CHR_SELF, GFUNC_UNALERTED - - // Alerted - seal elevator - label LABEL_ALERTED - label 0x04 - close_door 0x10 - close_door 0x11 - lock_door 0x10, 0x02 - lock_door 0x11, 0x02 - set_stage_flag STAGEFLAG_ELEVATOR_SEALED - assign_sound 0x0469, CHANNEL_6 - play_sound_from_entity CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01 - message CHR_JOANNA, 0x3221 // "Elevator access sealed." - animation ANIM_STANDING_TYPE_ONE_HAND, 0, 193, 0x1010, CHR_SELF, 2 - - beginloop 0x06 - if_chr_stopped /*goto*/ 0x04 - goto_first 0x06 - - label 0x04 - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -func100d_spawn_alarm_responders: - restart_timer - beginloop 0x05 - if_stage_flag_eq STAGEFLAG_ALARM_SOUNDED, TRUE, /*goto*/ 0x03 - endloop 0x05 - - label 0x03 - restart_timer - play_sound 0x7af0, -1 // "Attention all personnel" - - beginloop 0x1d - if_timer_gt 200, /*goto*/ 0x03 - endloop 0x1d - - label 0x03 - restart_timer - play_sound 0x7af1, -1 // "Locate and apprehend fugitive" - - beginloop 0x1e - if_timer_gt 120, /*goto*/ 0x03 - endloop 0x1e - - label 0x03 - play_x_music CHANNEL_10, 60 - goto_next 0x04 - - // When the alarm sounds, there are 4 groups of people who respond. - // Each group has 4 guards, and the entire group must be dead before the - // next group is spawned. There is a 15 second delay between groups. - // Each group spawns at a different location. - - .macro spawn_group pad - try_spawn_chr BODY_G5_SWAT_GUARD, HEAD_RANDOM, \pad, FUNC_ALARM_RESPONDER, 0x00000200, /*goto*/ 0x04 - label 0x04 - yield - yield - yield - yield - yield - try_spawn_chr BODY_G5_SWAT_GUARD, HEAD_RANDOM, \pad, FUNC_ALARM_RESPONDER, 0x00000200, /*goto*/ 0x04 - label 0x04 - yield - yield - yield - yield - yield - try_spawn_chr BODY_G5_SWAT_GUARD, HEAD_RANDOM, \pad, FUNC_ALARM_RESPONDER, 0x00000200, /*goto*/ 0x04 - label 0x04 - yield - yield - yield - yield - yield - try_spawn_chr BODY_G5_SWAT_GUARD, HEAD_RANDOM, \pad, FUNC_ALARM_RESPONDER, 0x00000200, /*goto*/ 0x04 - label 0x04 - .endm - - label 0x07 - unlock_door 0x14, 0x04 - restart_timer - if_stage_flag_eq STAGEFLAG_ALARM_GROUP1_DEAD, TRUE, /*goto*/ 0x08 - - // Spawn group 1 - spawn_group 0x0067 - goto_next 0x06 - - // Group 1 is already done - label 0x08 - unlock_door 0x15, 0x04 - unlock_door 0x16, 0x04 - if_stage_flag_eq STAGEFLAG_ALARM_GROUP2_DEAD, TRUE, /*goto*/ 0x09 - - // Spawn group 2 - spawn_group 0x00c2 - goto_next 0x06 - - // Groups 1 and 2 are done - label 0x09 - unlock_door 0x17, 0x04 - unlock_door 0x18, 0x04 - if_stage_flag_eq STAGEFLAG_ALARM_GROUP3_DEAD, TRUE, /*goto*/ 0x0a - - // Spawn group 3 - spawn_group 0x00c3 - goto_next 0x06 - - // Groups 1, 2 and 3 are done - // Spawn group 3 - label 0x0a - unlock_door 0x19, 0x04 - spawn_group 0x00c1 - goto_next 0x06 - - // Wait until group is dead - beginloop 0x06 - if_all_chrs_in_group_are_dead GROUP_ALARM_RESPONDER, /*goto*/ 0x04 - endloop 0x06 - - // Set this group as dead - label 0x04 - if_stage_flag_eq STAGEFLAG_ALARM_GROUP1_DEAD, TRUE, /*goto*/ 0x04 - set_stage_flag STAGEFLAG_ALARM_GROUP1_DEAD - goto_next 0x03 - - label 0x04 - if_stage_flag_eq STAGEFLAG_ALARM_GROUP2_DEAD, TRUE, /*goto*/ 0x04 - set_stage_flag STAGEFLAG_ALARM_GROUP2_DEAD - goto_next 0x03 - - label 0x04 - if_stage_flag_eq STAGEFLAG_ALARM_GROUP3_DEAD, TRUE, /*goto*/ 0x04 - set_stage_flag STAGEFLAG_ALARM_GROUP3_DEAD - goto_next 0x03 - - label 0x04 - set_function CHR_SELF, GFUNC_IDLE - - // Wait 15 seconds - label 0x03 - restart_timer - - beginloop 0x2d - if_timer_gt 900, /*goto*/ 0x04 - endloop 0x2d - - // Loop again to trigger next group - label 0x04 - goto_first 0x07 - - endfunction - -func041f_alarm_responder: - set_self_flag_bankx CHRFLAG1_00080000, BANK_1 - set_self_flag_bankx CHRFLAG0_80000000, BANK_0 - set_chr_dodge_rating 2, 0x0a - set_accuracy 14 - set_reaction_speed 20 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - try_draw_weapon MODEL_CHRDY357, WEAPON_DY357MAGNUM, 0x00000000, /*goto*/ 0x04 - label 0x04 - set_chr_alliance CHR_SELF, 0x20 - set_group GROUP_ALARM_RESPONDER - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - set_self_flag_bankx CHRFLAG0_00008000, BANK_0 - set_alertness 90 - set_self_flag_bank3 CHRFLAG3_00000200 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_SEARCH_FOR_PLAYER - endfunction - -func0420_jog_to_accident: - unset_chr_flag_bank2 CHR_SELF, CHRFLAG2_00000400 - label 0x03 - go_to_target_pad SPEED_JOG - - // This is a bit weird. I'm pretty sure the set_function causes this - // function to stop. But because the guard has been issued the - // go_to_target_pad command, he'll continue to do so while running the - // unalerted function. - label 0x0d - set_function CHR_SELF, GFUNC_UNALERTED - yield - if_chr_stopped /*goto*/ 0x04 - goto_first 0x0d - - label 0x04 - endfunction - -func040a_intro_from_gameplay: - set_function CHR_SELF, 0x040a - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101f_setup_robot_noise: - play_sound_from_object2 CHANNEL_2, CHR_ROBOT, 0x80b9, 0x00, 0x02 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Not sure why it would give briefcases to the players. - * Note this is a coop/counterop only function. - */ -func1400_give_briefcases: - yield - set_chr_alliance CHR_COUNTEROP, 0x20 - set_chr_flag_bank3 CHR_TOPSTAIRS, CHRFLAG3_HAS_SPECIAL_DEATH_ANIMATION - set_chr_flag_bank3 CHR_TOPSTAIRS, CHRFLAG3_00000020 - set_chr_flag_bank3 0x0a, CHRFLAG3_00000020 - if_difficulty_lt DIFF_PA, /*goto*/ 0x03 - - // PA - give_object_to_chr OBJ_BRIEFCASE3, CHR_JOANNA - - // All difficulties - label 0x03 - give_object_to_chr OBJ_BRIEFCASE4, CHR_JOANNA - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x03 - - if_difficulty_lt DIFF_PA, /*goto*/ 0x04 - - // PA - give_object_to_chr OBJ_BRIEFCASE5, CHR_VELVET - - // All difficulties - label 0x04 - give_object_to_chr OBJ_BRIEFCASE6, CHR_VELVET - set_function CHR_SELF, GFUNC_REBUILD_GROUPS - - // Velvet doesn't exist - label 0x03 - hide_object OBJ_BRIEFCASE3 - hide_object OBJ_BRIEFCASE5 - hide_object OBJ_BRIEFCASE6 - set_function CHR_SELF, GFUNC_REBUILD_GROUPS - endfunction - -func1002_rebuild_groups: - set_function CHR_SELF, GFUNC_REBUILD_GROUPS - endfunction - -func1010_elevator_switch: - yield - open_door 0x10 - open_door 0x11 - yield - - beginloop 0x10 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, OBJ_SWITCH, /*goto*/ 0x03 - if_stage_flag_eq STAGEFLAG_ELEVATOR_SEALED, TRUE, /*goto*/ 0x04 - label 0x04 - endloop 0x10 - - label 0x03 - close_door 0x10 - close_door 0x11 - lock_door 0x10, 0x02 - lock_door 0x11, 0x02 - if_stage_flag_eq STAGEFLAG_ELEVATOR_SEALED, TRUE, /*goto*/ 0x04 - message CHR_P1P2, 0x3221 // "Elevator access sealed." - set_stage_flag STAGEFLAG_ELEVATOR_SEALED - goto_first 0x10 - - label 0x04 - message CHR_P1P2, 0x3230 // "Elevator door cannot be reopened." - goto_first 0x10 - - endfunction - -func1001_objectives_failed_msg: - yield - set_chr_flag_bank3 CHR_CIA1, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_CIA2, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_CIA3, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_CIA4, CHRFLAG3_04000000 - set_function CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG - endfunction - -func1014_crash: - beginloop 0x02 - if_stage_flag_eq STAGEFLAG_TRIGGER_CRASH, TRUE, /*goto*/ 0x04 - endloop 0x02 - - label 0x04 - restart_timer - - beginloop 0x09 - if_timer_gt 230, /*goto*/ 0x04 - endloop 0x09 - - label 0x04 - move_object_to_pad OBJ_MINE1, 0x0029 - destroy_object OBJ_MINE1 - set_stage_flag STAGEFLAG_DIVERSION_CREATED - message CHR_JOANNA, 0x3236 // "Diversion has been created." - destroy_object OBJ_TAXI - restart_timer - - beginloop 0x0a - if_timer_gt 180, /*goto*/ 0x04 - endloop 0x0a - - label 0x04 - move_object_to_pad OBJ_MINE2, 0x001c - destroy_object OBJ_MINE2 - set_stage_flag STAGEFLAG_CRASH_FINISHED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040a_intro_sfx: - // This flag is used to trigger the intro. Note that the entire function - // loops, so Rare could have tested the intro by setting the flag again. - label 0x2b - if_stage_flag_eq STAGEFLAG_TRIGGER_INTRO, TRUE, /*goto*/ 0x2c - yield - goto_first 0x2b - - label 0x2c - unset_stage_flag STAGEFLAG_TRIGGER_INTRO - label 0x10 - yield - dprint "CUTSCENE STARTED\n" - label 0x03 - restart_timer - dprint "CUTSCENE STARTED\n" - - .macro wait_until time loopid - beginloop \loopid - if_stage_flag_eq STAGEFLAG_INTRO_FINISHED, TRUE, /*goto*/ 0x2e - if_timer_gt \time, /*goto*/ 0x04 - endloop \loopid - label 0x04 - .endm - - wait_until 30, 0x55 - speak CHR_JOANNA, 0x3244, 0x7408, CHANNEL_7, COLOR_05_GREEN // "We suspect the G5 Corporation is just a front for ..." - - wait_until 1060, 0x56 - speak CHR_JOANNA, 0x3245, 0x7409, CHANNEL_7, COLOR_09_BLUE // "Just who is this help you keep referring to?" - - wait_until 1260, 0x57 - speak CHR_JOANNA, 0x3246, 0x740a, CHANNEL_7, COLOR_05_GREEN // "Not now, Joanna. Time for radio silence. Good luck..." - - wait_until 1488, 0x58 - speak CHR_JOANNA, 0x3247, 0x740b, CHANNEL_7, COLOR_09_BLUE // "Thanks a lot." - - label 0x2d - yield - label 0x03 - if_stage_flag_eq STAGEFLAG_INTRO_FINISHED, TRUE, /*goto*/ 0x2e - if_timer_gt 1468, /*goto*/ 0x04 - goto_first 0x2d - - label 0x04 - play_sound 0x0161, CHANNEL_3 - - wait_until 1519, 0x2f - play_sound 0x0162, CHANNEL_3 - - wait_until 1566, 0x30 - play_sound 0x046d, CHANNEL_4 - - wait_until 1649, 0x31 - play_sound 0x046d, CHANNEL_3 - - label 0x33 - wait_until 1758, 0x34 - play_sound 0x0164, CHANNEL_4 - - wait_until 1784, 0x35 - play_sound 0x0163, CHANNEL_3 - - wait_until 1814, 0x36 - play_sound 0x0162, CHANNEL_3 - - wait_until 1855, 0x37 - play_sound 0x0161, CHANNEL_3 - - wait_until 1897, 0x38 - play_sound 0x0470, CHANNEL_3 - - wait_until 2017, 0x3a - play_sound 0x0165, CHANNEL_3 - - wait_until 2028, 0x3b - play_sound 0x046e, CHANNEL_4 - - wait_until 2050, 0x3c - play_sound 0x0472, CHANNEL_3 - - wait_until 2175, 0x3d - play_sound 0x0473, CHANNEL_4 - - wait_until 2239, 0x3e - play_sound 0x0474, CHANNEL_3 - - wait_until 2269, 0x3f - play_sound 0x0475, CHANNEL_4 - - wait_until 2278, 0x41 - play_sound 0x0166, CHANNEL_3 - - wait_until 2280, 0x40 - play_sound 0x046f, CHANNEL_4 - - wait_until 2323, 0x42 - play_sound 0x0165, CHANNEL_3 - - wait_until 2339, 0x43 - play_sound 0x0166, CHANNEL_3 - - wait_until 2356, 0x44 - play_sound 0x0167, CHANNEL_3 - - wait_until 2373, 0x45 - play_sound 0x0168, CHANNEL_3 - - wait_until 2386, 0x46 - play_sound 0x0165, CHANNEL_3 - - wait_until 2388, 0x47 - - wait_until 2402, 0x48 - mute_channel CHANNEL_4 - play_sound 0x0166, CHANNEL_3 - - wait_until 2404, 0x4a - play_sound 0x0080, CHANNEL_4 - - wait_until 2424, 0x49 - play_sound 0x0167, CHANNEL_3 - - wait_until 2434, 0x4c - play_sound 0x0476, CHANNEL_3 - - wait_until 2584, 0x4b - play_sound 0x0161, CHANNEL_5 - - wait_until 2622, 0x4d - mute_channel CHANNEL_5 - - play_sound 0x0162, CHANNEL_4 - wait_until 2660, 0x4e - mute_channel CHANNEL_5 - - play_sound 0x0163, CHANNEL_6 - - label 0x2e - mute_channel CHANNEL_5 - mute_channel CHANNEL_7 - goto_first 0x2b - - endfunction - -func040b_outro: - camera_movement 0x0178 - set_music_track MUSIC_CHICAGO_OUTRO - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0xf1, CHRFLAG3_HIDDEN - set_function CHR_P1P2, GFUNC_IDLE - open_door2 0x10 - open_door2 0x11 - hide_object OBJ_TAXI - hide_object OBJ_LIMO - hide_chr CHR_SEALER1 - hide_chr CHR_SEALER2 - hide_chr CHR_SEALER3 - hide_chr CHR_SEALER4 - - set_chr_flag_bank3 CHR_P1P2, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_P1P2, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_P1P2, CHRFLAG2_00020000 - animation 0x0179, -1, -1, 0x0600, CHR_P1P2, 4 - - restart_timer - set_cutscene_weapon CHR_P1P2, -1, -1 - yield - set_cutscene_weapon CHR_P1P2, -1, 0x02 - show_nonessential_chrs FALSE - - .macro func0c01_wait_until time loopid - beginloop \loopid - if_controller_button_pressed /*goto*/ 0x2e - if_timer_gt \time, /*goto*/ 0x04 - endloop \loopid - label 0x04 - .endm - - func0c01_wait_until 30, 0x2d - play_sound 0x0161, CHANNEL_7 - - func0c01_wait_until 70, 0x2f - play_sound 0x0162, CHANNEL_7 - - func0c01_wait_until 120, 0x30 - play_sound 0x0163, CHANNEL_7 - - func0c01_wait_until 174, 0x31 - play_sound 0x0164, CHANNEL_7 - - func0c01_wait_until 208, 0x32 - play_sound 0x046d, CHANNEL_6 - - func0c01_wait_until 210, 0x33 - play_sound 0x0161, CHANNEL_7 - - func0c01_wait_until 238, 0x34 - play_sound 0x0162, CHANNEL_7 - - func0c01_wait_until 280, 0x35 - play_sound 0x0171, CHANNEL_7 - - func0c01_wait_until 350, 0x36 - play_sound 0x0173, CHANNEL_7 - - func0c01_wait_until 458, 0x37 - play_sound 0x0172, CHANNEL_7 - - func0c01_wait_until 506, 0x38 - play_sound 0x0171, CHANNEL_7 - - func0c01_wait_until 540, 0x39 - close_door 0x10 - close_door 0x11 - - func0c01_wait_until 545, 0x3a - play_sound 0x0171, CHANNEL_7 - - func0c01_wait_until 588, 0x3b - play_sound 0x0172, CHANNEL_7 - - beginloop 0x05 - if_camera_animating /*goto*/ 0x03 - goto_next 0x2e - label 0x03 - if_controller_button_pressed /*goto*/ 0x2e - label 0x03 - endloop 0x05 - - label 0x2e - mute_channel CHANNEL_7 - mute_channel CHANNEL_10 - label 0x04 - end_level - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1012_update_robot_position_flags: - // pad 0x00d4 = corner - // pad 0x00d9 = next to limo - - beginloop 0x02 - // Update ROBOT_NEAR_CORNER flag - if_stage_flag_eq STAGEFLAG_ROBOT_NEAR_HOME, FALSE, /*goto*/ 0x03 - if_chr_distance_to_pad_lt CHR_ROBOT, 200, 0x00d4, /*goto*/ 0x04 - label 0x03 - unset_stage_flag STAGEFLAG_ROBOT_NEAR_CORNER - goto_next 0x03 - - label 0x04 - set_stage_flag STAGEFLAG_ROBOT_NEAR_CORNER - - // Update ROBOT_ON_DRAIN_STREET flag - label 0x03 - if_chr_distance_to_pad_gt CHR_ROBOT, 1800, 0x00d9, /*goto*/ 0x04 - unset_stage_flag STAGEFLAG_ROBOT_ON_DRAIN_STREET - goto_next 0x03 - - label 0x04 - set_stage_flag STAGEFLAG_ROBOT_ON_DRAIN_STREET - label 0x03 - endloop 0x02 - - endfunction - -func1416_setup_rain: - yield - yield - yield - enable_rain 2 - - label 0x05 - // Wait 1 second - restart_timer - - beginloop 0x06 - if_timer_gt 60, /*goto*/ 0x03 - endloop 0x06 - - // 12 in 256 chance of changing rain effect - label 0x03 - call_rng - if_rand_lt 12, /*goto*/ 0x03 - goto_first 0x05 - - label 0x03 - call_rng - if_rand_gt 192, /*goto*/ 0x0a - if_rand_gt 128, /*goto*/ 0x09 - if_rand_gt 64, /*goto*/ 0x08 - enable_rain 2 - goto_first 0x05 - - label 0x08 - enable_rain 1 - goto_first 0x05 - - label 0x09 - enable_rain 2 - goto_first 0x05 - - label 0x0a - enable_rain 3 - goto_first 0x05 - - endfunction - -func041c_hiddenguy: - set_chr_flag_bank3 CHR_HIDDENGUY, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_HIDDENGUY, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * This function makes two guards unhide and persue Jo after she picks up the - * drain briefcase. - */ -func1017_drain_guards: - set_chr_flag_bank3 0x11, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0x12, CHRFLAG3_HIDDEN - - // Wait until drain briefcase collected - beginloop 0x05 - if_objective_complete 0, /*goto*/ 0x03 - endloop 0x05 - - label 0x03 - unset_chr_flag_bank3 0x11, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x12, CHRFLAG3_HIDDEN - set_chr_flag_bank2 0x11, CHRFLAG2_00400000 - set_chr_flag_bank2 0x12, CHRFLAG2_00400000 - set_function 0x11, GFUNC_ALERTED - set_function 0x12, GFUNC_ALERTED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1018_keep_door_open: - beginloop 0x10 - if_door_state 0x1a, DOORSTATE_CLOSED | DOORSTATE_CLOSING, /*goto*/ 0x03 - reloop 0x10 - - label 0x03 - open_door 0x1a - endloop 0x10 - - endfunction - -func1019_setup_topstairs_death_animation: - set_chr_special_death_animation CHR_TOPSTAIRS, 0x05 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040e_6064: - set_chr_dodge_rating 2, 0x0a - set_accuracy 4 - set_reaction_speed 30 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func040f_6088: - if_difficulty_lt DIFF_SA, /*goto*/ 0x03 - set_chr_dodge_rating 2, 0x0a - set_accuracy 20 - set_reaction_speed 30 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, GFUNC_UNALERTED - label 0x03 - set_chr_dodge_rating 2, 0x0a - set_accuracy 4 - set_reaction_speed 30 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func0410_60d0: - set_chr_dodge_rating 2, 0x0a - set_accuracy 14 - set_reaction_speed 20 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func0411_60f4: - set_self_flag_bank3 CHRFLAG3_00020000 - set_chr_dodge_rating 2, 0x0a - set_accuracy 14 - set_reaction_speed 20 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 40 - set_shield 0 - set_function CHR_SELF, FUNC_FBI - endfunction - -func101a_msg_onlyplace: - beginloop 0x10 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0014, /*goto*/ 0x03 - if_chr_in_room CHR_P1P2, 0x00, 0x0026, /*goto*/ 0x03 - endloop 0x10 - - label 0x03 - speak CHR_P1P2, 0x323c, 0x8179, CHANNEL_6, COLOR_09_BLUE // "The only place we could secure the equipment was a..." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101b_msg_blockedupdoors: - if_difficulty_lt DIFF_SA, /*goto*/ 0x0a - restart_timer - - // Wait for drain briefcase collected - beginloop 0x10 - if_objective_complete 0, /*goto*/ 0x05 - endloop 0x10 - - beginloop 0x05 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x003a, /*goto*/ 0x03 - endloop 0x05 - - label 0x03 - speak CHR_P1P2, 0x323d, 0x73b1, CHANNEL_6, COLOR_09_BLUE // "Either of those blocked-up doors will do as an esc..." - label 0x0a - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101c_msg_reprogramthattaxi: - // Wait for drain briefcase collected - beginloop 0x10 - if_objective_complete 0, /*goto*/ 0x05 - endloop 0x10 - - beginloop 0x05 - if_object_in_good_condition OBJ_TAXI, /*goto*/ 0x03 - reloop 0x05 - - label 0x03 - if_stage_flag_eq STAGEFLAG_TAXI_REPROGRAMMED, TRUE, /*goto*/ 0x0a - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x004a, /*goto*/ 0x03 - endloop 0x05 - - label 0x03 - speak CHR_P1P2, 0x323e, 0x817a, CHANNEL_6, COLOR_09_BLUE // "Reprogram that taxi - it's a Mark 2 and should be ..." - label 0x0a - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101d_msg_pointofingress: - beginloop 0x10 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0059, /*goto*/ 0x03 - endloop 0x10 - - label 0x03 - speak CHR_P1P2, 0x323f, 0x817b, CHANNEL_6, COLOR_09_BLUE // "That car park lift is your only point of ingress." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101e_check_sealer_guards_dead: - beginloop 0x10 - if_stage_flag_eq STAGEFLAG_ELEVATOR_SEALED, TRUE, /*goto*/ 0x06 - if_chr_dying CHR_SEALER1, /*goto*/ 0x03 - if_chr_death_animation_finished CHR_SEALER1, /*goto*/ 0x03 - endloop 0x10 - - label 0x03 - if_chr_dying CHR_SEALER2, /*goto*/ 0x03 - if_chr_death_animation_finished CHR_SEALER2, /*goto*/ 0x03 - goto_first 0x10 - - label 0x03 - if_chr_dying CHR_SEALER3, /*goto*/ 0x03 - if_chr_death_animation_finished CHR_SEALER3, /*goto*/ 0x03 - goto_first 0x10 - - label 0x03 - if_chr_dying CHR_SEALER4, /*goto*/ 0x03 - if_chr_death_animation_finished CHR_SEALER4, /*goto*/ 0x03 - goto_first 0x10 - - label 0x03 - if_stage_flag_eq STAGEFLAG_DIVERSION_CREATED, TRUE, /*goto*/ 0x03 - message CHR_JOANNA, 0x3242 // "An alternative diversion has been created!" - unset_stage_flag STAGEFLAG_TAXI_DESTROYED - unset_stage_flag STAGEFLAG_ROBOT_DESTROYED - set_stage_flag STAGEFLAG_DIVERSION_CREATED - label 0x03 - label 0x06 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1020_elevator_doors: - beginloop 0x10 - if_stage_flag_eq STAGEFLAG_ELEVATOR_SEALED, TRUE, /*goto*/ 0x03 - if_door_state 0x10, DOORSTATE_CLOSED | DOORSTATE_CLOSING, /*goto*/ 0x04 - reloop 0x10 - - label 0x04 - open_door 0x10 - open_door 0x11 - endloop 0x10 - - label 0x03 - close_door 0x10 - close_door 0x11 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Guard at top stairs: Turn off special death animation if he's moved away from - * his pad or if Jo has climbed the staircase. - */ -func1021_check_topstairs_guy: - beginloop 0x10 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_y CHR_P1P2, 500, OPERATOR_LESS_THAN, /*goto*/ 0x03 - goto_next 0x04 - label 0x03 - if_chr_distance_to_pad_gt CHR_TOPSTAIRS, 250, 0x00b5, /*goto*/ 0x04 - endloop 0x10 - - label 0x04 - set_chr_special_death_animation CHR_TOPSTAIRS, NULL - unset_chr_flag_bank3 CHR_TOPSTAIRS, CHRFLAG3_HAS_SPECIAL_DEATH_ANIMATION - unset_chr_flag_bankx CHR_TOPSTAIRS, CHRFLAG1_00001000, BANK_1 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040d_limo_flags: - // Wait until limo ready - beginloop 0x10 - if_stage_flag_eq STAGEFLAG_LIMO_READY_TO_LEAVE, TRUE, /*goto*/ 0x2f - endloop 0x10 - - // Wait until player not in certain rooms - beginloop 0x2f - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0002, /*goto*/ 0x03 - if_chr_in_room CHR_P1P2, 0x00, 0x0010, /*goto*/ 0x03 - if_chr_in_room CHR_P1P2, 0x00, 0x0012, /*goto*/ 0x03 - goto_next 0x04 - label 0x03 - endloop 0x2f - - // Wait almost 10 seconds - provided limo not destroyed - label 0x04 - restart_timer - - beginloop 0x2d - if_object_in_good_condition OBJ_LIMO, /*goto*/ 0x03 - set_function CHR_SELF, GFUNC_IDLE - label 0x03 - if_timer_gt 596, /*goto*/ 0x03 - endloop 0x2d - - label 0x03 - hide_object OBJ_LIMO - set_object_flag_bank0 OBJ_LIMO, OBJECTFLAG0_INVINCIBLE - set_object_flag_bank1 OBJ_LIMO, OBJECTFLAG1_INVISIBLE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1423_setup_lighting: - yield - set_lighting 0x0000, 0x00, 0x00 - set_lighting 0x0000, 0x01, 0x00 - set_lighting 0x0000, 0x02, 0x00 - set_lighting 0x0000, 0x03, 0x00 - set_lighting 0x0000, 0x04, 0x00 - set_lighting 0x0002, 0x05, 0x01 - set_lighting 0x0003, 0x05, 0x01 - set_lighting 0x000f, 0x05, 0x01 - set_lighting 0x0010, 0x05, 0x01 - set_lighting 0x0011, 0x05, 0x01 - set_lighting 0x0012, 0x05, 0x01 - set_lighting 0x0013, 0x05, 0x01 - set_lighting 0x0014, 0x05, 0x01 - set_lighting 0x0015, 0x05, 0x01 - set_lighting 0x0017, 0x05, 0x01 - set_lighting 0x0018, 0x05, 0x01 - set_lighting 0x0019, 0x05, 0x01 - set_lighting 0x001a, 0x05, 0x01 - set_lighting 0x001c, 0x05, 0x01 - set_lighting 0x001d, 0x05, 0x01 - set_lighting 0x001f, 0x05, 0x01 - set_lighting 0x0021, 0x05, 0x01 - set_lighting 0x0022, 0x05, 0x01 - set_lighting 0x0025, 0x05, 0x01 - set_lighting 0x0026, 0x05, 0x01 - set_lighting 0x0027, 0x05, 0x01 - set_lighting 0x0028, 0x05, 0x01 - set_lighting 0x002c, 0x05, 0x01 - set_lighting 0x002d, 0x05, 0x01 - set_lighting 0x002e, 0x05, 0x01 - set_lighting 0x0031, 0x05, 0x01 - set_lighting 0x0032, 0x05, 0x01 - set_lighting 0x0037, 0x05, 0x01 - set_lighting 0x0038, 0x05, 0x01 - set_lighting 0x0039, 0x05, 0x01 - set_lighting 0x003a, 0x05, 0x01 - set_lighting 0x003d, 0x05, 0x01 - set_lighting 0x003e, 0x05, 0x01 - set_lighting 0x003f, 0x05, 0x01 - set_lighting 0x0043, 0x05, 0x01 - set_lighting 0x0044, 0x05, 0x01 - set_lighting 0x0045, 0x05, 0x01 - set_lighting 0x004a, 0x05, 0x01 - set_lighting 0x004b, 0x05, 0x01 - set_lighting 0x004c, 0x05, 0x01 - set_lighting 0x004e, 0x05, 0x01 - set_lighting 0x0050, 0x05, 0x01 - set_lighting 0x0051, 0x05, 0x01 - set_lighting 0x0052, 0x05, 0x01 - set_lighting 0x0059, 0x05, 0x01 - set_lighting 0x005a, 0x05, 0x01 - set_lighting 0x005b, 0x05, 0x01 - set_lighting 0x005c, 0x05, 0x01 - set_lighting 0x005d, 0x05, 0x01 - set_lighting 0x005f, 0x05, 0x01 - set_lighting 0x0060, 0x05, 0x01 - set_lighting 0x0061, 0x05, 0x01 - set_lighting 0x0062, 0x05, 0x01 - set_lighting 0x0064, 0x05, 0x01 - set_lighting 0x0066, 0x05, 0x01 - set_lighting 0x0067, 0x05, 0x01 - set_lighting 0x0068, 0x05, 0x01 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0412_cia_invincibility: - beginloop 0x10 - if_stage_flag_eq STAGEFLAG_TRIGGER_TAXI_LEAVE, TRUE, /*goto*/ 0x03 - endloop 0x10 - - label 0x03 - set_chr_flag_bank3 CHR_CIA1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_CIA2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_CIA3, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_CIA4, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - - beginloop 0x2d - if_stage_flag_eq STAGEFLAG_DIVERSION_CREATED, TRUE, /*goto*/ 0x03 - endloop 0x2d - - label 0x03 - restart_timer - - beginloop 0x2f - if_timer_gt 300, /*goto*/ 0x03 - endloop 0x2f - - label 0x03 - unset_chr_flag_bank3 CHR_CIA1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 CHR_CIA2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 CHR_CIA3, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 CHR_CIA4, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1025_rtracker: - yield - set_object_flag_bank2 OBJ_FALCON2, OBJECTFLAG2_RTRACKED_BLUE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1027_untrack_dumpster: - yield - - beginloop 0x10 - if_object_in_good_condition OBJ_DUMPSTER, /*goto*/ 0x04 - goto_next 0x03 - label 0x04 - endloop 0x10 - - label 0x03 - unset_object_flag_bank2 OBJ_DUMPSTER, OBJECTFLAG2_RTRACKED_BLUE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -functions: - register_function func0401_3ae8 0x0401 - register_function func0402_3bb4 0x0402 - register_function func0403_3c74 0x0403 - register_function func0404_3ce0 0x0404 - register_function func0405_3d50 0x0405 - register_function func0406_3e54 0x0406 - register_function func0407_3e60 0x0407 - register_function func0408_3e6c 0x0408 - register_function func0409_3e78 0x0409 - register_function func040a_intro 0x040a - register_function func040b_outro 0x040b - register_function func040c_taxi 0x040c - register_function func040d_limo 0x040d - register_function func040e_6064 0x040e - register_function func040f_6088 0x040f - register_function func0410_60d0 0x0410 - register_function func0411_60f4 0x0411 - register_function func0412_cia 0x0412 - register_function func0413_bugspotter 0x0413 - register_function func0414_start_path07 0x0414 - register_function func0415_start_path08 0x0415 - register_function func0416_start_path09 0x0416 - register_function func0417_start_path10 0x0417 - register_function func0418_start_path11 0x0418 - register_function func0419_init_cia1 0x0419 - register_function func041d_fbi 0x041d - register_function func041c_hiddenguy 0x041c - register_function func041e_sealer1 0x041e - register_function func041f_alarm_responder 0x041f - register_function func0420_jog_to_accident 0x0420 - register_function func041a_robot 0x041a - register_function func041b_init_robot 0x041b - - register_function func040a_intro 0x0c00 - register_function func040b_outro 0x0c01 - - register_function func1400_give_briefcases 0x1400 - - register_function func1001_objectives_failed_msg 0x1001 - register_function func1002_rebuild_groups 0x1002 - register_function func040a_intro_from_gameplay 0x1003 - register_function func1004_tracerbug_joanna 0x1004 - register_function func1005_check_things_destroyed 0x1005 - register_function func1006_check_for_end 0x1006 - register_function func040d_limo_timing 0x1007 - register_function func040c_taxi_timing 0x1008 - register_function func1009_check_cia1_dead 0x1009 - register_function func100a_check_cia2_dead 0x100a - register_function func100b_check_cia3_dead 0x100b - register_function func100c_check_cia4_dead 0x100c - register_function func100d_spawn_alarm_responders 0x100d - register_function func100f_check_mine 0x100f - register_function func1010_elevator_switch 0x1010 - register_function func1011_trackerbug_velvet 0x1011 - register_function func1012_update_robot_position_flags 0x1012 - register_function func1014_crash 0x1014 - register_function func040a_intro_sfx 0x1415 - register_function func1416_setup_rain 0x1416 - register_function func1017_drain_guards 0x1017 - register_function func1018_keep_door_open 0x1018 - register_function func1019_setup_topstairs_death_animation 0x1019 - register_function func101a_msg_onlyplace 0x101a - register_function func101b_msg_blockedupdoors 0x101b - register_function func101c_msg_reprogramthattaxi 0x101c - register_function func101d_msg_pointofingress 0x101d - register_function func101e_check_sealer_guards_dead 0x101e - register_function func101f_setup_robot_noise 0x101f - register_function func1020_elevator_doors 0x1020 - register_function func1021_check_topstairs_guy 0x1021 - register_function func040d_limo_flags 0x1022 - register_function func1423_setup_lighting 0x1423 - register_function func0412_cia_invincibility 0x1024 - register_function func1025_rtracker 0x1025 - register_function func1026_uplink 0x1026 - register_function func1027_untrack_dumpster 0x1027 - endfunctions - -paths: - register_path path00, 0, 0 - register_path path01, 1, 0 - register_path path02, 2, 0 - register_path path03, 3, 0 - register_path path04, 4, 0 - register_path path05, 5, 0 - register_path path06, 6, 0 - register_path path07, 7, 0 - register_path path08, 8, 0 - register_path path09, 9, 0 - register_path path10, 10, 0 - register_path path11, 11, 0 - register_path path12, 12, 0 - register_path path13, 13, 0 - endpaths - -.align 4 diff --git a/asm/setup/setupref.s b/asm/setup/setupref.s deleted file mode 100644 index e50a1c5d9..000000000 --- a/asm/setup/setupref.s +++ /dev/null @@ -1,23 +0,0 @@ -# -# Complex (MP) -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - intro_weapon WEAPON_PP9I, -1 - ammo AMMOTYPE_PISTOL, 100 - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setuprit.s b/asm/setup/setuprit.s deleted file mode 100644 index 8394eb509..000000000 --- a/asm/setup/setuprit.s +++ /dev/null @@ -1,3982 +0,0 @@ -# -# Air Force One -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -// Characters -.set CHR_ELVIS, 0x00 -.set CHR_PRESIDENT, 0x18 -.set CHR_PILOT1, 0x19 -.set CHR_PILOT2, 0x1a -.set CHR_STEWARDESS, 0x1b -.set CHR_STEWARD, 0x1c -.set CHR_TAKER1, 0x2a -.set CHR_TAKER2, 0x2b -.set CHR_TRENT, 0x32 -.set CHR_BLONDE1, 0x33 -.set CHR_BLONDE2, 0x34 - -// Objects -.set OBJ_EQUIPMENT, 0x00 -.set OBJ_DATAUPLINK_JOANNA, 0x01 -.set OBJ_COMMSHUB1, 0x02 -.set OBJ_AUTOPILOT_SWITCH, 0x03 -.set OBJ_REMOTEMINE_JOANNA, 0x04 -.set OBJ_DUMBWAITER1, 0x05 -.set OBJ_DUMBWAITER2, 0x06 -.set OBJ_DUMBWAITER1_SWITCH, 0x07 -.set OBJ_DUMBWAITER2_SWITCH, 0x08 -.set OBJ_FLOORHATCH, 0x0b -.set OBJ_COCKPITDOOR, 0x0e -.set OBJ_DATAUPLINK_VELVET, 0x16 -.set OBJ_REMOTEMINE_VELVET, 0x17 -.set OBJ_EQUIPMENT_SWITCH, 0x1e -.set OBJ_HOVERBIKE_SWITCH, 0x21 -.set OBJ_KEYCARD, 0x22 -.set OBJ_ESCAPE_POD, 0x24 -.set OBJ_EXTERIOR_DOOR, 0x25 -.set OBJ_EXTERIOR_DOOR_DETACHED, 0x26 -.set OBJ_COMMSHUB2, 0x27 -.set OBJ_COMMSHUB3, 0x28 -.set OBJ_COMMSHUB4, 0x29 -.set OBJ_COMMSHUB5, 0x2a -.set OBJ_FLOOR_HATCH_DETACHED, 0x2e -.set OBJ_EQUIPMENT_VELVET, 0x3a - -// Stage flags -.set STAGEFLAG_POD_DESTROYED, 0x00000004 -.set STAGEFLAG_ALL_OBJECTIVES_COMPLETE, 0x00000008 -.set STAGEFLAG_PLANE_NOSEDIVING, 0x00000010 -.set STAGEFLAG_JOANNA_MINE_WASTED, 0x00000020 -.set STAGEFLAG_VELVET_MINE_WASTED, 0x00000040 -.set STAGEFLAG_AI_BUDDY_EXISTS, 0x00000080 -.set STAGEFLAG_PRESIDENT_STARTED_RUNNING, 0x00000100 -.set STAGEFLAG_PRESIDENT_AT_POD, 0x00000200 -.set STAGEFLAG_UFO_ATTACHMENT_DAMAGED, 0x00000800 -.set STAGEFLAG_KILLED_NEUTRALS, 0x00001000 -.set STAGEFLAG_PILOTS_DEAD, 0x00002000 -.set STAGEFLAG_PLANE_STABILIZED, 0x00004000 -.set STAGEFLAG_AUTOPILOT_DESTROYED, 0x00008000 -.set STAGEFLAG_PRESIDENT_DEAD, 0x00010000 -.set STAGEFLAG_BOTH_BLONDES_DEAD, 0x00020000 -.set STAGEFLAG_ONE_BLONDE_DEAD, 0x00040000 -.set STAGEFLAG_PRESIDENT_CALLED_SECURITY, 0x00080000 -.set STAGEFLAG_00100000, 0x00100000 -.set STAGEFLAG_INTRO_FINISHED, 0x00200000 -.set STAGEFLAG_TRIGGER_MIDCUTSCENE, 0x00400000 -.set STAGEFLAG_MIDCUTSCENE_FINISHED, 0x00800000 -.set STAGEFLAG_EQUIPMENT_RAISED, 0x01000000 -.set STAGEFLAG_EQUIPMENT_SWITCH_DESTROYED, 0x02000000 -.set STAGEFLAG_BOTH_MINES_WASTED, 0x04000000 -.set STAGEFLAG_PRESIDENT_INJURED, 0x08000000 -.set STAGEFLAG_PLANE_CRASHED, 0x10000000 -.set STAGEFLAG_MIDCUTSCENE_STARTED, 0x20000000 - -// Functions -.set FUNC_INIT_STRIPES, 0x0401 -.set FUNC_INIT_ELVIS, 0x0402 -.set FUNC_STRIPES, 0x0403 -.set FUNC_PRESIDENT_RUNNING, 0x0404 -.set FUNC_PRESIDENT_IN_ROOM, 0x0405 -.set FUNC_INIT_PRESIDENT, 0x0406 -.set FUNC_STEWARD, 0x0407 -.set FUNC_STEWARDESS, 0x0408 -.set FUNC_DEFEND_PAD, 0x040a -.set FUNC_DEFEND_PRESIDENT, 0x040b -.set FUNC_INIT_DEFEND_PAD, 0x040c -.set FUNC_TAKER1, 0x040f -.set FUNC_TAKER2, 0x0410 -.set FUNC_TYPING_GUY, 0x0411 -.set FUNC_SITTING_GUY, 0x0412 -.set FUNC_TAKER, 0x0413 -.set FUNC_COCKPIT_STRIPES, 0x0414 -.set FUNC_CLONER1, 0x0415 -.set FUNC_INIT_CLONE1, 0x0416 -.set FUNC_CLONE1, 0x0417 -.set FUNC_CLONER2, 0x0418 -.set FUNC_INIT_CLONE2, 0x0419 -.set FUNC_CLONE2, 0x041a -.set FUNC_CLONER3, 0x041b -.set FUNC_INIT_CLONE3, 0x041c -.set FUNC_CLONE3, 0x041d -.set FUNC_BLONDE, 0x041e -.set FUNC_INIT_BLONDE, 0x041f -.set FUNC_TRENT_ATTACKING, 0x0420 -.set FUNC_TRENT_WAITING, 0x0421 -.set FUNC_TRENT_RUNNING, 0x0422 -.set FUNC_OUTRO, 0x0423 -.set FUNC_MIDCUTSCENE, 0x0424 -.set FUNC_STEWARD_SHOT, 0x0425 -.set FUNC_BE_UNALERT, 0x0429 -.set FUNC_INIT_NEUTRAL, 0x042a -.set FUNC_REINIT_STRIPES, 0x042b -.set FUNC_REMOVE_IF_OFFSCREEN, 0x042c - -props: - briefing 0, 0x3601 - briefing 1, 0x3600 - briefing 2, 0x3602 - briefing 3, 0x3603 - - beginobjective 0, 0x3605, DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Locate and retrieve equipment" - require_object_collected OBJ_EQUIPMENT - fail_flags STAGEFLAG_EQUIPMENT_SWITCH_DESTROYED - endobjective - - beginobjective 1, 0x3606, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Locate President" - complete_flags STAGEFLAG_PRESIDENT_STARTED_RUNNING - fail_flags STAGEFLAG_PRESIDENT_CALLED_SECURITY - endobjective - - beginobjective 2, 0x3607, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Get President to escape capsule" - complete_flags STAGEFLAG_PRESIDENT_AT_POD - fail_flags STAGEFLAG_PRESIDENT_DEAD - fail_flags STAGEFLAG_KILLED_NEUTRALS - fail_flags STAGEFLAG_POD_DESTROYED - endobjective - - beginobjective 3, 0x3608, DIFFBIT_PA | DIFFBIT_PD // "Secure Air Force One flight path" - complete_flags STAGEFLAG_PLANE_STABILIZED - fail_flags STAGEFLAG_AUTOPILOT_DESTROYED - endobjective - - beginobjective 4, 0x3609, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Detach UFO from Air Force One" - complete_flags STAGEFLAG_UFO_ATTACHMENT_DAMAGED - fail_flags STAGEFLAG_BOTH_MINES_WASTED - fail_flags STAGEFLAG_PLANE_CRASHED - endobjective - - chr 0x00000400, 0x32, 0x00be, BODY_TRENT, HEAD_TRENT, GFUNC_IDLE, -1, -1, 200, 8, 0x40018000, 0x00101a00, 0x80, 0x0f, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDY357TRENT, 0x0032, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357LX, 0x00ffffff, 0x00000000 - chr 0x00000400, 0x33, 0x00bc, BODY_MRBLONDE, HEAD_MRBLONDE, GFUNC_IDLE, -1, -1, 200, 100, 0x40018201, 0x00101a00, 0x80, 0x0f, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0033, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000400, 0x34, 0x00bd, BODY_MRBLONDE, HEAD_MRBLONDE, GFUNC_IDLE, -1, -1, 200, 100, 0x40018201, 0x00101a00, 0x80, 0x0f, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0034, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000400, 0x01, 0x008b, BODY_OVERALL, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x008b, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x02, -1, 0, 0x00000000 - chr 0x000044c0, 0x1b, 0x008c, BODY_STEWARDESS, HEAD_RANDOM, FUNC_STEWARDESS, 0x00b2, -1, 2000, 5, 0x40002000, 0x00000101, 0x02, 0x02, -1, 0, 0x00010000 - chr 0x000044c0, 0x1c, 0x00c1, BODY_STEWARD, HEAD_RANDOM, FUNC_STEWARD, 0x001f, -1, 2000, 5, 0x40002000, 0x00000101, 0x02, 0x02, -1, 0, 0x00010000 - chr 0x00000600, 0x04, 0x008e, BODY_OVERALL, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x008e, -1, 1000, 100, 0xc0002000, 0x20000001, 0x02, 0x03, -1, 0, 0x00000000 - chr 0x00000600, 0x05, 0x008f, BODY_OVERALL, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x008f, -1, 1000, 100, 0xc0002000, 0x20000001, 0x02, 0x03, -1, 0, 0x00000000 - chr 0x00000600, 0x06, 0x0090, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x0090, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x04, -1, 0, 0x00000000 - chr 0x00000600, 0x07, 0x0091, BODY_PRES_SECURITY, HEAD_RANDOM, 0x0426, 0x0091, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x04, -1, 0, 0x00000000 - chr 0x00000600, 0x08, 0x0092, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x0092, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x05, -1, 0, 0x00000000 - chr 0x00000600, 0x09, 0x0093, BODY_PRES_SECURITY, HEAD_RANDOM, GFUNC_IDLE, 0x0093, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x05, -1, 0, 0x00000000 - chr 0x00000600, 0x0a, 0x0094, BODY_PRES_SECURITY, HEAD_RANDOM, GFUNC_IDLE, 0x0094, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x05, -1, 0, 0x00000000 - chr 0x00000600, 0x0b, 0x0095, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x0002, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x06, -1, 0, 0x00000000 - chr 0x00000600, 0x0c, 0x0096, BODY_PRES_SECURITY, HEAD_RANDOM, GFUNC_IDLE, 0x0002, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x06, -1, 0, 0x00000000 - chr 0x00000600, 0x0d, 0x0097, BODY_PRES_SECURITY, HEAD_RANDOM, GFUNC_IDLE, 0x0097, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x06, -1, 0, 0x00000000 - chr 0x00000400, 0x0e, 0x0098, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x0003, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x07, -1, 0, 0x00000000 - chr 0x00000400, 0x0f, 0x0099, BODY_PRES_SECURITY, HEAD_RANDOM, 0x0427, 0x0002, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x07, -1, 0, 0x00000000 - chr 0x00000600, 0x10, 0x009a, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x009a, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x07, -1, 0, 0x00000000 - chr 0x00000600, 0x11, 0x009b, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x0004, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x08, -1, 0, 0x00000000 - chr 0x00010400, 0x18, 0x00a0, BODY_PRESIDENT, HEAD_PRESIDENT, GFUNC_IDLE, 0x00a0, -1, 1000, 100, 0x80082000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000 - chr 0x00000600, 0x12, 0x009c, BODY_PRES_SECURITY, HEAD_RANDOM, 0x0428, 0x0003, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x08, -1, 0, 0x00000000 - chr 0x00000600, 0x13, 0x009d, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x0002, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x09, -1, 0, 0x00000000 - chr 0x00000600, 0x14, 0x009e, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x0020, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x09, -1, 0, 0x00000000 - chr 0x00000600, 0x15, 0x009f, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x00bb, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x09, -1, 0, 0x00000000 - chr 0x00004400, 0x16, 0x00ca, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_TYPING_GUY, 0x00b2, -1, 1000, 100, 0x40002000, 0x00000000, 0x02, 0x0a, 0x11, 0, 0x00000000 - chr 0x00004400, 0x17, 0x00c9, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_SITTING_GUY, 0x001f, -1, 1000, 100, 0x40002000, 0x00000000, 0x02, 0x0a, 0x10, 0, 0x00000000 - chr 0x00014401, 0x19, 0x00c7, BODY_PILOTAF1, HEAD_ROSS, FUNC_TYPING_GUY, -1, -1, 1000, 100, 0x40002000, 0x00000000, 0x02, 0x0b, 0x12, 0, 0x00000000 - chr 0x00014401, 0x1a, 0x00c8, BODY_PILOTAF1, HEAD_WONG, FUNC_SITTING_GUY, -1, -1, 1000, 100, 0x40002000, 0x00000000, 0x02, 0x0b, 0x13, 0, 0x00000000 - chr 0x00000000, 0x1d, 0x00a5, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x001d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x1e, 0x00a6, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x001e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x1f, 0x00a7, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x001f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x20, 0x00a8, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0020, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x21, 0x00a9, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0021, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x22, 0x00aa, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0022, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x24, 0x00ac, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0024, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x25, 0x00ad, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0025, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x26, 0x0006, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0026, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x27, 0x0089, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0027, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x28, 0x000d, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0028, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x29, 0x00ae, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0018201, 0x00101a00, 0x02, 0x0f, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0029, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000100, 0x2a, 0x00af, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0092000, 0x00101a00, 0x02, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x002a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000100, 0x2b, 0x00b0, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0092000, 0x00101a00, 0x02, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x002b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x30, 0x006a, BODY_STRIPES, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 200, 100, 0x40018201, 0x00101a00, 0x02, 0x0f, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x0030, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x31, 0x0069, BODY_TRENT, HEAD_TRENT, GFUNC_IDLE, -1, -1, 200, 100, 0x40018201, 0x00101a00, 0x02, 0x0f, -1, 0, 0x00000000 - chr 0x00000000, 0x00, 0x008a, BODY_THEKING, HEAD_ELVIS, FUNC_INIT_ELVIS, -1, -1, 200, 100, 0x40018201, 0x00101a00, 0x02, 0x0f, -1, 0, 0x00000000 - chr 0x00000000, 0x35, 0x0088, BODY_STRIPES, HEAD_RANDOM, FUNC_CLONER1, -1, -1, 200, 100, 0x80092000, 0x00381000, 0x02, 0x00, -1, 0, 0x00000000 - chr 0x00000000, 0x36, 0x00b5, BODY_STRIPES, HEAD_RANDOM, FUNC_CLONER2, -1, -1, 200, 100, 0x80092000, 0x00381000, 0x02, 0x00, -1, 0, 0x00000000 - chr 0x00000000, 0x37, 0x00b6, BODY_STRIPES, HEAD_RANDOM, FUNC_CLONER3, -1, -1, 200, 100, 0x80092000, 0x00381000, 0x02, 0x00, -1, 0, 0x00000000 - tag 0x1b, 1 - lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x010b, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x010b, 0x010a, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x15000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x1f, 1 - lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x0110, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0110, 0x0111, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x15000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00d2, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00d3, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00d4, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00d5, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00d6, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00d7, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00d8, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00d9, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00da, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00db, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00dc, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AF1_DOORBIG2, 0x00dd, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AF1_DOORBIG2, 0x00de, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00df, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00e0, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00e1, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00e2, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AF1_DOORBIG2, 0x0100, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AF1_DOORBIG2, 0x0101, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AF1_DOORBIG2, 0x0102, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000020, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_AF1_DOORBIG2, 0x0103, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000020, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - key 0x0080, MODEL_KEYCARD, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000004 - rename_object -1, 0x49, 0x3637, 0x3638, 0x3639, 0x363a, 0x363b, 0x0000, 0x0000 // "" - key 0x0080, MODEL_KEYCARD, 0x000f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000020 - rename_object -1, 0x49, 0x3637, 0x3638, 0x3639, 0x363a, 0x363b, 0x0000, 0x0000 // "" - tag 0x22, 1 - key 0x0080, MODEL_KEYCARD, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - rename_object -1, 0x49, 0x3637, 0x3638, 0x3639, 0x363a, 0x363b, 0x0000, 0x0000 // "" - door 0x0100, MODEL_DD_DR_NONREF, 0x00f5, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00f6, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00f7, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00f8, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00f9, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00fa, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00fb, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00fc, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00fd, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x0c, 1 - door 0x0100, MODEL_DD_DR_NONREF, 0x00e3, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00e4, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x0e, 1 - door 0x0100, MODEL_DD_DR_NONREF, 0x00e5, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000040, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00e6, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00e7, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00e8, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00e9, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x15, 1 - door 0x0100, MODEL_DD_DR_NONREF, 0x00ea, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00eb, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00ec, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00ed, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00ee, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00ef, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00fe, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x25, 1 - door 0x0100, MODEL_AF1ESCAPEDOOR, 0x0105, 0x12000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x26, 1 - door 0x0100, MODEL_AF1ESCAPEDOOR, 0x0106, 0x12000410, 0x00080000, 0x00000000, 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, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x20, 1 - door 0x0100, MODEL_DD_GRATE, 0x00f1, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0000ffff, 0x00014000, 0x00000ccc, 0x00040000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x0b, 1 - door 0x0100, MODEL_DD_GRATE, 0x00f2, 0x00000400, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x08040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x2e, 1 - object 0x0100, MODEL_DD_GRATE, 0x0108, 0x000200e1, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - door 0x0100, MODEL_DD_GRATE, 0x0109, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - object 0x00e6, MODEL_A51_CRATE2, 0x011b, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00a6, MODEL_A51_CRATE2, 0x011c, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x011e, 0x000201e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x01, 1 - weapon 0x0180, MODEL_CHRDATATHIEF, 0x003f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000 - tag 0x16, 1 - weapon 0x0180, MODEL_CHRDATATHIEF, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000 - tag 0x04, 1 - weapon 0x0180, MODEL_CHRREMOTEMINE, 0x003f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TIMEDMINE, 0x00ffffff, 0x00000000 - tag 0x17, 1 - weapon 0x0180, MODEL_CHRREMOTEMINE, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TIMEDMINE, 0x00ffffff, 0x00000000 - tag 0x02, 1 - multimonitor 0x0099, MODEL_COMHUB, 0x0116, 0x0202000a, 0x00002000, 0x00000000, 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 0x27, 1 - multimonitor 0x0099, MODEL_COMHUB, 0x0117, 0x0202000a, 0x00002000, 0x00000000, 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 0x28, 1 - multimonitor 0x0099, MODEL_COMHUB, 0x0118, 0x0202000a, 0x00002000, 0x00000000, 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 0x29, 1 - multimonitor 0x0099, MODEL_COMHUB, 0x0119, 0x0202000a, 0x00002000, 0x00000000, 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 0x2a, 1 - multimonitor 0x0099, MODEL_COMHUB, 0x011a, 0x0202000a, 0x00002000, 0x00000000, 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 0x03, 1 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x0112, 0x100000e2, 0x00000001, 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, 0xffffff12 - tag 0x0f, 3 - tag 0x05, 1 - lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x010c, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x010c, 0x010d, 0xffffffff, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x1b000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00ff, 0x12000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -1, -2, 0, 0 - tag 0x2b, 1 - door 0x0100, MODEL_DD_DR_NONREF, 0x00f4, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x00f3, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x06, 1 - lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x010f, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x010f, 0x010e, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x1b000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x07, 1 - multimonitor 0x0099, MODEL_COMHUB, 0x0113, 0x00000002, 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 0x08, 1 - multimonitor 0x0099, MODEL_COMHUB, 0x0114, 0x00000002, 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 0x12, 1 - object 0x0100, MODEL_AF1_PILOTCHAIR, 0x013a, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PILOTCHAIR, 0x013b, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x13, 1 - object 0x0100, MODEL_AF1_PILOTCHAIR, 0x013c, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x10, 1 - object 0x0100, MODEL_AF1_PILOTCHAIR, 0x013d, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x11, 1 - object 0x0100, MODEL_AF1_PILOTCHAIR, 0x013e, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PASSCHAIR, 0x011f, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PASSCHAIR, 0x0120, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PASSCHAIR, 0x0121, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PASSCHAIR, 0x0122, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PASSCHAIR, 0x0123, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PASSCHAIR, 0x0124, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PASSCHAIR, 0x0125, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PASSCHAIR, 0x0126, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PASSCHAIR, 0x0127, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PASSCHAIR, 0x0128, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PASSCHAIR, 0x0129, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PASSCHAIR, 0x012a, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PASSCHAIR, 0x012b, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PASSCHAIR, 0x012d, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PASSCHAIR, 0x012e, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PASSCHAIR, 0x012f, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PASSCHAIR, 0x0130, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PASSCHAIR, 0x0131, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PASSCHAIR, 0x0132, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PASSCHAIR, 0x0133, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PASSCHAIR, 0x0134, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PASSCHAIR, 0x0135, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PASSCHAIR, 0x0136, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PASSCHAIR, 0x0137, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PASSCHAIR, 0x0138, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PASSCHAIR, 0x0139, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PASSCHAIR, 0x016a, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x0160, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x0161, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x0162, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x0163, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x0164, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x0165, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x0166, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_TABLE, 0x013f, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_TABLE, 0x0140, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_TABLE, 0x0141, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_TABLE, 0x0142, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_TABLE, 0x0143, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_TABLE, 0x0144, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_TABLE, 0x0145, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_TABLE, 0x0146, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_TABLE, 0x0147, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_TABLE, 0x0148, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_TABLE, 0x0149, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_TABLE, 0x014a, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_TABLE, 0x014b, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_TABLE, 0x014c, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_TABLE, 0x014d, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_TABLE, 0x014e, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_TABLE, 0x014f, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_TABLE, 0x0150, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_TABLE, 0x0151, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_TABLE, 0x0152, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_TABLE, 0x0169, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_TOILET, 0x0153, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_TOILET, 0x0154, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_LAMP, 0x0156, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_LAMP, 0x0157, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_LAMP, 0x0158, 0x000005e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_LAMP, 0x0159, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_LAMP, 0x015a, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_LAMP, 0x015b, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_AF1_PASSCHAIR, 0x015e, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x19, 1 - object 0x0100, MODEL_SK_SHUTTLE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x37, 1 - object 0x0100, MODEL_AIRFORCE1, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x1a, 1 - object 0x0100, MODEL_ELVIS_SAUCER, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x23, 1 - object 0x0019, MODEL_SAUCERINSIDE, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_HOVBIKE, 0x00c0, 0x05120101, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - door 0x0100, MODEL_DOOR2A_G5, 0x0104, 0x10000400, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x1c, 1 - door 0x0100, MODEL_DD_GRATE, 0x00f0, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x1e, 1 - singlemonitor 0x0100, MODEL_GOODSTATION, 0x0168, 0x000004e1, 0x00000001, 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, 0xffffff03 - tag 0x21, 1 - singlemonitor 0x0100, MODEL_GOODSTATION, 0x0167, 0x000004e1, 0x00000001, 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, 0xffffff03 - tag 0x00, 1 - weapon 0x0180, MODEL_CHRBRIEFCASE, 0x00b3, 0x00000101, 0x00000000, 0x00400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUITCASE, 0x00ffffff, 0x00000000 - rename_object -1, 0x4d, 0x360a, 0x360b, 0x360c, 0x360d, 0x360e, 0x0000, 0x0000 // "Obtain Suitcase." - tag 0x3a, 1 - weapon 0x0180, MODEL_CHRBRIEFCASE, 0xffff, 0x00000101, 0x00000000, 0x00400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUITCASE, 0x00ffffff, 0x00000000 - rename_object -1, 0x4d, 0x360a, 0x360b, 0x360c, 0x360d, 0x360e, 0x0000, 0x0000 // "Obtain Suitcase." - tag 0x24, 1 - object 0x0100, MODEL_PRESCAPSULE, 0x0171, 0x000001e1, 0x00004101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00007d00, 0x00000000, 0x00000000, 0x0fff0000 - glass 0x0100, MODEL_WINDOW, 0x016d, 0x04000262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x016e, 0x04000262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x016f, 0x04000262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x0170, 0x04000262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x2f, 5 - tag 0x30, 6 - tag 0x31, 7 - tag 0x32, 8 - link_scenery 1, 0, 0 - debris 0x0019, MODEL_AF1RUBBLE, 0x00ce, 0x03520401, 0x00186300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x0fff0000 - link_scenery 1, 0, 0 - debris 0x0019, MODEL_AF1RUBBLE, 0x00cf, 0x03520401, 0x00186300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x0fff0000 - link_scenery 1, 0, 0 - debris 0x0019, MODEL_AF1RUBBLE, 0x00d0, 0x03520401, 0x00186300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x0fff0000 - link_scenery 1, 0, 0 - debris 0x0019, MODEL_AF1RUBBLE, 0x00d1, 0x03520401, 0x00186300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x33, 4 - tag 0x34, 4 - tag 0x35, 4 - tag 0x36, 4 - weapon 0x0100, MODEL_CHRREMOTEMINE, 0x00ce, 0x01320401, 0x000a6000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REMOTEMINE, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRREMOTEMINE, 0x00cf, 0x01320401, 0x000a6000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REMOTEMINE, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRREMOTEMINE, 0x00d0, 0x01320401, 0x000a6000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REMOTEMINE, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRREMOTEMINE, 0x00d1, 0x01320401, 0x000a6000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REMOTEMINE, 0x00ffffff, 0x00000000 - tag 0x2c, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x016c, 0x00420101, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000 - tag 0x2d, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x016b, 0x00420101, 0x000000c0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000 - tag 0x38, 2 - tag 0x39, 2 - weapon 0x0180, MODEL_CHRCYCLONE, 0x00cb, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CYCLONE, 0x00ffffff, 0x00000000 - weapon 0x0180, MODEL_CHRCYCLONE, 0x00cc, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CYCLONE, 0x00ffffff, 0x00000000 - link_collectibles -1, -2 - endprops - -intro: - outfit OUTFIT_STEWARDESS - ammo AMMOTYPE_CROSSBOW, 10 - ammo AMMOTYPE_SMG, 100 - intro_weapon WEAPON_UNARMED, -1 - intro_weapon WEAPON_COMBATBOOST, -1 - ammo AMMOTYPE_BOOST, 2 - spawn 0x008a - endintro - -path00: - pad 0x0034 - pad 0x0033 - pad 0x0031 - pad 0x0030 - pad 0x0031 - pad 0x0033 - pad 0x0034 - endpath - -path01: - pad 0x000d - pad 0x000e - pad 0x000b - pad 0x0012 - pad 0x0007 - pad 0x0006 - pad 0x0010 - pad 0x000c - endpath - -path02: - pad 0x003e - pad 0x0044 - pad 0x0042 - pad 0x0040 - pad 0x003f - pad 0x003d - pad 0x003e - pad 0x004d - endpath - -func1001_objectives_failed_msg: - yield - set_chr_flag_bank3 CHR_PRESIDENT, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_STEWARDESS, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_STEWARD, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_PILOT1, CHRFLAG3_04000000 - set_chr_flag_bank3 CHR_PILOT2, CHRFLAG3_04000000 - set_chr_flag_bank3 0x01, CHRFLAG3_04000000 - set_chr_flag_bank3 0x02, CHRFLAG3_04000000 - set_chr_flag_bank3 0x03, CHRFLAG3_04000000 - set_chr_flag_bank3 0x04, CHRFLAG3_04000000 - set_chr_flag_bank3 0x05, CHRFLAG3_04000000 - set_chr_flag_bank3 0x06, CHRFLAG3_04000000 - set_chr_flag_bank3 0x07, CHRFLAG3_04000000 - set_chr_flag_bank3 0x08, CHRFLAG3_04000000 - set_chr_flag_bank3 0x09, CHRFLAG3_04000000 - set_chr_flag_bank3 0x0a, CHRFLAG3_04000000 - set_chr_flag_bank3 0x0b, CHRFLAG3_04000000 - set_chr_flag_bank3 0x0c, CHRFLAG3_04000000 - set_chr_flag_bank3 0x0d, CHRFLAG3_04000000 - set_chr_flag_bank3 0x0e, CHRFLAG3_04000000 - set_chr_flag_bank3 0x0f, CHRFLAG3_04000000 - set_chr_flag_bank3 0x10, CHRFLAG3_04000000 - set_chr_flag_bank3 0x11, CHRFLAG3_04000000 - set_chr_flag_bank3 0x12, CHRFLAG3_04000000 - set_chr_flag_bank3 0x13, CHRFLAG3_04000000 - set_chr_flag_bank3 0x14, CHRFLAG3_04000000 - set_chr_flag_bank3 0x15, CHRFLAG3_04000000 - set_chr_flag_bank3 0x16, CHRFLAG3_04000000 - set_chr_flag_bank3 0x17, CHRFLAG3_04000000 - set_function CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG - endfunction - -func1400_setup_counterop: - yield - yield - yield - set_chr_alliance CHR_COUNTEROP, 0x04 - chr_draw_weapon CHR_JOANNA, WEAPON_UNARMED - chr_draw_weapon CHR_VELVET, WEAPON_UNARMED - set_function CHR_SELF, GFUNC_REBUILD_GROUPS - endfunction - -func1003_rebuild_groups: - set_function CHR_SELF, GFUNC_REBUILD_GROUPS - endfunction - -func1024_give_objects: - if_difficulty_gt DIFF_A, /*goto*/ 0x2d - give_object_to_chr OBJ_EQUIPMENT, CHR_JOANNA - give_object_to_chr OBJ_EQUIPMENT_VELVET, CHR_VELVET - - label 0x2d - set_object_flag_bank1 OBJ_DATAUPLINK_JOANNA, OBJECTFLAG1_INVISIBLE - set_object_flag_bank0 OBJ_DATAUPLINK_JOANNA, OBJECTFLAG0_00100000 - set_object_flag_bank1 OBJ_REMOTEMINE_JOANNA, OBJECTFLAG1_INVISIBLE - set_object_flag_bank0 OBJ_REMOTEMINE_JOANNA, OBJECTFLAG0_00100000 - set_object_flag_bank1 OBJ_DATAUPLINK_VELVET, OBJECTFLAG1_INVISIBLE - set_object_flag_bank0 OBJ_DATAUPLINK_VELVET, OBJECTFLAG0_00100000 - set_object_flag_bank1 OBJ_REMOTEMINE_VELVET, OBJECTFLAG1_INVISIBLE - set_object_flag_bank0 OBJ_REMOTEMINE_VELVET, OBJECTFLAG0_00100000 - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_has_object CHR_P1P2, OBJ_EQUIPMENT, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - give_object_to_chr OBJ_DATAUPLINK_JOANNA, CHR_JOANNA - give_object_to_chr OBJ_REMOTEMINE_JOANNA, CHR_JOANNA - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2d - give_object_to_chr OBJ_DATAUPLINK_VELVET, CHR_VELVET - give_object_to_chr OBJ_REMOTEMINE_VELVET, CHR_VELVET - label 0x2d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1004_reassign_functions_during_conversation: - // Wait until player in president's room - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0055, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0056, /*goto*/ 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x0057, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - dprint "b4 shield check\n" - set_stage_flag STAGEFLAG_00100000 - set_chr_target_chr CHR_PRESIDENT, CHR_P1P2 - set_function 0x01, FUNC_BE_UNALERT - set_function CHR_STEWARDESS, FUNC_BE_UNALERT - set_function CHR_STEWARD, FUNC_BE_UNALERT - set_function 0x04, FUNC_BE_UNALERT - set_function 0x05, FUNC_BE_UNALERT - set_function 0x06, FUNC_BE_UNALERT - set_function 0x07, FUNC_BE_UNALERT - set_function 0x08, FUNC_BE_UNALERT - set_function 0x09, FUNC_BE_UNALERT - set_function 0x0a, FUNC_BE_UNALERT - set_function 0x0b, FUNC_BE_UNALERT - set_function 0x0c, FUNC_BE_UNALERT - set_function 0x0d, FUNC_BE_UNALERT - set_function 0x0e, FUNC_BE_UNALERT - set_function 0x0f, FUNC_BE_UNALERT - set_function 0x10, FUNC_BE_UNALERT - set_function 0x11, FUNC_BE_UNALERT - set_function 0x12, FUNC_BE_UNALERT - set_function 0x13, FUNC_BE_UNALERT - set_function 0x14, FUNC_BE_UNALERT - set_function 0x15, FUNC_BE_UNALERT - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1005_check_neutrals_killed: - set_chr_flag_bank3 0x01, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x04, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x05, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x06, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x07, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x08, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x09, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x0a, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x0b, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x0c, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x0d, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x0e, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x0f, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x10, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x11, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x12, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x13, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x14, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x15, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x16, CHRFLAG3_KILLCOUNTABLE - set_chr_flag_bank3 0x17, CHRFLAG3_KILLCOUNTABLE - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_PRESIDENT_STARTED_RUNNING, TRUE, /*goto*/ 0x06 - if_kill_count_gt 0, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - message CHR_JOANNA, 0x3614 // "Too many neutral casualties inflicted." - set_stage_flag STAGEFLAG_KILLED_NEUTRALS - - label 0x06 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0401_init_stripes: - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_HIDDEN - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0402_init_elvis: - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_HIDDEN - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_UNEXPLODABLE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1006_hijack: - yield - hide_chr 0x1d - hide_chr 0x1e - hide_chr 0x1f - hide_chr 0x20 - hide_chr 0x21 - hide_chr 0x22 - hide_chr 0x23 - hide_chr 0x24 - hide_chr 0x25 - hide_chr 0x26 - hide_chr 0x27 - hide_chr 0x28 - hide_chr 0x29 - hide_chr CHR_TAKER1 - hide_chr CHR_TAKER2 - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_PRESIDENT_STARTED_RUNNING, TRUE, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - cmd01da 0x35 - set_chr_health 0x01, 10 - set_chr_health 0x04, 10 - set_chr_health 0x05, 10 - set_chr_health 0x06, 10 - set_chr_health 0x07, 10 - set_chr_health 0x08, 10 - set_chr_health 0x09, 10 - set_chr_health 0x0a, 10 - set_chr_health 0x0b, 10 - set_chr_health 0x0c, 10 - set_chr_health 0x0d, 10 - set_chr_health 0x0e, 10 - set_chr_health 0x0f, 10 - set_chr_health 0x10, 10 - set_chr_health 0x16, 10 - set_chr_health 0x17, 10 - set_chr_health CHR_PILOT1, 10 - set_chr_health CHR_PILOT2, 10 - set_function 0x01, FUNC_REMOVE_IF_OFFSCREEN - yield - set_function CHR_STEWARDESS, FUNC_REMOVE_IF_OFFSCREEN - yield - set_function CHR_STEWARD, FUNC_REMOVE_IF_OFFSCREEN - yield - set_function 0x04, FUNC_REMOVE_IF_OFFSCREEN - yield - set_function 0x05, FUNC_REMOVE_IF_OFFSCREEN - yield - set_function 0x06, FUNC_REMOVE_IF_OFFSCREEN - yield - set_function 0x07, FUNC_REMOVE_IF_OFFSCREEN - yield - set_function 0x08, FUNC_REMOVE_IF_OFFSCREEN - yield - set_function 0x09, FUNC_REMOVE_IF_OFFSCREEN - yield - set_function 0x0a, FUNC_REMOVE_IF_OFFSCREEN - yield - set_function 0x0b, FUNC_REMOVE_IF_OFFSCREEN - yield - set_function 0x0c, FUNC_REMOVE_IF_OFFSCREEN - yield - set_function 0x0d, FUNC_REMOVE_IF_OFFSCREEN - yield - set_function 0x10, FUNC_REMOVE_IF_OFFSCREEN - yield - set_function 0x12, FUNC_REMOVE_IF_OFFSCREEN - yield - set_function 0x13, FUNC_REMOVE_IF_OFFSCREEN - yield - set_function 0x15, FUNC_REMOVE_IF_OFFSCREEN - yield - set_function 0x16, FUNC_REMOVE_IF_OFFSCREEN - yield - set_function 0x17, FUNC_REMOVE_IF_OFFSCREEN - set_function 0x0e, FUNC_INIT_DEFEND_PAD - set_function 0x0f, FUNC_INIT_DEFEND_PAD - set_function 0x11, FUNC_INIT_DEFEND_PAD - set_function 0x14, FUNC_INIT_DEFEND_PAD - yield - - .macro enable_stripes_chr chr function - show_chr \chr - set_function \chr, \function - unset_chr_flag_bank3 \chr, CHRFLAG3_HIDDEN - set_chr_flag_bank2 \chr, CHRFLAG2_00400000 - yield - .endm - - enable_stripes_chr 0x1d, FUNC_REINIT_STRIPES - enable_stripes_chr 0x1e, FUNC_REINIT_STRIPES - enable_stripes_chr 0x1f, FUNC_REINIT_STRIPES - enable_stripes_chr 0x20, FUNC_REINIT_STRIPES - enable_stripes_chr 0x21, FUNC_REINIT_STRIPES - enable_stripes_chr 0x22, FUNC_REINIT_STRIPES - enable_stripes_chr 0x23, FUNC_REINIT_STRIPES - enable_stripes_chr 0x24, FUNC_REINIT_STRIPES - enable_stripes_chr 0x25, FUNC_REINIT_STRIPES - enable_stripes_chr 0x26, FUNC_REINIT_STRIPES - enable_stripes_chr 0x27, FUNC_REINIT_STRIPES - enable_stripes_chr 0x28, FUNC_REINIT_STRIPES - enable_stripes_chr 0x29, FUNC_COCKPIT_STRIPES - enable_stripes_chr CHR_TAKER1, FUNC_TAKER2 - enable_stripes_chr CHR_TAKER2, FUNC_TAKER1 - - set_chr_flag_bankx 0x01, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx CHR_STEWARDESS, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx CHR_STEWARD, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x04, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x05, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x06, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x07, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x08, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x09, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x0a, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x0b, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x0c, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x0d, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x0e, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x0f, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x10, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x11, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x12, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x13, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x14, CHRFLAG0_AIVSAI, BANK_0 - set_chr_flag_bankx 0x15, CHRFLAG0_AIVSAI, BANK_0 - set_chr_alliance CHR_TRENT, 0x04 - set_chr_alliance CHR_BLONDE1, 0x04 - set_chr_alliance CHR_BLONDE2, 0x04 - unset_chr_flag_bank2 CHR_TRENT, CHRFLAG2_40000000 - unset_chr_flag_bank2 CHR_BLONDE1, CHRFLAG2_40000000 - unset_chr_flag_bank2 CHR_BLONDE2, CHRFLAG2_40000000 - unlock_door OBJ_COCKPITDOOR, 0x40 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - unset_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_DISGUISED - unset_chr_flag_bank2 CHR_VELVET, CHRFLAG2_DISGUISED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0403_stripes: - set_return_function CHR_SELF, FUNC_STRIPES - set_self_flag_bank3 CHRFLAG3_00000040 - - beginloop 0x04 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x06 - - // No target nearby - yield - unset_self_flag_bankx CHRFLAG1_00001000, BANK_1 - stop_chr - set_function CHR_SELF, GFUNC_UNALERTED - - // Got target - label 0x06 - if_chr_lost_track_of_target_maybe /*goto*/ 0x06 - if_chr_dying TARGET_CHR, /*goto*/ 0x2d - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x2d - if_chr_unloaded TARGET_CHR, /*goto*/ 0x2d - set_return_function CHR_SELF, FUNC_STRIPES - set_onshot_function FUNC_STRIPES - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - - label 0x06 - unset_self_flag_bankx CHRFLAG1_00001000, BANK_1 - set_function CHR_SELF, GFUNC_UNALERTED - set_return_function CHR_SELF, GFUNC_UNALERTED - - label 0x2d - set_target_chr -1 - stop_chr - endloop 0x04 - - endfunction - -unregistered_function1: - set_function CHR_SELF, GFUNC_IDLE - endfunction - -.macro check_mine_wasted chr1 chr2 myflag buddyflag - set_object_flag_bank0 OBJ_COMMSHUB1, OBJECTFLAG0_00002000 - set_object_flag_bank0 OBJ_COMMSHUB2, OBJECTFLAG0_00002000 - set_object_flag_bank0 OBJ_COMMSHUB3, OBJECTFLAG0_00002000 - set_object_flag_bank0 OBJ_COMMSHUB4, OBJECTFLAG0_00002000 - set_object_flag_bank0 OBJ_COMMSHUB5, OBJECTFLAG0_00002000 - yield - yield - if_difficulty_lt DIFF_SA, /*goto*/ 0x06 - - // Wait until equipment collected - beginloop 0x93 - if_objective_complete 0, /*goto*/ 0x06 - endloop 0x93 - - label 0x06 - yield - yield - yield - yield - yield - label 0x08 - set_target_chr \chr1 - - // Wait until mine thrown - beginloop 0x09 - if_ammo_quantity_lt \chr2, AMMOTYPE_TIMED_MINE, 1, /*goto*/ 0x2d - endloop 0x09 - - label 0x2d - if_stage_flag_eq STAGEFLAG_MIDCUTSCENE_FINISHED, FALSE, /*goto*/ 0x0a - label 0x2d - unset_object_flag_bank0 OBJ_COMMSHUB1, OBJECTFLAG0_INVINCIBLE - unset_object_flag_bank0 OBJ_COMMSHUB2, OBJECTFLAG0_INVINCIBLE - unset_object_flag_bank0 OBJ_COMMSHUB3, OBJECTFLAG0_INVINCIBLE - unset_object_flag_bank0 OBJ_COMMSHUB4, OBJECTFLAG0_INVINCIBLE - unset_object_flag_bank0 OBJ_COMMSHUB5, OBJECTFLAG0_INVINCIBLE - restart_timer - - // Wait 8.3 seconds or until commshub destroyed - beginloop 0x04 - if_timer_gt 500, /*goto*/ 0x0a - if_object_in_good_condition OBJ_COMMSHUB1, /*goto*/ 0x2d - goto_next 0x06 - - label 0x2d - if_object_in_good_condition OBJ_COMMSHUB2, /*goto*/ 0x2d - goto_next 0x06 - - label 0x2d - if_object_in_good_condition OBJ_COMMSHUB3, /*goto*/ 0x2d - goto_next 0x06 - - label 0x2d - if_object_in_good_condition OBJ_COMMSHUB4, /*goto*/ 0x2d - goto_next 0x06 - - label 0x2d - if_object_in_good_condition OBJ_COMMSHUB5, /*goto*/ 0x2d - goto_next 0x06 - - label 0x2d - endloop 0x04 - - // Commshub damaged - label 0x06 - message CHR_JOANNA, 0x3615 // "UFO attachment damaged." - set_stage_flag STAGEFLAG_UFO_ATTACHMENT_DAMAGED - unset_stage_flag STAGEFLAG_BOTH_MINES_WASTED - set_function CHR_SELF, GFUNC_IDLE - - // Mine wasted - label 0x0a - set_stage_flag \myflag - if_stage_flag_eq \buddyflag, TRUE, /*goto*/ 0x2d - set_function CHR_SELF, GFUNC_IDLE - - label 0x2d - message CHR_JOANNA, 0x3645 // "Timed mine has been wasted." - set_stage_flag STAGEFLAG_BOTH_MINES_WASTED - set_function CHR_SELF, GFUNC_IDLE -.endm - -func1008_check_mine_wasted_joanna: - check_mine_wasted CHR_JOANNA, TARGET_CHR, STAGEFLAG_JOANNA_MINE_WASTED, STAGEFLAG_VELVET_MINE_WASTED - endfunction - -func1021_check_mine_wasted_velvet: - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2d - goto_next 0x06 - label 0x2d - set_stage_flag STAGEFLAG_VELVET_MINE_WASTED - set_function CHR_SELF, GFUNC_IDLE - - label 0x06 - check_mine_wasted CHR_VELVET, CHR_VELVET, STAGEFLAG_VELVET_MINE_WASTED, STAGEFLAG_JOANNA_MINE_WASTED - endfunction - -func101e_blow_mines: - // Wait for any commshub destroyed - beginloop 0x04 - if_object_in_good_condition OBJ_COMMSHUB1, /*goto*/ 0x2d - goto_next 0x06 - - label 0x2d - if_object_in_good_condition OBJ_COMMSHUB2, /*goto*/ 0x2d - goto_next 0x06 - - label 0x2d - if_object_in_good_condition OBJ_COMMSHUB3, /*goto*/ 0x2d - goto_next 0x06 - - label 0x2d - if_object_in_good_condition OBJ_COMMSHUB4, /*goto*/ 0x2d - goto_next 0x06 - - label 0x2d - if_object_in_good_condition OBJ_COMMSHUB5, /*goto*/ 0x2d - goto_next 0x06 - - label 0x2d - endloop 0x04 - - label 0x06 - - // 1 - unset_object_flag_bank0 0x2f, OBJECTFLAG0_INVINCIBLE - unset_object_flag_bank1 0x33, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank0 0x33, OBJECTFLAG0_INVINCIBLE - destroy_object 0x33 - restart_timer - - beginloop 0x60 - if_timer_gt 60, /*goto*/ 0x2d - endloop 0x60 - - label 0x2d - unset_object_flag_bank1 0x2f, OBJECTFLAG1_INVISIBLE - destroy_object 0x2f - - // 2 - unset_object_flag_bank0 0x30, OBJECTFLAG0_INVINCIBLE - unset_object_flag_bank1 0x34, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank0 0x34, OBJECTFLAG0_INVINCIBLE - destroy_object 0x34 - restart_timer - - beginloop 0x77 - if_timer_gt 60, /*goto*/ 0x2d - endloop 0x77 - - label 0x2d - unset_object_flag_bank1 0x30, OBJECTFLAG1_INVISIBLE - destroy_object 0x30 - - // 3 - unset_object_flag_bank0 0x31, OBJECTFLAG0_INVINCIBLE - unset_object_flag_bank1 0x35, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank0 0x35, OBJECTFLAG0_INVINCIBLE - destroy_object 0x35 - restart_timer - - beginloop 0x78 - if_timer_gt 60, /*goto*/ 0x2d - endloop 0x78 - - label 0x2d - unset_object_flag_bank1 0x31, OBJECTFLAG1_INVISIBLE - destroy_object 0x31 - - // 4 - unset_object_flag_bank0 0x32, OBJECTFLAG0_INVINCIBLE - unset_object_flag_bank1 0x36, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank0 0x36, OBJECTFLAG0_INVINCIBLE - destroy_object 0x36 - restart_timer - - beginloop 0x79 - if_timer_gt 60, /*goto*/ 0x2d - endloop 0x79 - - label 0x2d - unset_object_flag_bank1 0x32, OBJECTFLAG1_INVISIBLE - destroy_object 0x32 - - yield - hide_object 0x2f - hide_object 0x30 - hide_object 0x31 - hide_object 0x32 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1009_check_end_level: - beginloop 0x04 - if_all_objectives_complete /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - set_stage_flag STAGEFLAG_ALL_OBJECTIVES_COMPLETE - restart_timer - label 0x08 - yield - label 0x06 - 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 - - // Both players dead - label 0x2d - set_function CHR_SELF, GFUNC_IDLE - - // Redundant check - label 0x06 - 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 - - // Mission complete - label 0x06 - set_invincible CHR_JOANNA - set_function CHR_SELF, FUNC_OUTRO - endfunction - -func100a_autopilot_switch: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_object_in_good_condition OBJ_AUTOPILOT_SWITCH, /*goto*/ 0x2d - goto_next 0x08 - - label 0x2d - if_chr_activated_object CHR_P1P2, OBJ_AUTOPILOT_SWITCH, /*goto*/ 0x2d - if_stage_flag_eq STAGEFLAG_PLANE_STABILIZED, TRUE, /*goto*/ 0x2d - reloop 0x04 - - label 0x2d - label 0x06 - if_stage_flag_eq STAGEFLAG_PLANE_NOSEDIVING, TRUE, /*goto*/ 0x06 - endloop 0x04 - - // Switch pressed - label 0x06 - assign_sound 0x043a, CHANNEL_7 - control_sound_from_object CHANNEL_7, OBJ_AUTOPILOT_SWITCH, TRUE - set_object_image OBJ_AUTOPILOT_SWITCH, 0x00, 0x13 - set_stage_flag STAGEFLAG_PLANE_STABILIZED - yield - message CHR_P1P2, 0x3618 // "Air Force One has been stabilized." - message CHR_P1P2, 0x3617 // "Autopilot has been activated." - restart_timer - - beginloop 0x0e - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x0e - - label 0x06 - set_lighting 0x0000, 0x0d, 0x00 - set_function CHR_SELF, GFUNC_IDLE - - // Switch destroyed - label 0x08 - message CHR_P1P2, 0x3619 // "Autopilot systems have been destroyed." - set_stage_flag STAGEFLAG_AUTOPILOT_DESTROYED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0406_init_president: - set_chr_health CHR_SELF, 0 - set_function CHR_SELF, FUNC_PRESIDENT_IN_ROOM - endfunction - -func0405_president_in_room: - set_onshot_function FUNC_PRESIDENT_IN_ROOM - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2d - if_chr_dying CHR_SELF, /*goto*/ 0x2d - if_chr_unloaded CHR_SELF, /*goto*/ 0x2d - goto_next 0x06 - - // Dying - label 0x2d - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x06 - stop_chr - yield - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_00100000, TRUE, /*goto*/ 0x03 - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2d - if_chr_dying CHR_SELF, /*goto*/ 0x2d - if_chr_unloaded CHR_SELF, /*goto*/ 0x2d - endloop 0x04 - - // Dying - label 0x2d - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - label 0x03 - set_target_chr FOLLOW_CHR - restart_timer - label 0x08 - try_face_entity 0x0200, 0x0000, /*goto*/ 0x09 - - beginloop 0x09 - // Wait for Carrington's "on this level" message to finish - if_sound_finished CHANNEL_6, /*goto*/ 0x2d - reloop 0x09 - - label 0x2d - if_angle_to_target_chr_lt 10, /*goto*/ 0x06 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - do_special_animation 0 - speak TARGET_CHR, 0x3623, 0x12c5, CHANNEL_6, COLOR_08_RED // "Who are you, young lady?" - restart_timer - - beginloop 0x60 - if_chr_in_room TARGET_CHR, 0x00, 0x0055, /*goto*/ 0x2d - if_chr_in_room TARGET_CHR, 0x00, 0x0056, /*goto*/ 0x2d - if_chr_in_room TARGET_CHR, 0x00, 0x0057, /*goto*/ 0x2d - if_chr_sees_player /*goto*/ 0x2d - goto_next 0x86 - - label 0x2d - if_shot_near_chr 0x00, /*goto*/ 0x86 - if_hears_gunfire /*goto*/ 0x86 - if_timer_lt 120, /*goto*/ 0x2d - if_chr_in_view /*goto*/ 0x06 - label 0x2d - endloop 0x60 - - label 0x06 - speak TARGET_CHR, 0x3625, 0x72bc, CHANNEL_7, COLOR_09_BLUE // "Mr. President, you're in danger. Trent is trying t..." - restart_timer - stop_chr - try_face_entity 0x0200, 0x0000, /*goto*/ 0x78 - - // In this loop the president will continue to turn to face the player - // because it lacks an if_angle_to_target_chr_lt check. - beginloop 0x78 - if_chr_in_room TARGET_CHR, 0x00, 0x0055, /*goto*/ 0x2d - if_chr_in_room TARGET_CHR, 0x00, 0x0056, /*goto*/ 0x2d - if_chr_in_room TARGET_CHR, 0x00, 0x0057, /*goto*/ 0x2d - if_chr_sees_player /*goto*/ 0x2d - goto_next 0x86 - - label 0x2d - if_shot_near_chr 0x00, /*goto*/ 0x86 - if_hears_gunfire /*goto*/ 0x86 - if_timer_lt 240, /*goto*/ 0x2d - if_chr_in_view /*goto*/ 0x06 - label 0x2d - endloop 0x78 - - label 0x06 - do_special_animation 1 - speak TARGET_CHR, 0x3628, 0x12c6, CHANNEL_6, COLOR_08_RED // "You can't make accusations like that without evide..." - restart_timer - - beginloop 0x79 - if_chr_in_room TARGET_CHR, 0x00, 0x0055, /*goto*/ 0x2d - if_chr_in_room TARGET_CHR, 0x00, 0x0056, /*goto*/ 0x2d - if_chr_in_room TARGET_CHR, 0x00, 0x0057, /*goto*/ 0x2d - if_chr_sees_player /*goto*/ 0x2d - goto_next 0x86 - - label 0x2d - if_shot_near_chr 0x00, /*goto*/ 0x86 - if_hears_gunfire /*goto*/ 0x86 - if_timer_lt 400, /*goto*/ 0x2d - goto_next 0x84 - - label 0x2d - endloop 0x79 - - label 0x84 - if_chr_has_object TARGET_CHR, OBJ_EQUIPMENT, /*goto*/ 0x10 - if_chr_has_object TARGET_CHR, OBJ_EQUIPMENT_VELVET, /*goto*/ 0x10 - - // No equipment - label 0x85 - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_DISGUISE_UNCOVERED - set_chr_flag_bank2 CHR_VELVET, CHRFLAG2_DISGUISE_UNCOVERED - speak TARGET_CHR, 0x3624, 0x12c4, CHANNEL_6, COLOR_08_RED // "Security, SECURITY!!" - restart_timer - animation 0x0231, 0, 193, 0x1810, CHR_SELF, 2 - - beginloop 0x77 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x77 - - label 0x06 - set_function 0x01, GFUNC_UNALERTED - set_function CHR_STEWARDESS, GFUNC_UNALERTED - set_function CHR_STEWARD, GFUNC_UNALERTED - set_function 0x04, GFUNC_UNALERTED - set_function 0x05, GFUNC_UNALERTED - set_function 0x06, GFUNC_UNALERTED - set_function 0x07, GFUNC_UNALERTED - set_function 0x08, GFUNC_UNALERTED - set_function 0x09, GFUNC_UNALERTED - set_function 0x0a, GFUNC_UNALERTED - set_function 0x0b, GFUNC_UNALERTED - set_function 0x0c, GFUNC_UNALERTED - set_function 0x0d, GFUNC_UNALERTED - set_function 0x0e, GFUNC_UNALERTED - set_function 0x0f, GFUNC_UNALERTED - set_function 0x10, GFUNC_UNALERTED - set_function 0x11, GFUNC_UNALERTED - set_function 0x12, GFUNC_UNALERTED - set_function 0x13, GFUNC_UNALERTED - set_function 0x14, GFUNC_UNALERTED - set_function 0x15, GFUNC_UNALERTED - set_stage_flag STAGEFLAG_PRESIDENT_CALLED_SECURITY - yield - set_group_alertness 100 - try_face_entity 0x0200, 0x0000, /*goto*/ 0x0a - - beginloop 0x0a - endloop 0x0a - - label 0x06 - - // Has equipment - label 0x10 - stop_chr - speak TARGET_CHR, 0x3629, 0x72bd, CHANNEL_6, COLOR_09_BLUE // "This is a recording of a meeting between Trent and..." - restart_timer - try_face_entity 0x0200, 0x0000, /*goto*/ 0x0b - - // This loop uses an if_sound_finished check rather than a timer check, - // which allows the speech to be skipped. - beginloop 0x0b - if_chr_in_room TARGET_CHR, 0x00, 0x0055, /*goto*/ 0x2d - if_chr_in_room TARGET_CHR, 0x00, 0x0056, /*goto*/ 0x2d - if_chr_in_room TARGET_CHR, 0x00, 0x0057, /*goto*/ 0x2d - if_chr_sees_player /*goto*/ 0x2d - goto_next 0x86 - - label 0x2d - if_shot_near_chr 0x00, /*goto*/ 0x86 - if_hears_gunfire /*goto*/ 0x86 - if_sound_finished CHANNEL_6, /*goto*/ 0x06 - goto_first 0x0b - - label 0x06 - do_special_animation 2 - speak TARGET_CHR, 0x362a, 0x12c7, CHANNEL_6, COLOR_08_RED // "Seems overwhelming... I'm in your hands. What do w..." - restart_timer - - beginloop 0x7a - if_chr_in_room TARGET_CHR, 0x00, 0x0055, /*goto*/ 0x2d - if_chr_in_room TARGET_CHR, 0x00, 0x0056, /*goto*/ 0x2d - if_chr_in_room TARGET_CHR, 0x00, 0x0057, /*goto*/ 0x2d - if_chr_sees_player /*goto*/ 0x2d - goto_next 0x86 - - label 0x2d - if_shot_near_chr 0x00, /*goto*/ 0x86 - if_hears_gunfire /*goto*/ 0x86 - if_timer_gt 400, /*goto*/ 0x06 - endloop 0x7a - - label 0x33 - label 0x06 - set_stage_flag STAGEFLAG_TRIGGER_MIDCUTSCENE - - beginloop 0x0d - if_stage_flag_eq STAGEFLAG_MIDCUTSCENE_FINISHED, TRUE, /*goto*/ 0x06 - endloop 0x0d - - label 0x06 - set_chr_alliance CHR_SELF, ALLIANCE_ALLY - cmd0145_rebuild_groups - cmd0146_rebuild_groups - hide_object OBJ_EXTERIOR_DOOR - hide_object OBJ_FLOORHATCH - set_object_flag_bank0 OBJ_FLOOR_HATCH_DETACHED, OBJECTFLAG0_00000100 - unset_object_flag_bank1 OBJ_FLOOR_HATCH_DETACHED, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank1 OBJ_EXTERIOR_DOOR_DETACHED, OBJECTFLAG1_INVISIBLE - set_object_flag_bank0 OBJ_EXTERIOR_DOOR_DETACHED, OBJECTFLAG0_00000100 - play_sound 0x8098, -1 - restart_timer - - beginloop 0x7b - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x7b - - label 0x06 - do_special_animation -1 - speak TARGET_CHR, 0x3626, 0x816e, CHANNEL_6, COLOR_08_RED // "What the hell was that!" - restart_timer - - beginloop 0x0c - if_timer_gt 180, /*goto*/ 0x06 - endloop 0x0c - - label 0x06 - stop_chr - set_stage_flag STAGEFLAG_PRESIDENT_STARTED_RUNNING - speak TARGET_CHR, 0x3627, 0x72be, CHANNEL_6, COLOR_09_BLUE // "We have to get you to the escape pod. Follow me." - restart_timer - try_face_entity 0x0200, 0x0000, /*goto*/ 0x0e - - beginloop 0x0e - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x0e - - label 0x06 - set_follow_chr TARGET_CHR - set_chr_health CHR_SELF, 500 - set_onshot_function FUNC_PRESIDENT_RUNNING - set_function CHR_SELF, FUNC_PRESIDENT_RUNNING - - label 0x86 - goto_first 0x85 - - endfunction - -func0404_president_running: - set_self_flag_bank3 CHRFLAG3_01000000 - set_onshot_function FUNC_PRESIDENT_RUNNING - set_target_chr FOLLOW_CHR - 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 0x54 - if_timer_gt 15, /*goto*/ 0x06 - endloop 0x54 - - label 0x06 - assign_sound 0x1abf, CHANNEL_6 - play_sound_from_entity CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01 - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x2d - dprint "b4 shield check\n" - if_just_injured CHR_SELF, /*goto*/ 0x06 - goto_next 0x55 - - // Injured - label 0x06 - restart_timer - assign_sound 0x1ac2, CHANNEL_6 - play_sound_from_entity CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01 - if_stage_flag_eq STAGEFLAG_PRESIDENT_INJURED, TRUE, /*goto*/ 0x56 - set_stage_flag STAGEFLAG_PRESIDENT_INJURED - message CHR_JOANNA, 0x3648 // "The President is under attack." - - beginloop 0x56 - if_num_times_shot_lt 1, /*goto*/ 0x06 - if_timer_lt 20, /*goto*/ 0x06 - - label 0x06 - if_chr_stopped /*goto*/ 0x55 - endloop 0x56 - - // Not injured, or injury animation finished - label 0x55 - stop_chr - restart_timer - - beginloop 0x57 - // @bug: This FALSE should be TRUE instead. This causes the president - // to behave weirdly when you've killed both blondes and stand in the - // entrace to Trent's room. - if_stage_flag_eq STAGEFLAG_BOTH_BLONDES_DEAD, FALSE, /*goto*/ 0x2d - - // Both blondes dead - // This room is the entrace to Trent's room - if_chr_in_room TARGET_CHR, 0x00, 0x000d, /*goto*/ 0x10 - - // At least one Blonde is alive, or follow through - // These rooms are the escape pod area - label 0x2d - if_chr_in_room TARGET_CHR, 0x00, 0x0030, /*goto*/ 0x11 - if_chr_in_room TARGET_CHR, 0x00, 0x0031, /*goto*/ 0x11 - if_chr_in_room TARGET_CHR, 0x00, 0x0032, /*goto*/ 0x11 - dprint "target\n" - if_chr_sees_player /*goto*/ 0x06 - goto_next 0x58 - - label 0x06 - if_timer_gt 1250, /*goto*/ 0x2d - if_chr_distance_gt 200, /*goto*/ 0x58 - endloop 0x57 - - // Been in sight for almost 21 seconds - say quip - label 0x2d - call_rng - if_rand_lt 64, /*goto*/ 0x2d - say_quip CHR_JOANNA, 0x21, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00 - goto_first 0x55 - - label 0x2d - say_quip CHR_JOANNA, 0x21, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00 - goto_first 0x55 - - // Unreachable - label 0x06 - say_quip CHR_JOANNA, 0x21, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00 - goto_first 0x55 - - // Distance to player > 200 or line of sight broken, so start following - label 0x58 - restart_timer - label 0x2d - try_run_to_target_chr_with_hand_up /*goto*/ 0x59 - - beginloop 0x59 - // @bug: This FALSE should be TRUE instead. This causes the president - // to behave weirdly when you've killed both blondes and stand in the - // entrace to Trent's room. - if_stage_flag_eq STAGEFLAG_BOTH_BLONDES_DEAD, FALSE, /*goto*/ 0x2d - - // Both blondes dead - // This room is the entrace to Trent's room - if_chr_in_room TARGET_CHR, 0x00, 0x000d, /*goto*/ 0x10 - - // At least one Blonde is alive, or follow through - // These rooms are the escape pod area - label 0x2d - if_chr_in_room TARGET_CHR, 0x00, 0x0030, /*goto*/ 0x11 - if_chr_in_room TARGET_CHR, 0x00, 0x0031, /*goto*/ 0x11 - if_chr_in_room TARGET_CHR, 0x00, 0x0032, /*goto*/ 0x11 - if_chr_distance_lt 100, /*goto*/ 0x5b - if_chr_stopped /*goto*/ 0x5b - if_timer_gt 360, /*goto*/ 0x2d - endloop 0x59 - - label 0x2d - say_quip CHR_JOANNA, 0x21, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00 - goto_first 0x58 - - label 0x06 - say_quip CHR_JOANNA, 0x21, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00 - goto_first 0x58 - - // Stopped because president is close to player's sampled position - label 0x5b - goto_first 0x55 - - // Unreachable - label 0x5c - try_run_to_target_chr /*goto*/ 0x5d - - beginloop 0x5d - if_stage_flag_eq STAGEFLAG_BOTH_BLONDES_DEAD, FALSE, /*goto*/ 0x2d - if_chr_in_room TARGET_CHR, 0x00, 0x000d, /*goto*/ 0x10 - label 0x2d - if_chr_in_room TARGET_CHR, 0x00, 0x0030, /*goto*/ 0x11 - if_chr_in_room TARGET_CHR, 0x00, 0x0031, /*goto*/ 0x11 - if_chr_in_room TARGET_CHR, 0x00, 0x0032, /*goto*/ 0x11 - endloop 0x5d - - label 0x5e - goto_first 0x55 - - // Player in pod room while a Blonde is alive - // This pad is at the escape pod - label 0x11 - jog_to_pad 0x0083 - - beginloop 0x09 - if_chr_stopped /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - stop_chr - set_stage_flag STAGEFLAG_PRESIDENT_AT_POD - set_chr_alliance CHR_SELF, 0x80 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE - - // Player is in the entrace to Trent's room and both blondes are dead. - // The intention behind this code is to make the president cower until the - // Blondes are dead, then resume following. However, due to a logic bug - // described earlier this code is jumped to only after the blondes are dead. - label 0x10 - run_to_pad 0x0019 - - // This loop will never iterate because the blondes are already dead - beginloop 0x0a - if_chr_stopped /*goto*/ 0x0b - if_stage_flag_eq STAGEFLAG_BOTH_BLONDES_DEAD, TRUE, /*goto*/ 0x06 - endloop 0x0a - - // Unreachable under real conditions - label 0x0b - animation ANIM_COWER_0229, -1, -1, 0x100a, CHR_SELF, 2 - - beginloop 0x83 - if_stage_flag_eq STAGEFLAG_BOTH_BLONDES_DEAD, TRUE, /*goto*/ 0x06 - if_chr_stopped /*goto*/ 0x2d - endloop 0x83 - - label 0x2d - goto_first 0x0b - - // Both blondes dead - resume running - label 0x06 - goto_first 0x55 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100b_check_president_dead: - beginloop 0x04 - if_chr_dying CHR_PRESIDENT, /*goto*/ 0x06 - if_chr_death_animation_finished CHR_PRESIDENT, /*goto*/ 0x06 - if_chr_unloaded CHR_PRESIDENT, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - set_stage_flag STAGEFLAG_PRESIDENT_DEAD - message CHR_JOANNA, 0x361a // "The President has been incapacitated." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0409_unused: - set_self_flag_bank3 CHRFLAG3_00000040 - - beginloop 0x04 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x06 - reloop 0x04 - - label 0x06 - if_chr_lost_track_of_target_maybe /*goto*/ 0x06 - if_chr_dying TARGET_CHR, /*goto*/ 0x2d - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x2d - if_chr_unloaded TARGET_CHR, /*goto*/ 0x2d - set_return_function CHR_SELF, 0x0409 - set_onshot_function 0x0409 - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - - label 0x2d - endloop 0x04 - - label 0x06 - unset_self_flag_bankx CHRFLAG1_00001000, BANK_1 - set_function CHR_SELF, GFUNC_UNALERTED - set_return_function CHR_SELF, GFUNC_UNALERTED - endfunction - -/** - * This stripes guard is in one of the cockpit rooms. - */ -func100c_cockpit_stripes: - set_onshot_function GFUNC_ALERTED - set_chr_alliance CHR_SELF, 0x04 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_chr_dodge_rating 2, 0x00 - set_accuracy 14 - set_reaction_speed 50 - set_chr_health CHR_SELF, 60 - set_armor 0 - set_recovery_speed 30 - set_shield 0 - set_self_flag_bank3 CHRFLAG3_00000040 - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_sees_player /*goto*/ 0x06 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x06 - reloop 0x04 - - label 0x06 - if_chr_lost_track_of_target_maybe /*goto*/ 0x06 - if_chr_dying TARGET_CHR, /*goto*/ 0x2d - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x2d - if_chr_unloaded TARGET_CHR, /*goto*/ 0x2d - set_return_function CHR_SELF, FUNC_COCKPIT_STRIPES - set_onshot_function GFUNC_COMBAT_WITH_TARGET_CHR - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - label 0x2d - endloop 0x04 - - label 0x06 - unset_self_flag_bankx CHRFLAG1_00001000, BANK_1 - set_function CHR_SELF, GFUNC_UNALERTED - set_return_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func0413_taker1: - set_chr_alliance CHR_SELF, 0x04 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_self_flag_bank3 CHRFLAG3_00000020 - set_chr_dodge_rating 2, 0x00 - set_reaction_speed 50 - set_chr_health CHR_SELF, 60 - set_armor 0 - set_recovery_speed 30 - set_shield 0 - set_target_chr CHR_PILOT1 - set_function CHR_SELF, FUNC_TAKER - endfunction - -func0413_taker2: - set_chr_alliance CHR_SELF, 0x04 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_self_flag_bank3 CHRFLAG3_00000020 - set_chr_dodge_rating 2, 0x00 - set_reaction_speed 50 - set_chr_health CHR_SELF, 60 - set_armor 0 - set_recovery_speed 30 - set_shield 0 - set_target_chr CHR_PILOT2 - set_function CHR_SELF, FUNC_TAKER - endfunction - -func0413_taker: - set_onshot_function GFUNC_ALERTED - unset_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_alliance CHR_SELF, 0x04 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_accuracy 50 - set_self_flag_bank3 CHRFLAG3_00000040 - restart_timer - - // Wait for condition - beginloop 0x04 - if_door_state 0x0c, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x0a - if_stage_flag_eq STAGEFLAG_PRESIDENT_STARTED_RUNNING, FALSE, /*goto*/ 0x2d - if_timer_gt 7200, /*goto*/ 0x0a - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x0a - label 0x2d - endloop 0x04 - - // Wait another 1.5 seconds - label 0x0a - restart_timer - - beginloop 0x0c - if_timer_gt 90, /*goto*/ 0x06 - endloop 0x0c - - label 0x06 - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x11 - if_chr_dying TARGET_CHR, /*goto*/ 0x11 - if_chr_unloaded TARGET_CHR, /*goto*/ 0x11 - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x06 - label 0x06 - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x08 - label 0x08 - say_quip CHR_JOANNA, 0x00, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00 - say_quip CHR_JOANNA, 0x01, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00 - restart_timer - - beginloop 0x09 - if_chr_stopped /*goto*/ 0x06 - if_timer_gt 60, /*goto*/ 0x2d - endloop 0x09 - - label 0x2d - if_chr_lost_track_of_target_maybe /*goto*/ 0x11 - if_target_chrs_field_0x17e_is_different /*goto*/ 0x2d - goto_next 0x11 - - label 0x2d - damage_chr TARGET_CHR, 18 - - beginloop 0x0b - if_chr_stopped /*goto*/ 0x06 - endloop 0x0b - - label 0x06 - if_chr_dying TARGET_CHR, /*goto*/ 0x06 - goto_first 0x0a - - label 0x11 - label 0x06 - unset_self_flag_bankx CHRFLAG1_00001000, BANK_1 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func100c_cockpit: - label 0x2d - label 0x2e - set_chr_flag_bank3 CHR_TAKER1, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_TAKER2, CHRFLAG3_HIDDEN - - beginloop 0x60 - if_all_objectives_complete /*goto*/ 0x2d - if_stage_flag_eq STAGEFLAG_UFO_ATTACHMENT_DAMAGED, TRUE, /*goto*/ 0x2e - endloop 0x60 - - // All objectives complete - label 0x2d - set_function CHR_SELF, GFUNC_IDLE - - // UFO attachment damaged - label 0x2e - yield - if_stage_flag_eq STAGEFLAG_ALL_OBJECTIVES_COMPLETE, TRUE, /*goto*/ 0x11 - unset_chr_flag_bank3 CHR_TAKER1, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_TAKER2, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_TAKER1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 CHR_TAKER2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - label 0x06 - - // This loop will surely never iterate because - // the UFO attachment is already damaged - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_ALL_OBJECTIVES_COMPLETE, TRUE, /*goto*/ 0x11 - if_stage_flag_eq STAGEFLAG_UFO_ATTACHMENT_DAMAGED, TRUE, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - if_chr_dying CHR_TAKER1, /*goto*/ 0x2d - if_chr_death_animation_finished CHR_TAKER1, /*goto*/ 0x2d - if_chr_unloaded CHR_TAKER1, /*goto*/ 0x2d - goto_next 0x06 - - label 0x2d - if_chr_dying CHR_TAKER2, /*goto*/ 0x2d - if_chr_death_animation_finished CHR_TAKER2, /*goto*/ 0x2d - if_chr_unloaded CHR_TAKER2, /*goto*/ 0x2d - goto_next 0x06 - - // Both takers dead - label 0x2d - goto_next 0x2e - - // At least one taker alive - label 0x06 - damage_chr CHR_PILOT1, 18 - damage_chr CHR_PILOT2, 18 - yield - damage_chr CHR_PILOT1, 18 - damage_chr CHR_PILOT2, 18 - yield - damage_chr CHR_PILOT1, 18 - damage_chr CHR_PILOT2, 18 - yield - set_stage_flag STAGEFLAG_PILOTS_DEAD - message CHR_JOANNA, 0x361b // "Pilots have been killed." - goto_next 0x06 - - // Both takers dead - label 0x2e - - // Pilots killed - label 0x06 - label 0x10 - set_stage_flag STAGEFLAG_PLANE_NOSEDIVING - set_object_image OBJ_AUTOPILOT_SWITCH, 0x00, 0x0f - - // Wait 10 seconds - label 0x09 - restart_timer - - beginloop 0x0f - if_stage_flag_eq STAGEFLAG_ALL_OBJECTIVES_COMPLETE, TRUE, /*goto*/ 0x11 - if_timer_gt 600, /*goto*/ 0x2d - endloop 0x0f - - label 0x2d - set_lighting 0x0000, 0x0a, 0x3c - - // Wait 40 seconds or for autopilot - restart_timer - - beginloop 0x0a - if_stage_flag_eq STAGEFLAG_PLANE_STABILIZED, TRUE, /*goto*/ 0x11 - if_timer_gt 2400, /*goto*/ 0x0b - endloop 0x0a - - label 0x0b - if_stage_flag_eq STAGEFLAG_ALL_OBJECTIVES_COMPLETE, TRUE, /*goto*/ 0x11 - message CHR_JOANNA, 0x361d // "Air Force One is about to crash." - - // Wait until the 50 second mark - beginloop 0x0c - if_all_objectives_complete /*goto*/ 0x11 - if_stage_flag_eq STAGEFLAG_PLANE_STABILIZED, TRUE, /*goto*/ 0x11 - if_timer_gt 3000, /*goto*/ 0x0e - endloop 0x0c - - // Crash - label 0x0e - set_stage_flag STAGEFLAG_PLANE_CRASHED - explosions_around_chr CHR_JOANNA - restart_timer - - beginloop 0x65 - if_timer_gt 180, /*goto*/ 0x2d - endloop 0x65 - - label 0x2d - end_level - set_function CHR_SELF, GFUNC_IDLE - - // Unreachable - label 0x7c - label 0x2d - set_object_image 0x03, 0x00, 0x13 - set_stage_flag STAGEFLAG_PLANE_STABILIZED - message CHR_JOANNA, 0x361c // "Pilots have been saved." - reset_ambience - set_function CHR_SELF, GFUNC_IDLE - - // Unreachable - label 0x08 - goto_first 0x04 - - // Plane stabilized or all objectives complete - label 0x11 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Assigned to a pilot and a cyclone guard. - */ -func0411_typing_guy: - set_onshot_function FUNC_TYPING_GUY - label 0x04 - animation ANIM_SITTING_TYPING, 0, -1, 0x0410, CHR_SELF, 2 - - beginloop 0x03 - if_chr_idle /*goto*/ 0x06 - goto_first 0x04 - - label 0x06 - endloop 0x03 - - endfunction - -/** - * Assigned to a pilot and a cyclone guard. - */ -func0412_sitting_guy: - set_onshot_function FUNC_SITTING_GUY - label 0x04 - animation ANIM_SITTING_DORMANT, 0, -1, 0x0410, CHR_SELF, 2 - - beginloop 0x03 - if_chr_idle /*goto*/ 0x06 - goto_first 0x04 - - label 0x06 - endloop 0x03 - - endfunction - -func0426_start_path00: - set_chr_dodge_rating 2, 0x00 - set_accuracy 14 - set_reaction_speed 70 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - assign_path 0 - start_path - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func0427_start_path01: - set_chr_dodge_rating 2, 0x00 - set_accuracy 14 - set_reaction_speed 70 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - assign_path 1 - start_path - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func0428_start_path02: - assign_path 2 - start_path - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func1002_intro: - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_music_track MUSIC_AIRFORCEONE_INTRO - camera_movement 0x018c - set_chr_flag_bank3 0x30, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x30, CHRFLAG3_HIDDEN - set_chr_flag_bank2 0x30, CHRFLAG2_00020000 - animation 0x018f, -1, -1, 0x0600, 0x30, 4 - set_chr_flag_bank3 0x31, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x31, CHRFLAG3_HIDDEN - set_chr_flag_bank2 0x31, CHRFLAG2_00020000 - animation 0x018d, -1, -1, 0x0600, 0x31, 4 - set_chr_flag_bank3 CHR_PRESIDENT, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_PRESIDENT, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_PRESIDENT, CHRFLAG2_00020000 - animation 0x018e, -1, -1, 0x0600, CHR_PRESIDENT, 4 - set_chr_flag_bank3 0x13, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0x14, CHRFLAG3_HIDDEN - restart_timer - fade_to_color 0x000000ff, 0 - fade_to_color 0x00000000, 90 - set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE - - .macro wait_until time loopid - beginloop \loopid - if_controller_button_pressed /*goto*/ 0x7d - if_timer_gt \time, /*goto*/ 0x06 - endloop \loopid - label 0x06 - .endm - - wait_until 140, 0x94 - - wait_until 180, 0x60 - speak CHR_JOANNA, 0x3649, 0x744c, CHANNEL_7, COLOR_05_GREEN // "Have you thought any more about that proposal I ga..." - - wait_until 330, 0x95 - - wait_until 360, 0x96 - - wait_until 438, 0x77 - speak CHR_JOANNA, 0x364a, 0x744d, CHANNEL_7, COLOR_08_RED // "My answer remains the same... I'm sorry Trent, but..." - - wait_until 486, 0x97 - - wait_until 532, 0x98 - - wait_until 850, 0x99 - - wait_until 1020, 0x78 - speak CHR_JOANNA, 0x364b, 0x744e, CHANNEL_7, COLOR_05_GREEN // "But this is a golden opportunity to show that Amer..." - - wait_until 1402, 0x79 - speak CHR_JOANNA, 0x364c, 0x81bb, CHANNEL_7, COLOR_08_RED // "Damn it, man! I say no and I mean no! I'm not gonn..." - - wait_until 2348, 0x7a - speak CHR_JOANNA, 0x364d, 0x7450, CHANNEL_7, COLOR_05_GREEN // "As you wish, sir." - - wait_until 2406, 0x9a - - wait_until 2410, 0x62 - open_door 0x15 - - wait_until 2465, 0x9b - - wait_until 2498, 0x9c - - wait_until 2560, 0x9d - - wait_until 2616, 0x9e - - wait_until 2654, 0x7b - speak CHR_JOANNA, 0x364e, 0x7451, CHANNEL_7, COLOR_05_GREEN // "My last chance? Ha! You fool. That was yours." - close_door 0x15 - play_sound 0x8008, CHANNEL_10 - - wait_until 2680, 0x9f - - wait_until 2710, 0xa0 - - wait_until 2790, 0xa5 - - wait_until 3140, 0xa1 - - wait_until 3180, 0xa2 - - wait_until 3190, 0xa3 - - wait_until 3210, 0xa4 - - beginloop 0x08 - if_camera_animating /*goto*/ 0x2d - goto_next 0x7d - - label 0x2d - if_controller_button_pressed /*goto*/ 0x7d - label 0x2d - endloop 0x08 - - label 0x7d - mute_channel CHANNEL_10 - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_DISGUISED - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2d - set_chr_flag_bank2 CHR_VELVET, CHRFLAG2_DISGUISED - label 0x2d - if_eeprom_flag_is_set EEPROMFLAG_AF1_ENTRY, /*goto*/ 0x06 - goto_next 0x7e - label 0x06 - camera_movement 0x01d0 - cmd0175 60 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2d - chr_move_to_pad CHR_VELVET, 0x008a, 0x01, /*goto*/ 0x2d - label 0x2d - if_controller_button_pressed /*goto*/ 0x5f - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x01d1, -1, -1, 0x0600, CHR_JOANNA, 4 - - beginloop 0x09 - if_camera_animating /*goto*/ 0x2d - goto_next 0x5f - label 0x2d - if_controller_button_pressed /*goto*/ 0x5f - label 0x2d - endloop 0x09 - - label 0x7e - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_DISGUISED - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2d - set_chr_flag_bank2 CHR_VELVET, CHRFLAG2_DISGUISED - label 0x2d - dprint "DISGUISED\n" - camera_movement 0x01d2 - cmd0175 60 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2d - chr_move_to_pad CHR_VELVET, 0x00b2, 0x01, /*goto*/ 0x2d - label 0x2d - if_controller_button_pressed /*goto*/ 0x5f - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x01d3, -1, -1, 0x0600, CHR_JOANNA, 4 - - beginloop 0x0a - if_camera_animating /*goto*/ 0x2d - goto_next 0x5f - label 0x2d - if_controller_button_pressed /*goto*/ 0x5f - label 0x2d - endloop 0x0a - - label 0x5f - mute_channel CHANNEL_7 - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - if_eeprom_flag_is_set EEPROMFLAG_AF1_ENTRY, /*goto*/ 0x06 - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP - animation 0x01d3, -2, -1, 0x0600, CHR_JOANNA, 2 - goto_next 0x2d - label 0x06 - animation 0x01d1, -2, -1, 0x0600, CHR_JOANNA, 2 - label 0x2d - restart_default_music - reset_ambience - unset_chr_flag_bank3 0x13, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x14, CHRFLAG3_HIDDEN - set_function CHR_PRESIDENT, FUNC_INIT_PRESIDENT - set_function 0x09, FUNC_INIT_NEUTRAL - set_function 0x0a, FUNC_INIT_NEUTRAL - set_function 0x0c, FUNC_INIT_NEUTRAL - set_function 0x0d, FUNC_INIT_NEUTRAL - remove_chr 0x30 - remove_chr 0x31 - unset_chr_flag_bank3 0x30, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x31, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_PRESIDENT, CHRFLAG3_UNPLAYABLE - set_stage_flag STAGEFLAG_INTRO_FINISHED - enter_firstperson - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * The dumbwaiter near the middle of the plane. - */ -func1010_dumbwaiter1: - label 0x03 - set_object_flag_bank0 OBJ_DUMBWAITER1, OBJECTFLAG0_DEACTIVATED - set_object_image OBJ_DUMBWAITER1_SWITCH, 0x00, 0x12 - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, OBJ_DUMBWAITER1_SWITCH, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - play_sound 0x043a, CHANNEL_7 - set_object_image OBJ_DUMBWAITER1_SWITCH, 0x00, 0x13 - unset_object_flag_bank0 OBJ_DUMBWAITER1, OBJECTFLAG0_DEACTIVATED - yield - yield - yield - - beginloop 0x08 - if_lift_stationary OBJ_DUMBWAITER1, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - set_object_flag_bank0 OBJ_DUMBWAITER1, OBJECTFLAG0_DEACTIVATED - restart_timer - - beginloop 0x09 - if_timer_gt 180, /*goto*/ 0x2d - endloop 0x09 - - label 0x2d - unset_object_flag_bank0 OBJ_DUMBWAITER1, OBJECTFLAG0_DEACTIVATED - yield - yield - yield - - beginloop 0x0a - if_lift_stationary OBJ_DUMBWAITER1, /*goto*/ 0x06 - goto_next 0x2d - - label 0x06 - endloop 0x0a - - label 0x2d - yield - yield - yield - - beginloop 0x0b - if_lift_stationary OBJ_DUMBWAITER1, /*goto*/ 0x06 - endloop 0x0b - - label 0x06 - open_door 0x2b - if_chr_activated_object CHR_P1P2, OBJ_DUMBWAITER1_SWITCH, /*goto*/ 0x2d - label 0x2d - goto_first 0x03 - - endfunction - -func1011_dumbwaiter2: - label 0x03 - set_object_flag_bank0 OBJ_DUMBWAITER2, OBJECTFLAG0_DEACTIVATED - set_object_image OBJ_DUMBWAITER2_SWITCH, 0x00, 0x12 - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, OBJ_DUMBWAITER2_SWITCH, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - play_sound 0x043a, CHANNEL_7 - set_object_image OBJ_DUMBWAITER2_SWITCH, 0x00, 0x13 - unset_object_flag_bank0 OBJ_DUMBWAITER2, OBJECTFLAG0_DEACTIVATED - yield - yield - yield - - beginloop 0x08 - if_lift_stationary OBJ_DUMBWAITER2, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - set_object_flag_bank0 OBJ_DUMBWAITER2, OBJECTFLAG0_DEACTIVATED - restart_timer - - beginloop 0x09 - if_timer_gt 180, /*goto*/ 0x2d - endloop 0x09 - - label 0x2d - unset_object_flag_bank0 OBJ_DUMBWAITER2, OBJECTFLAG0_DEACTIVATED - yield - yield - yield - - beginloop 0x0a - if_lift_stationary OBJ_DUMBWAITER2, /*goto*/ 0x06 - endloop 0x0a - - label 0x06 - // @bug: Wrong object, but this is a no-op anyway. - if_chr_activated_object CHR_P1P2, OBJ_DUMBWAITER1_SWITCH, /*goto*/ 0x2d - label 0x2d - goto_first 0x03 - - endfunction - -func040a_defend_pad: - set_onshot_function FUNC_DEFEND_PAD - set_return_function CHR_SELF, FUNC_DEFEND_PAD - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2d - if_chr_dying CHR_SELF, /*goto*/ 0x2d - if_chr_unloaded CHR_SELF, /*goto*/ 0x2d - goto_next 0x06 - - // Dying - label 0x2d - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - - // Alive - label 0x06 - if_just_injured CHR_SELF, /*goto*/ 0x2d - goto_next 0x06 - - // Injured - label 0x2d - - beginloop 0x0a - if_chr_stopped /*goto*/ 0x06 - endloop 0x0a - - // Not injured - label 0x06 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08 - if_chr_distance_to_pad_lt CHR_SELF, 200, TARGET_PAD, /*goto*/ 0x06 - - label 0x03 - jog_to_pad TARGET_PAD - - beginloop 0x04 - dprint "GO TO PAD\n" - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08 - if_chr_distance_to_pad_lt CHR_SELF, 200, TARGET_PAD, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - stop_chr - - beginloop 0x09 - dprint "AT PAD\n" - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08 - if_chr_distance_to_pad_gt CHR_SELF, 300, TARGET_PAD, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - goto_first 0x03 - - // Detected enemy - label 0x08 - dprint "DETECTED\n" - set_return_function CHR_SELF, FUNC_DEFEND_PAD - set_onshot_function FUNC_DEFEND_PAD - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - endfunction - -/** - * Unused, but would have been assigned to a cyclone guard. - */ -func040b_defend_president: - set_onshot_function FUNC_DEFEND_PRESIDENT - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08 - if_self_distance_to_chr_lt 200, CHR_PRESIDENT, /*goto*/ 0x06 - - label 0x03 - chr_try_run_to_target_chr_with_hand_up CHR_PRESIDENT, /*goto*/ 0x04 - - beginloop 0x04 - dprint "GO TO PAD\n" - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08 - if_detected_chr CHR_PRESIDENT, /*goto*/ 0x60 - endloop 0x04 - - // Near president - label 0x60 - if_self_distance_to_chr_lt 200, CHR_PRESIDENT, /*goto*/ 0x06 - goto_first 0x04 - - label 0x06 - stop_chr - - beginloop 0x09 - dprint "AT PAD\n" - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08 - if_detected_chr CHR_PRESIDENT, /*goto*/ 0x60 - goto_first 0x04 - - label 0x60 - if_chr_distance_to_target_chr_gt 300, CHR_PRESIDENT, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - goto_first 0x03 - - // Detected enemy - label 0x08 - dprint "DETECTED\n" - set_return_function CHR_SELF, FUNC_DEFEND_PRESIDENT - set_onshot_function FUNC_DEFEND_PRESIDENT - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - endfunction - -func0415_cloner1: - set_self_flag_bank3 CHRFLAG3_00000002 - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_self_flag_bank3 CHRFLAG3_00040000 - - beginloop 0x03 - if_stage_flag_eq STAGEFLAG_PRESIDENT_STARTED_RUNNING, TRUE, /*goto*/ 0x06 - reloop 0x03 - - label 0x06 - if_stage_flag_eq STAGEFLAG_PRESIDENT_AT_POD, TRUE, /*goto*/ 0x06 - endloop 0x03 - - label 0x06 - - set_chr_alliance CHR_SELF, 0x04 - try_draw_weapon MODEL_CHRAVENGER, WEAPON_K7AVENGER, 0x10000000, /*goto*/ 0x04 - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_UFO_ATTACHMENT_DAMAGED, TRUE, /*goto*/ 0x0e - // These rooms are the attachment area - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0017, /*goto*/ 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x0018, /*goto*/ 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x0019, /*goto*/ 0x2d - if_never_been_onscreen /*goto*/ 0x4f - if_chr_sees_player /*goto*/ 0x08 - label 0x2d - reloop 0x04 - - // Line of sight to player - label 0x08 - set_function CHR_SELF, FUNC_CLONE1 - - // Chr flag is unset - label 0x4f - if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x4f - reloop 0x04 - - // @bug? This may have intended to be a bank 1 check because the bank 1 - // flag is unset further below, and cloner3 uses bank 1. - label 0x4f - if_self_flag_bankx_eq CHRFLAG0_00080000, TRUE, BANK_0, /*goto*/ 0x2d - restart_timer - - beginloop 0x0b - if_stage_flag_eq STAGEFLAG_UFO_ATTACHMENT_DAMAGED, TRUE, /*goto*/ 0x0e - if_timer_gt 2400, /*goto*/ 0x2d - endloop 0x0b - - // Player is in UFO area, or interval has passed - label 0x2d - unset_self_flag_bankx CHRFLAG1_00080000, BANK_1 - try_spawn_clone2 CHR_SELF, FUNC_INIT_CLONE1, 0x00000000, /*goto*/ 0x2d - label 0x2d - yield - endloop 0x04 - - // UFO attachment damaged - label 0x0e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0416_init_clone1: - set_chr_dodge_rating 2, 0x00 - set_accuracy 14 - set_reaction_speed 50 - set_chr_health CHR_SELF, 60 - set_armor 0 - set_recovery_speed 30 - set_shield 0 - set_self_flag_bankx CHRFLAG1_00080000, BANK_1 - try_draw_weapon MODEL_CHRAVENGER, WEAPON_K7AVENGER, 0x10000000, /*goto*/ 0x04 - label 0x04 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - try_inherit_properties 0x35, /*goto*/ 0x06 - label 0x06 - set_function CHR_SELF, FUNC_CLONE1 - endfunction - -func0417_clone1: - // Pad is at the cockpit door - run_to_pad 0x0042 - set_return_function CHR_SELF, FUNC_CLONE1 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func0418_cloner2: - set_self_flag_bank3 CHRFLAG3_00000002 - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_self_flag_bank3 CHRFLAG3_00040000 - - beginloop 0x03 - if_stage_flag_eq STAGEFLAG_PRESIDENT_STARTED_RUNNING, TRUE, /*goto*/ 0x06 - reloop 0x03 - - label 0x06 - if_stage_flag_eq STAGEFLAG_PRESIDENT_AT_POD, TRUE, /*goto*/ 0x06 - endloop 0x03 - - label 0x06 - - set_chr_alliance CHR_SELF, 0x04 - try_draw_weapon MODEL_CHRAVENGER, WEAPON_K7AVENGER, 0x10000000, /*goto*/ 0x04 - yield - yield - yield - yield - yield - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_UFO_ATTACHMENT_DAMAGED, TRUE, /*goto*/ 0x0e - // These rooms are the attachment area - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0017, /*goto*/ 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x0018, /*goto*/ 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x0019, /*goto*/ 0x2d - if_never_been_onscreen /*goto*/ 0x4f - if_chr_sees_player /*goto*/ 0x08 - label 0x2d - reloop 0x04 - - // Line of sight to player - label 0x08 - set_function CHR_SELF, FUNC_CLONE2 - - // Chr flag is unset - label 0x4f - if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x4f - reloop 0x04 - - // @bug? This may have intended to be a bank 1 check because the bank 1 - // flag is unset further below, and cloner3 uses bank 1. - label 0x4f - if_self_flag_bankx_eq CHRFLAG0_00080000, TRUE, BANK_0, /*goto*/ 0x2d - restart_timer - - beginloop 0x0b - if_stage_flag_eq STAGEFLAG_UFO_ATTACHMENT_DAMAGED, TRUE, /*goto*/ 0x0e - if_timer_gt 3600, /*goto*/ 0x2d - endloop 0x0b - - // Player is in UFO area, or interval has passed - label 0x2d - unset_self_flag_bankx CHRFLAG1_00080000, BANK_1 - try_spawn_clone2 CHR_SELF, FUNC_INIT_CLONE2, 0x00000000, /*goto*/ 0x2d - label 0x2d - yield - endloop 0x04 - - // UFO attachment damaged - label 0x0e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0419_init_clone2: - set_chr_dodge_rating 2, 0x00 - set_accuracy 14 - set_reaction_speed 50 - set_chr_health CHR_SELF, 60 - set_armor 0 - set_recovery_speed 30 - set_shield 0 - set_self_flag_bankx CHRFLAG1_00080000, BANK_1 - try_draw_weapon MODEL_CHRAVENGER, WEAPON_K7AVENGER, 0x10000000, /*goto*/ 0x04 - label 0x04 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - try_inherit_properties 0x36, /*goto*/ 0x06 - label 0x06 - set_function CHR_SELF, FUNC_CLONE2 - endfunction - -func041a_clone2: - // Pad is at back of the plane, top floor - run_to_pad 0x005c - set_return_function CHR_SELF, FUNC_CLONE2 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -/** - * Unlike the other two cloners, this one does not stop once the president has - * reached the escape pod. - */ -func041b_cloner3: - set_self_flag_bank3 CHRFLAG3_00000002 - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_self_flag_bank3 CHRFLAG3_00040000 - - beginloop 0x03 - if_stage_flag_eq STAGEFLAG_PRESIDENT_STARTED_RUNNING, TRUE, /*goto*/ 0x06 - endloop 0x03 - - label 0x06 - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - set_chr_alliance CHR_SELF, 0x04 - try_draw_weapon MODEL_CHRAVENGER, WEAPON_K7AVENGER, 0x10000000, /*goto*/ 0x04 - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_UFO_ATTACHMENT_DAMAGED, TRUE, /*goto*/ 0x0e - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0017, /*goto*/ 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x0018, /*goto*/ 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x0019, /*goto*/ 0x2d - if_never_been_onscreen /*goto*/ 0x4f - if_chr_sees_player /*goto*/ 0x08 - label 0x2d - reloop 0x04 - - label 0x08 - set_function CHR_SELF, FUNC_CLONE3 - label 0x4f - if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x4f - reloop 0x04 - - label 0x4f - if_self_flag_bankx_eq CHRFLAG1_00080000, TRUE, BANK_1, /*goto*/ 0x2d - restart_timer - - beginloop 0x0b - if_stage_flag_eq STAGEFLAG_UFO_ATTACHMENT_DAMAGED, TRUE, /*goto*/ 0x0e - if_timer_gt 3600, /*goto*/ 0x2d - endloop 0x0b - - label 0x2d - unset_self_flag_bankx CHRFLAG1_00080000, BANK_1 - try_spawn_clone2 CHR_SELF, FUNC_INIT_CLONE3, 0x00000000, /*goto*/ 0x2d - label 0x2d - yield - endloop 0x04 - - label 0x0e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func041c_init_clone3: - set_chr_dodge_rating 2, 0x00 - set_accuracy 14 - set_reaction_speed 50 - set_chr_health CHR_SELF, 60 - set_armor 0 - set_recovery_speed 30 - set_shield 0 - set_self_flag_bankx CHRFLAG1_00080000, BANK_1 - try_draw_weapon MODEL_CHRAVENGER, WEAPON_K7AVENGER, 0x10000000, /*goto*/ 0x04 - label 0x04 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - try_inherit_properties 0x37, /*goto*/ 0x06 - label 0x06 - set_function CHR_SELF, FUNC_CLONE3 - endfunction - -func041d_clone3: - set_target_chr CHR_JOANNA - try_run_to_target_chr /*goto*/ 0x04 - label 0x04 - yield - set_return_function CHR_SELF, FUNC_CLONE3 - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -func041f_init_blonde: - set_chr_alliance CHR_SELF, 0x04 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_chr_dodge_rating 2, 0x00 - set_accuracy 24 - set_reaction_speed 50 - set_chr_health CHR_SELF, 60 - set_armor 100 - set_recovery_speed 100 - set_shield 0 - set_function CHR_SELF, FUNC_BLONDE - endfunction - -func041e_blonde: - set_chr_alliance CHR_SELF, 0x04 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_accuracy 30 - set_onshot_function FUNC_BLONDE - 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 0x54 - if_timer_gt 15, /*goto*/ 0x06 - endloop 0x54 - - 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 - // This injured check is pointless - label 0x2d - if_just_injured CHR_SELF, /*goto*/ 0x06 - goto_next 0x08 - - label 0x06 - label 0x08 - set_self_flag_bank3 CHRFLAG3_00000040 - label 0x68 - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x06 - try_chr_kneel_and_shoot_thing 0x0220, 0x0000, /*goto*/ 0x75 - label 0x06 - kneel - - beginloop 0x75 - label 0x2d - consider_coop_for_p1p2_chr CHR_P1P2 - set_target_chr CHR_JOANNA - if_target_chr_in_sight /*goto*/ 0x6a - if_near_miss /*goto*/ 0x6b - label 0x2d - reloop 0x75 - - label 0x06 - if_target_chr_in_sight /*goto*/ 0x6a - label 0x2d - endloop 0x75 - - label 0x6a - if_self_flag_bankx_eq CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x2d - set_self_flag_bankx CHRFLAG0_00000004, BANK_0 - say_quip CHR_JOANNA, 0x0b, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00 - label 0x2d - goto_next 0x6c - - // Unreachable - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x6d - goto_next 0x6e - - // Reachable from below - beginloop 0x6d - if_chr_stopped /*goto*/ 0x6e - endloop 0x6d - - label 0x6e - restart_timer - animation ANIM_RELOAD_0209, 0, -1, 0x1010, CHR_SELF, 2 - - beginloop 0x66 - if_self_flag_bankx_eq CHRFLAG1_00000020, FALSE, BANK_1, /*goto*/ 0x06 - if_timer_lt 120, /*goto*/ 0x06 - assign_sound 0x80f6, CHANNEL_7 - play_sound_from_entity CHANNEL_7, CHR_SELF, 0x0bb8, 0x1770, 0x01 - unset_self_flag_bankx CHRFLAG1_00000020, BANK_1 - label 0x06 - if_chr_stopped /*goto*/ 0x2d - endloop 0x66 - - label 0x2d - label 0x06 - goto_first 0x68 - - label 0x6b - restart_timer - if_self_flag_bankx_eq CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x6f - set_self_flag_bankx CHRFLAG0_00000004, BANK_0 - - label 0x6f - call_rng - if_target_chr_in_sight /*goto*/ 0x70 - if_timer_gt 60, /*goto*/ 0x71 - if_rand_lt 4, /*goto*/ 0x71 - goto_first 0x6f - - label 0x71 - if_chr_sees_player /*goto*/ 0x70 - goto_first 0x68 - - label 0x70 - goto_first 0x6a - - label 0x72 - restart_timer - - beginloop 0x73 - if_chr_sees_player /*goto*/ 0x70 - if_timer_gt 300, /*goto*/ 0x06 - endloop 0x73 - - label 0x06 - goto_first 0x68 - - label 0x70 - goto_first 0x6a - - label 0x6c - say_quip CHR_JOANNA, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00 - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x06 - label 0x06 - goto_first 0x6d - - label 0x2d - goto_first 0x6e - - label 0x76 - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x74 - label 0x74 - 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 0x06 - goto_first 0x6d - - label 0x2d - goto_first 0x6e - - endfunction - -func0421_trent_waiting: - set_chr_alliance CHR_SELF, 0x04 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_self_flag_bank3 CHRFLAG3_00000040 - set_shield 500 - set_chr_flag_bank3 CHR_TRENT, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_sees_player /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - restart_timer - speak TARGET_CHR, 0x362d, 0x816f, CHANNEL_6, COLOR_05_GREEN // "How the hell did you get on board?" - animation ANIM_TALKING_0231, 0, -1, 0x1010, CHR_SELF, 2 - - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - set_function CHR_SELF, FUNC_TRENT_ATTACKING - endfunction - -func0420_trent_attacking: - label 0x03 - stop_chr - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - try_unset_chr_flag_bank3_02000000 CHR_SELF, /*goto*/ 0x2d - set_target_chr CHR_PRESIDENT - if_target_chr_in_sight /*goto*/ 0x06 - if_stage_flag_eq STAGEFLAG_ONE_BLONDE_DEAD, TRUE, /*goto*/ 0x2d - endloop 0x04 - - // One Blonde dead or player in sight - label 0x2d - set_shield 500 - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_10000000 - speak CHR_P1P2, 0x3646, 0x12cb, CHANNEL_6, COLOR_05_GREEN // "Ha, Ha, Ha, Ha, Ha." - set_function CHR_SELF, FUNC_TRENT_RUNNING - - // President in sight - label 0x06 - label 0x76 - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x74 - label 0x74 - say_quip CHR_JOANNA, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00 - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x08 - goto_next 0x2d - - beginloop 0x08 - if_chr_stopped /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - if_chr_dying TARGET_CHR, /*goto*/ 0x09 - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x09 - if_chr_unloaded TARGET_CHR, /*goto*/ 0x09 - goto_first 0x03 - - label 0x2d - goto_first 0x03 - - label 0x09 - restart_timer - animation ANIM_TALKING_0231, 0, -1, 0x1010, CHR_SELF, 2 - speak CHR_P1P2, 0x3647, 0x12ca, CHANNEL_6, COLOR_05_GREEN // "You'll never save him now." - - beginloop 0x0a - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x0a - - label 0x06 - set_function CHR_SELF, FUNC_TRENT_RUNNING - endfunction - -func0422_trent_running: - run_to_pad 0x0034 - - beginloop 0x08 - if_chr_stopped /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - set_target_chr CHR_JOANNA - if_chr_sees_player /*goto*/ 0x06 - set_target_chr CHR_VELVET - if_chr_sees_player /*goto*/ 0x06 - set_self_flag_bank3 CHRFLAG3_HIDDEN - remove_chr CHR_SELF - set_function CHR_SELF, GFUNC_IDLE - - label 0x06 - set_alertness 100 - set_return_function CHR_SELF, GFUNC_UNALERTED - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func1012_check_blondes_dead: - beginloop 0x04 - if_chr_dying CHR_BLONDE1, /*goto*/ 0x2d - if_chr_death_animation_finished CHR_BLONDE1, /*goto*/ 0x2d - if_chr_unloaded CHR_BLONDE1, /*goto*/ 0x2d - - if_chr_dying CHR_BLONDE2, /*goto*/ 0x06 - if_chr_death_animation_finished CHR_BLONDE2, /*goto*/ 0x06 - if_chr_unloaded CHR_BLONDE2, /*goto*/ 0x06 - reloop 0x04 - - // Blonde 2 dead - label 0x06 - set_stage_flag STAGEFLAG_ONE_BLONDE_DEAD - reloop 0x04 - - // Blonde 1 dead - label 0x2d - set_stage_flag STAGEFLAG_ONE_BLONDE_DEAD - if_chr_dying CHR_BLONDE2, /*goto*/ 0x2d - if_chr_death_animation_finished CHR_BLONDE2, /*goto*/ 0x2d - if_chr_unloaded CHR_BLONDE2, /*goto*/ 0x2d - endloop 0x04 - - // Both blondes dead - label 0x2d - set_stage_flag STAGEFLAG_BOTH_BLONDES_DEAD - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1013_unhide_trent_and_blondes: - yield - hide_chr CHR_TRENT - hide_chr CHR_BLONDE1 - hide_chr CHR_BLONDE2 - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_stage_flag_eq STAGEFLAG_PRESIDENT_STARTED_RUNNING, TRUE, /*goto*/ 0x2d - reloop 0x04 - - label 0x2d - if_chr_y CHR_P1P2, 190, OPERATOR_LESS_THAN, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - show_chr CHR_TRENT - set_function CHR_TRENT, FUNC_TRENT_WAITING - show_chr CHR_BLONDE1 - set_function CHR_BLONDE1, FUNC_INIT_BLONDE - show_chr CHR_BLONDE2 - set_function CHR_BLONDE2, FUNC_INIT_BLONDE - yield - unset_chr_flag_bank3 CHR_TRENT, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_BLONDE1, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_BLONDE2, CHRFLAG3_HIDDEN - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Assigned to basically everyone during president conversation. - */ -func0429_be_unalert: - set_onshot_function GFUNC_ALERTED - set_target_chr CHR_JOANNA - set_alertness 0 - - label 0x03 - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x04 - - beginloop 0x04 - if_chr_stopped /*goto*/ 0x06 - if_chr_dying CHR_PRESIDENT, /*goto*/ 0x2d - if_chr_death_animation_finished CHR_PRESIDENT, /*goto*/ 0x2d - if_chr_unloaded CHR_PRESIDENT, /*goto*/ 0x2d - endloop 0x04 - - label 0x06 - goto_first 0x03 - - label 0x2d - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -/** - * Would have given the player one minute before the diguise was uncovered. - * The set_function at the start has effectively disabled this function. - */ -func1014_uncover_disguise: - set_function CHR_SELF, GFUNC_IDLE - restart_timer - - beginloop 0x04 - if_timer_gt 3600, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_DISGUISE_UNCOVERED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Assigned to presidential security as well as the two mechanics. - */ -func042a_init_neutral: - yield - - beginloop 0x60 - if_camera_animating /*goto*/ 0x77 - goto_next 0x06 - - label 0x77 - endloop 0x60 - - label 0x06 - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - set_chr_dodge_rating 2, 0x00 - set_accuracy 14 - set_reaction_speed 70 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func042b_reinit_stripes: - set_chr_dodge_rating 2, 0x00 - set_accuracy 14 - set_reaction_speed 50 - set_chr_health CHR_SELF, 60 - set_armor 0 - set_recovery_speed 30 - set_shield 0 - set_chr_alliance CHR_SELF, 0x04 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, FUNC_STRIPES - endfunction - -func0407_steward: - set_onshot_function FUNC_STEWARD_SHOT - - beginloop 0x03 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_idle /*goto*/ 0x2d - call_rng - if_rand_lt 32, /*goto*/ 0x0f - call_rng - if_rand_lt 32, /*goto*/ 0x8a - if_rand_lt 64, /*goto*/ 0x8b - if_rand_lt 96, /*goto*/ 0x8c - if_rand_lt 128, /*goto*/ 0x8d - if_rand_lt 160, /*goto*/ 0x8e - if_rand_lt 192, /*goto*/ 0x8f - if_rand_lt 224, /*goto*/ 0x90 - - animation ANIM_OPERATE_0221, -1, -1, 0x1001, CHR_SELF, 2 - goto_next 0x2d - - label 0x8a - animation ANIM_OPERATE_0221, -1, -1, 0x1001, CHR_SELF, 2 - goto_next 0x2d - - label 0x8b - animation ANIM_OPERATE_0223, -1, -1, 0x1001, CHR_SELF, 2 - goto_next 0x2d - - label 0x8c - animation ANIM_OPERATE_0221, -1, -1, 0x1101, CHR_SELF, 2 - goto_next 0x2d - - label 0x8d - animation ANIM_OPERATE_0221, -1, -1, 0x1101, CHR_SELF, 2 - goto_next 0x2d - - label 0x8e - animation ANIM_OPERATE_0223, -1, -1, 0x1101, CHR_SELF, 2 - goto_next 0x2d - - label 0x8f - animation 0x023a, -1, -1, 0x1101, CHR_SELF, 2 - goto_next 0x2d - - label 0x90 - animation 0x023b, -1, -1, 0x1101, CHR_SELF, 2 - goto_next 0x2d - - label 0x0f - call_rng - if_rand_lt 86, /*goto*/ 0x60 - if_rand_lt 172, /*goto*/ 0x77 - - if_chr_distance_to_pad_lt CHR_SELF, 50, 0x00c1, /*goto*/ 0x60 - label 0x79 - walk_to_pad 0x00c1 - set_var_a 1 - set_target_pad 0x00c2 - goto_next 0x87 - - label 0x60 - if_chr_distance_to_pad_lt CHR_SELF, 50, 0x00c3, /*goto*/ 0x77 - walk_to_pad 0x00c3 - set_var_a 2 - set_target_pad 0x00c4 - goto_next 0x87 - - label 0x77 - if_chr_distance_to_pad_lt CHR_SELF, 50, 0x00c1, /*goto*/ 0x78 - set_var_a 3 - set_target_pad 0x00c6 - walk_to_pad 0x00c5 - goto_next 0x87 - - label 0x78 - goto_first 0x79 - - beginloop 0x87 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x89 - if_shot_near_chr 0x00, /*goto*/ 0x89 - if_chr_stopped /*goto*/ 0x06 - endloop 0x87 - - label 0x06 - try_face_entity ENTITYTYPE_PAD, TARGET_PAD, /*goto*/ 0x88 - - beginloop 0x88 - if_chr_stopped /*goto*/ 0x06 - endloop 0x88 - - label 0x06 - reloop 0x03 - - animation ANIM_OPERATE_0204, 0, -1, 0x1010, CHR_SELF, 2 - label 0x2d - if_target_chr_in_sight /*goto*/ 0x89 - if_shot_near_chr 0x00, /*goto*/ 0x89 - endloop 0x03 - - // Detected player - label 0x89 - set_alertness 100 - restart_timer - try_face_entity 0x0200, 0x0000, /*goto*/ 0x09 - - beginloop 0x09 - if_angle_to_target_chr_lt 10, /*goto*/ 0x06 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - set_group_alertness 100 - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_DISGUISE_UNCOVERED - do_special_animation -1 - restart_timer - speak CHR_P1P2, 0x362b, 0x1abb, CHANNEL_4, COLOR_04_ORANGE // "Hey, that's not..." - - beginloop 0x08 - if_timer_gt 35, /*goto*/ 0x2d - endloop 0x08 - - label 0x2d - mute_channel CHANNEL_4 - set_function CHR_SELF, GFUNC_ALERTED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0407_steward_shot: - mute_channel CHANNEL_4 - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -func0407_stewardess: - set_chr_health CHR_SELF, 0 - set_onshot_function FUNC_STEWARDESS - 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 0x03 - - label 0x06 - set_function CHR_SELF, GFUNC_IDLE - - // Wait until alerted - beginloop 0x03 - if_chr_idle /*goto*/ 0x2d - animation ANIM_OPERATE_0204, 0, -1, 0x1010, CHR_SELF, 2 - label 0x2d - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x2d - if_shot_near_chr 0x00, /*goto*/ 0x2d - if_chr_dying CHR_STEWARD, /*goto*/ 0x2d - if_chr_death_animation_finished CHR_STEWARD, /*goto*/ 0x2d - if_chr_unloaded CHR_STEWARD, /*goto*/ 0x2d - endloop 0x03 - - // Alerted - label 0x2d - try_face_entity 0x0200, 0x0000, /*goto*/ 0x09 - - beginloop 0x09 - if_angle_to_target_chr_lt 10, /*goto*/ 0x06 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_DISGUISE_UNCOVERED - animation ANIM_WALK_BACKWARDS, -1, -1, 0x1010, CHR_SELF, 2 - restart_timer - - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - try_target_chr_in_same_group /*goto*/ 0x2d - goto_next 0x0a - - label 0x2d - try_run_to_chr FOLLOW_CHR, /*goto*/ 0x7f - - beginloop 0x7f - if_detected_chr FOLLOW_CHR, /*goto*/ 0x80 - if_chr_stopped /*goto*/ 0x80 - endloop 0x7f - - label 0x80 - play_sound 0x1adc, CHANNEL_7 - set_group_alertness 100 - - label 0x0a - set_self_flag_bank3 CHRFLAG3_01000000 - animation ANIM_COWER_0229, -1, 190, 0x100a, CHR_SELF, 2 - - beginloop 0x83 - if_chr_stopped /*goto*/ 0x2d - endloop 0x83 - - label 0x2d - goto_first 0x0a - - endfunction - -func1015_msg_retrievetheevidence: - if_difficulty_lt DIFF_SA, /*goto*/ 0x0e - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_INTRO_FINISHED, TRUE, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - restart_timer - - beginloop 0x08 - if_timer_gt 180, /*goto*/ 0x2d - endloop 0x08 - - label 0x2d - speak CHR_JOANNA, 0x362e, 0x73c8, CHANNEL_6, COLOR_09_BLUE // "Now, let's retrieve the evidence." - label 0x0e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1016_msg_onthislevel: - restart_timer - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_y CHR_P1P2, 440, OPERATOR_LESS_THAN, /*goto*/ 0x06 - goto_next 0x2d - - label 0x06 - endloop 0x04 - - label 0x2d - set_target_chr FOLLOW_CHR - speak TARGET_CHR, 0x362f, 0x8185, CHANNEL_6, COLOR_09_BLUE // "The President's room is on this level, Joanna." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1017_msg_gettothecockpit: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_ALL_OBJECTIVES_COMPLETE, TRUE, /*goto*/ 0x0e - if_stage_flag_eq STAGEFLAG_PILOTS_DEAD, TRUE, /*goto*/ 0x2d - reloop 0x04 - - label 0x2d - if_stage_flag_eq STAGEFLAG_PLANE_NOSEDIVING, TRUE, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - restart_timer - - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_ALL_OBJECTIVES_COMPLETE, TRUE, /*goto*/ 0x0e - if_timer_gt 180, /*goto*/ 0x2d - endloop 0x08 - - label 0x2d - speak CHR_JOANNA, 0x3630, 0x8186, CHANNEL_5, COLOR_09_BLUE // "Something's wrong... You have to get to the cockpi..." - - label 0x0e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1018_msg_maybeamine: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_ALL_OBJECTIVES_COMPLETE, TRUE, /*goto*/ 0x0e - consider_coop_for_p1p2_chr CHR_SELF - if_objective_complete 2, /*goto*/ 0x2d - reloop 0x04 - - label 0x2d - if_chr_in_room CHR_P1P2, 0x00, 0x0018, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - speak CHR_P1P2, 0x3631, 0x73cb, CHANNEL_6, COLOR_09_BLUE // "Maybe a mine will detach the UFO." - - label 0x0e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0c02_outro_from_menu: - set_function CHR_ELVIS, GFUNC_IDLE - set_function CHR_SELF, FUNC_OUTRO - endfunction - -func0423_outro: - set_lighting 0x0000, 0x0d, 0x00 - 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 - camera_movement 0x02d8 - set_music_track MUSIC_AIRFORCEONE_OUTRO - set_lighting 0x0000, 0x0d, 0x00 - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0xf1, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_P1P2, CHRFLAG3_HIDDEN - set_function TARGET_CHR, GFUNC_IDLE - set_chr_flag_bank3 TARGET_CHR, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 TARGET_CHR, CHRFLAG3_HIDDEN - set_chr_flag_bank2 TARGET_CHR, CHRFLAG2_00020000 - animation 0x02da, -1, -1, 0x0600, TARGET_CHR, 4 - set_chr_hud_visible TARGET_CHR, TRUE - 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 0x02d9, -1, -1, 0x0600, CHR_ELVIS, 4 - show_object 0x19 - set_object_flag_bank1 0x19, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x19, OBJECTFLAG2_00000010 - object_do_animation 0x02db, 0x19, 0x04ff, 0xff - show_object 0x1a - set_object_flag_bank1 0x1a, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x1a, OBJECTFLAG2_00000010 - object_do_animation 0x02dc, 0x1a, 0x04ff, 0xff - show_object 0x23 - set_object_flag_bank1 0x23, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x23, OBJECTFLAG2_00000010 - object_do_animation 0x02dd, 0x23, 0x04ff, 0xff - show_object 0x37 - set_object_flag_bank1 0x37, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x37, OBJECTFLAG2_00000010 - object_do_animation 0x02de, 0x37, 0x04ff, 0xff - restart_timer - set_cutscene_weapon TARGET_CHR, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon TARGET_CHR, WEAPON_NONE, WEAPON_NONE - show_nonessential_chrs FALSE - label 0x60 - yield - if_controller_button_pressed /*goto*/ 0x5f - if_timer_gt 20, /*goto*/ 0x06 - goto_first 0x60 - - label 0x06 - speak CHR_JOANNA, 0x364f, 0x7452, CHANNEL_7, COLOR_09_BLUE // "Elvis! Elvis! I can't detach that tube from the fu..." - - .macro outro_wait_until time loopid - beginloop \loopid - if_controller_button_pressed /*goto*/ 0x5f - if_timer_gt \time, /*goto*/ 0x06 - endloop \loopid - label 0x06 - .endm - - outro_wait_until 426, 0x77 - speak CHR_JOANNA, 0x3650, 0x7453, CHANNEL_7, COLOR_06_WHITE // "Piece of cake, Joanna. Watch this!" - - outro_wait_until 1045, 0x65 - play_sound 0x0063, CHANNEL_10 - - outro_wait_until 1050, 0x78 - speak CHR_JOANNA, 0x3651, 0x7454, CHANNEL_7, COLOR_06_WHITE // "Uh-oh." - emit_sparks 0x23 - - outro_wait_until 1112, 0x79 - speak CHR_JOANNA, 0x3652, 0x7455, CHANNEL_7, COLOR_09_BLUE // "Watch what? Will you stop playing around and shoot..." - - outro_wait_until 1380, 0x7a - speak CHR_JOANNA, 0x3653, 0x7456, CHANNEL_7, COLOR_06_WHITE // "Out of options... Joanna, brace yourself for impac..." - - outro_wait_until 1950, 0x7b - - outro_wait_until 1951, 0x62 - destroy_object 0x1a - - outro_wait_until 1958, 0x63 - destroy_object 0x1a - - outro_wait_until 1970, 0x64 - destroy_object 0x1a - destroy_object 0x19 - - outro_wait_until 1985, 0x8e - destroy_object 0x1a - - outro_wait_until 2000, 0x8a - destroy_object 0x1a - - outro_wait_until 2015, 0x8b - destroy_object 0x1a - - outro_wait_until 2030, 0x8c - destroy_object 0x1a - - outro_wait_until 2045, 0x8d - destroy_object 0x1a - - outro_wait_until 2060, 0x8f - destroy_object 0x1a - - beginloop 0x08 - if_camera_animating /*goto*/ 0x2d - goto_next 0x5f - - label 0x2d - if_controller_button_pressed /*goto*/ 0x5f - label 0x2d - endloop 0x08 - - label 0x5f - mute_channel CHANNEL_10 - label 0x06 - restart_default_music - set_lighting 0x0000, 0x0d, 0x00 - hide_object 0x19 - hide_object 0x1a - set_chr_hud_visible TARGET_CHR, FALSE - end_level - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1019_midcutscene: - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_TRIGGER_MIDCUTSCENE, TRUE, /*goto*/ 0x2d - endloop 0x08 - - label 0x2d - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - if_stage_flag_eq STAGEFLAG_MIDCUTSCENE_STARTED, TRUE, /*goto*/ 0x2d - set_stage_flag STAGEFLAG_MIDCUTSCENE_STARTED - dprint "mid cutscene\n" - set_music_track MUSIC_AIRFORCEONE_MIDCUTSCENE - label 0x2d - camera_movement 0x02df - - show_object 0x19 - set_object_flag_bank1 0x19, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x19, OBJECTFLAG2_00000010 - object_do_animation 0x02e0, 0x19, 0x04ff, 0xff - set_object_part_visible 0x19, TRUE - - show_object 0x37 - set_object_flag_bank1 0x37, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x37, OBJECTFLAG2_00000010 - object_do_animation 0x02e1, 0x37, 0x04ff, 0xff - - restart_timer - - outro_wait_until 1086, 0x61 - play_sound 0x042c, -1 - - beginloop 0x09 - if_camera_animating /*goto*/ 0x2d - goto_next 0x5f - - label 0x2d - if_controller_button_pressed /*goto*/ 0x5f - label 0x2d - endloop 0x09 - - label 0x5f - hide_object 0x37 - hide_object 0x19 - label 0x06 - set_stage_flag STAGEFLAG_MIDCUTSCENE_FINISHED - restart_default_music - reset_ambience - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_function CHR_SELF, GFUNC_END_CINEMA - endfunction - -func1019_midcutscene_from_menu: - set_stage_flag STAGEFLAG_TRIGGER_MIDCUTSCENE - set_function CHR_SELF, FUNC_MIDCUTSCENE - endfunction - -func101a_equipment_switch: - set_object_flag_bank0 0x1b, OBJECTFLAG0_DEACTIVATED - set_object_image OBJ_EQUIPMENT_SWITCH, 0x00, 0x12 - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, OBJ_EQUIPMENT_SWITCH, /*goto*/ 0x2d - reloop 0x04 - - label 0x2d - if_chr_has_object CHR_P1P2, OBJ_KEYCARD, /*goto*/ 0x2d - - restart_timer - message CHR_P1P2, 0x363f // "Access denied - lift key card required." - - beginloop 0x77 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x77 - - label 0x06 - endloop 0x04 - - // Switch activated with keycard - label 0x2d - set_object_image OBJ_EQUIPMENT_SWITCH, 0x00, 0x13 - set_stage_flag STAGEFLAG_EQUIPMENT_RAISED - open_door 0x1c - message CHR_P1P2, 0x363d // "Cargo bay has been raised." - assign_sound 0x043a, CHANNEL_7 - control_sound_from_object CHANNEL_7, OBJ_EQUIPMENT_SWITCH, TRUE - unset_object_flag_bank0 0x1b, OBJECTFLAG0_DEACTIVATED - yield - yield - yield - yield - yield - yield - restart_timer - - beginloop 0x08 - if_lift_stationary 0x1b, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - set_object_flag_bank0 0x1b, OBJECTFLAG0_DEACTIVATED - set_object_image OBJ_EQUIPMENT_SWITCH, 0x00, 0x12 - - beginloop 0x09 - if_door_state 0x1c, DOORSTATE_CLOSING, /*goto*/ 0x2d - reloop 0x09 - - label 0x2d - open_door 0x1c - endloop 0x09 - - endfunction - -func101b_hoverbike_switch: - unset_eeprom_flag EEPROMFLAG_CRASHSITE_BIKE - set_object_flag_bank0 0x1f, OBJECTFLAG0_DEACTIVATED - set_object_image OBJ_HOVERBIKE_SWITCH, 0x00, 0x12 - label 0x08 - open_door 0x20 - - beginloop 0x09 - consider_coop_for_p1p2_chr CHR_SELF - if_door_state 0x20, DOORSTATE_CLOSING, /*goto*/ 0x2d - if_chr_activated_object CHR_P1P2, OBJ_HOVERBIKE_SWITCH, /*goto*/ 0x0a - reloop 0x09 - - label 0x2d - open_door 0x20 - reloop 0x09 - - label 0x0a - if_chr_has_object CHR_P1P2, OBJ_KEYCARD, /*goto*/ 0x2d - restart_timer - message CHR_P1P2, 0x363f // "Access denied - lift key card required." - - beginloop 0x77 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x77 - - label 0x06 - endloop 0x09 - - // Activated with keycard - label 0x2d - set_object_image OBJ_HOVERBIKE_SWITCH, 0x00, 0x13 - message CHR_P1P2, 0x363c // "Cargo bay has been lowered." - set_eeprom_flag EEPROMFLAG_CRASHSITE_BIKE - assign_sound 0x043a, CHANNEL_7 - control_sound_from_object CHANNEL_7, OBJ_HOVERBIKE_SWITCH, TRUE - unset_object_flag_bank0 0x1f, OBJECTFLAG0_DEACTIVATED - restart_timer - - beginloop 0x0c - if_timer_gt 2, /*goto*/ 0x2d - endloop 0x0c - - label 0x2d - close_door 0x20 - - beginloop 0x0b - if_lift_stationary 0x1f, /*goto*/ 0x06 - endloop 0x0b - - label 0x06 - set_object_flag_bank0 0x1f, OBJECTFLAG0_DEACTIVATED - set_object_image OBJ_HOVERBIKE_SWITCH, 0x00, 0x12 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101c_check_equipment_switch_destroyed: - beginloop 0x04 - if_object_in_good_condition OBJ_EQUIPMENT_SWITCH, /*goto*/ 0x2d - goto_next 0x06 - - label 0x2d - endloop 0x04 - - label 0x06 - if_stage_flag_eq STAGEFLAG_EQUIPMENT_RAISED, TRUE, /*goto*/ 0x2d - set_stage_flag STAGEFLAG_EQUIPMENT_SWITCH_DESTROYED - message CHR_JOANNA, 0x363e // "Mission critical object has been destroyed." - label 0x2d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040c_init_defend_pad: - unset_chr_flag_bank2 CHR_SELF, CHRFLAG2_40000000 - set_chr_alliance CHR_SELF, ALLIANCE_ALLY - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_target_chr -1 - label 0x04 - try_draw_weapon MODEL_CHRCYCLONE, WEAPON_CYCLONE, 0x00000000, /*goto*/ 0x2d - label 0x2d - set_function CHR_SELF, FUNC_DEFEND_PAD - endfunction - -func040e_unused: - label 0x04 - try_draw_weapon MODEL_CHRCYCLONE, WEAPON_CYCLONE, 0x00000000, /*goto*/ 0x2d - label 0x2d - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -/** - * Unused. - */ -func040d_init_defend_president: - label 0x04 - try_draw_weapon MODEL_CHRCYCLONE, WEAPON_CYCLONE, 0x00000000, /*goto*/ 0x2d - label 0x2d - set_function CHR_SELF, FUNC_DEFEND_PRESIDENT - endfunction - -func042c_remove_if_offscreen: - unset_chr_flag_bank2 CHR_SELF, CHRFLAG2_40000000 - set_chr_alliance CHR_SELF, ALLIANCE_ALLY - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_chr_health CHR_SELF, 0 - - label 0x04 - yield - set_target_chr CHR_JOANNA - if_chr_sees_player /*goto*/ 0x06 - set_target_chr CHR_VELVET - if_chr_sees_player /*goto*/ 0x06 - label 0x08 - chr_drop_weapon CHR_SELF - remove_chr CHR_SELF - yield - set_function CHR_SELF, GFUNC_IDLE - - label 0x06 - set_function CHR_SELF, FUNC_INIT_DEFEND_PAD - endfunction - -/** - * If president dies between mid cutscene and Jo's "we have to get you to the - * escape pod" line, set the flag that causes things to happen. - * - * This was most likely added after QA, hence why the original function wasn't - * changed instead. - */ -func101d_handle_early_president_death: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_MIDCUTSCENE_FINISHED, TRUE, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - hide_object OBJ_EXTERIOR_DOOR - unset_object_flag_bank1 OBJ_EXTERIOR_DOOR_DETACHED, OBJECTFLAG1_INVISIBLE - set_object_flag_bank0 OBJ_EXTERIOR_DOOR_DETACHED, OBJECTFLAG0_00000100 - - beginloop 0x08 - if_chr_death_animation_finished CHR_PRESIDENT, /*goto*/ 0x2d - if_chr_dying CHR_PRESIDENT, /*goto*/ 0x2d - if_chr_unloaded CHR_PRESIDENT, /*goto*/ 0x2d - endloop 0x08 - - label 0x2d - set_stage_flag STAGEFLAG_PRESIDENT_STARTED_RUNNING - unlock_door OBJ_COCKPITDOOR, 0x40 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1007_check_pod_destroyed: - beginloop 0x04 - if_object_in_good_condition OBJ_ESCAPE_POD, /*goto*/ 0x2d - message CHR_JOANNA, 0x363e // "Mission critical object has been destroyed." - set_stage_flag STAGEFLAG_POD_DESTROYED - set_function CHR_SELF, GFUNC_IDLE - label 0x2d - endloop 0x04 - - endfunction - -func101f_setup_rtracker: - yield - set_object_flag_bank2 0x38, OBJECTFLAG2_RTRACKED_BLUE - set_object_flag_bank2 0x39, OBJECTFLAG2_RTRACKED_BLUE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1420_setup_lighting: - yield - set_lighting 0x001a, 0x05, 0x01 - set_lighting 0x001b, 0x05, 0x01 - set_lighting 0x002b, 0x05, 0x01 - set_lighting 0x002d, 0x05, 0x01 - set_lighting 0x002e, 0x05, 0x01 - set_lighting 0x002f, 0x05, 0x01 - set_lighting 0x0030, 0x05, 0x01 - set_lighting 0x0031, 0x05, 0x01 - set_lighting 0x0032, 0x05, 0x01 - set_lighting 0x0033, 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 0x0039, 0x05, 0x01 - set_lighting 0x003b, 0x05, 0x01 - set_lighting 0x003c, 0x05, 0x01 - set_lighting 0x003e, 0x05, 0x01 - set_lighting 0x003f, 0x05, 0x01 - set_lighting 0x0040, 0x05, 0x01 - set_lighting 0x0041, 0x05, 0x01 - set_lighting 0x0042, 0x05, 0x01 - set_lighting 0x0043, 0x05, 0x01 - set_lighting 0x0059, 0x05, 0x01 - set_function CHR_SELF, GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1022_pilots_stabilizing: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_PLANE_NOSEDIVING, TRUE, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - restart_timer - - beginloop 0x93 - if_chr_death_animation_finished CHR_PILOT1, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_PILOT1, /*goto*/ 0x2e - if_chr_death_animation_finished CHR_PILOT1, /*goto*/ 0x2e - goto_next 0x06 - - label 0x2e - if_chr_death_animation_finished CHR_PILOT2, /*goto*/ 0x0e - if_chr_death_animation_finished CHR_PILOT2, /*goto*/ 0x0e - if_chr_death_animation_finished CHR_PILOT2, /*goto*/ 0x0e - - // Pilots stabilizing - label 0x06 - if_stage_flag_eq STAGEFLAG_PLANE_STABILIZED, TRUE, /*goto*/ 0x0e - if_timer_gt 1200, /*goto*/ 0x06 - endloop 0x93 - - label 0x06 - message CHR_JOANNA, 0x3654 // "The pilots have stabilized Air Force One." - set_stage_flag STAGEFLAG_PLANE_STABILIZED - - label 0x0e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1023_check_pilots_dead: - beginloop 0x04 - if_chr_death_animation_finished CHR_PILOT1, /*goto*/ 0x2d - if_chr_death_animation_finished CHR_PILOT1, /*goto*/ 0x2d - if_chr_death_animation_finished CHR_PILOT1, /*goto*/ 0x2d - reloop 0x04 - - label 0x2d - if_chr_death_animation_finished CHR_PILOT2, /*goto*/ 0x2d - if_chr_death_animation_finished CHR_PILOT2, /*goto*/ 0x2d - if_chr_death_animation_finished CHR_PILOT2, /*goto*/ 0x2d - endloop 0x04 - - label 0x2d - set_stage_flag STAGEFLAG_PILOTS_DEAD - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Wait until intro finished, then wait several frames before unsetting a flag - * on Joanna. - * - * When the flag is set, the co-op buddy will attempt to warp to Jo. This is - * needed because Jo can start in two locations in this level, but the buddy - * only starts in one location. - * - * The flag must be unset so the buddy stops attempting to warp. - */ -func1025_disable_buddy_warp: - yield - - beginloop 0x04 - if_camera_animating /*goto*/ 0x2d - goto_next 0x06 - - label 0x2d - endloop 0x04 - - label 0x06 - yield - yield - yield - yield - yield - yield - yield - unset_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1026_buddy_floor_hatch: - yield - - beginloop 0x93 - if_camera_animating /*goto*/ 0x2d - goto_next 0x04 - - label 0x2d - endloop 0x93 - - // This flag is set by a global function - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_AI_BUDDY_EXISTS, TRUE, /*goto*/ 0x2d - endloop 0x04 - - // Maybe the AI has difficulty opening the floor hatch so they removed it? - label 0x2d - hide_object OBJ_FLOORHATCH - set_object_flag_bank0 OBJ_FLOOR_HATCH_DETACHED, OBJECTFLAG0_00000100 - unset_object_flag_bank1 OBJ_FLOOR_HATCH_DETACHED, OBJECTFLAG1_INVISIBLE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -functions: - register_function func1400_setup_counterop 0x1400 - register_function func1001_objectives_failed_msg 0x1001 - register_function func1002_intro 0x1002 - register_function func1003_rebuild_groups 0x1003 - register_function func1004_reassign_functions_during_conversation 0x1004 - register_function func1005_check_neutrals_killed 0x1005 - register_function func1006_hijack 0x1006 - register_function func1007_check_pod_destroyed 0x1007 - register_function func1008_check_mine_wasted_joanna 0x1008 - register_function func1009_check_end_level 0x1009 - register_function func100a_autopilot_switch 0x100a - register_function func100b_check_president_dead 0x100b - register_function func100c_cockpit 0x100c - register_function func1010_dumbwaiter1 0x1010 - register_function func1011_dumbwaiter2 0x1011 - register_function func1012_check_blondes_dead 0x1012 - register_function func1013_unhide_trent_and_blondes 0x1013 - register_function func1014_uncover_disguise 0x1014 - register_function func1015_msg_retrievetheevidence 0x1015 - register_function func1016_msg_onthislevel 0x1016 - register_function func1017_msg_gettothecockpit 0x1017 - register_function func1018_msg_maybeamine 0x1018 - register_function func1019_midcutscene 0x1019 - register_function func101a_equipment_switch 0x101a - register_function func101b_hoverbike_switch 0x101b - register_function func101c_check_equipment_switch_destroyed 0x101c - register_function func101d_handle_early_president_death 0x101d - register_function func101e_blow_mines 0x101e - register_function func101f_setup_rtracker 0x101f - register_function func1420_setup_lighting 0x1420 - register_function func1021_check_mine_wasted_velvet 0x1021 - register_function func1022_pilots_stabilizing 0x1022 - register_function func1023_check_pilots_dead 0x1023 - register_function func1024_give_objects 0x1024 - register_function func1025_disable_buddy_warp 0x1025 - register_function func1026_buddy_floor_hatch 0x1026 - register_function func1002_intro 0x0c00 - register_function func1019_midcutscene_from_menu 0x0c01 - register_function func0c02_outro_from_menu 0x0c02 - register_function func0401_init_stripes 0x0401 - register_function func0402_init_elvis 0x0402 - register_function func0403_stripes 0x0403 - register_function func0404_president_running 0x0404 - register_function func0405_president_in_room 0x0405 - register_function func0406_init_president 0x0406 - register_function func0407_steward 0x0407 - register_function func0407_stewardess 0x0408 - register_function func1019_midcutscene 0x0424 - register_function func0409_unused 0x0409 - register_function func040a_defend_pad 0x040a - register_function func040b_defend_president 0x040b - register_function func040c_init_defend_pad 0x040c - register_function func040d_init_defend_president 0x040d - register_function func040e_unused 0x040e - register_function func0413_taker 0x0413 - register_function func100c_cockpit_stripes 0x0414 - register_function func0413_taker1 0x040f - register_function func0413_taker2 0x0410 - register_function func0413_taker 0x0413 - register_function func0411_typing_guy 0x0411 - register_function func0412_sitting_guy 0x0412 - register_function func0426_start_path00 0x0426 - register_function func0427_start_path01 0x0427 - register_function func0428_start_path02 0x0428 - register_function func0429_be_unalert 0x0429 - register_function func042a_init_neutral 0x042a - register_function func042b_reinit_stripes 0x042b - register_function func042c_remove_if_offscreen 0x042c - register_function func0415_cloner1 0x0415 - register_function func0416_init_clone1 0x0416 - register_function func0417_clone1 0x0417 - register_function func0418_cloner2 0x0418 - register_function func0419_init_clone2 0x0419 - register_function func041a_clone2 0x041a - register_function func041b_cloner3 0x041b - register_function func041c_init_clone3 0x041c - register_function func041d_clone3 0x041d - register_function func041e_blonde 0x041e - register_function func041f_init_blonde 0x041f - register_function func0420_trent_attacking 0x0420 - register_function func0421_trent_waiting 0x0421 - register_function func0422_trent_running 0x0422 - register_function func0423_outro 0x0423 - register_function func0407_steward_shot 0x0425 - endfunctions - -paths: - register_path path00, 0, 0 - register_path path01, 1, 0 - register_path path02, 2, 0 - endpaths - -.align 4 diff --git a/asm/setup/setuprun.s b/asm/setup/setuprun.s deleted file mode 100644 index cb20acdf9..000000000 --- a/asm/setup/setuprun.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Stage ID 0x23 -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupsevb.s b/asm/setup/setupsevb.s deleted file mode 100644 index 2c8cd9c6f..000000000 --- a/asm/setup/setupsevb.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Retaking the Institute -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupsevx.s b/asm/setup/setupsevx.s deleted file mode 100644 index 95b282785..000000000 --- a/asm/setup/setupsevx.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Stage IDs 0x24 and 0x2b -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupsevxb.s b/asm/setup/setupsevxb.s deleted file mode 100644 index 470819dd2..000000000 --- a/asm/setup/setupsevxb.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Unused -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupsho.s b/asm/setup/setupsho.s deleted file mode 100644 index b0ce5a661..000000000 --- a/asm/setup/setupsho.s +++ /dev/null @@ -1,3912 +0,0 @@ -# -# 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_propsoundcount_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_propsoundcount_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 diff --git a/asm/setup/setupsilo.s b/asm/setup/setupsilo.s deleted file mode 100644 index 5a6c179e1..000000000 --- a/asm/setup/setupsilo.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Stage ID 0x14 -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/asm/setup/setupstat.s b/asm/setup/setupstat.s deleted file mode 100644 index 0777090ce..000000000 --- a/asm/setup/setupstat.s +++ /dev/null @@ -1,1372 +0,0 @@ -# -# WAR! -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -// Characters -.set CHR_MAIAN_LEADER, 0x3d -.set CHR_MAIAN_TEMPLATE, 0x3e -.set CHR_SKEDAR_TEMPLATE, 0x3f -.set CHR_KING1, 0x40 -.set CHR_KING2, 0x41 -.set CHR_KING3, 0x42 -.set CHR_BLONDE, 0x43 -.set CHR_MAIAN1, 0x44 -.set CHR_MAIAN2, 0x45 -.set CHR_MAIAN3, 0x46 -.set CHR_MAIAN4, 0x47 -.set CHR_MAIAN5, 0x48 - -// Objects -.set OBJ_BRIDGE, 0x05 -.set OBJ_MINE1, 0x2f -.set OBJ_MINE2, 0x30 -.set OBJ_MINE3, 0x31 -.set OBJ_MINE4, 0x32 -.set OBJ_MINE5, 0x33 -.set OBJ_MINE6, 0x40 - -// Stage flags -.set STAGEFLAG_LEADER_DEAD, 0x00000100 -.set STAGEFLAG_KING1_DEAD, 0x00000200 -.set STAGEFLAG_KING2_DEAD, 0x00000400 -.set STAGEFLAG_KING3_DEAD, 0x00000800 - -// Functions -.set FUNC_DEFEND, 0x0401 -.set FUNC_INIT_KING, 0x0402 -.set FUNC_INIT_LEADER, 0x0403 -.set FUNC_MAIAN, 0x0404 -.set FUNC_INIT_MAIAN, 0x0405 -.set FUNC_SKEDAR, 0x0406 -.set FUNC_KING1_SKEDAR, 0x0407 -.set FUNC_KING2_SKEDAR, 0x0408 -.set FUNC_KING3_SKEDAR, 0x0409 -.set FUNC_INTRO, 0x040a -.set FUNC_OUTRO, 0x040b -.set FUNC_HIDE, 0x040c -.set FUNC_BLOW_MINES, 0x040d - -// Other -.set GROUP_MAIANS, 1 -.set GROUP_KING1_SKEDAR, 2 -.set GROUP_KING2_SKEDAR, 3 -.set GROUP_KING3_SKEDAR, 4 - -props: - briefing 0, 0x4601 - briefing 1, 0x4600 - briefing 2, 0x4602 - briefing 3, 0x4603 - - beginobjective 0, 0x4604, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Kill Skedar King." - complete_flags STAGEFLAG_KING1_DEAD - fail_flags STAGEFLAG_LEADER_DEAD - endobjective - - beginobjective 1, 0x4605, DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Kill Skedar King 2." - complete_flags STAGEFLAG_KING2_DEAD - endobjective - - beginobjective 2, 0x4606, DIFFBIT_PA | DIFFBIT_PD // "Kill Skedar King 3." - complete_flags STAGEFLAG_KING3_DEAD - endobjective - - chr 0x00000000, CHR_MAIAN_LEADER, 0x004f, BODY_ELVIS1, HEAD_MAIAN_S, FUNC_INIT_LEADER, 0x004e, -1, 1000, 200, 0x00002000, 0xc0304000, 0x10, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAIANSMG, 0x003d, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CALLISTONTG, 0x00ffffff, 0x00000000 - - chr 0x00000000, CHR_MAIAN_TEMPLATE, 0x0045, BODY_CISOLDIER, HEAD_RANDOM, FUNC_HIDE, -1, -1, 200, 100, 0x00012000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAR34, 0x003e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AR34, 0x00ffffff, 0x00000000 - - chr 0x00000000, CHR_KING1, 0x007c, BODY_SKEDARKING, HEAD_RANDOM, FUNC_INIT_KING, 0x007c, -1, 1000, 200, 0x00002000, 0xc0304008, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSKMINIGUN, 0x0040, 0x10004000, 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 0x000000c0, CHR_KING2, 0x0110, BODY_SKEDARKING, HEAD_RANDOM, FUNC_INIT_KING, 0x0091, -1, 1000, 200, 0x00002000, 0xc0304000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSKROCKET, 0x0041, 0x10004000, 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 0x00000080, CHR_KING3, 0x0094, BODY_SKEDARKING, HEAD_RANDOM, FUNC_INIT_KING, 0x0094, -1, 1000, 200, 0x00002000, 0xc0304000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_KINGSCEPTRE, 0x0042, 0x10006000, 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 0x00000300, CHR_BLONDE, 0x0077, BODY_SKEDAR, HEAD_MRBLONDE, FUNC_KING1_SKEDAR, 0x0022, -1, 1000, 200, 0x00002000, 0xc0304000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAULER, 0x0043, 0x10004000, 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, CHR_SKEDAR_TEMPLATE, 0x007d, BODY_CISOLDIER, HEAD_RANDOM, FUNC_HIDE, -1, -1, 200, 100, 0x00012000, 0xc0300000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAR34, 0x003f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AR34, 0x00ffffff, 0x00000000 - - chr 0x00000000, CHR_MAIAN1, 0x0009, BODY_ELVIS1, HEAD_MAIAN_S, GFUNC_IDLE, -1, -1, 200, 100, 0x00012000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAIANSMG, 0x0044, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CALLISTONTG, 0x00ffffff, 0x00000000 - - chr 0x00000000, CHR_MAIAN2, 0x00a4, BODY_ELVIS1, HEAD_MAIAN_S, GFUNC_IDLE, -1, -1, 200, 100, 0x00012000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAIANSMG, 0x0045, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CALLISTONTG, 0x00ffffff, 0x00000000 - - chr 0x00000000, CHR_MAIAN3, 0x0008, BODY_ELVIS1, HEAD_MAIAN_S, FUNC_HIDE, -1, -1, 200, 100, 0x00012000, 0xc0300000, 0x01, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAIANSMG, 0x0046, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CALLISTONTG, 0x00ffffff, 0x00000000 - - chr 0x00000000, CHR_MAIAN4, 0x000c, BODY_ELVIS1, HEAD_MAIAN_S, FUNC_HIDE, -1, -1, 200, 100, 0x00012000, 0xc0300000, 0x01, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAIANSMG, 0x0047, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CALLISTONTG, 0x00ffffff, 0x00000000 - - chr 0x00000000, CHR_MAIAN5, 0x000d, BODY_ELVIS1, HEAD_MAIAN_S, FUNC_HIDE, -1, -1, 200, 100, 0x00012000, 0xc0300000, 0x01, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRMAIANSMG, 0x0048, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CALLISTONTG, 0x00ffffff, 0x00000000 - - link_scenery 1, 0, 2 - debris 0x0100, MODEL_SKCREV_UNEXP1, 0x00e5, 0x035005e8, 0x00304300, 0x00000000, 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 - link_scenery 1, 0, 2 - door 0x0100, MODEL_SKTNL_UNEXP1, 0x00e7, 0x13500d00, 0x00304300, 0x00000000, 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 - debris 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 0x1e, 5 - tag 0x1f, 5 - tag 0x20, 5 - tag 0x21, 5 - tag 0x22, 5 - object 0x0100, MODEL_SK_FL_NOSHAD_ML, 0x014b, 0x035004e8, 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_NOSHAD_MR, 0x014c, 0x035004e8, 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_NOSHAD_BL, 0x014d, 0x035004e8, 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_NOSHAD_BR, 0x014e, 0x035004e8, 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_NOSHAD_T, 0x014a, 0x035004e8, 0x00304300, 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, 0x80106300, 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, 0x80106300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x03, 3 - tag 0x2c, 2 - link_scenery 1, 0, 0 - debris 0x0100, MODEL_SK_TEMPLECOLUMN3, 0x010b, 0x035005e8, 0x80106300, 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, 0x80106300, 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, 0x80106300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x27, 1 - tag 0x28, 1 - tag 0x29, 1 - tag 0x2f, 5 - tag 0x30, 5 - tag 0x31, 5 - tag 0x32, 5 - tag 0x33, 5 - object 0x0019, MODEL_CHRREMOTEMINE, 0x00d5, 0x012004e8, 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, 0x012004e8, 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, 0x012004e8, 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, 0x012004e8, 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, 0x012004e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x3d, 1 - object 0x0019, MODEL_CHRREMOTEMINE, 0x003b, 0x012004e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_SK_SUNNOSHAD1, 0x014f, 0x035004e8, 0x00304300, 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, 0x035004e8, 0x00304300, 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 - tag 0x3e, 2 - tag 0x3f, 2 - 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, 0x00000040, 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, 0x00000040, 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, 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, 0x00f2, 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 0x0d, 2 - tag 0x0e, 2 - door 0x0100, MODEL_SK_DOOR1, 0x00f3, 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, 0x00f4, 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, 0x00f5, 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, 0x00f6, 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 0x0f, 2 - tag 0x10, 2 - door 0x0100, MODEL_SK_DOOR1, 0x00f7, 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, 0x00f8, 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 0x11, 2 - tag 0x12, 2 - door 0x0100, MODEL_SK_DOOR1, 0x00f9, 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, 0x00fa, 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 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 0x04, 1 - object 0x0080, MODEL_SKPUZZLEOBJECT, 0x00d4, 0x000201e1, 0x00004100, 0x00000000, 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, 0x0136, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0136, 0x0136, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x0b, 1 - multimonitor 0x0099, MODEL_COMHUB, 0x0137, 0x00000002, 0x00000000, 0x00000000, 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 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_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 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, 0x00000000, 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, 0x00010000, 0x00010000, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 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, 0x00000000, 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, 0x00010000, 0x00010000, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 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, 0x00000000, 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, 0x00010000, 0x00010000, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 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, 0x00000000, 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, 0x00010000, 0x00010000, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 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, 0x00000000, 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, 0x00010000, 0x00010000, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 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, 0x00000000, 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, 0x00010000, 0x00010000, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 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, 0x00000000, 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, 0x00010000, 0x00010000, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x40, 1 - object 0x0019, MODEL_CHRREMOTEMINE, 0x003b, 0x012004e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - 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 - endprops - -intro: - outfit OUTFIT_MAIAN - intro_weapon WEAPON_PHOENIX, -1 - ammo AMMOTYPE_PISTOL, 300 - ammo AMMOTYPE_ROCKET, 3 - ammo AMMOTYPE_SMG, 100 - spawn 0x00d7 - endintro - -paths: - endpaths - -func1001_objectives_failed_msg: - yield - set_function CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG - endfunction - -func1000_counterop: - yield - set_chr_alliance CHR_COUNTEROP, ALLIANCE_ENEMY - set_function CHR_SELF, GFUNC_REBUILD_GROUPS - endfunction - -func0403_init_maian_leader: - stop_chr - yield - set_alertness 100 - set_accuracy 100 - set_reaction_speed 100 - set_chr_health CHR_SELF, 40 - set_armor 300 - set_recovery_speed 100 - set_shield 0 - set_function CHR_SELF, FUNC_DEFEND - endfunction - -func0402_init_king: - set_self_flag_bank3 CHRFLAG3_00000020 - set_alertness 100 - set_accuracy 100 - set_reaction_speed 100 - set_chr_health CHR_SELF, 40 - set_armor 300 - set_recovery_speed 100 - set_shield 0 - set_self_flag_bank3 CHRFLAG3_UNEXPLODABLE - set_function CHR_SELF, FUNC_DEFEND - endfunction - -func0401_defend: - set_onshot_function FUNC_DEFEND - set_self_flag_bank3 CHRFLAG3_NOAUTOAIM - 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 - set_function CHR_SELF, GFUNC_IDLE - - // Not dying - go to pad - label 0x06 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08 - if_chr_distance_to_pad_lt CHR_SELF, 200, TARGET_PAD, /*goto*/ 0x06 - - label 0x03 - restart_timer - if_chr_distance_to_pad_gt CHR_SELF, 500, TARGET_PAD, /*goto*/ 0x06 - go_to_target_pad SPEED_JOG - - label 0x06 - go_to_target_pad SPEED_RUN - - // Wait until at pad or 1 second has passed - beginloop 0x04 - dprint "GO TO PAD\n" - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08 - if_chr_distance_to_pad_lt CHR_SELF, 200, TARGET_PAD, /*goto*/ 0x06 - if_timer_gt 60, /*goto*/ 0x2d - endloop 0x04 - - // Timer expired - loop again - label 0x2d - goto_first 0x03 - - // At pad - label 0x06 - stop_chr - - // Wait for enemy to come into sight, or to be pushed away from pad - beginloop 0x09 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08 - if_chr_distance_to_pad_gt CHR_SELF, 300, TARGET_PAD, /*goto*/ 0x06 - endloop 0x09 - - // Pushed away from pad - return to it - label 0x06 - goto_first 0x03 - - // Line of sight to enemy - label 0x08 - if_self_flag_bankx_eq CHRFLAG1_00000008, TRUE, BANK_1, /*goto*/ 0x2d - restart_timer - - beginloop 0x8f - if_timer_gt 120, /*goto*/ 0x2d - endloop 0x8f - - label 0x2d - if_chr_unloaded TARGET_CHR, /*goto*/ 0x2d - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x2d - if_chr_dying TARGET_CHR, /*goto*/ 0x2d - dprint "DETECTED\n" - set_return_function CHR_SELF, FUNC_DEFEND - set_onshot_function FUNC_DEFEND - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - - label 0x2d - goto_first 0x03 - - endfunction - -func1003_spawn_maians: - yield - - // Wait for intro to finish - beginloop 0x58 - if_camera_animating /*goto*/ 0x2d - goto_next 0x2e - label 0x2d - endloop 0x58 - - label 0x2e - yield - yield - yield - yield - yield - label 0x04 - yield - label 0x06 - set_var_a 50 - - // Loop until a Maian is able to be spawned or counter depleted - beginloop 0x8d - if_var_a_lt 1, /*goto*/ 0x06 - try_spawn_chr BODY_ELVIS1, HEAD_MAIAN_S, 0x0053, FUNC_INIT_MAIAN, 0x00000000, /*goto*/ 0x8e - try_spawn_chr BODY_ELVIS1, HEAD_MAIAN_S, 0x0050, FUNC_INIT_MAIAN, 0x00000000, /*goto*/ 0x8e - try_spawn_chr BODY_ELVIS1, HEAD_MAIAN_S, 0x004d, FUNC_INIT_MAIAN, 0x00000000, /*goto*/ 0x8e - try_spawn_chr BODY_ELVIS1, HEAD_MAIAN_S, 0x004c, FUNC_INIT_MAIAN, 0x00000000, /*goto*/ 0x8e - try_spawn_chr BODY_ELVIS1, HEAD_MAIAN_S, 0x004e, FUNC_INIT_MAIAN, 0x00000000, /*goto*/ 0x8e - try_spawn_chr BODY_ELVIS1, HEAD_MAIAN_S, 0x004a, FUNC_INIT_MAIAN, 0x00000000, /*goto*/ 0x8e - reloop 0x8d - - // Successful spawn - label 0x8e - dprint "CREATED 1\n" - yield - subtract_var_a 1 - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - cmd0145_rebuild_groups - cmd0146_rebuild_groups - if_num_chrs_in_group_gt 7, GROUP_MAIANS, /*goto*/ 0x2d - reloop 0x8d - - // Wait 5 seconds - label 0x2d - restart_timer - - beginloop 0x08 - dprint "SQUAD FULL\n" - if_timer_gt 300, /*goto*/ 0x2d - endloop 0x08 - - // If a spot has freed up, go back to the spawning part to spawn another - label 0x2d - if_num_chrs_in_group_gt 7, GROUP_MAIANS, /*goto*/ 0x2d - endloop 0x8d - - // Still no free spot, so go back to the 5 second wait - label 0x2d - goto_first 0x08 - - // Counter depleted - label 0x06 - yield - yield - yield - yield - yield - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0405_init_maian: - set_self_flag_bank3 CHRFLAG3_00040000 - set_self_flag_bank3 CHRFLAG3_00080000 - set_chr_alliance CHR_SELF, ALLIANCE_ALLY - set_group GROUP_MAIANS - cmd0145_rebuild_groups - cmd0146_rebuild_groups - try_draw_weapon MODEL_CHRMAIANSMG, WEAPON_CALLISTONTG, 0x00000000, /*goto*/ 0x06 - label 0x06 - try_inherit_properties CHR_MAIAN_TEMPLATE, /*goto*/ 0x2d - label 0x2d - set_accuracy 100 - set_reaction_speed 100 - set_chr_health CHR_SELF, 200 - set_armor 0 - set_recovery_speed 100 - set_shield 0 - set_self_flag_bankx CHRFLAG1_00080000, BANK_1 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, FUNC_MAIAN - endfunction - -func0404_maian: - set_return_function CHR_SELF, FUNC_MAIAN - set_onshot_function FUNC_MAIAN - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08 - - label 0x03 - set_target_chr CHR_KING1 - if_chr_dying CHR_KING1, /*goto*/ 0x8f - if_chr_death_animation_finished CHR_KING1, /*goto*/ 0x8f - if_chr_unloaded CHR_KING1, /*goto*/ 0x8f - goto_next 0x2d - - // King 1 dead - label 0x8f - set_target_chr CHR_KING2 - if_chr_dying CHR_KING2, /*goto*/ 0x90 - if_chr_death_animation_finished CHR_KING2, /*goto*/ 0x90 - if_chr_unloaded CHR_KING2, /*goto*/ 0x90 - goto_next 0x2d - - // King 2 dead - label 0x90 - set_target_chr CHR_KING3 - run_to_pad 0x0094 - goto_next 0x04 - - // Go to king - label 0x2d - try_run_to_target_chr /*goto*/ 0x04 - - beginloop 0x04 - dprint "GO TO PAD\n" - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08 - if_chr_dying TARGET_CHR, /*goto*/ 0x06 - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x06 - if_chr_unloaded TARGET_CHR, /*goto*/ 0x06 - endloop 0x04 - - // King died while running to him - label 0x06 - goto_first 0x03 - - // Maian has line of sight to king - label 0x08 - dprint "DETECTED\n" - if_chr_dying TARGET_CHR, /*goto*/ 0x06 - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x06 - if_chr_unloaded TARGET_CHR, /*goto*/ 0x06 - set_return_function CHR_SELF, FUNC_MAIAN - set_onshot_function FUNC_MAIAN - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - - // King died while fighting - label 0x06 - goto_first 0x03 - - endfunction - -func1004_spawn_king1_skedar: - // Wait for intro to finish - beginloop 0x58 - if_camera_animating /*goto*/ 0x2d - goto_next 0x2e - label 0x2d - endloop 0x58 - - label 0x2e - yield - yield - yield - yield - yield - label 0x04 - yield - label 0x06 - set_var_a 65 - - // Loop until a Skedar is able to be spawned or counter depleted - beginloop 0x8d - if_stage_flag_eq STAGEFLAG_KING1_DEAD, TRUE, /*goto*/ 0x0e - if_var_a_lt 1, /*goto*/ 0x06 - try_spawn_chr BODY_SKEDAR, HEAD_RANDOM, 0x0079, FUNC_KING1_SKEDAR, 0x00000200, /*goto*/ 0x8e - try_spawn_chr BODY_SKEDAR, HEAD_RANDOM, 0x007d, FUNC_KING1_SKEDAR, 0x00000200, /*goto*/ 0x8e - try_spawn_chr BODY_SKEDAR, HEAD_RANDOM, 0x0083, FUNC_KING1_SKEDAR, 0x00000200, /*goto*/ 0x8e - try_spawn_chr BODY_SKEDAR, HEAD_RANDOM, 0x0085, FUNC_KING1_SKEDAR, 0x00000200, /*goto*/ 0x8e - reloop 0x8d - - // Successful spawn - label 0x8e - dprint "CREATED 1\n" - yield - subtract_var_a 1 - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - cmd0145_rebuild_groups - cmd0146_rebuild_groups - if_num_chrs_in_group_gt 5, 0x02, /*goto*/ 0x2d - reloop 0x8d - - // Wait for 10 seconds if Maian squad is somewhat full, - // or wait 1 second if Maian squad is somewhat empty. - label 0x2d - restart_timer - - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_KING1_DEAD, TRUE, /*goto*/ 0x0e - dprint "SQUAD FULL\n" - if_num_chrs_in_group_gt 3, GROUP_MAIANS, /*goto*/ 0x2e - if_timer_gt 60, /*goto*/ 0x2d - label 0x2e - if_timer_gt 600, /*goto*/ 0x2d - endloop 0x08 - - // If squad is still full, wait another 1 or 10 seconds - label 0x2d - if_num_chrs_in_group_gt 5, GROUP_KING1_SKEDAR, /*goto*/ 0x2d - goto_first 0x8d - - // Spawn more - label 0x2d - goto_first 0x08 - - // Counter depleted - label 0x06 - - // King 1 dead - label 0x0e - yield - yield - yield - yield - yield - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1008_spawn_king2_skedar: - // Wait for intro to finish - beginloop 0x58 - if_camera_animating /*goto*/ 0x2d - goto_next 0x2e - label 0x2d - endloop 0x58 - - // Wait for king 1 to die - label 0x2e - yield - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_KING1_DEAD, TRUE, /*goto*/ 0x06 - endloop 0x04 - - // Loop until a Skedar is able to be spawned or counter depleted - label 0x06 - set_var_a 50 - - beginloop 0x8d - if_stage_flag_eq STAGEFLAG_KING2_DEAD, TRUE, /*goto*/ 0x0e - if_var_a_lt 1, /*goto*/ 0x06 - try_spawn_chr BODY_SKEDAR, HEAD_RANDOM, 0x008e, FUNC_KING2_SKEDAR, 0x00000210, /*goto*/ 0x8e - try_spawn_chr BODY_SKEDAR, HEAD_RANDOM, 0x0090, FUNC_KING2_SKEDAR, 0x00000210, /*goto*/ 0x8e - try_spawn_chr BODY_SKEDAR, HEAD_RANDOM, 0x008f, FUNC_KING2_SKEDAR, 0x00000210, /*goto*/ 0x8e - try_spawn_chr BODY_SKEDAR, HEAD_RANDOM, 0x0091, FUNC_KING2_SKEDAR, 0x00000210, /*goto*/ 0x8e - reloop 0x8d - - // Successful spawn - label 0x8e - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - yield - subtract_var_a 1 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - if_num_chrs_in_group_gt 3, GROUP_KING2_SKEDAR, /*goto*/ 0x2d - reloop 0x8d - - // Wait 15 seconds or until king 2 dead - label 0x2d - restart_timer - - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_KING2_DEAD, TRUE, /*goto*/ 0x0e - if_timer_gt 900, /*goto*/ 0x2d - endloop 0x08 - - // If squad still full, wait another 15 seconds, otherwise loop back to - // the spawning code. - label 0x2d - if_num_chrs_in_group_gt 3, GROUP_KING2_SKEDAR, /*goto*/ 0x2d - endloop 0x8d - - label 0x2d - goto_first 0x08 - - // Counter depleted - label 0x06 - yield - yield - yield - yield - yield - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE - label 0x0e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100c_spawn_king3_skedar: - // Wait for intro to finish - beginloop 0x58 - if_camera_animating /*goto*/ 0x2d - goto_next 0x2e - label 0x2d - endloop 0x58 - - // Wait for king 2 to die - label 0x2e - yield - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_KING2_DEAD, TRUE, /*goto*/ 0x06 - endloop 0x04 - - // Loop until a Skedar is able to be spawned or counter depleted - label 0x06 - set_var_a 50 - - beginloop 0x8d - if_stage_flag_eq STAGEFLAG_KING3_DEAD, TRUE, /*goto*/ 0x0e - if_var_a_lt 1, /*goto*/ 0x06 - try_spawn_chr BODY_SKEDAR, HEAD_RANDOM, 0x0095, FUNC_KING3_SKEDAR, 0x00000200, /*goto*/ 0x8e - try_spawn_chr BODY_SKEDAR, HEAD_RANDOM, 0x0096, FUNC_KING3_SKEDAR, 0x00000200, /*goto*/ 0x8e - try_spawn_chr BODY_SKEDAR, HEAD_RANDOM, 0x012e, FUNC_KING3_SKEDAR, 0x00000200, /*goto*/ 0x8e - try_spawn_chr BODY_SKEDAR, HEAD_RANDOM, 0x0132, FUNC_KING3_SKEDAR, 0x00000200, /*goto*/ 0x8e - reloop 0x8d - - // Successful spawn - label 0x8e - yield - subtract_var_a 1 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - if_num_chrs_in_group_gt 5, 0x04, /*goto*/ 0x2d - reloop 0x8d - - // Squad full - wait 15 seconds or for king 3 to die - label 0x2d - restart_timer - - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_KING3_DEAD, TRUE, /*goto*/ 0x0e - if_timer_gt 900, /*goto*/ 0x2d - endloop 0x08 - - // Spawn more or wait another 15 seconds - label 0x2d - if_num_chrs_in_group_gt 5, GROUP_KING3_SKEDAR, /*goto*/ 0x2d - endloop 0x8d - - label 0x2d - goto_first 0x08 - - // Countdown depleted - label 0x06 - yield - yield - yield - yield - yield - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE - label 0x0e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0407_king1_skedar: - try_draw_weapon MODEL_CHRMAULER, WEAPON_MAULER, 0x00000000, /*goto*/ 0x06 - label 0x06 - try_inherit_properties CHR_SKEDAR_TEMPLATE, /*goto*/ 0x2d - label 0x2d - set_group GROUP_KING1_SKEDAR - set_chr_alliance CHR_SELF, ALLIANCE_ENEMY - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_00400000 - set_accuracy 10 - set_reaction_speed 50 - set_chr_health CHR_SELF, 150 - set_armor 80 - set_recovery_speed 100 - set_shield 0 - set_self_flag_bankx CHRFLAG1_00080000, BANK_1 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, FUNC_SKEDAR - endfunction - -func0408_king2_skedar: - try_draw_weapon MODEL_CHRMAULER, WEAPON_MAULER, 0x00000000, /*goto*/ 0x06 - label 0x06 - try_inherit_properties CHR_SKEDAR_TEMPLATE, /*goto*/ 0x2d - label 0x2d - set_group GROUP_KING2_SKEDAR - set_chr_alliance CHR_SELF, ALLIANCE_ENEMY - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_00400000 - set_accuracy 10 - set_reaction_speed 50 - set_chr_health CHR_SELF, 150 - set_armor 80 - set_recovery_speed 100 - set_shield 0 - set_self_flag_bankx CHRFLAG1_00080000, BANK_1 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, FUNC_SKEDAR - endfunction - -func0409_king3_skedar: - try_draw_weapon MODEL_CHRMAULER, WEAPON_MAULER, 0x00000000, /*goto*/ 0x06 - label 0x06 - try_inherit_properties CHR_SKEDAR_TEMPLATE, /*goto*/ 0x2d - label 0x2d - set_group GROUP_KING3_SKEDAR - set_chr_alliance CHR_SELF, ALLIANCE_ENEMY - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_00400000 - set_accuracy 10 - set_reaction_speed 50 - set_chr_health CHR_SELF, 150 - set_armor 80 - set_recovery_speed 100 - set_shield 0 - set_self_flag_bankx CHRFLAG1_00080000, BANK_1 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, FUNC_SKEDAR - endfunction - -func0406_skedar: - set_onshot_function FUNC_SKEDAR - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08 - label 0x03 - - // Go to Maian leader - set_target_chr CHR_MAIAN_LEADER - try_run_to_target_chr /*goto*/ 0x04 - - beginloop 0x04 - dprint "GO TO PAD\n" - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08 - endloop 0x04 - - label 0x08 - dprint "DETECTED\n" - set_return_function CHR_SELF, FUNC_SKEDAR - set_onshot_function FUNC_SKEDAR - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - endfunction - -func1005_check_leader_dead: - beginloop 0x03 - if_chr_death_animation_finished CHR_MAIAN_LEADER, /*goto*/ 0x2d - if_chr_dying CHR_MAIAN_LEADER, /*goto*/ 0x2d - if_chr_unloaded CHR_MAIAN_LEADER, /*goto*/ 0x2d - endloop 0x03 - - label 0x2d - message CHR_JOANNA, 0x4607 // "Maian leader has been killed." - set_stage_flag STAGEFLAG_LEADER_DEAD - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1009_check_king1_dead: - set_object_flag_bank0 OBJ_BRIDGE, OBJECTFLAG0_DEACTIVATED - - beginloop 0x03 - if_chr_death_animation_finished CHR_KING1, /*goto*/ 0x2d - if_chr_dying CHR_KING1, /*goto*/ 0x2d - if_chr_unloaded CHR_KING1, /*goto*/ 0x2d - endloop 0x03 - - label 0x2d - message CHR_JOANNA, 0x4608 // "Skedar King has been killed." - set_stage_flag STAGEFLAG_KING1_DEAD - unlock_door 0x3e, 0x40 - unlock_door 0x3f, 0x40 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100a_check_king2_dead: - set_object_flag_bank0 OBJ_BRIDGE, OBJECTFLAG0_DEACTIVATED - if_difficulty_lt DIFF_SA, /*goto*/ 0x0e - - beginloop 0x03 - if_chr_death_animation_finished CHR_KING2, /*goto*/ 0x2d - if_chr_dying CHR_KING2, /*goto*/ 0x2d - if_chr_unloaded CHR_KING2, /*goto*/ 0x2d - endloop 0x03 - - label 0x2d - message CHR_JOANNA, 0x4608 // "Skedar King has been killed." - set_stage_flag STAGEFLAG_KING2_DEAD - label 0x0e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100b_check_king3_dead: - set_object_flag_bank0 OBJ_BRIDGE, OBJECTFLAG0_DEACTIVATED - if_difficulty_lt DIFF_PA, /*goto*/ 0x0e - - beginloop 0x03 - if_chr_death_animation_finished CHR_KING3, /*goto*/ 0x2d - if_chr_dying CHR_KING3, /*goto*/ 0x2d - if_chr_unloaded CHR_KING3, /*goto*/ 0x2d - endloop 0x03 - - label 0x2d - message CHR_JOANNA, 0x4608 // "Skedar King has been killed." - set_stage_flag STAGEFLAG_KING3_DEAD - label 0x0e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1007_check_end_level: - // Wait for all objectives complete - beginloop 0x03 - if_all_objectives_complete /*goto*/ 0x2d - endloop 0x03 - - // Wait 2 seconds - label 0x2d - restart_timer - - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x2d - endloop 0x08 - - // Check Jo not dead - label 0x2d - 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 - - // Check Velvet not dead - 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 - - // Mission failed - label 0x2d - end_level - set_function CHR_SELF, GFUNC_IDLE - - // Mission complete - label 0x06 - set_function CHR_SELF, FUNC_OUTRO - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040c_hide: - label 0x03 - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100d_king1_invincible: - beginloop 0x03 - if_chr_in_room CHR_JOANNA, 0x00, 0x0070, /*goto*/ 0x2d - if_chr_in_room CHR_JOANNA, 0x00, 0x0071, /*goto*/ 0x2d - if_chr_in_room CHR_JOANNA, 0x00, 0x0072, /*goto*/ 0x2d - if_chr_in_room CHR_JOANNA, 0x00, 0x0073, /*goto*/ 0x2d - if_chr_in_room CHR_JOANNA, 0x00, 0x0074, /*goto*/ 0x2d - if_chr_in_room CHR_JOANNA, 0x00, 0x0075, /*goto*/ 0x2d - if_chr_in_room CHR_JOANNA, 0x00, 0x0076, /*goto*/ 0x2d - if_chr_in_room CHR_JOANNA, 0x00, 0x0077, /*goto*/ 0x2d - if_chr_in_room CHR_JOANNA, 0x00, 0x0078, /*goto*/ 0x2d - if_chr_in_room CHR_JOANNA, 0x00, 0x0079, /*goto*/ 0x2d - set_chr_flag_bank3 CHR_KING1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - reloop 0x03 - - label 0x2d - unset_chr_flag_bank3 CHR_KING1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - endloop 0x03 - - endfunction - -unregistered_function: - yield - - // Wait for intro to finish - beginloop 0x58 - if_camera_animating /*goto*/ 0x2d - goto_next 0x2e - label 0x2d - endloop 0x58 - - label 0x2e - yield - yield - yield - yield - yield - - // Remove Blonde if counterop doesn't exist - label 0x03 - if_chr_death_animation_finished CHR_COUNTEROP, /*goto*/ 0x2d - set_function CHR_SELF, GFUNC_IDLE - label 0x2d - remove_chr CHR_BLONDE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1002_intro: - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_music_track MUSIC_G5_INTRO - set_chr_flag_bank2 CHR_COUNTEROP, CHRFLAG2_00020000 - set_chr_flag_bank2 CHR_BLONDE, CHRFLAG2_00020000 - camera_movement 0x047c - cmd0175 60 - - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x047d, -1, -1, 0x0600, CHR_JOANNA, 4 - - unset_chr_flag_bank3 CHR_MAIAN1, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_MAIAN1, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_MAIAN1, CHRFLAG2_00020000 - animation 0x047e, -1, -1, 0x0600, CHR_MAIAN1, 4 - - unset_chr_flag_bank3 CHR_MAIAN2, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_MAIAN2, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_MAIAN2, CHRFLAG2_00020000 - animation 0x047f, -1, -1, 0x0600, CHR_MAIAN2, 4 - - restart_timer - fade_to_color 0x000000ff, 0 - fade_to_color 0x00000000, 110 - set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_JOANNA, WEAPON_PHOENIX, WEAPON_NONE - - // Wait 200 frames (3.3 secs) or until button pressed - beginloop 0x96 - if_controller_button_pressed /*goto*/ 0x82 - if_timer_gt 200, /*goto*/ 0x06 - endloop 0x96 - - // Timer expired - play a sound (explosion?) - label 0x06 - play_sound 0x05e2, CHANNEL_10 - - // Wait for camera to finish or button to be pressed - beginloop 0x08 - if_camera_animating /*goto*/ 0x2d - goto_next 0x82 - label 0x2d - if_controller_button_pressed /*goto*/ 0x82 - label 0x2d - endloop 0x08 - - // Outro done - label 0x82 - mute_channel CHANNEL_10 - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_COUNTEROP, CHRFLAG2_00020000 - - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x047d, -2, -1, 0x0600, CHR_JOANNA, 2 - - unset_chr_flag_bank3 CHR_MAIAN3, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_MAIAN3, CHRFLAG2_00020000 - animation 0x047e, -2, -1, 0x0600, CHR_MAIAN3, 2 - - unset_chr_flag_bank3 CHR_MAIAN4, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_MAIAN4, CHRFLAG2_00020000 - animation 0x047f, -2, -1, 0x0600, CHR_MAIAN4, 2 - - set_function CHR_MAIAN1, FUNC_INIT_MAIAN - set_function CHR_MAIAN2, FUNC_INIT_MAIAN - restart_default_music - reset_ambience - enter_firstperson - yield - label 0x2d - set_function CHR_SELF, FUNC_BLOW_MINES - endfunction - -func040b_outro: - set_invincible CHR_JOANNA - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_music_track MUSIC_G5_OUTRO - camera_movement 0x0480 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - - unset_chr_flag_bank3 CHR_MAIAN3, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_MAIAN3, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_MAIAN3, CHRFLAG2_00020000 - animation 0x0481, -1, -1, 0x0600, CHR_MAIAN3, 4 - - unset_chr_flag_bank3 CHR_MAIAN4, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_MAIAN4, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_MAIAN4, CHRFLAG2_00020000 - animation 0x0482, -1, -1, 0x0600, CHR_MAIAN4, 4 - - unset_chr_flag_bank3 CHR_MAIAN5, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_MAIAN5, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_MAIAN5, CHRFLAG2_00020000 - animation 0x0483, -1, -1, 0x0600, CHR_MAIAN5, 4 - - show_nonessential_chrs FALSE - - // Wait 10 frames or for button press - restart_timer - - beginloop 0x96 - if_controller_button_pressed /*goto*/ 0x82 - if_timer_gt 10, /*goto*/ 0x06 - endloop 0x96 - - // Play sound - label 0x06 - play_sound 0x05e3, CHANNEL_10 - - // Wait 70 frames or for button press - beginloop 0x97 - if_controller_button_pressed /*goto*/ 0x82 - if_timer_gt 70, /*goto*/ 0x06 - endloop 0x97 - - // Play sound - label 0x06 - play_sound 0x05e5, CHANNEL_10 - - // Wait 180 frames or for button press - beginloop 0x98 - if_controller_button_pressed /*goto*/ 0x82 - if_timer_gt 180, /*goto*/ 0x06 - endloop 0x98 - - // Play sound - label 0x06 - play_sound 0x05e7, CHANNEL_10 - - // Wait for outro to finish - beginloop 0x08 - if_camera_animating /*goto*/ 0x2d - goto_next 0x82 - label 0x2d - if_controller_button_pressed /*goto*/ 0x82 - label 0x2d - endloop 0x08 - - label 0x82 - label 0x06 - mute_channel CHANNEL_10 - end_level - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100f_blow_mines: - yield - - .macro wait loopid - restart_timer - - beginloop \loopid - if_timer_gt 120, /*goto*/ 0x2d - endloop \loopid - - label 0x2d - .endm - - wait 0x94 - destroy_object OBJ_MINE6 - wait 0x95 - destroy_object OBJ_MINE1 - wait 0x8f - destroy_object OBJ_MINE2 - wait 0x90 - destroy_object OBJ_MINE3 - wait 0x91 - destroy_object OBJ_MINE4 - wait 0x92 - destroy_object OBJ_MINE5 - wait 0x93 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1010_init_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_function CHR_SELF, GFUNC_IDLE - endfunction - -functions: - register_function func1000_counterop 0x1000 - register_function func1001_objectives_failed_msg 0x1001 - register_function func1002_intro 0x1002 - register_function func1003_spawn_maians 0x1003 - register_function func1004_spawn_king1_skedar 0x1004 - register_function func1005_check_leader_dead 0x1005 - register_function func1007_check_end_level 0x1007 - register_function func1008_spawn_king2_skedar 0x1008 - register_function func1009_check_king1_dead 0x1009 - register_function func100a_check_king2_dead 0x100a - register_function func100b_check_king3_dead 0x100b - register_function func100c_spawn_king3_skedar 0x100c - register_function func100d_king1_invincible 0x100d - register_function func100f_blow_mines 0x100f - register_function func1010_init_lighting 0x1010 - - register_function func100f_blow_mines 0x040d - register_function func040c_hide 0x040c - register_function func0401_defend 0x0401 - register_function func0402_init_king 0x0402 - register_function func0403_init_maian_leader 0x0403 - register_function func0404_maian 0x0404 - register_function func0405_init_maian 0x0405 - register_function func0406_skedar 0x0406 - register_function func0407_king1_skedar 0x0407 - register_function func0408_king2_skedar 0x0408 - register_function func0409_king3_skedar 0x0409 - register_function func1002_intro 0x040a - register_function func040b_outro 0x040b - - register_function func1002_intro 0x0c00 - register_function func040b_outro 0x0c01 - endfunctions - -.align 4 diff --git a/asm/setup/setuptra.s b/asm/setup/setuptra.s deleted file mode 100644 index 95b65f4b0..000000000 --- a/asm/setup/setuptra.s +++ /dev/null @@ -1,3786 +0,0 @@ -# -# Escape -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -// Characters -.set CHR_JONATHAN, 0x21 -.set CHR_ELVIS, 0x22 - -// Objects -.set OBJ_HOVERBED, 0x00 // with Elvis on it -.set OBJ_MEDPACK_JOANNA, 0x01 -.set OBJ_TERMINAL1, 0x03 -.set OBJ_TERMINAL2, 0x04 -.set OBJ_WALLMINE, 0x02 -.set OBJ_MEDPACK_SWITCH, 0x14 -.set OBJ_UFO1, 0x1f -.set OBJ_UFO2, 0x22 -.set OBJ_MEDPACK_VELVET, 0x20 -.set OBJ_WALLOBJECT, 0x21 -.set OBJ_MEDPACK_GLASS, 0x2a -.set OBJ_HOVERBIKE, 0x35 -.set OBJ_WALLDOOR, 0x38 -.set OBJ_FALCON2SCOPE1, 0x39 -.set OBJ_FALCON2SCOPE2, 0x3a -.set OBJ_REMOTEMINES, 0x3b - -// Stage flags -.set STAGEFLAG_INTRO_DONE, 0x00000001 -.set STAGEFLAG_TRIGGER_MEDPACK_FINISH, 0x00000002 -.set STAGEFLAG_JON_SAID_MAINT_HATCH, 0x00000004 -.set STAGEFLAG_TRIGGER_JETBIKE_MESSAGE, 0x00000008 -.set STAGEFLAG_UFO_LEAVING, 0x00000010 -.set STAGEFLAG_GAS_ON, 0x00000020 -.set STAGEFLAG_JON_SHOT_WHILE_PLANTING, 0x00000040 -.set STAGEFLAG_MEDPACK_SWITCH_DESTROYED, 0x00000080 -.set STAGEFLAG_COLLECTED_MEDPACK, 0x00000100 -.set STAGEFLAG_00000200, 0x00000200 // never set -.set STAGEFLAG_MET_JON, 0x00000400 -.set STAGEFLAG_ELVIS_REVIVED, 0x00000800 -.set STAGEFLAG_ELVIS_DEAD, 0x00001000 -.set STAGEFLAG_ENTERED_HANGAR, 0x00002000 -.set STAGEFLAG_ESCAPED, 0x00004000 -.set STAGEFLAG_ELVIS_STASHED, 0x00008000 -.set STAGEFLAG_JON_ENTERED_MINE_ROOM, 0x00010000 -.set STAGEFLAG_JON_PLANTING_EXPLOSIVES, 0x00020000 -.set STAGEFLAG_JON_FINISHED_EXPLOSIVES, 0x00040000 -.set STAGEFLAG_JON_DEAD, 0x00080000 -.set STAGEFLAG_WALL_EXPLODED, 0x00100000 -.set STAGEFLAG_HANGAR_TERMINAL_DESTROYED, 0x00200000 -.set STAGEFLAG_INNER_DOOR_OPENING, 0x00400000 -.set STAGEFLAG_OUTER_DOOR_OPENING, 0x00800000 -.set STAGEFLAG_STARTED_OUTRO, 0x01000000 -.set STAGEFLAG_JON_WAITING_AT_UFO, 0x02000000 -.set STAGEFLAG_HANGAR_CONVERSATION_FINISHED, 0x04000000 -.set STAGEFLAG_HANGAR_X_MUSIC_STARTED, 0x08000000 -.set STAGEFLAG_JO_DOING_TERMINALS, 0x10000000 -.set STAGEFLAG_JO_ESCAPE_STARTED, 0x20000000 -.set STAGEFLAG_MEDPACK_STARTED, 0x40000000 -.set STAGEFLAG_BOTH_HANGAR_DOORS_OPEN, 0x80000000 - -// Functions -.set FUNC_GAS_DAMAGE, 0x0401 -.set FUNC_JONATHAN_WAITING_FOR_MEETUP, 0x0402 -.set FUNC_INIT_JONATHAN, 0x0403 -.set FUNC_JONATHAN_FOLLOWING_AND_MINE, 0x0404 -.set FUNC_JONATHAN_SHOT_WHILE_PLANTING, 0x0405 -.set FUNC_SPAWNGROUP1_GUARD, 0x0407 -.set FUNC_SPAWNGROUP2_GUARD, 0x0408 -.set FUNC_SPAWNGROUP3_GUARD, 0x0409 -.set FUNC_SPAWNGROUP4_GUARD, 0x040a -.set FUNC_ELVIS_FOLLOW, 0x040b -.set FUNC_HIDDEN_GUARDTYPE1, 0x040c -.set FUNC_HIDDEN_GUARDTYPE2, 0x040d -.set FUNC_HIDDEN_BIOTECH, 0x040e -.set FUNC_INIT_ELVIS, 0x0412 -.set FUNC_JONATHAN_HANGAR, 0x0413 -.set FUNC_OUTRO, 0x0414 -.set FUNC_UFO_EXIT, 0x0415 -.set FUNC_SPAWN_DURING_FOLLOW, 0x0416 -.set FUNC_INIT_FOLLOWER_CLONE, 0x0417 -.set FUNC_FOLLOWER_CLONE, 0x0418 -.set FUNC_INIT_BIOTECH, 0x0419 -.set FUNC_INIT_SUPERDRAGON_GUARD, 0x041a -.set FUNC_JONATHAN_AFTER_TERMINALS, 0x041b -.set FUNC_ELVIS_GO_TO_UFO, 0x041c - -// Other -.set SPAWNGROUP1, 0x09 -.set SPAWNGROUP2, 0x0a -.set SPAWNGROUP3, 0x0b -.set SPAWNGROUP4, 0x0d - -props: - briefing 0, 0x4801 - briefing 1, 0x4800 - briefing 2, 0x4802 - briefing 3, 0x4803 - - beginobjective 0, 0x4809, DIFFBIT_PA | DIFFBIT_PD // "Locate alien tech medpack" - complete_flags STAGEFLAG_COLLECTED_MEDPACK - fail_flags STAGEFLAG_00000200 - fail_flags STAGEFLAG_MEDPACK_SWITCH_DESTROYED - endobjective - - beginobjective 1, 0x480a, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Rendezvous with CI spy" - complete_flags STAGEFLAG_MET_JON - fail_flags STAGEFLAG_JON_DEAD - endobjective - - beginobjective 2, 0x480c, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Locate secret hangar" - complete_flags STAGEFLAG_ENTERED_HANGAR - endobjective - - beginobjective 3, 0x480b, DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Revive Maian Bodyguard" - complete_flags STAGEFLAG_ELVIS_REVIVED - endobjective - - beginobjective 4, 0x480d, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Escape from Area 51" - complete_flags STAGEFLAG_ESCAPED - fail_flags STAGEFLAG_HANGAR_TERMINAL_DESTROYED - fail_flags STAGEFLAG_ELVIS_DEAD - endobjective - - chr 0x00000400, 0x23, 0x03be, BODY_BIOTECH, HEAD_DUNCAN2, GFUNC_IDLE, -1, -1, 1000, 100, 0x40004600, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - chr 0x00000400, 0x24, 0x012e, BODY_BIOTECH, HEAD_JAMIE, GFUNC_IDLE, -1, -1, 1000, 100, 0x4000c000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - chr 0x00000200, 0x00, 0x03e0, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0xc4000000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x01, 0x03e1, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0xc4000000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0001, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x02, 0x03e2, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0xc4000000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x03, 0x03df, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0xc4000000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0003, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x04, 0x03e3, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0xc4000000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0004, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x05, 0x03e4, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0xc4000000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0005, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x06, 0x03e5, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0xc4000000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0006, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x07, 0x03e6, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0xc4000000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0007, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x08, 0x03e7, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0008, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x000002c0, 0x09, 0x03e9, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SPAWN_DURING_FOLLOW, -1, -1, 1000, 100, 0xc4002000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0009, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x000002c0, 0x0a, 0x03ea, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SPAWN_DURING_FOLLOW, -1, -1, 1000, 100, 0xc4002000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x000a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x000002c0, 0x0b, 0x03eb, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SPAWN_DURING_FOLLOW, -1, -1, 1000, 100, 0xc4002000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x000b, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x000002c0, 0x0c, 0x03ec, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SPAWN_DURING_FOLLOW, -1, -1, 1000, 100, 0xc4002000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0d, 0x03e6, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE1, -1, -1, 1000, 100, 0xe4010000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x000d, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0e, 0x03e5, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE1, -1, -1, 1000, 100, 0xe4010000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x000002c0, 0x0f, 0x03fa, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE1, -1, -1, 1000, 100, 0xe4010000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x000f, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x10, 0x03f1, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE1, -1, -1, 1, 8, 0xc4010000, 0x00000200, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0010, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x11, 0x03f2, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE1, -1, -1, 1, 8, 0xc4010000, 0x00000200, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0011, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x12, 0x03f3, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE1, -1, -1, 1, 8, 0xc4010000, 0x00000200, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0012, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x13, 0x03f4, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE1, -1, -1, 1, 8, 0xc4010000, 0x00000200, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0013, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x14, 0x016a, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE1, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x15, 0x03f7, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE1, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0015, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x16, 0x03f8, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE1, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00010400, 0x21, 0x03f9, BODY_A51AIRMAN, HEAD_JONATHAN, FUNC_INIT_JONATHAN, -1, -1, 1000, 100, 0x0c000000, 0x80100000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDY357, 0x0021, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357MAGNUM, 0x00ffffff, 0x00000000 - chr 0x00010400, 0x22, 0x010a, BODY_ELVIS1, HEAD_ELVIS, GFUNC_IDLE, -1, -1, 1000, 100, 0x84000000, 0x00000000, 0x10, 0x03, -1, 0, 0x00000000 - chr 0x00000000, 0x17, 0x0119, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE2, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0017, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x18, 0x0111, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE2, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x19, 0x010c, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE2, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0019, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000000, 0x1a, 0x00ed, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE2, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1b, 0x00e1, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE2, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x001b, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1c, 0x00db, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE2, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x001c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1d, 0x00b7, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE2, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x001d, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1e, 0x00a8, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE2, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x001e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1f, 0x00a1, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE2, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0f, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x001f, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x20, 0x00a0, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE2, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0f, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x0020, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x25, 0x013a, BODY_BIOTECH, HEAD_BIOTECH, FUNC_HIDDEN_BIOTECH, -1, -1, 1000, 100, 0xc4090000, 0x10000000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRUGGUN, 0x0025, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x26, 0x013c, BODY_BIOTECH, HEAD_BIOTECH, FUNC_HIDDEN_BIOTECH, -1, -1, 1000, 100, 0xc4090000, 0x10000000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRUGGUN, 0x0026, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x27, 0x013a, BODY_BIOTECH, HEAD_BIOTECH, FUNC_HIDDEN_BIOTECH, -1, -1, 1000, 100, 0xc4090000, 0x10000000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRUGGUN, 0x0027, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x28, 0x0134, BODY_BIOTECH, HEAD_BIOTECH, FUNC_HIDDEN_BIOTECH, -1, -1, 1000, 100, 0xc4090000, 0x10000000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRUGGUN, 0x0028, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x29, 0x0118, BODY_BIOTECH, HEAD_BIOTECH, FUNC_INIT_BIOTECH, -1, -1, 1000, 6, 0xc4090000, 0x10000000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRUGGUN, 0x0029, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x2a, 0x0115, BODY_BIOTECH, HEAD_BIOTECH, FUNC_INIT_BIOTECH, -1, -1, 1000, 6, 0xc4090000, 0x10000000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRUGGUN, 0x002a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x2b, 0x03bc, BODY_AREA51GUARD, HEAD_BEAU1, FUNC_HIDDEN_BIOTECH, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSUPERDRAGON, 0x002b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000 - tag 0x00, 1 - hover_prop 0x0100, MODEL_HOVERBED, 0x03bd, 0x05120101, 0x00304300, 0x00110003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x11, 1 - hover_prop 0x0100, MODEL_A51TROLLEY, 0x0120, 0x05120101, 0x00304300, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - hover_prop 0x0100, MODEL_HOVERBED, 0x0122, 0x05120101, 0x00304300, 0x00100003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x35, 1 - hoverbike 0x0100, MODEL_HOVBIKE, 0x03fb, 0x05120101, 0x00304300, 0x02000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x01010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - hover_prop 0x0100, MODEL_HOVERCRATE1, 0x011d, 0x31120101, 0x00304300, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x02010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x17, 2 - tag 0x18, 2 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x027f, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000040, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x027e, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000040, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x027d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x027c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x15, 2 - tag 0x16, 2 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x027a, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000040, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x027b, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000040, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0278, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0279, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0277, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0276, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x19, 2 - tag 0x1a, 2 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0274, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000040, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0275, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000040, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0273, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0272, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0270, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0271, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x026f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x026e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x026c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x026d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x026b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x026a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x3c, 2 - tag 0x3d, 2 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0268, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000040, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0269, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000040, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x1b, 2 - tag 0x1c, 2 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0266, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000040, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0267, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000040, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x1d, 2 - tag 0x1e, 2 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0280, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000040, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0281, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000040, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02b7, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02b8, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02b9, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02ba, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02bb, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02bc, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x06, 2 - tag 0x07, 2 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0283, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000040, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0282, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000040, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0284, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0285, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x028b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x028a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_GL, 0x0286, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00020004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x01f407d0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0287, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x33, 2 - tag 0x34, 2 - door 0x0100, MODEL_A51_HORIZ_DOOR_GL, 0x0289, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00020004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x01f407d0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0288, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02a4, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x32, 1 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02a5, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x0c, 1 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02a6, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00001999, 0x00000004, 0x00000040, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x0b, 1 - door 0x0100, MODEL_A51_HORIZ_DOOR_SECRET, 0x028e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x0a, 1 - door 0x0100, MODEL_A51_HORIZ_DOOR_SECRET, 0x02c5, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000002, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x0292, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x0293, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x0294, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x0295, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x0d, 1 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02ae, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000020, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x0299, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x0298, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_GL, 0x02a8, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00020004, 0x00000040, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x01f407d0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02a7, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000040, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x029a, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x029b, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x31, 1 - door 0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x029c, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x029d, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000000, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x30, 1 - door 0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x029e, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x029f, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000000, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x0e, 2 - tag 0x0f, 2 - door 0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x02a1, 0x10000010, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x02a0, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x028c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x028d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x028f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x10, 1 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x0290, 0x10000000, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x05, 1 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x0291, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x08, 2 - tag 0x09, 2 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02a2, 0x10000000, 0x30000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000a666, 0x0000a666, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02a3, 0x10000000, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000a666, 0x0000a666, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - object 0x0100, MODEL_A51_CRATE1, 0x02e5, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x02e6, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE3, 0x02e7, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x02e8, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x02e9, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE3, 0x02ea, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x02eb, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x02ec, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE3, 0x02ed, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x02ee, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x02ef, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE3, 0x02f0, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x02f1, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x02f2, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE3, 0x02f3, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x02f4, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x02f5, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE3, 0x02f6, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x02f7, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x38, 4 - tag 0x21, 4 - link_paths 0x00000002, 0x0173013f, 0x00000000 - link_scenery 1, 2, 3 - door 0x0100, MODEL_A51_UNEXP2, 0x0424, 0x13520d00, 0x20304300, 0x00000000, 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_A51_UNEXP3, 0x0425, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_EXP2, 0x0423, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02b3, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02b4, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x02af, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x02b0, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0321, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0327, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0322, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0328, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02b2, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000080, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02b1, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000080, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02bd, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02be, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02bf, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c0, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02c1, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c2, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02c3, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c4, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x02, 1 - object 0x0100, MODEL_CHRREMOTEMINE, 0x013f, 0x012204e1, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x03, 1 - singlemonitor 0x0100, MODEL_SINISTERSTATION, 0x048e, 0x000005e1, 0x00000001, 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, 0xffffff03 - tag 0x04, 1 - singlemonitor 0x0033, MODEL_SINISTERSTATION, 0x03fd, 0x000005e1, 0x00000001, 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, 0xffffff03 - glass 0x0100, MODEL_MEDLABWIN1, 0x0436, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_MEDLABWIN2, 0x0437, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_MEDLABWIN2, 0x0438, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_MEDLABWIN1, 0x0439, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_MEDLABWIN2, 0x043a, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_MEDLABWIN2, 0x043b, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x1f, 1 - object 0x0100, MODEL_ELVIS_SAUCER, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x22, 1 - object 0x0100, MODEL_ELVIS_SAUCER, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0461, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0462, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0463, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0464, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0465, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0466, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0467, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0468, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0469, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x046a, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x046b, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x046c, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x046d, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x046e, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x046f, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0470, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0471, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0472, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0473, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0474, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0476, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0477, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0479, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x047a, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x047b, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x047c, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x047d, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x047e, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x047f, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0480, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0481, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0482, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0483, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0484, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0485, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0486, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0487, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0488, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0489, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x0491, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x0492, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x0493, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x0494, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x0495, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x0496, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x0497, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x0498, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x0499, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x049a, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x049b, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x049c, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x049d, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x049e, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x049f, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x04a0, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x04a1, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x04a2, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x04a3, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04a4, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04a5, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04a6, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04a7, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04a8, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04a9, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04aa, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04ab, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04ac, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE3, 0x031a, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x23, 7 - tag 0x24, 7 - tag 0x25, 7 - tag 0x26, 7 - tag 0x27, 7 - tag 0x28, 7 - tag 0x29, 7 - object 0x0100, MODEL_LAB_CONTAINER, 0x04b7, 0x000005e1, 0x00000000, 0x00800001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_LAB_CONTAINER, 0x04b8, 0x000005e1, 0x00000000, 0x00800001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_LAB_CONTAINER, 0x04b9, 0x000005e1, 0x00000000, 0x00800001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_LAB_CONTAINER, 0x04ba, 0x000005e1, 0x00000000, 0x00800001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_LAB_CONTAINER, 0x04bb, 0x000005e1, 0x00000000, 0x00800001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_LAB_CONTAINER, 0x04bc, 0x000005e1, 0x00000000, 0x00800001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_LAB_CONTAINER, 0x04be, 0x000005e1, 0x00000000, 0x00800001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x2a, 1 - glass 0x0100, MODEL_MEDLABWIN2, 0x043c, 0x04000b62, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x12, 2 - tag 0x13, 2 - door 0x0100, MODEL_A51_HORIZ_DOOR_GL, 0x0264, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00020004, 0x00000040, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x01f407d0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0265, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000040, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x14, 1 - object 0x0100, MODEL_A51DESKENT, 0x048a, 0x000005e1, 0x00000001, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_LAB_CONTAINER, 0x048b, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_LAB_CONTAINER, 0x048c, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_LAB_CONTAINER, 0x048d, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x01, 1 - weapon 0x0100, MODEL_CHRBRIEFCASE, 0x037f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AUTOSURGEON, 0x00ffffff, 0x00000000 - rename_object -1, 0x3a, 0x4814, 0x4815, 0x4816, 0x4817, 0x4818, 0x0000, 0x0000 // "Obtain alien medpack." - tag 0x20, 1 - weapon 0x0100, MODEL_CHRBRIEFCASE, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AUTOSURGEON, 0x00ffffff, 0x00000000 - rename_object -1, 0x3a, 0x4814, 0x4815, 0x4816, 0x4817, 0x4818, 0x0000, 0x0000 // "Obtain alien medpack." - object 0x0100, MODEL_A51TABLE, 0x04d0, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x04d1, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x04d2, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x04d3, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04d8, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04d9, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04da, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04db, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04dc, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04dd, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04de, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04df, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04e0, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04e1, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x2b, 1 - object 0x0100, MODEL_A51TABLE, 0x0129, 0x000004e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x2c, 2 - tag 0x2d, 2 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02dc, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x0000028f, 0x00000004, 0x00000000, 0x00000258, 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_A51_HORIZ_DOOR_TOP, 0x02dd, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x0000028f, 0x00000004, 0x00000000, 0x9ffffff6, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x2e, 2 - tag 0x2f, 2 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02de, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x0000028f, 0x00000004, 0x00000000, 0x00000258, 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_A51_HORIZ_DOOR_TOP, 0x02df, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x0000028f, 0x00000004, 0x00000000, 0x9ffffff6, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x46, 2 - tag 0x3e, 2 - lift 0x0100, MODEL_CHAMBER, 0x033c, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x033c, 0x033d, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x045c, 0x10000002, 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, 0xffffff12 - tag 0x48, 2 - tag 0x40, 2 - lift 0x0100, MODEL_CHAMBER, 0x0340, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0340, 0x0341, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x0459, 0x10000002, 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, 0xffffff12 - tag 0x4a, 2 - tag 0x42, 2 - lift 0x0100, MODEL_CHAMBER, 0x0344, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0344, 0x0345, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x045a, 0x10000002, 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, 0xffffff12 - tag 0x4c, 2 - tag 0x44, 2 - lift 0x0100, MODEL_CHAMBER, 0x0348, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0348, 0x0349, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x045b, 0x10000002, 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, 0xffffff12 - tag 0x47, 2 - tag 0x3f, 2 - lift 0x0100, MODEL_CHAMBER, 0x033f, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x033f, 0x033e, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x045e, 0x10000002, 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, 0xffffff12 - tag 0x49, 2 - tag 0x41, 2 - lift 0x0100, MODEL_CHAMBER, 0x0343, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0343, 0x0342, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x045f, 0x10000002, 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, 0xffffff12 - tag 0x4b, 2 - tag 0x43, 2 - lift 0x0100, MODEL_CHAMBER, 0x0347, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0347, 0x0346, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x0460, 0x10000002, 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, 0xffffff12 - tag 0x4d, 2 - tag 0x45, 2 - lift 0x0100, MODEL_CHAMBER, 0x034b, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x034b, 0x034a, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x045d, 0x10000002, 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, 0xffffff12 - object 0x0100, MODEL_A51_EXP1, 0x0421, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51GRATE, 0x0443, 0x000215e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51GRATE, 0x0444, 0x000215e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x4e, 1 - lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x0336, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0336, 0x0337, 0xffffffff, 0x00000001, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x20000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51LIFTDOOR, 0x02e4, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00080000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51LIFTDOOR, 0x02e3, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00080000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -2, -3, 0, 0 - link_objects -2, -4, 0, 1 - object 0x0100, MODEL_A51GRATE, 0x0449, 0x000215e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x4f, 4 - tag 0x50, 4 - tag 0x51, 4 - tag 0x52, 4 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02aa, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000080, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02ab, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000080, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02ac, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000080, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02ad, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000080, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x53, 2 - tag 0x54, 2 - door 0x0100, MODEL_A51GATE_L, 0x02b5, 0x10000010, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000ccc, 0x00014000, 0x00000111, 0x00000000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51GATE_R, 0x02b6, 0x10000010, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000ccc, 0x00014000, 0x00000111, 0x00000000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x36, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x0028, 0x00004001, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000 - tag 0x37, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x037f, 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 0x39, 2 - tag 0x3a, 2 - weapon 0x0100, MODEL_CHRFALCON2SCOPE, 0x0023, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SCOPE, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRFALCON2SCOPE, 0x0024, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SCOPE, 0x00ffffff, 0x00000000 - link_collectibles -1, -2 - tag 0x3b, 1 - weapon 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0567, 0x00120001, 0x00080001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REMOTEMINE, 0x00ffffff, 0x00000000 - pad_effect 0x00000001, 0x00000129 - endprops - -intro: - spawn 0x012f - intro_weapon WEAPON_FALCON2_SCOPE, -1 - ammo AMMOTYPE_PISTOL, 100 - ammo AMMOTYPE_REMOTE_MINE, 2 - outfit OUTFIT_LAB - endintro - -func1400_setup_counterop: - yield - set_chr_alliance CHR_COUNTEROP, ALLIANCE_ENEMY - set_function CHR_SELF, GFUNC_REBUILD_GROUPS - endfunction - -func1001_objectives_failed_msg: - yield - set_function CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG - endfunction - -func1022_gas_damage_joanna: - set_target_chr CHR_JOANNA - set_function CHR_SELF, FUNC_GAS_DAMAGE - endfunction - -func1023_gas_damage_velvet: - set_target_chr CHR_VELVET - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x32 - set_function CHR_SELF, FUNC_GAS_DAMAGE - - label 0x32 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0401_gas_damage: - beginloop 0x12 - if_stage_flag_eq STAGEFLAG_INTRO_DONE, TRUE, /*goto*/ 0x32 - endloop 0x12 - - label 0x32 - restart_timer - - beginloop 0x04 - if_chr_in_room TARGET_CHR, 0x00, 0x009a, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0099, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x008f, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0090, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0092, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0093, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0094, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0095, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0096, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0097, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0098, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0099, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x009a, /*goto*/ 0x06 - reloop 0x04 - - label 0x06 - restart_timer - - // @bug: Only Jo gets motion blur? - label 0x08 - yield - call_rng - if_rand_gt 50, /*goto*/ 0x32 - add_motion_blur CHR_JOANNA, 7, TRUE - label 0x32 - if_timer_lt 460, /*goto*/ 0x32 - restart_timer - damage_chr2 TARGET_CHR, 514 - label 0x32 - if_chr_in_room TARGET_CHR, 0x00, 0x009a, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0099, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x008f, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0090, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0092, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0093, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0094, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0095, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0096, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0097, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0098, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0099, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x009a, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - goto_first 0x08 - - label 0x0d - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1004_jon_msgs_gravedanger: - beginloop 0x0d - if_stage_flag_eq STAGEFLAG_INTRO_DONE, TRUE, /*goto*/ 0x32 - endloop 0x0d - - label 0x32 - restart_timer - - beginloop 0x04 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - restart_timer - speak CHR_JOANNA, 0x480e, 0x814f, CHANNEL_4, COLOR_03_RED // "Joanna - this is Jonathan. You're in grave danger." - - beginloop 0x08 - if_timer_gt 240, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - restart_timer - speak CHR_JOANNA, 0x480f, 0x8150, CHANNEL_4, COLOR_03_RED // "They've flooded the area with nerve gas." - - beginloop 0x09 - if_timer_gt 240, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - restart_timer - speak CHR_JOANNA, 0x4810, 0x8151, CHANNEL_4, COLOR_03_RED // "Get our friend to the containment lab. There's a h..." - - beginloop 0x0a - if_timer_gt 270, /*goto*/ 0x06 - endloop 0x0a - - label 0x06 - restart_timer - speak CHR_JOANNA, 0x4811, 0x8152, CHANNEL_4, COLOR_03_RED // "I'll contact you when you get there - good luck!" - - beginloop 0x0c - if_timer_gt 240, /*goto*/ 0x06 - endloop 0x0c - - label 0x06 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1005_jon_msgs_meetup: - beginloop 0x04 - if_object_in_room OBJ_HOVERBED, 0x00df, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - set_stage_flag STAGEFLAG_ELVIS_STASHED - mute_channel CHANNEL_0 - unset_object_flag_bank1 0x0d, OBJECTFLAG1_08000000 - set_object_flag_bank1 0x0d, OBJECTFLAG1_10000000 - unlock_door 0x0d, 0x20 - release_grabbed_object CHR_JOANNA - yield - unset_object_flag_bank2 OBJ_HOVERBED, OBJECTFLAG2_GRABBABLE - unset_object_flag_bank2 OBJ_HOVERBED, OBJECTFLAG2_PUSHABLE - restart_timer - speak CHR_JOANNA, 0x4812, 0x8153, CHANNEL_4, COLOR_03_RED // "Good work, Jo. We need to meet up. They're getting..." - - beginloop 0x08 - if_timer_gt 300, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - restart_timer - speak CHR_JOANNA, 0x4813, 0x8154, CHANNEL_4, COLOR_03_RED // "Use the maintenance hatch I've opened in one of th..." - - beginloop 0x09 - if_timer_gt 300, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - set_stage_flag STAGEFLAG_JON_SAID_MAINT_HATCH - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1007_check_medpack_collected: - beginloop 0x04 - if_chr_has_object CHR_JOANNA, OBJ_MEDPACK_JOANNA, /*goto*/ 0x06 - if_chr_has_object CHR_VELVET, OBJ_MEDPACK_JOANNA, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - set_stage_flag STAGEFLAG_COLLECTED_MEDPACK - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0403_init_jonathan: - set_self_flag_bank3 CHRFLAG3_01000000 - set_self_flag_bank3 CHRFLAG3_NOAUTOAIM - if_difficulty_gt DIFF_A, /*goto*/ 0x32 - - // Agent only - beginloop 0x0d - chr_move_to_pad CHR_JONATHAN, 0x0398, 0x00, /*goto*/ 0x32 - endloop 0x0d - - // All difficulties - label 0x32 - set_armor 1200 - set_alertness 150 - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, FUNC_JONATHAN_WAITING_FOR_MEETUP - endfunction - -func0402_jonathan_waiting_for_meetup: - set_onshot_function FUNC_JONATHAN_WAITING_FOR_MEETUP - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x32 - if_chr_dying CHR_SELF, /*goto*/ 0x32 - if_chr_unloaded CHR_SELF, /*goto*/ 0x32 - goto_next 0x67 - - label 0x32 - set_function CHR_SELF, GFUNC_IDLE - - label 0x67 - set_self_flag_bankx CHRFLAG0_10000000, BANK_0 - set_self_flag_bank3 CHRFLAG3_00080000 - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_sees_player /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - lock_door 0x0d, 0x20 - lock_door 0x33, 0x20 - lock_door 0x34, 0x20 - speak CHR_P1P2, 0x4819, 0x12b3, CHANNEL_4, COLOR_03_RED // "Joanna - over here." - label 0x08 - restart_timer - do_special_animation 3 - - beginloop 0x09 - if_player_looking_at_something_maybe 0x0a, 0x01, 0x00, /*goto*/ 0x06 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x09 - - label 0x06 - restart_timer - try_face_entity 0x0200, 0x0000, /*goto*/ 0x0a - - beginloop 0x0a - if_sound_finished CHANNEL_4, /*goto*/ 0x32 - reloop 0x0a - - label 0x32 - if_timer_lt 150, /*goto*/ 0x32 - if_chr_distance_lt 300, /*goto*/ 0x06 - label 0x32 - endloop 0x0a - - label 0x06 - speak CHR_P1P2, 0x481a, 0x12b4, CHANNEL_4, COLOR_03_RED // "We need to get back to our friend." - set_stage_flag STAGEFLAG_MET_JON - do_special_animation -1 - restart_timer - - beginloop 0x0c - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x0c - - label 0x06 - stop_chr - set_function CHR_SELF, FUNC_JONATHAN_FOLLOWING_AND_MINE - endfunction - -func0404_jonathan_following_and_mine: - .set LABEL_FOLLOW, 0x5a - - set_chr_alliance CHR_SELF, ALLIANCE_ALLY - yield - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_return_function CHR_SELF, FUNC_JONATHAN_FOLLOWING_AND_MINE - set_onshot_function FUNC_JONATHAN_FOLLOWING_AND_MINE - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x32 - if_chr_dying CHR_SELF, /*goto*/ 0x32 - if_chr_unloaded CHR_SELF, /*goto*/ 0x32 - goto_next 0x06 - - label 0x32 - set_function CHR_SELF, GFUNC_IDLE - - // Unreachable - if_stage_flag_eq STAGEFLAG_JON_FINISHED_EXPLOSIVES, TRUE, /*goto*/ 0x32 - if_self_flag_bankx_eq CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x0d - label 0x32 - goto_next 0x63 - - // Alive - label 0x06 - restart_timer - - beginloop 0x64 - if_chr_stopped /*goto*/ 0x63 - endloop 0x64 - - label 0x63 - if_stage_flag_eq STAGEFLAG_JON_SHOT_WHILE_PLANTING, TRUE, /*goto*/ 0x0e - set_target_chr CHR_P1P2 - dprint "JONA FOLLOW\n" - - label LABEL_FOLLOW - if_chr_distance_gt 200, /*goto*/ 0x5c - - // distance <= 200 (waiting) - stop_chr - restart_timer - - beginloop 0x5b - label 0x32 - if_chr_sees_player /*goto*/ 0x06 - goto_next 0x5c - - label 0x06 - if_chr_distance_gt 200, /*goto*/ 0x5c - endloop 0x5b - - // distance > 200 - label 0x5c - restart_timer - if_chr_distance_lt 300, /*goto*/ 0x32 - - // distance >= 300 - try_run_to_target_chr /*goto*/ 0x5d - - // distance > 200 and distance < 300 - label 0x32 - try_walk_to_target_chr /*goto*/ 0x5d - - // Moving towards Jo - label 0x5d - restart_timer - yield - - label 0x06 - if_enemy_distance_lt_and_los 1500, /*goto*/ 0x09 - - // distance >= 1500 and no line of sight - // Note the timer check is pointless here because it is restarted in - // each loop iteration. - label 0x32 - set_target_chr CHR_P1P2 - if_chr_distance_lt 200, /*goto*/ 0x5e - if_timer_gt 120, /*goto*/ 0x5e - if_chr_stopped /*goto*/ 0x5e - goto_first 0x5d - - label 0x5e - if_stage_flag_eq STAGEFLAG_WALL_EXPLODED, TRUE, /*goto*/ 0x32 - if_stage_flag_eq STAGEFLAG_JON_ENTERED_MINE_ROOM, TRUE, /*goto*/ 0x32 - if_chr_in_room CHR_JONATHAN, 0x00, 0x00dc, /*goto*/ 0x0a - if_chr_in_room CHR_JONATHAN, 0x00, 0x00dd, /*goto*/ 0x0a - goto_first LABEL_FOLLOW - - // Unreachable - if_chr_in_room CHR_P1P2, 0x00, 0x00dc, /*goto*/ 0x0a - if_chr_in_room CHR_P1P2, 0x00, 0x00dd, /*goto*/ 0x0a - - label 0x32 - goto_first LABEL_FOLLOW - - // Saw enemy - label 0x09 - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - - // In mine room - label 0x0a - unset_self_flag_bank3 CHRFLAG3_01000000 - set_stage_flag STAGEFLAG_JON_ENTERED_MINE_ROOM - speak CHR_P1P2, 0x481b, 0x12b5, CHANNEL_4, COLOR_03_RED // "Right, we're near. Cover me, Jo..." - set_onshot_function FUNC_JONATHAN_SHOT_WHILE_PLANTING - label 0x0b - jog_to_pad 0x038b - - beginloop 0x0c - if_chr_stopped /*goto*/ 0x06 - endloop 0x0c - - label 0x06 - play_x_music CHANNEL_10, 30 - restart_timer - try_face_entity ENTITYTYPE_PAD, 0x0173, /*goto*/ 0xc4 - - beginloop 0xc4 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0xc4 - - label 0x06 - restart_timer - set_stage_flag STAGEFLAG_JON_PLANTING_EXPLOSIVES - - label 0xc2 - call_rng - if_rand_lt 86, /*goto*/ 0x6a - if_rand_lt 172, /*goto*/ 0x6b - animation ANIM_OPERATE_0204, -1, -1, 0x100a, CHR_SELF, 2 - goto_next 0x0e - - label 0x6a - animation ANIM_OPERATE_0205, -1, -1, 0x100a, CHR_SELF, 2 - goto_next 0x0e - - label 0x6b - animation ANIM_OPERATE_0206, -1, -1, 0x100a, CHR_SELF, 2 - - label 0x0e - set_onshot_function FUNC_JONATHAN_SHOT_WHILE_PLANTING - resume_timer - unset_self_flag_bankx CHRFLAG0_SAID_INJURY_QUIP, BANK_0 - - // Mine planting loop (33.3 seconds) - beginloop 0x0d - if_timer_gt 2000, /*goto*/ 0x06 - if_chr_idle /*goto*/ 0x32 - goto_first 0xc2 - - label 0x32 - endloop 0x0d - - label 0x06 - set_onshot_function FUNC_JONATHAN_FOLLOWING_AND_MINE - set_stage_flag STAGEFLAG_JON_FINISHED_EXPLOSIVES - unset_stage_flag STAGEFLAG_JON_SHOT_WHILE_PLANTING - set_self_flag_bank3 CHRFLAG3_01000000 - speak CHR_P1P2, 0x481c, 0x12b6, CHANNEL_4, COLOR_03_RED // "Okay - stand back." - run_to_pad 0x0140 - - beginloop 0x0f - if_chr_stopped /*goto*/ 0x12 - endloop 0x0f - - label 0x12 - stop_chr - - beginloop 0x10 - if_stage_flag_eq STAGEFLAG_WALL_EXPLODED, TRUE, /*goto*/ 0x06 - endloop 0x10 - - label 0x06 - unlock_door 0x0a, 0x02 - speak CHR_P1P2, 0x4820, 0x12b7, CHANNEL_4, COLOR_03_RED // "Okay, Jo - let's go." - restart_timer - - beginloop 0x11 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x11 - - label 0x06 - goto_first LABEL_FOLLOW - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0413_jonathan_hangar: - set_return_function CHR_SELF, FUNC_JONATHAN_HANGAR - set_onshot_function FUNC_JONATHAN_HANGAR - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x32 - if_chr_dying CHR_SELF, /*goto*/ 0x32 - if_chr_unloaded CHR_SELF, /*goto*/ 0x32 - goto_next 0x06 - - label 0x32 - set_function CHR_SELF, GFUNC_IDLE - - label 0x32 - if_just_injured CHR_SELF, /*goto*/ 0x06 - goto_next 0x63 - - // Injured - label 0x06 - restart_timer - - beginloop 0x64 - if_chr_stopped /*goto*/ 0x63 - endloop 0x64 - - // Attack enemy (jumped to from further below) - label 0x09 - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - - // Alive and well - label 0x63 - set_target_chr CHR_P1P2 - label 0x12 - jog_to_pad 0x015f - - beginloop 0x13 - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x32 - if_chr_distance_to_pad_lt CHR_SELF, 3510, 0x001e, /*goto*/ 0x06 - if_chr_stopped /*goto*/ 0x06 - endloop 0x13 - - label 0x32 - goto_first 0x09 - - // Waiting at pad - label 0x06 - set_stage_flag STAGEFLAG_JON_WAITING_AT_UFO - stop_chr - set_target_chr CHR_P1P2 - try_face_entity 0x0200, 0x0000, /*goto*/ 0x14 - - // Wait until both Joanna and Elvis within 400 units - beginloop 0x14 - set_target_chr CHR_ELVIS - if_chr_distance_gt 400, /*goto*/ 0x32 - set_target_chr CHR_P1P2 - if_chr_distance_gt 400, /*goto*/ 0x32 - if_target_chr_in_sight /*goto*/ 0x06 - label 0x32 - endloop 0x14 - - // Start conversation - label 0x06 - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0xc3 - if_chr_dying CHR_ELVIS, /*goto*/ 0xc3 - if_chr_unloaded CHR_ELVIS, /*goto*/ 0xc3 - restart_timer - animation 0x0232, -1, 200, 0x0200, CHR_ELVIS, 2 - speak CHR_P1P2, 0x483b, 0x1a9a, CHANNEL_5, COLOR_06_WHITE // "Oh, no! We have a problem. It's a single seater!" - - beginloop 0x7d - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0xc3 - if_chr_dying CHR_ELVIS, /*goto*/ 0xc3 - if_chr_unloaded CHR_ELVIS, /*goto*/ 0xc3 - if_sound_finished CHANNEL_5, /*goto*/ 0x32 - reloop 0x7d - - label 0x32 - if_timer_gt 300, /*goto*/ 0x06 - endloop 0x7d - - label 0x06 - restart_timer - animation 0x0233, -1, 200, 0x0200, CHR_ELVIS, 2 - speak CHR_P1P2, 0x483c, 0x1a9b, CHANNEL_5, COLOR_06_WHITE // "Two can get in but no more." - - beginloop 0x7e - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0xc3 - if_chr_dying CHR_ELVIS, /*goto*/ 0xc3 - if_chr_unloaded CHR_ELVIS, /*goto*/ 0xc3 - if_sound_finished CHANNEL_5, /*goto*/ 0x32 - reloop 0x7e - - label 0x32 - if_timer_gt 200, /*goto*/ 0x06 - endloop 0x7e - - label 0x06 - restart_timer - speak CHR_JOANNA, 0x4829, 0x72a7, CHANNEL_5, COLOR_09_BLUE // "It's the only way out of here." - - beginloop 0x15 - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0xc3 - if_chr_dying CHR_ELVIS, /*goto*/ 0xc3 - if_chr_unloaded CHR_ELVIS, /*goto*/ 0xc3 - if_sound_finished CHANNEL_5, /*goto*/ 0x32 - reloop 0x15 - - label 0x32 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x15 - - label 0x06 - restart_timer - animation 0x0232, -1, 200, 0x0200, CHR_ELVIS, 2 - speak CHR_P1P2, 0x483d, 0x1a9c, CHANNEL_5, COLOR_06_WHITE // "Plus, it's got no style, you know what I'm saying?" - - beginloop 0x7f - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0xc3 - if_chr_dying CHR_ELVIS, /*goto*/ 0xc3 - if_chr_unloaded CHR_ELVIS, /*goto*/ 0xc3 - if_sound_finished CHANNEL_5, /*goto*/ 0x32 - reloop 0x7f - - label 0x32 - if_timer_gt 200, /*goto*/ 0x06 - endloop 0x7f - - label 0x06 - restart_timer - speak CHR_JOANNA, 0x482a, 0x72a8, CHANNEL_5, COLOR_09_BLUE // "You're the only one who can fly it, Elvis, so get ..." - - beginloop 0x17 - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0xc3 - if_chr_dying CHR_ELVIS, /*goto*/ 0xc3 - if_chr_unloaded CHR_ELVIS, /*goto*/ 0xc3 - if_sound_finished CHANNEL_5, /*goto*/ 0x32 - endloop 0x17 - - label 0x32 - if_timer_gt 240, /*goto*/ 0x06 - endloop 0x17 - - label 0x06 - restart_timer - animation 0x0231, -1, 200, 0x0200, CHR_JONATHAN, 2 - speak CHR_P1P2, 0x482d, 0x12b9, CHANNEL_5, COLOR_03_RED // "One of us will have to stay behind and open the ha..." - - beginloop 0x1a - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0xc3 - if_chr_dying CHR_ELVIS, /*goto*/ 0xc3 - if_chr_unloaded CHR_ELVIS, /*goto*/ 0xc3 - if_sound_finished CHANNEL_5, /*goto*/ 0x32 - reloop 0x1a - - label 0x32 - if_timer_gt 240, /*goto*/ 0x06 - endloop 0x1a - - label 0x06 - restart_timer - speak CHR_JOANNA, 0x482b, 0x72a9, CHANNEL_5, COLOR_09_BLUE // "But we can't leave you behind." - - beginloop 0x18 - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0xc3 - if_chr_dying CHR_ELVIS, /*goto*/ 0xc3 - if_chr_unloaded CHR_ELVIS, /*goto*/ 0xc3 - if_sound_finished CHANNEL_5, /*goto*/ 0x32 - reloop 0x18 - - label 0x32 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x18 - - label 0x06 - restart_timer - speak CHR_JOANNA, 0x482c, 0x72aa, CHANNEL_5, COLOR_09_BLUE // "There must be a way out of here." - - beginloop 0x19 - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0xc3 - if_chr_dying CHR_ELVIS, /*goto*/ 0xc3 - if_chr_unloaded CHR_ELVIS, /*goto*/ 0xc3 - if_sound_finished CHANNEL_5, /*goto*/ 0x32 - reloop 0x19 - - label 0x32 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x19 - - label 0x06 - restart_timer - animation 0x0232, -1, 200, 0x0200, CHR_JONATHAN, 2 - speak CHR_P1P2, 0x482e, 0x12ba, CHANNEL_5, COLOR_03_RED // "I'll get out on that hoverbike. Cover me while I o..." - - beginloop 0x1b - if_timer_gt 120, /*goto*/ 0x66 - reloop 0x1b - - label 0x66 - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0x06 - if_chr_dying CHR_ELVIS, /*goto*/ 0x06 - if_chr_unloaded CHR_ELVIS, /*goto*/ 0x06 - set_function CHR_ELVIS, FUNC_ELVIS_GO_TO_UFO - - label 0x06 - set_stage_flag STAGEFLAG_HANGAR_CONVERSATION_FINISHED - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - restart_timer - jog_to_pad 0x016f - - // Once Jon starts jogging, 4 seconds will pass before he starts checking - // other things. One of these is a Y check, where the X music will start - // once he's a certain way up the ramp. The other is a distance to Jo check - // where she'll take over. - beginloop 0x1c - if_timer_lt 240, /*goto*/ 0x32 - if_stage_flag_eq STAGEFLAG_HANGAR_X_MUSIC_STARTED, TRUE, /*goto*/ 0x32 - if_chr_y CHR_SELF, -600, OPERATOR_GREATER_THAN, /*goto*/ 0x33 - set_target_chr CHR_P1P2 - if_chr_distance_lt 300, /*goto*/ 0x59 - label 0x32 - if_chr_stopped /*goto*/ 0x06 - reloop 0x1c - - // Jon is up the ramp - label 0x33 - set_stage_flag STAGEFLAG_HANGAR_X_MUSIC_STARTED - play_x_music CHANNEL_10, 90 - run_to_pad 0x016f - set_stage_flag STAGEFLAG_HANGAR_X_MUSIC_STARTED - if_chr_stopped /*goto*/ 0x06 - endloop 0x1c - - // At first terminal - label 0x06 - animation ANIM_OPERATE_0204, 0, -1, 0x1010, CHR_SELF, 2 - - beginloop 0x1d - if_chr_stopped /*goto*/ 0x06 - endloop 0x1d - - label 0x06 - if_stage_flag_eq STAGEFLAG_HANGAR_TERMINAL_DESTROYED, TRUE, /*goto*/ 0x32 - set_stage_flag STAGEFLAG_INNER_DOOR_OPENING - open_door 0x2c - open_door 0x2d - set_object_flag_bank0 0x2c, OBJECTFLAG0_40000000 - set_object_flag_bank0 0x2d, OBJECTFLAG0_40000000 - message CHR_P1P2, 0x4827 // "Inner hangar door is opening." - - label 0x32 - set_self_flag_bankx CHRFLAG0_00004000, BANK_0 - run_to_pad 0x0171 - - beginloop 0x1e - if_chr_distance_to_pad_lt CHR_SELF, 3690, 0x0014, /*goto*/ 0x06 - if_chr_stopped /*goto*/ 0x06 - endloop 0x1e - - // At second terminal - label 0x06 - animation ANIM_OPERATE_0204, 0, -1, 0x1010, CHR_SELF, 2 - - beginloop 0x1f - if_chr_stopped /*goto*/ 0x06 - endloop 0x1f - - label 0x06 - if_stage_flag_eq STAGEFLAG_HANGAR_TERMINAL_DESTROYED, TRUE, /*goto*/ 0x20 - set_stage_flag STAGEFLAG_OUTER_DOOR_OPENING - open_door 0x2e - open_door 0x2f - set_object_flag_bank0 0x2e, OBJECTFLAG0_40000000 - set_object_flag_bank0 0x2f, OBJECTFLAG0_40000000 - message CHR_P1P2, 0x4825 // "Outer hangar door is opening." - - beginloop 0x20 - set_function CHR_SELF, FUNC_JONATHAN_AFTER_TERMINALS - endloop 0x20 - - // Jo taking over - label 0x59 - speak CHR_JOANNA, 0x482f, 0x72ac, CHANNEL_5, COLOR_09_BLUE // "Jonathan, go with Elvis. I'll see to the consoles." - restart_timer - try_face_entity 0x0200, 0x0000, /*goto*/ 0x46 - - beginloop 0x46 - if_angle_to_target_chr_lt 10, /*goto*/ 0x06 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x46 - - label 0x06 - restart_timer - - beginloop 0x4a - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x4a - - label 0x06 - set_stage_flag STAGEFLAG_JO_DOING_TERMINALS - set_stage_flag STAGEFLAG_HANGAR_X_MUSIC_STARTED - play_x_music CHANNEL_10, 90 - set_function CHR_SELF, FUNC_JONATHAN_AFTER_TERMINALS - - // Elvis dead - label 0xc3 - set_return_function CHR_SELF, FUNC_JONATHAN_AFTER_TERMINALS - set_function CHR_SELF, FUNC_JONATHAN_AFTER_TERMINALS - endfunction - -func041c_elvis_go_to_ufo: - set_return_function CHR_SELF, FUNC_ELVIS_GO_TO_UFO - set_onshot_function FUNC_ELVIS_GO_TO_UFO - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x32 - if_chr_dying CHR_SELF, /*goto*/ 0x32 - if_chr_unloaded CHR_SELF, /*goto*/ 0x32 - goto_next 0x06 - - label 0x32 - set_function CHR_SELF, GFUNC_IDLE - - label 0x06 - run_to_pad 0x03fe - - beginloop 0x08 - if_chr_stopped /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - stop_chr - - beginloop 0x6a - endloop 0x6a - - endfunction - -func041b_jonathan_after_terminals: - set_return_function CHR_SELF, FUNC_JONATHAN_AFTER_TERMINALS - set_onshot_function FUNC_JONATHAN_AFTER_TERMINALS - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x32 - if_chr_dying CHR_SELF, /*goto*/ 0x32 - if_chr_unloaded CHR_SELF, /*goto*/ 0x32 - goto_next 0x06 - - label 0x32 - set_function CHR_SELF, GFUNC_IDLE - - label 0x06 - run_to_pad 0x015f // conversation corner - - beginloop 0x4b - if_chr_distance_to_pad_lt CHR_SELF, 3510, 0x0014, /*goto*/ 0x06 - if_chr_stopped /*goto*/ 0x06 - endloop 0x4b - - label 0x06 - jog_to_pad 0x0168 // corner near ramp - - beginloop 0x4c - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x09 - if_chr_stopped /*goto*/ 0x06 - endloop 0x4c - - label 0x06 - stop_chr - - beginloop 0x4d - if_enemy_distance_lt_and_los 2540, /*goto*/ 0x09 - endloop 0x4d - - label 0x09 - set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR - endfunction - -func0405_jonathan_shot_while_planting: - set_stage_flag STAGEFLAG_JON_SHOT_WHILE_PLANTING - label 0x04 - pause_timer - if_just_injured CHR_SELF, /*goto*/ 0x06 - goto_next 0x63 - - // Injured - label 0x06 - restart_timer - - beginloop 0x64 - if_self_flag_bankx_eq CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06 - if_num_times_shot_lt 1, /*goto*/ 0x06 - if_timer_lt 20, /*goto*/ 0x06 - speak CHR_P1P2, 0x4833, 0x8155, CHANNEL_5, COLOR_03_RED // "Damn it, Joanna... cover me!" - set_self_flag_bankx CHRFLAG0_SAID_INJURY_QUIP, BANK_0 - label 0x06 - if_chr_stopped /*goto*/ 0x63 - endloop 0x64 - - // Not injured, or recovered - label 0x63 - label 0x0b - walk_to_pad 0x038b - - beginloop 0x0c - if_chr_stopped /*goto*/ 0x06 - endloop 0x0c - - label 0x06 - try_face_entity ENTITYTYPE_PAD, 0x0173, /*goto*/ 0xc4 - - beginloop 0xc4 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0xc4 - - label 0x06 - set_onshot_function FUNC_JONATHAN_FOLLOWING_AND_MINE - set_function CHR_SELF, FUNC_JONATHAN_FOLLOWING_AND_MINE - endfunction - -/** - * @unused - */ -func0406_unused_0406: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_MET_JON, TRUE, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - set_alertness 100 - set_target_chr CHR_JOANNA - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -/** - * Waits until the meetup with Jon is done and the player is in the hallway. - * Spawns 15 guards total, maximum 4 alive at any time. Every 60 seconds, checks - * to see whether it should spawn more. Stops once 15 have been spawned or Jon - * has finished planting the explosives. - */ -func1008_spawngroup1: - // Wait until meeting done and player in the T-junction corridor - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_stage_flag_eq STAGEFLAG_MET_JON, TRUE, /*goto*/ 0x06 - reloop 0x04 - - label 0x06 - if_chr_in_room CHR_P1P2, 0x00, 0x003f, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - set_var_a 15 - - beginloop 0x5f - // Keep doing this until explosives finished, or 15 guards spawned - if_stage_flag_eq STAGEFLAG_JON_FINISHED_EXPLOSIVES, TRUE, /*goto*/ 0x06 - if_var_a_lt 1, /*goto*/ 0x06 - try_spawn_chr BODY_AREA51GUARD, HEAD_RANDOM, 0x00c7, FUNC_SPAWNGROUP1_GUARD, 0x00000200, /*goto*/ 0x60 - reloop 0x5f - - // Spawned a guard - label 0x60 - yield - if_stage_flag_eq STAGEFLAG_JON_FINISHED_EXPLOSIVES, TRUE, /*goto*/ 0x06 - subtract_var_a 1 - if_num_chrs_in_group_gt 3, SPAWNGROUP1, /*goto*/ 0x32 - reloop 0x5f - - label 0x32 - restart_timer - - beginloop 0x08 - if_timer_gt 3600, /*goto*/ 0x32 - endloop 0x08 - - label 0x32 - endloop 0x5f - - label 0x06 - yield - yield - yield - yield - yield - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1008_spawngroup1_guard: - set_chr_dodge_rating 2, 0x0a - set_accuracy 10 - set_reaction_speed 40 - set_chr_health CHR_SELF, 40 - set_armor 40 - set_recovery_speed 0 - set_shield 0 - try_draw_weapon MODEL_CHRSUPERDRAGON, WEAPON_SUPERDRAGON, 0x00000000, /*goto*/ 0x06 - label 0x06 - set_chr_alliance CHR_SELF, ALLIANCE_ENEMY - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - set_self_flag_bankx CHRFLAG0_AIVSAI, BANK_0 - set_group SPAWNGROUP1 - run_to_pad 0x013e - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_CHOOSE_TARGET_CHR - endfunction - -/** - * Spawns 12 guards while Jon is planing the explosives. Maximum 4 alive at any - * time. No delay between them; once one dies another is immediately spawned. - * Location is spawned guard is one of 2 places, 50% chance of each. Spawning - * stops when wall explodes. - */ -func1013_spawngroup2: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_JON_PLANTING_EXPLOSIVES, TRUE, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - set_var_a 12 - - beginloop 0x5f - if_var_a_lt 1, /*goto*/ 0x06 - call_rng - if_rand_gt 128, /*goto*/ 0x32 - try_spawn_chr BODY_AREA51GUARD, HEAD_RANDOM, 0x0144, FUNC_SPAWNGROUP2_GUARD, 0x00000200, /*goto*/ 0x60 - goto_next 0x06 - - label 0x32 - try_spawn_chr BODY_AREA51GUARD, HEAD_RANDOM, 0x0138, FUNC_SPAWNGROUP2_GUARD, 0x00000200, /*goto*/ 0x60 - goto_next 0x06 - - label 0x60 - yield - if_stage_flag_eq STAGEFLAG_WALL_EXPLODED, TRUE, /*goto*/ 0x06 - subtract_var_a 1 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - label 0x08 - yield - if_stage_flag_eq STAGEFLAG_WALL_EXPLODED, TRUE, /*goto*/ 0x06 - if_num_chrs_in_group_gt 4, SPAWNGROUP2, /*goto*/ 0x32 - call_rng - if_rand_gt 5, /*goto*/ 0x32 - endloop 0x5f - - label 0x32 - goto_first 0x08 - - label 0x06 - yield - yield - yield - yield - yield - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1013_spawngroup2_guard: - set_chr_dodge_rating 2, 0x0a - set_accuracy 10 - set_reaction_speed 40 - set_chr_health CHR_SELF, 40 - set_armor 40 - set_recovery_speed 0 - set_shield 0 - try_draw_weapon MODEL_CHRSUPERDRAGON, WEAPON_SUPERDRAGON, 0x00000000, /*goto*/ 0x06 - label 0x06 - set_chr_alliance CHR_SELF, ALLIANCE_ENEMY - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - set_self_flag_bankx CHRFLAG0_AIVSAI, BANK_0 - set_group SPAWNGROUP2 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_target_chr CHR_JOANNA - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -/** - * SA/PA only. Waits until medpack is started, then spawns 4 guards. - * - * The intended behavior is to spawn them all pretty much immediately with a - * random delay in between, then wait for them all to be dead, then complete the - * medpack. But an error makes this not work as intended. - * - * The error is that if any spawn fails (eg. due to blocked pad) then the - * function jumps straight to the end where it waits for the group to be dead. - * The pad can be blocked if the guard hasn't moved off it fast enough, keeping - * in mind that the next spawn occurs after a random amount of frames. - */ -func1014_spawngroup3: - if_difficulty_lt DIFF_SA, /*goto*/ 0x32 - goto_next 0x04 - - // Agent - do nothing - label 0x32 - set_function CHR_SELF, GFUNC_IDLE - - // SA nad PA - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_MEDPACK_STARTED, TRUE, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - set_var_a 4 - - beginloop 0x5f - if_var_a_lt 1, /*goto*/ 0x06 - call_rng - if_rand_gt 128, /*goto*/ 0x32 - - // @bug: If either of these fail to spawn, the function jumps straight - // to the end rather than attempting to respawn them. - try_spawn_chr BODY_AREA51GUARD, HEAD_RANDOM, 0x0117, FUNC_SPAWNGROUP3_GUARD, 0x00000200, /*goto*/ 0x60 - goto_next 0x06 - - label 0x32 - try_spawn_chr BODY_AREA51GUARD, HEAD_RANDOM, 0x013e, FUNC_SPAWNGROUP3_GUARD, 0x00000200, /*goto*/ 0x60 - goto_next 0x06 - - // Spawned a guard - label 0x60 - yield - if_stage_flag_eq STAGEFLAG_ELVIS_REVIVED, TRUE, /*goto*/ 0x06 - subtract_var_a 1 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - - // Wait for Elvis to be revived, for someone to die, or 5 in 256 chance - // of spawning another guard anyway. - label 0x08 - yield - if_stage_flag_eq STAGEFLAG_ELVIS_REVIVED, TRUE, /*goto*/ 0x06 - if_num_chrs_in_group_gt 6, SPAWNGROUP3, /*goto*/ 0x32 - call_rng - if_rand_gt 5, /*goto*/ 0x32 - endloop 0x5f - - label 0x32 - goto_first 0x08 - - label 0x06 - yield - yield - yield - yield - yield - cmd0145_rebuild_groups - cmd0146_rebuild_groups - - beginloop 0x0d - if_all_chrs_in_group_are_dead SPAWNGROUP3, /*goto*/ 0x06 - endloop 0x0d - - label 0x06 - set_stage_flag STAGEFLAG_TRIGGER_MEDPACK_FINISH - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1014_spawngroup3_guard: - set_chr_dodge_rating 2, 0x0a - set_accuracy 10 - set_reaction_speed 40 - set_chr_health CHR_SELF, 40 - set_armor 40 - set_recovery_speed 0 - set_shield 0 - try_draw_weapon MODEL_CHRSUPERDRAGON, WEAPON_SUPERDRAGON, 0x00000000, /*goto*/ 0x06 - label 0x06 - set_chr_alliance CHR_SELF, ALLIANCE_ENEMY - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - set_self_flag_bankx CHRFLAG0_AIVSAI, BANK_0 - set_group SPAWNGROUP3 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_target_chr CHR_JOANNA - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -/** - * Start spawning guards when the hangar X music starts. Stop spawning when 12 - * reached, or when both hangar doors are open. - */ -func1015_spawngroup4: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_HANGAR_X_MUSIC_STARTED, TRUE, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - label 0x06 - set_var_a 12 - - beginloop 0x5f - call_rng - if_rand_gt 128, /*goto*/ 0x32 - - // @bug: This is spawning guards using the same function as the previous - // spawn group. This causes the guards to set their group to spawngroup3 - // which causes the if_num_chrs_in_group_gt check further below to - // never pass. - try_spawn_chr BODY_AREA51GUARD, HEAD_RANDOM, 0x0140, FUNC_SPAWNGROUP3_GUARD, 0x00000200, /*goto*/ 0x60 - goto_next 0x06 - - label 0x32 - try_spawn_chr BODY_AREA51GUARD, HEAD_RANDOM, 0x0117, FUNC_SPAWNGROUP3_GUARD, 0x00000200, /*goto*/ 0x60 - goto_next 0x06 - - label 0x60 - yield - if_stage_flag_eq STAGEFLAG_BOTH_HANGAR_DOORS_OPEN, TRUE, /*goto*/ 0x06 - subtract_var_a 1 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - - label 0x08 - yield - if_var_a_lt 1, /*goto*/ 0x06 - if_num_chrs_in_group_gt 6, SPAWNGROUP4, /*goto*/ 0x32 - call_rng - if_rand_gt 2, /*goto*/ 0x32 - endloop 0x5f - - label 0x32 - goto_first 0x08 - - label 0x06 - yield - yield - yield - yield - yield - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * @unused - */ -func1015_spawngroup4_guard: - set_chr_dodge_rating 2, 0x0a - set_accuracy 10 - set_reaction_speed 40 - set_chr_health CHR_SELF, 40 - set_armor 40 - set_recovery_speed 0 - set_shield 0 - try_draw_weapon MODEL_CHRSUPERDRAGON, WEAPON_SUPERDRAGON, 0x00000000, /*goto*/ 0x06 - label 0x06 - set_chr_alliance CHR_SELF, ALLIANCE_ENEMY - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - set_self_flag_bankx CHRFLAG0_AIVSAI, BANK_0 - set_group SPAWNGROUP4 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - run_to_pad 0x0168 - set_function CHR_SELF, GFUNC_CHOOSE_TARGET_CHR - endfunction - -func1009_blow_up_wall: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_JON_FINISHED_EXPLOSIVES, TRUE, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - restart_timer - - beginloop 0x08 - if_timer_gt 300, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - unset_object_flag_bank0 OBJ_WALLMINE, OBJECTFLAG0_INVINCIBLE - unset_object_flag_bank0 OBJ_WALLMINE, OBJECTFLAG0_INVINCIBLE - unset_object_flag_bank0 OBJ_WALLOBJECT, OBJECTFLAG0_INVINCIBLE - unset_object_flag_bank0 OBJ_WALLDOOR, OBJECTFLAG0_INVINCIBLE - yield - yield - destroy_object OBJ_WALLMINE - set_stage_flag STAGEFLAG_WALL_EXPLODED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100a_check_hangar_accessed: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x00e7, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - set_stage_flag STAGEFLAG_ENTERED_HANGAR - message CHR_P1P2, 0x481f // "The secret hangar has been located." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100b_check_jonathan_dead: - if_difficulty_lt DIFF_PA, /*goto*/ 0x32 - goto_next 0x04 - - // A and SA - label 0x32 - give_object_to_chr OBJ_MEDPACK_JOANNA, CHR_JOANNA - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x32 - give_object_to_chr OBJ_MEDPACK_VELVET, CHR_VELVET - goto_next 0x04 - - label 0x32 - hide_object OBJ_MEDPACK_VELVET - - // All difficulties - beginloop 0x04 - if_chr_dying CHR_JONATHAN, /*goto*/ 0x06 - if_chr_death_animation_finished CHR_JONATHAN, /*goto*/ 0x06 - if_chr_unloaded CHR_JONATHAN, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - if_stage_flag_eq STAGEFLAG_STARTED_OUTRO, TRUE, /*goto*/ 0x32 - message CHR_JOANNA, 0x481d // "Jonathan has been killed." - set_stage_flag STAGEFLAG_JON_DEAD - - label 0x32 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100c_medpack_activation: - beginloop 0x67 - if_stage_flag_eq STAGEFLAG_ENTERED_HANGAR, TRUE, /*goto*/ 0x04 - endloop 0x67 - - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_difficulty_lt DIFF_SA, /*goto*/ 0x0c - if_chr_activated_object CHR_P1P2, OBJ_HOVERBED, /*goto*/ 0x06 - reloop 0x04 - - label 0x06 - if_chr_weapon_equipped CHR_P1P2, WEAPON_AUTOSURGEON, /*goto*/ 0x32 - endloop 0x04 - - label 0x32 - set_stage_flag STAGEFLAG_MEDPACK_STARTED - message CHR_P1P2, 0x4821 // "Alien medpack activated." - assign_sound 0x814c, CHANNEL_7 - control_sound_from_object CHANNEL_7, OBJ_HOVERBED, TRUE - restart_timer - - beginloop 0x12 - if_timer_gt 120, /*goto*/ 0x32 - endloop 0x12 - - label 0x32 - assign_sound 0x814d, CHANNEL_7 - control_sound_from_object CHANNEL_7, OBJ_HOVERBED, TRUE - restart_timer - - beginloop 0x08 - if_timer_gt 2000, /*goto*/ 0x09 - if_stage_flag_eq STAGEFLAG_TRIGGER_MEDPACK_FINISH, TRUE, /*goto*/ 0x09 - endloop 0x08 - - label 0x09 - mute_channel CHANNEL_7 - assign_sound 0x814e, CHANNEL_7 - control_sound_from_object CHANNEL_7, 0x00, TRUE - message CHR_P1P2, 0x4823 // "Alien medpack has been administered." - yield - - beginloop 0x0c - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x00df, /*goto*/ 0x32 - endloop 0x0c - - label 0x32 - if_chr_death_animation_finished CHR_JONATHAN, /*goto*/ 0x32 - if_chr_dying CHR_JONATHAN, /*goto*/ 0x32 - if_chr_unloaded CHR_JONATHAN, /*goto*/ 0x32 - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x33 - if_chr_dying CHR_JOANNA, /*goto*/ 0x33 - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x33 - goto_next 0x06 - - // Joanna is dead - label 0x33 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x32 - if_chr_dying CHR_VELVET, /*goto*/ 0x32 - if_chr_unloaded CHR_VELVET, /*goto*/ 0x32 - goto_next 0x06 - - // Everyone is alive - label 0x06 - set_function CHR_JONATHAN, GFUNC_IDLE - set_function CHR_ELVIS, GFUNC_IDLE - set_function CHR_SELF, 0x0411 - - // Jonathan is dead - label 0x32 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0412_init_elvis: - dprint "ELVIS WOKE\n" - stop_chr - set_self_flag_bank3 CHRFLAG3_01000000 - set_stage_flag STAGEFLAG_ELVIS_REVIVED - label 0x0a - label 0x06 - set_armor 200 - set_chr_health CHR_SELF, 1 - set_function CHR_SELF, FUNC_ELVIS_FOLLOW - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040b_elvis_follow: - dprint "ELVIS FOLLOW\n" - set_target_chr CHR_JONATHAN - - label 0x5a - restart_timer - - beginloop 0x5b - if_chr_distance_to_pad_lt CHR_SELF, 3510, 0x001e, /*goto*/ 0x08 - if_chr_sees_player /*goto*/ 0x06 - goto_next 0x5c - - label 0x06 - if_chr_distance_gt 200, /*goto*/ 0x5c - endloop 0x5b - - label 0x5c - restart_timer - try_run_to_target_chr /*goto*/ 0x5d - - label 0x5d - restart_timer - yield - label 0x06 - if_chr_distance_to_pad_lt CHR_SELF, 300, 0x015f, /*goto*/ 0x08 - label 0x32 - set_target_chr CHR_JONATHAN - if_chr_distance_lt 200, /*goto*/ 0x5e - if_timer_gt 120, /*goto*/ 0x5e - if_chr_stopped /*goto*/ 0x5e - goto_first 0x5d - - label 0x5e - goto_first 0x5a - - label 0x08 - stop_chr - - beginloop 0x09 - endloop 0x09 - - endfunction - -func100f_terminals: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, OBJ_TERMINAL1, /*goto*/ 0x08 - if_chr_activated_object CHR_P1P2, OBJ_TERMINAL2, /*goto*/ 0x0a - reloop 0x04 - - // Terminal 1 - label 0x08 - assign_sound 0x043a, CHANNEL_7 - control_sound_from_object CHANNEL_7, OBJ_TERMINAL1, TRUE - if_stage_flag_eq STAGEFLAG_HANGAR_X_MUSIC_STARTED, TRUE, /*goto*/ 0x32 - message CHR_P1P2, 0x4850 // "Console is not active." - goto_next 0x0f - - // Terminal 1 active - label 0x32 - if_stage_flag_eq STAGEFLAG_INNER_DOOR_OPENING, TRUE, /*goto*/ 0x0f - message CHR_P1P2, 0x4827 // "Inner hangar door is opening." - if_stage_flag_eq STAGEFLAG_HANGAR_X_MUSIC_STARTED, FALSE, /*goto*/ 0x32 - set_stage_flag STAGEFLAG_INNER_DOOR_OPENING - label 0x32 - open_door 0x2c - open_door 0x2d - set_object_flag_bank0 0x2c, OBJECTFLAG0_40000000 - set_object_flag_bank0 0x2d, OBJECTFLAG0_40000000 - reloop 0x04 - - // Terminal 2 - label 0x0a - assign_sound 0x043a, CHANNEL_7 - control_sound_from_object CHANNEL_7, OBJ_TERMINAL2, TRUE - if_stage_flag_eq STAGEFLAG_HANGAR_X_MUSIC_STARTED, TRUE, /*goto*/ 0x32 - message CHR_P1P2, 0x4850 // "Console is not active." - goto_next 0x0f - - // Terminal 2 active - label 0x32 - if_stage_flag_eq STAGEFLAG_OUTER_DOOR_OPENING, TRUE, /*goto*/ 0x0f - message CHR_P1P2, 0x4825 // "Outer hangar door is opening." - if_stage_flag_eq STAGEFLAG_HANGAR_X_MUSIC_STARTED, FALSE, /*goto*/ 0x32 - set_stage_flag STAGEFLAG_OUTER_DOOR_OPENING - label 0x32 - open_door 0x2e - open_door 0x2f - set_object_flag_bank0 0x2e, OBJECTFLAG0_40000000 - set_object_flag_bank0 0x2f, OBJECTFLAG0_40000000 - reloop 0x04 - - // Wait 2 seconds - label 0x0f - restart_timer - - beginloop 0x10 - if_timer_gt 120, /*goto*/ 0x32 - endloop 0x10 - - label 0x32 - endloop 0x04 - - endfunction - -func100d_check_terminals_destroyed: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_INNER_DOOR_OPENING, TRUE, /*goto*/ 0x06 - if_object_in_good_condition OBJ_TERMINAL1, /*goto*/ 0x06 - if_door_state 0x2c, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x06 - goto_next 0x08 - - label 0x06 - if_stage_flag_eq STAGEFLAG_OUTER_DOOR_OPENING, TRUE, /*goto*/ 0x06 - if_object_in_good_condition OBJ_TERMINAL2, /*goto*/ 0x06 - if_door_state 0x2e, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x06 - goto_first 0x08 - - label 0x06 - endloop 0x04 - - label 0x08 - message CHR_JOANNA, 0x4824 // "Mission critical object destroyed." - set_stage_flag STAGEFLAG_HANGAR_TERMINAL_DESTROYED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func100e_check_elvis_dead: - beginloop 0x04 - if_chr_dying CHR_ELVIS, /*goto*/ 0x06 - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0x06 - if_chr_unloaded CHR_ELVIS, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - if_stage_flag_eq STAGEFLAG_STARTED_OUTRO, TRUE, /*goto*/ 0x32 - set_stage_flag STAGEFLAG_ELVIS_DEAD - message CHR_JOANNA, 0x481e // "Elvis has been killed." - label 0x32 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1010_check_end_level: - beginloop 0x04 - if_difficulty_lt DIFF_PA, /*goto*/ 0x32 - if_objective_complete 0, /*goto*/ 0x32 - reloop 0x04 - - label 0x32 - if_objective_complete 1, /*goto*/ 0x32 - reloop 0x04 - - label 0x32 - if_difficulty_lt DIFF_SA, /*goto*/ 0x32 - if_objective_complete 3, /*goto*/ 0x32 - reloop 0x04 - - label 0x32 - if_objective_complete 2, /*goto*/ 0x32 - reloop 0x04 - - label 0x32 - if_stage_flag_eq STAGEFLAG_HANGAR_TERMINAL_DESTROYED, FALSE, /*goto*/ 0x32 - reloop 0x04 - - label 0x32 - if_stage_flag_eq STAGEFLAG_INNER_DOOR_OPENING, TRUE, /*goto*/ 0x32 - reloop 0x04 - - label 0x32 - dprint "5\n" - if_stage_flag_eq STAGEFLAG_OUTER_DOOR_OPENING, TRUE, /*goto*/ 0x32 - reloop 0x04 - - label 0x32 - dprint "6\n" - if_chr_death_animation_finished CHR_ELVIS, /*goto*/ 0x0f - if_chr_dying CHR_ELVIS, /*goto*/ 0x0f - if_chr_unloaded CHR_ELVIS, /*goto*/ 0x0f - - if_chr_death_animation_finished CHR_JONATHAN, /*goto*/ 0x0f - if_chr_dying CHR_JONATHAN, /*goto*/ 0x0f - if_chr_unloaded CHR_JONATHAN, /*goto*/ 0x0f - - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x32 - if_chr_dying CHR_JOANNA, /*goto*/ 0x32 - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x32 - goto_next 0x06 - - // Joanna is dead - label 0x32 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x33 - if_chr_dying CHR_VELVET, /*goto*/ 0x33 - if_chr_unloaded CHR_VELVET, /*goto*/ 0x33 - goto_next 0x06 - - // Both Joanna and Velvet are dead - label 0x33 - end_level - set_function CHR_SELF, GFUNC_IDLE - - // Mission complete - label 0x06 - if_stage_flag_eq STAGEFLAG_JO_DOING_TERMINALS, FALSE, /*goto*/ 0x32 - set_function CHR_SELF, FUNC_UFO_EXIT - - label 0x32 - set_invincible CHR_JOANNA - set_function CHR_SELF, FUNC_OUTRO - - // Jonathan and/or Elvis are dead - label 0x0f - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1011_unlock_doors_when_jo_escaping: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_JO_ESCAPE_STARTED, TRUE, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - unlock_door 0x06, 0x40 - unlock_door 0x07, 0x40 - unlock_door 0x08, 0x04 - unlock_door 0x09, 0x04 - unlock_door 0x1d, 0x40 - unlock_door 0x1e, 0x40 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1012_hoverbike_auto_doors: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_stage_flag_eq STAGEFLAG_JO_ESCAPE_STARTED, TRUE, /*goto*/ 0x06 - reloop 0x04 - - label 0x06 - if_chr_distance_to_pad_lt CHR_P1P2, 500, 0x0176, /*goto*/ 0x08 - if_chr_distance_to_pad_lt CHR_P1P2, 500, 0x0158, /*goto*/ 0x09 - if_chr_distance_to_pad_lt CHR_P1P2, 500, 0x00db, /*goto*/ 0x0a - if_chr_distance_to_pad_lt CHR_P1P2, 500, 0x00a1, /*goto*/ 0x0c - if_chr_distance_to_pad_lt CHR_P1P2, 500, 0x009e, /*goto*/ 0x0d - reloop 0x04 - - // Pad/door 1 - label 0x08 - if_door_state 0x0a, DOORSTATE_CLOSED | DOORSTATE_CLOSING, /*goto*/ 0x06 - reloop 0x04 - - label 0x06 - set_object_flag_bank0 0x0a, OBJECTFLAG0_40000000 - open_door 0x0a - reloop 0x04 - - // Pad/door 2 - label 0x09 - if_door_state 0x0b, DOORSTATE_CLOSED | DOORSTATE_CLOSING, /*goto*/ 0x06 - reloop 0x04 - - label 0x06 - set_object_flag_bank0 0x0b, OBJECTFLAG0_40000000 - open_door 0x0b - reloop 0x04 - - // Pad/door 3 - label 0x0a - if_door_state 0x08, DOORSTATE_CLOSED | DOORSTATE_CLOSING, /*goto*/ 0x06 - reloop 0x04 - - label 0x06 - set_object_flag_bank0 0x08, OBJECTFLAG0_40000000 - set_object_flag_bank0 0x09, OBJECTFLAG0_40000000 - open_door 0x08 - open_door 0x09 - reloop 0x04 - - // Pad/door 4 - label 0x0c - if_door_state 0x0c, DOORSTATE_CLOSED | DOORSTATE_CLOSING, /*goto*/ 0x06 - reloop 0x04 - - label 0x06 - set_object_flag_bank0 0x0c, OBJECTFLAG0_40000000 - open_door 0x0c - reloop 0x04 - - // Pad/door 5 - label 0x0d - if_door_state 0x05, DOORSTATE_CLOSED | DOORSTATE_CLOSING, /*goto*/ 0x06 - reloop 0x04 - - label 0x06 - set_object_flag_bank0 0x05, OBJECTFLAG0_40000000 - open_door 0x05 - endloop 0x04 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040c_hidden_guardtype1: - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1016_enable_guards_after_meetup: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_MET_JON, TRUE, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - show_chr 0x0d - show_chr 0x0e - show_chr 0x0f - show_chr 0x10 - show_chr 0x11 - show_chr 0x12 - show_chr 0x13 - show_chr 0x14 - show_chr 0x15 - show_chr 0x16 - unset_chr_flag_bank3 0x0d, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x0d, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x0d, FUNC_INIT_SUPERDRAGON_GUARD - unset_chr_flag_bank3 0x0e, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x0e, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x0e, FUNC_INIT_SUPERDRAGON_GUARD - unset_chr_flag_bank3 0x0f, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x0f, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x0f, FUNC_INIT_SUPERDRAGON_GUARD - unset_chr_flag_bank3 0x10, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x10, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x10, FUNC_INIT_SUPERDRAGON_GUARD - unset_chr_flag_bank3 0x11, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x11, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x11, FUNC_INIT_SUPERDRAGON_GUARD - unset_chr_flag_bank3 0x12, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x12, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x12, FUNC_INIT_SUPERDRAGON_GUARD - unset_chr_flag_bank3 0x13, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x13, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x13, FUNC_INIT_SUPERDRAGON_GUARD - unset_chr_flag_bank3 0x14, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x14, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x14, FUNC_INIT_SUPERDRAGON_GUARD - unset_chr_flag_bank3 0x15, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x15, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x15, FUNC_INIT_SUPERDRAGON_GUARD - unset_chr_flag_bank3 0x16, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x16, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x16, FUNC_INIT_SUPERDRAGON_GUARD - cmd0145_rebuild_groups - cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1017_check_both_hangar_doors_open: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_INNER_DOOR_OPENING, TRUE, /*goto*/ 0x32 - reloop 0x04 - - label 0x32 - if_stage_flag_eq STAGEFLAG_OUTER_DOOR_OPENING, TRUE, /*goto*/ 0x32 - endloop 0x04 - - label 0x32 - message CHR_JOANNA, 0x4835 // "The hangar doors are now open." - set_stage_flag STAGEFLAG_BOTH_HANGAR_DOORS_OPEN - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040d_hidden_guardtype2: - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_SELF, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1018_unhide_guards_when_jo_escaping: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_JO_ESCAPE_STARTED, TRUE, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - unset_chr_flag_bank3 0x16, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x16, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x16, FUNC_INIT_SUPERDRAGON_GUARD - unset_chr_flag_bank3 0x17, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x17, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x17, FUNC_INIT_SUPERDRAGON_GUARD - unset_chr_flag_bank3 0x18, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x18, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x18, FUNC_INIT_SUPERDRAGON_GUARD - unset_chr_flag_bank3 0x19, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x19, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x19, FUNC_INIT_SUPERDRAGON_GUARD - unset_chr_flag_bank3 0x1a, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x1a, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x1a, FUNC_INIT_SUPERDRAGON_GUARD - unset_chr_flag_bank3 0x1b, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x1b, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x1b, FUNC_INIT_SUPERDRAGON_GUARD - unset_chr_flag_bank3 0x1c, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x1c, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x1c, FUNC_INIT_SUPERDRAGON_GUARD - unset_chr_flag_bank3 0x1d, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x1d, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x1d, FUNC_INIT_SUPERDRAGON_GUARD - unset_chr_flag_bank3 0x1e, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x1e, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x1e, FUNC_INIT_SUPERDRAGON_GUARD - unset_chr_flag_bank3 0x1f, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x1f, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x1f, FUNC_INIT_SUPERDRAGON_GUARD - unlock_door 0x0c, 0x40 - unlock_door 0x15, 0x40 - unlock_door 0x16, 0x40 - unlock_door 0x17, 0x40 - unlock_door 0x18, 0x40 - unlock_door 0x19, 0x40 - unlock_door 0x1a, 0x40 - unlock_door 0x1b, 0x40 - unlock_door 0x1c, 0x40 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func040e_hidden_biotech: - label 0x04 - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1019_enable_biotechs_after_stash: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_ELVIS_STASHED, TRUE, /*goto*/ 0x32 - endloop 0x04 - - label 0x32 - unset_chr_flag_bank3 0x25, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x25, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x25, FUNC_INIT_BIOTECH - unset_chr_flag_bank3 0x26, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x26, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x26, FUNC_INIT_BIOTECH - unset_chr_flag_bank3 0x27, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x27, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x27, FUNC_INIT_BIOTECH - unset_chr_flag_bank3 0x28, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 0x28, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function 0x28, FUNC_INIT_BIOTECH - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1002_intro: - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_music_track MUSIC_ESCAPE_INTRO - camera_movement 0x019c - cmd0175 60 - - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x019d, -1, -1, 0x0600, CHR_JOANNA, 4 - - set_chr_flag_bank3 0x23, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 0x23, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x23, CHRFLAG3_HIDDEN - set_chr_flag_bank2 0x23, CHRFLAG2_00020000 - animation 0x019e, -1, -1, 0x0600, 0x23, 4 - - set_chr_flag_bank3 0x24, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 0x24, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x24, CHRFLAG3_HIDDEN - set_chr_flag_bank2 0x24, CHRFLAG2_00020000 - animation 0x019f, -1, -1, 0x0600, 0x24, 4 - - set_object_flag_bank1 0x00, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x00, OBJECTFLAG2_00000010 - object_do_animation 0x01a0, 0x00, 0x04ff, 0xff - restart_timer - fade_to_color 0x000000ff, 0 - fade_to_color 0x00000000, 90 - set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon CHR_JOANNA, WEAPON_FALCON2_SCOPE, WEAPON_NONE - - .macro wait_until time loopid - beginloop \loopid - if_controller_button_pressed /*goto*/ 0x68 - if_timer_gt \time, /*goto*/ 0x06 - endloop \loopid - label 0x06 - .endm - - wait_until 2, 0xc5 - speak CHR_JOANNA, 0x4851, 0x81ba, CHANNEL_7, COLOR_02_WHITE // "What the hell do you think you're doing? This is s..." - - wait_until 60, 0x6a - play_sound 0x0161, CHANNEL_6 - - wait_until 115, 0x6b - play_sound 0x0162, CHANNEL_6 - - wait_until 156, 0x6c - play_sound 0x0163, CHANNEL_5 - - wait_until 205, 0x6d - play_sound 0x0164, CHANNEL_6 - - wait_until 260, 0x6e - play_sound 0x0161, CHANNEL_5 - - wait_until 341, 0x6f - play_sound 0x0162, CHANNEL_6 - open_door 0x0e - open_door 0x0f - - wait_until 444, 0x70 - play_sound 0x0163, CHANNEL_5 - - wait_until 468, 0x71 - play_sound 0x0161, CHANNEL_6 - - wait_until 490, 0x72 - play_sound 0x0164, CHANNEL_5 - - wait_until 528, 0x73 - play_sound 0x0161, CHANNEL_6 - - wait_until 545, 0x8a - speak CHR_JOANNA, 0x4854, 0x7758, CHANNEL_7, COLOR_09_BLUE // "I don't care much for procedures!" - - wait_until 588, 0x74 - play_sound 0x0162, CHANNEL_5 - - wait_until 632, 0x75 - play_sound 0x0163, CHANNEL_6 - - wait_until 698, 0x76 - play_sound 0x0164, CHANNEL_6 - - wait_until 706, 0x77 - - wait_until 770, 0xc6 - speak CHR_JOANNA, 0x4852, 0x7436, CHANNEL_7, COLOR_02_WHITE // "Director Easton will hear about this, young lady." - - wait_until 810, 0xbe - close_door 0x0e - close_door 0x0f - - wait_until 830, 0x78 - play_sound 0x0161, CHANNEL_6 - - wait_until 872, 0x79 - play_sound 0x0162, CHANNEL_4 - - wait_until 998, 0xc7 - speak CHR_JOANNA, 0x4853, 0x7437, CHANNEL_7, COLOR_02_WHITE // "You can't take that! It's government property! Thi..." - - wait_until 1032, 0x7b - play_sound 0x0161, CHANNEL_5 - - wait_until 1224, 0x7c - play_sound 0x0164, CHANNEL_6 - - wait_until 1260, 0x7d - play_sound 0x0163, CHANNEL_4 - - wait_until 1286, 0x7e - play_sound 0x0161, CHANNEL_6 - - wait_until 1325, 0x7f - play_sound 0x01b9, CHANNEL_6 - - wait_until 1334, 0x80 - play_sound 0x00fb, CHANNEL_10 - - wait_until 1342, 0x81 - play_sound 0x00fb, CHANNEL_10 - - wait_until 1353, 0x82 - play_sound 0x00f9, CHANNEL_10 - - wait_until 1362, 0x83 - - wait_until 1372, 0x84 - play_sound 0x00fa, CHANNEL_10 - - wait_until 1388, 0x85 - play_sound 0x01ba, CHANNEL_5 - - wait_until 1396, 0x86 - play_sound 0x00fc, CHANNEL_10 - - wait_until 1432, 0xbf - open_door 0x10 - - wait_until 1510, 0x8f - play_sound 0x0162, CHANNEL_4 - - wait_until 1544, 0x90 - play_sound 0x0163, CHANNEL_6 - - wait_until 1590, 0x91 - play_sound 0x0164, CHANNEL_4 - - wait_until 1624, 0x92 - play_sound 0x0161, CHANNEL_6 - - wait_until 1662, 0x93 - play_sound 0x0162, CHANNEL_4 - - wait_until 1716, 0x94 - play_sound 0x01b9, CHANNEL_6 - - wait_until 1730, 0x95 - play_sound 0x00fe, CHANNEL_10 - play_sound 0x00fa, CHANNEL_10 - - wait_until 1736, 0x96 - speak CHR_JOANNA, 0x483f, 0x7438, CHANNEL_7, COLOR_02_WHITE // "Let's see how that overconfident thief deals with ..." - set_stage_flag STAGEFLAG_GAS_ON - - wait_until 1773, 0x9a - play_sound 0x01bb, CHANNEL_5 - - wait_until 1822, 0xc0 - close_door 0x10 - - wait_until 1826, 0x9f - play_sound 0x00fd, CHANNEL_10 - - wait_until 1834, 0xa0 - play_sound 0x00fd, CHANNEL_10 - - wait_until 1850, 0xa1 - play_sound 0x00fa, CHANNEL_10 - - wait_until 1926, 0xa4 - play_sound 0x0163, CHANNEL_5 - - wait_until 2146, 0xa5 - play_sound 0x0164, CHANNEL_6 - - wait_until 2180, 0xa6 - play_sound 0x0507, CHANNEL_5 - - wait_until 2202, 0xa7 - play_sound 0x0161, CHANNEL_6 - - wait_until 2218, 0xa8 - speak CHR_JOANNA, 0x4840, 0x7439, CHANNEL_7, COLOR_09_BLUE // "What's that noise? Can't be... Gas!" - - wait_until 2271, 0xa9 - play_sound 0x0162, CHANNEL_6 - - wait_until 2300, 0xaa - play_sound 0x0163, CHANNEL_5 - - wait_until 2362, 0xab - play_sound 0x0164, CHANNEL_6 - - wait_until 2384, 0xac - play_sound 0x0162, CHANNEL_6 - - wait_until 2428, 0xad - play_sound 0x0164, CHANNEL_6 - - wait_until 2458, 0xae - play_sound 0x0161, CHANNEL_6 - - wait_until 2582, 0xaf - speak CHR_JOANNA, 0x4841, 0x743a, CHANNEL_7, COLOR_02_WHITE // "Noooo, that wasn't meant to happen!" - - wait_until 2725, 0xb1 - play_sound 0x0429, CHANNEL_10 - - wait_until 2748, 0xb2 - play_sound 0x0429, CHANNEL_10 - - wait_until 2768, 0x97 - play_sound 0x0429, CHANNEL_10 - - wait_until 2810, 0x98 - play_sound 0x0429, CHANNEL_10 - play_sound 0x0429, CHANNEL_10 - - wait_until 2877, 0x99 - play_sound 0x0429, CHANNEL_10 - play_sound 0x0429, CHANNEL_10 - - wait_until 2904, 0xb3 - play_sound 0x0429, CHANNEL_10 - play_sound 0x0429, CHANNEL_10 - - wait_until 2924, 0xb5 - play_sound 0x0429, CHANNEL_10 - play_sound 0x0429, CHANNEL_10 - - wait_until 2930, 0xb4 - play_sound 0x05af, CHANNEL_10 - - wait_until 3024, 0x89 - play_sound 0x00fa, CHANNEL_10 - play_sound 0x00f9, CHANNEL_10 - - wait_until 3060, 0xb0 - play_sound 0x05b0, CHANNEL_10 - - wait_until 3178, 0xb6 - play_sound 0x007d, CHANNEL_6 - - wait_until 3242, 0xb7 - play_sound 0x01dc, CHANNEL_6 - play_sound 0x00fc, CHANNEL_10 - - wait_until 3290, 0xb8 - play_sound 0x01dc, CHANNEL_6 - play_sound 0x00fd, CHANNEL_10 - - wait_until 3334, 0xb9 - play_sound 0x00fa, CHANNEL_10 - - wait_until 3894, 0xba - speak CHR_JOANNA, 0x4843, 0x743b, CHANNEL_7, COLOR_09_BLUE // "You idiot! We'd better get out of here." - - wait_until 4146, 0xbb - play_sound 0x0162, CHANNEL_6 - - wait_until 4316, 0xbc - play_sound 0x0164, CHANNEL_6 - - wait_until 4336, 0xbd - play_sound 0x0163, CHANNEL_5 - - beginloop 0x08 - if_camera_animating /*goto*/ 0x32 - goto_next 0x68 - - label 0x32 - if_controller_button_pressed /*goto*/ 0x68 - label 0x32 - endloop 0x08 - - label 0x68 - set_stage_flag STAGEFLAG_INTRO_DONE - set_stage_flag STAGEFLAG_GAS_ON - mute_channel CHANNEL_7 - mute_channel CHANNEL_6 - mute_channel CHANNEL_10 - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x019d, -2, -1, 0x0600, CHR_JOANNA, 2 - - unset_chr_flag_bank3 0x23, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 0x23, CHRFLAG2_00020000 - animation 0x019e, -2, -1, 0x0600, 0x23, 2 - - unset_chr_flag_bank3 0x24, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 0x24, CHRFLAG2_00020000 - animation 0x019f, -2, -1, 0x0600, 0x24, 2 - - unset_object_flag_bank1 OBJ_HOVERBED, OBJECTFLAG1_04000000 - set_object_flag_bank2 OBJ_HOVERBED, OBJECTFLAG2_00000010 - object_do_animation 0x01a0, OBJ_HOVERBED, 0x04ff, 0xfe - - drop_concealed_items 0x23 - drop_concealed_items 0x24 - restart_default_music - reset_ambience - enter_firstperson - revoke_control CHR_JOANNA, 0 - yield - grab_object CHR_JOANNA, OBJ_HOVERBED - grant_control CHR_JOANNA - yield - kill 0x23 - kill 0x24 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0c01_midcutscene: - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_music_track MUSIC_ESCAPE_MIDCUTSCENE - camera_movement 0x01cb - cmd0175 60 - hide_object OBJ_HOVERBED - set_target_chr CHR_JOANNA - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x33 - if_chr_dying CHR_JOANNA, /*goto*/ 0x33 - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x33 - goto_next 0x06 - - label 0x33 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x06 - if_chr_dying CHR_VELVET, /*goto*/ 0x06 - if_chr_unloaded CHR_VELVET, /*goto*/ 0x06 - set_target_chr CHR_VELVET - - label 0x06 - unset_chr_flag_bank3 TARGET_CHR, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_JONATHAN, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function CHR_JONATHAN, GFUNC_IDLE - - set_chr_flag_bank3 TARGET_CHR, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 TARGET_CHR, CHRFLAG3_HIDDEN - set_chr_flag_bank2 TARGET_CHR, CHRFLAG2_00020000 - animation 0x01ce, -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 0x01cc, -1, -1, 0x0600, CHR_ELVIS, 4 - - set_chr_flag_bank3 CHR_JONATHAN, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_JONATHAN, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_JONATHAN, CHRFLAG2_00020000 - animation 0x01cd, -1, -1, 0x0600, CHR_JONATHAN, 4 - - set_object_flag_bank1 0x11, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x11, OBJECTFLAG2_00000010 - object_do_animation 0x01cf, 0x11, 0x04ff, 0xff - - show_nonessential_chrs FALSE - if_object_in_room OBJ_HOVERBIKE, 0x00df, /*goto*/ 0x06 - goto_next 0x32 - - label 0x06 - move_object_to_pad OBJ_HOVERBIKE, 0x038a - label 0x32 - restart_timer - set_cutscene_weapon TARGET_CHR, WEAPON_NONE, WEAPON_NONE - yield - set_cutscene_weapon TARGET_CHR, WEAPON_NONE, WEAPON_NONE - - wait_until 83, 0x6a - speak TARGET_CHR, 0x4845, 0x743c, CHANNEL_7, COLOR_06_WHITE // "***aahh...! aahaa...! aaaaahhh! aha. ahh.***" - - wait_until 116, 0x6b - play_sound 0x80c4, CHANNEL_6 - - wait_until 124, 0x6c - play_sound 0x80c5, CHANNEL_4 - - wait_until 142, 0x6d - play_sound 0x80c6, CHANNEL_6 - - wait_until 148, 0x6e - play_sound 0x80c7, CHANNEL_4 - - wait_until 172, 0x6f - play_sound 0x80c4, CHANNEL_6 - - wait_until 176, 0x70 - play_sound 0x80c7, CHANNEL_4 - - wait_until 214, 0x71 - play_sound 0x80c5, CHANNEL_6 - - wait_until 690, 0x72 - speak TARGET_CHR, 0x4846, 0x743d, CHANNEL_7, COLOR_06_WHITE // "I'm alive. I thought I'd be chopped up like the ot..." - - wait_until 1392, 0x73 - speak TARGET_CHR, 0x4847, 0x743e, CHANNEL_7, COLOR_09_BLUE // "You... You speak our language?" - - wait_until 1400, 0x74 - play_sound 0x80c4, CHANNEL_6 - - wait_until 1554, 0x75 - speak TARGET_CHR, 0x4848, 0x743f, CHANNEL_7, COLOR_03_RED // "Watch her... she's sharp." - - wait_until 1688, 0x76 - speak TARGET_CHR, 0x4849, 0x7440, CHANNEL_7, COLOR_06_WHITE // "Earrggghh...eerggh..." - - wait_until 1962, 0x77 - speak TARGET_CHR, 0x484a, 0x7441, CHANNEL_7, COLOR_09_BLUE // "What's wrong?" - - wait_until 1988, 0x78 - play_sound 0x80c5, CHANNEL_6 - - wait_until 2014, 0x79 - play_sound 0x80c4, CHANNEL_4 - - wait_until 2113, 0x7a - speak TARGET_CHR, 0x484b, 0x7442, CHANNEL_7, COLOR_06_WHITE // "I have a headache. And with a head this big, that'..." - - wait_until 2470, 0x7b - speak TARGET_CHR, 0x484c, 0x7443, CHANNEL_7, COLOR_09_BLUE // "Can you walk? We must leave before they get organi..." - - wait_until 2480, 0x7c - play_sound 0x80c5, CHANNEL_6 - - wait_until 2526, 0x7d - play_sound 0x80c6, CHANNEL_6 - - wait_until 2624, 0x7e - play_sound 0x80c4, CHANNEL_6 - - wait_until 2642, 0x7f - play_sound 0x80c6, CHANNEL_4 - - wait_until 2678, 0x80 - play_sound 0x80c7, CHANNEL_6 - - wait_until 2712, 0x81 - play_sound 0x80c4, CHANNEL_4 - - wait_until 2726, 0x82 - play_sound 0x80c5, CHANNEL_6 - - wait_until 2728, 0x83 - play_sound 0x80c7, CHANNEL_7 - - wait_until 2806, 0x84 - play_sound 0x80c4, CHANNEL_6 - - wait_until 2824, 0x85 - play_sound 0x80c5, CHANNEL_4 - - wait_until 2842, 0x86 - speak TARGET_CHR, 0x484d, 0x7444, CHANNEL_7, COLOR_06_WHITE // "I think so. What's your name?" - - wait_until 3024, 0x87 - speak TARGET_CHR, 0x484e, 0x7445, CHANNEL_7, COLOR_09_BLUE // "I'm Agent Dark. Or Joanna, if you prefer." - - wait_until 3270, 0x88 - speak TARGET_CHR, 0x484f, 0x7446, CHANNEL_7, COLOR_06_WHITE // "Well, Joanna, I'm Protector One. But you can call ..." - - wait_until 3308, 0x89 - play_sound 0x80c6, CHANNEL_6 - - beginloop 0x08 - if_camera_animating /*goto*/ 0x32 - goto_next 0x68 - - label 0x32 - if_controller_button_pressed /*goto*/ 0x68 - label 0x32 - endloop 0x08 - - label 0x68 - set_stage_flag STAGEFLAG_INTRO_DONE - mute_channel CHANNEL_7 - restart_default_music - reset_ambience - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 TARGET_CHR, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 TARGET_CHR, CHRFLAG2_00020000 - animation 0x01ce, -2, -1, 0x0600, TARGET_CHR, 2 - - unset_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_ELVIS, CHRFLAG2_00020000 - animation 0x01cc, -2, -1, 0x0600, CHR_ELVIS, 2 - - unset_chr_flag_bank3 CHR_JONATHAN, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JONATHAN, CHRFLAG2_00020000 - animation 0x01cd, -2, -1, 0x0600, CHR_JONATHAN, 2 - - unset_object_flag_bank1 0x11, OBJECTFLAG1_04000000 - set_object_flag_bank2 0x11, OBJECTFLAG2_00000010 - object_do_animation 0x01cf, 0x11, 0x04ff, 0xfe - - unset_object_flag_bank1 0x0a, OBJECTFLAG1_20000000 - unset_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - unset_chr_flag_bank3 CHR_JONATHAN, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function CHR_JONATHAN, FUNC_JONATHAN_HANGAR - set_function CHR_ELVIS, FUNC_INIT_ELVIS - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x32 - chr_move_to_pad CHR_VELVET, 0x0156, 0x01, /*goto*/ 0x32 - label 0x32 - show_nonessential_chrs TRUE - set_function CHR_SELF, GFUNC_END_CINEMA - endfunction - -func101b_gas_sound: - beginloop 0x67 - if_stage_flag_eq STAGEFLAG_GAS_ON, TRUE, /*goto*/ 0x04 - endloop 0x67 - - label 0x04 - yield - assign_sound 0x816a, CHANNEL_0 - play_sound_from_object CHANNEL_0, 0x2b, 0x1f40, 0x0bb8 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0c02_outro: - open_door 0x2c - open_door 0x2e - set_object_flag_bank0 0x2c, OBJECTFLAG0_40000000 - set_object_flag_bank0 0x2d, OBJECTFLAG0_40000000 - label 0x32 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_music_track MUSIC_ESCAPE_OUTRO_LONG - camera_movement 0x02d2 - label 0x32 - hide_object OBJ_UFO2 - - show_object OBJ_UFO1 - set_object_flag_bank1 OBJ_UFO1, OBJECTFLAG1_04000000 - set_object_flag_bank2 OBJ_UFO1, OBJECTFLAG2_00000010 - object_do_animation 0x02d3, OBJ_UFO1, 0x04ff, 0xff - - set_stage_flag STAGEFLAG_STARTED_OUTRO - remove_chr CHR_ELVIS - remove_chr CHR_JONATHAN - set_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_JONATHAN, CHRFLAG3_HIDDEN - show_nonessential_chrs FALSE - - beginloop 0x08 - if_camera_animating /*goto*/ 0x32 - goto_next 0x68 - - label 0x32 - if_controller_button_pressed /*goto*/ 0x68 - label 0x32 - endloop 0x08 - - label 0x68 - label 0x32 - camera_movement 0x02d4 - - show_object OBJ_UFO1 - set_object_flag_bank1 OBJ_UFO1, OBJECTFLAG1_04000000 - set_object_flag_bank2 OBJ_UFO1, OBJECTFLAG2_00000010 - object_do_animation 0x02d5, OBJ_UFO1, 0x04ff, 0xff - - set_chr_flag_bank3 0x2b, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 0x2b, CHRFLAG3_HIDDEN - set_chr_flag_bank2 0x2b, CHRFLAG2_00020000 - animation 0x0304, -1, -1, 0x0600, 0x2b, 4 - - open_door 0x2c - open_door 0x2e - - beginloop 0x09 - if_camera_animating /*goto*/ 0x32 - goto_next 0x69 - - label 0x32 - if_controller_button_pressed /*goto*/ 0x69 - label 0x32 - endloop 0x09 - - label 0x69 - label 0x06 - hide_object OBJ_UFO2 - if_stage_flag_eq STAGEFLAG_JO_DOING_TERMINALS, FALSE, /*goto*/ 0x32 - restart_default_music - reset_ambience - - label 0x32 - goto_next 0x06 - - // Unreachable - label 0x09 - set_stage_flag STAGEFLAG_UFO_LEAVING - set_function CHR_SELF, GFUNC_END_CINEMA - - label 0x06 - set_stage_flag STAGEFLAG_ESCAPED - yield - yield - set_invincible CHR_JOANNA - revoke_control CHR_JOANNA, 4 - hide_countdown_timer - stop_countdown_timer - unset_eeprom_flag EEPROMFLAG_DEFENSE_JON - end_level - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Makes the UFO exit, when Jo is doing terminals and has to escape via - * hoverbike. - */ -func0415_ufo_exit: - set_lighting 0x0000, 0x0e, 0x05 - hide_object OBJ_UFO2 - show_object OBJ_UFO1 - set_object_flag_bank1 OBJ_UFO1, OBJECTFLAG1_04000000 - set_object_flag_bank2 OBJ_UFO1, OBJECTFLAG2_00000010 - object_do_animation 0x02d3, OBJ_UFO1, 0x04ff, 0xff - set_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_JONATHAN, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_JONATHAN, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_UNEXPLODABLE - set_chr_flag_bank3 CHR_JONATHAN, CHRFLAG3_UNEXPLODABLE - set_stage_flag STAGEFLAG_UFO_LEAVING - restart_timer - - beginloop 0x08 - if_timer_gt 600, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - set_lighting 0x0000, 0x0f, 0x00 - reset_ambience - hide_object OBJ_UFO1 - set_function CHR_SELF, GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1021_jo_escaping: - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_UFO_LEAVING, TRUE, /*goto*/ 0x32 - endloop 0x08 - - label 0x32 - set_stage_flag STAGEFLAG_JO_ESCAPE_STARTED - restart_timer - - beginloop 0x0f - if_timer_gt 180, /*goto*/ 0x32 - endloop 0x0f - - label 0x32 - set_stage_flag STAGEFLAG_TRIGGER_JETBIKE_MESSAGE - - beginloop 0x0a - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0014, /*goto*/ 0x06 - endloop 0x0a - - label 0x06 - set_stage_flag STAGEFLAG_ESCAPED - yield - yield - set_invincible CHR_JOANNA - revoke_control CHR_JOANNA, 4 - hide_countdown_timer - stop_countdown_timer - label 0x62 - set_eeprom_flag EEPROMFLAG_DEFENSE_JON - set_music_track MUSIC_ESCAPE_OUTRO_LONG - camera_movement 0x02d4 - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0xf1, CHRFLAG3_HIDDEN - set_function CHR_P1P2, GFUNC_IDLE - - show_object OBJ_UFO1 - set_object_flag_bank1 OBJ_UFO1, OBJECTFLAG1_04000000 - set_object_flag_bank2 OBJ_UFO1, OBJECTFLAG2_00000010 - object_do_animation 0x02d5, OBJ_UFO1, 0x04ff, 0xff - - set_chr_flag_bank3 CHR_P1P2, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_P1P2, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_P1P2, CHRFLAG2_00020000 - animation 0x0304, -1, -1, 0x0600, CHR_P1P2, 4 - - beginloop 0x09 - if_camera_animating /*goto*/ 0x32 - goto_next 0x69 - - label 0x32 - if_controller_button_pressed /*goto*/ 0x69 - label 0x32 - endloop 0x09 - - label 0x69 - end_level - set_function CHR_SELF, GFUNC_IDLE - - // Unreachable - end_level - end_level - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * This is most likely a hidden guard. Spawns clones after meeting Jon until he - * enters the mine room. - * - * There are 4 of these guards, and each one will have one clone alive at a - * time. - */ -func0416_spawn_during_follow: - set_chr_dodge_rating 2, 0x0a - set_accuracy 10 - set_reaction_speed 40 - set_chr_health CHR_SELF, 40 - set_armor 40 - set_recovery_speed 0 - set_shield 0 - set_self_flag_bank3 CHRFLAG3_00040000 - set_self_flag_bank3 CHRFLAG3_00000002 - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - - beginloop 0x04 - if_chr_sees_player /*goto*/ 0x32 - if_stage_flag_eq STAGEFLAG_MET_JON, TRUE, /*goto*/ 0x06 - label 0x32 - reloop 0x04 - - // Met Jon - label 0x06 - label 0x54 - if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x54 - reloop 0x04 - - label 0x54 - try_spawn_clone2 CHR_SELF, FUNC_INIT_FOLLOWER_CLONE, 0x00000000, /*goto*/ 0x32 - reloop 0x04 - - // Spawned - label 0x32 - restart_timer - - beginloop 0x08 - if_stage_flag_eq STAGEFLAG_JON_ENTERED_MINE_ROOM, TRUE, /*goto*/ 0x32 - if_timer_gt 1800, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - endloop 0x04 - - label 0x32 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func0417_init_follower_clone: - set_self_flag_bankx CHRFLAG1_00080000, BANK_1 - label 0x04 - cmd0145_rebuild_groups - cmd0146_rebuild_groups - try_inherit_properties 0x09, /*goto*/ 0x06 - label 0x06 - set_function CHR_SELF, FUNC_FOLLOWER_CLONE - endfunction - -func0418_follower_clone: - call_rng - if_rand_lt 128, /*goto*/ 0x32 - set_target_chr CHR_VELVET - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x32 - goto_next 0x06 - - label 0x32 - set_target_chr CHR_JOANNA - label 0x06 - set_function CHR_SELF, GFUNC_ALERTED - endfunction - -func0419_init_biotech: - set_chr_dodge_rating 2, 0x0a - set_accuracy 20 - set_reaction_speed 40 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_return_function CHR_SELF, GFUNC_SEARCH_FOR_PLAYER - set_function CHR_SELF, GFUNC_SEARCH_FOR_PLAYER - endfunction - -func041a_init_superdragon_guard: - set_chr_dodge_rating 2, 0x0a - set_accuracy 10 - set_reaction_speed 40 - set_chr_health CHR_SELF, 40 - set_armor 40 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, GFUNC_UNALERTED - endfunction - -func101a_medpack_switch: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_object_in_good_condition OBJ_MEDPACK_SWITCH, /*goto*/ 0x32 - if_difficulty_lt DIFF_PA, /*goto*/ 0x06 - set_stage_flag STAGEFLAG_MEDPACK_SWITCH_DESTROYED - message CHR_JOANNA, 0x4824 // "Mission critical object destroyed." - label 0x06 - set_function CHR_SELF, GFUNC_IDLE - - label 0x32 - if_chr_activated_object CHR_P1P2, OBJ_MEDPACK_SWITCH, /*goto*/ 0x32 - endloop 0x04 - - label 0x32 - assign_sound 0x043a, CHANNEL_7 - control_sound_from_object CHANNEL_7, OBJ_MEDPACK_SWITCH, TRUE - message CHR_P1P2, 0x4836 // "Medical containment doors unlocked." - unlock_door 0x12, 0x40 - unlock_door 0x13, 0x40 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Warps Jon to the catwalk outside the mine room. - */ -unregistered_function1: - // Wait until met Jon - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_MET_JON, TRUE, /*goto*/ 0x08 - endloop 0x04 - - // Wait until player in mine room - beginloop 0x08 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x00dc, /*goto*/ 0x32 - if_chr_in_room CHR_P1P2, 0x00, 0x00dd, /*goto*/ 0x32 - endloop 0x08 - - label 0x32 - set_function CHR_JONATHAN, 0x040f - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * @unused - */ -func040f_warp_jon_to_catwalk: - set_target_chr CHR_JOANNA - if_chr_sees_player /*goto*/ 0x06 - set_target_chr CHR_VELVET - if_chr_sees_player /*goto*/ 0x06 - stop_chr - yield - chr_move_to_pad CHR_JONATHAN, 0x0152, 0x00, /*goto*/ 0x32 - label 0x32 - yield - set_function CHR_JONATHAN, FUNC_JONATHAN_FOLLOWING_AND_MINE - label 0x06 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101d_msg_medpackaroundhere: - beginloop 0x04 - if_difficulty_lt DIFF_PA, /*goto*/ 0x06 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x00d2, /*goto*/ 0x32 - endloop 0x04 - - label 0x32 - - beginloop 0x6a - if_sound_finished CHANNEL_6, /*goto*/ 0x32 - endloop 0x6a - - label 0x32 - speak CHR_P1P2, 0x4837, 0x73c0, CHANNEL_6, COLOR_09_BLUE // "The medpack's got to be somewhere around here." - label 0x06 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101e_msg_hookup: - restart_timer - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_JON_SAID_MAINT_HATCH, TRUE, /*goto*/ 0x32 - endloop 0x04 - - label 0x32 - - beginloop 0x6a - if_sound_finished CHANNEL_6, /*goto*/ 0x32 - endloop 0x6a - - label 0x32 - speak CHR_JOANNA, 0x4838, 0x73c1, CHANNEL_6, COLOR_09_BLUE // "Time to hook up with Jonathan, before he gets into..." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101f_msg_oil: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_stage_flag_eq STAGEFLAG_JON_SAID_MAINT_HATCH, TRUE, /*goto*/ 0x32 - reloop 0x04 - - label 0x32 - if_chr_in_room CHR_P1P2, 0x00, 0x00dc, /*goto*/ 0x32 - endloop 0x04 - - label 0x32 - yield - yield - yield - - beginloop 0x6a - if_sound_finished CHANNEL_6, /*goto*/ 0x32 - endloop 0x6a - - label 0x32 - speak CHR_P1P2, 0x4839, 0x73c2, CHANNEL_6, COLOR_09_BLUE // "That smell... oil... I smelt that in the other han..." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1020_msg_jetbike: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_TRIGGER_JETBIKE_MESSAGE, TRUE, /*goto*/ 0x32 - endloop 0x04 - - label 0x32 - - beginloop 0x6a - if_sound_finished CHANNEL_6, /*goto*/ 0x32 - endloop 0x6a - - label 0x32 - speak CHR_JOANNA, 0x483a, 0x73c3, CHANNEL_6, COLOR_09_BLUE // "The jetbike should get me out before they lock the..." - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1024_wall_immune_to_explosives: - set_object_flag_bank0 OBJ_WALLOBJECT, OBJECTFLAG0_INVINCIBLE - set_object_flag_bank0 OBJ_WALLDOOR, OBJECTFLAG0_INVINCIBLE - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_JON_FINISHED_EXPLOSIVES, TRUE, /*goto*/ 0x32 - endloop 0x04 - - label 0x32 - unset_object_flag_bank0 OBJ_WALLOBJECT, OBJECTFLAG0_INVINCIBLE - unset_object_flag_bank0 OBJ_WALLDOOR, OBJECTFLAG0_INVINCIBLE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * Wait until barrel destroyed then unset immune to explosives on the medpack - * glass. This wouldn't have worked as intended, as destroying any one barrel - * would cause the glass to become suscepitble to explosives. - */ -.macro glass_explosives_thing barrel - beginloop 0x04 - if_object_in_good_condition \barrel, /*goto*/ 0x32 - unset_object_flag_bank0 OBJ_MEDPACK_GLASS, OBJECTFLAG0_INVINCIBLE - restart_timer - - beginloop 0x08 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x08 - - label 0x06 - set_object_flag_bank0 OBJ_MEDPACK_GLASS, OBJECTFLAG0_INVINCIBLE - set_function CHR_SELF, GFUNC_IDLE - label 0x32 - endloop 0x04 - - set_function CHR_SELF, GFUNC_IDLE -.endm - -unregistered_function2: - set_object_flag_bank0 OBJ_MEDPACK_GLASS, OBJECTFLAG0_INVINCIBLE - glass_explosives_thing 0x23 - endfunction - -unregistered_function3: - glass_explosives_thing 0x24 - endfunction - -unregistered_function4: - glass_explosives_thing 0x25 - endfunction - -unregistered_function5: - glass_explosives_thing 0x26 - endfunction - -unregistered_function6: - glass_explosives_thing 0x27 - endfunction - -unregistered_function7: - glass_explosives_thing 0x28 - endfunction - -unregistered_function8: - glass_explosives_thing 0x29 - endfunction - -func1026_ufo_spinning: - show_object OBJ_UFO2 - set_object_flag_bank1 OBJ_UFO2, OBJECTFLAG1_04000000 - set_object_flag_bank2 OBJ_UFO2, OBJECTFLAG2_00000010 - - label 0x03 - object_do_animation 0x0459, OBJ_UFO2, 0x04ff, 0xff - restart_timer - - beginloop 0x08 - if_timer_gt 184, /*goto*/ 0x32 - endloop 0x08 - - label 0x32 - goto_first 0x03 - - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func102e_keep_hangar_doors_open: - beginloop 0x67 - if_stage_flag_eq STAGEFLAG_HANGAR_TERMINAL_DESTROYED, TRUE, /*goto*/ 0x0f - if_stage_flag_eq STAGEFLAG_HANGAR_X_MUSIC_STARTED, TRUE, /*goto*/ 0x04 - endloop 0x67 - - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_HANGAR_TERMINAL_DESTROYED, TRUE, /*goto*/ 0x0f - if_door_state 0x2c, DOORSTATE_CLOSING, /*goto*/ 0x08 - if_door_state 0x2e, DOORSTATE_CLOSING, /*goto*/ 0x09 - reloop 0x04 - - // Door 1 closing - label 0x08 - if_stage_flag_eq STAGEFLAG_INNER_DOOR_OPENING, TRUE, /*goto*/ 0x32 - if_door_state 0x2c, DOORSTATE_CLOSED | DOORSTATE_CLOSING, /*goto*/ 0x09 - reloop 0x04 - - label 0x32 - open_door 0x2c - open_door 0x2d - set_object_flag_bank0 0x2c, OBJECTFLAG0_40000000 - set_object_flag_bank0 0x2d, OBJECTFLAG0_40000000 - reloop 0x04 - - // Door 2 closing - label 0x09 - if_stage_flag_eq STAGEFLAG_OUTER_DOOR_OPENING, TRUE, /*goto*/ 0x32 - reloop 0x04 - - label 0x32 - open_door 0x2e - open_door 0x2f - set_object_flag_bank0 0x2e, OBJECTFLAG0_40000000 - set_object_flag_bank0 0x2f, OBJECTFLAG0_40000000 - endloop 0x04 - - // Terminal destroyed - label 0x0f - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func102f_toggle_remotemines: - restart_timer - beginloop 0x08 - if_timer_gt 2400, /*goto*/ 0x32 - if_stage_flag_eq STAGEFLAG_ELVIS_STASHED, TRUE, /*goto*/ 0x06 - endloop 0x08 - - label 0x32 - set_function CHR_SELF, GFUNC_IDLE - - label 0x06 - unset_object_flag_bank0 OBJ_REMOTEMINES, OBJECTFLAG0_00100000 - unset_object_flag_bank1 OBJ_REMOTEMINES, OBJECTFLAG1_INVISIBLE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1030_setup_medpack_glass: - if_difficulty_gt DIFF_A, /*goto*/ 0x32 - unset_object_flag_bank0 OBJ_MEDPACK_GLASS, OBJECTFLAG0_INVINCIBLE - destroy_object OBJ_MEDPACK_GLASS - set_function CHR_SELF, GFUNC_IDLE - - // SA and PA - label 0x32 - unlock_door 0x3c, 0x40 - unlock_door 0x3d, 0x40 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1031_disable_chambers: - set_object_flag_bank0 0x46, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 0x47, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 0x48, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 0x49, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 0x4a, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 0x4b, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 0x4c, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 0x4d, OBJECTFLAG0_DEACTIVATED - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1032_unlock_door_after_hangar: - // Wait for locate hangar objective complete - beginloop 0x04 - if_objective_complete 2, /*goto*/ 0x06 - endloop 0x04 - - label 0x06 - unlock_door 0x0a, 0x02 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -/** - * This is the lift near the wall you blow up in Rescue. - */ -func1433_start_lift: - activate_lift 1, 0x4e - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func101c_setup_rtracker: - yield - set_object_flag_bank2 OBJ_FALCON2SCOPE1, OBJECTFLAG2_RTRACKED_BLUE - set_object_flag_bank2 OBJ_FALCON2SCOPE2, OBJECTFLAG2_RTRACKED_BLUE - set_object_flag_bank2 OBJ_REMOTEMINES, OBJECTFLAG2_RTRACKED_BLUE - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1434_setup_lighting: - yield - set_lighting 0x0000, 0x00, 0x00 - set_lighting 0x0000, 0x01, 0x00 - set_lighting 0x0000, 0x02, 0x00 - set_lighting 0x0000, 0x03, 0x00 - set_lighting 0x0000, 0x04, 0x00 - set_lighting 0x00d3, 0x06, 0x01 - set_lighting 0x00d4, 0x06, 0x01 - set_lighting 0x00d5, 0x06, 0x01 - set_lighting 0x00d6, 0x06, 0x01 - set_lighting 0x00d7, 0x06, 0x01 - set_lighting 0x00d8, 0x06, 0x01 - set_lighting 0x00d9, 0x06, 0x01 - set_lighting 0x00da, 0x06, 0x01 - set_lighting 0x00db, 0x06, 0x01 - set_lighting 0x0024, 0x05, 0x01 - set_lighting 0x0025, 0x05, 0x01 - set_lighting 0x0026, 0x05, 0x01 - set_lighting 0x0027, 0x05, 0x01 - set_lighting 0x0028, 0x05, 0x01 - set_lighting 0x0029, 0x05, 0x01 - set_lighting 0x002a, 0x05, 0x01 - set_lighting 0x002b, 0x05, 0x01 - set_lighting 0x002c, 0x05, 0x01 - set_lighting 0x002d, 0x05, 0x01 - set_lighting 0x002e, 0x05, 0x01 - set_lighting 0x002f, 0x05, 0x01 - set_lighting 0x0030, 0x05, 0x01 - set_lighting 0x0032, 0x05, 0x01 - set_lighting 0x0033, 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 0x0039, 0x05, 0x01 - set_lighting 0x003a, 0x05, 0x01 - set_lighting 0x003b, 0x05, 0x01 - set_lighting 0x003c, 0x05, 0x01 - set_lighting 0x003d, 0x05, 0x01 - set_lighting 0x003e, 0x05, 0x01 - set_lighting 0x003f, 0x05, 0x01 - set_lighting 0x005b, 0x05, 0x01 - set_lighting 0x005d, 0x05, 0x01 - set_lighting 0x0079, 0x05, 0x01 - set_lighting 0x007a, 0x05, 0x01 - set_lighting 0x007b, 0x05, 0x01 - set_lighting 0x007c, 0x05, 0x01 - set_lighting 0x007d, 0x05, 0x01 - set_lighting 0x007e, 0x05, 0x01 - set_lighting 0x007f, 0x05, 0x01 - set_lighting 0x0080, 0x05, 0x01 - set_lighting 0x0081, 0x05, 0x01 - set_lighting 0x0082, 0x05, 0x01 - set_lighting 0x008b, 0x05, 0x01 - set_lighting 0x008c, 0x05, 0x01 - set_lighting 0x008d, 0x05, 0x01 - set_lighting 0x008e, 0x05, 0x01 - set_lighting 0x008f, 0x05, 0x01 - set_lighting 0x0090, 0x05, 0x01 - set_lighting 0x0091, 0x05, 0x01 - set_lighting 0x0092, 0x05, 0x01 - set_lighting 0x0093, 0x05, 0x01 - set_lighting 0x0094, 0x05, 0x01 - set_lighting 0x0095, 0x05, 0x01 - set_lighting 0x0096, 0x05, 0x01 - set_lighting 0x0097, 0x05, 0x01 - set_lighting 0x0098, 0x05, 0x01 - set_lighting 0x0099, 0x05, 0x01 - set_lighting 0x009a, 0x05, 0x01 - set_lighting 0x009b, 0x05, 0x01 - set_lighting 0x00a5, 0x05, 0x01 - set_lighting 0x00a6, 0x05, 0x01 - set_lighting 0x00a7, 0x05, 0x01 - set_lighting 0x00a8, 0x05, 0x01 - set_lighting 0x00a9, 0x05, 0x01 - set_lighting 0x00aa, 0x05, 0x01 - set_lighting 0x00ab, 0x05, 0x01 - set_lighting 0x00ac, 0x05, 0x01 - set_lighting 0x00ad, 0x05, 0x01 - set_lighting 0x00ae, 0x05, 0x01 - set_lighting 0x00af, 0x05, 0x01 - set_lighting 0x00b0, 0x05, 0x01 - set_lighting 0x00b1, 0x05, 0x01 - set_lighting 0x00b2, 0x05, 0x01 - set_lighting 0x00b3, 0x05, 0x01 - set_lighting 0x00b4, 0x05, 0x01 - set_lighting 0x00b5, 0x05, 0x01 - set_lighting 0x00b6, 0x05, 0x01 - set_lighting 0x00b7, 0x05, 0x01 - set_lighting 0x00b8, 0x05, 0x01 - set_lighting 0x00b9, 0x05, 0x01 - set_lighting 0x00ba, 0x05, 0x01 - set_lighting 0x00bb, 0x05, 0x01 - set_lighting 0x00bc, 0x05, 0x01 - set_lighting 0x00be, 0x05, 0x01 - set_lighting 0x00bf, 0x05, 0x01 - set_lighting 0x00c0, 0x05, 0x01 - set_lighting 0x00c1, 0x05, 0x01 - set_lighting 0x00c2, 0x05, 0x01 - set_lighting 0x00c3, 0x05, 0x01 - set_lighting 0x00c4, 0x05, 0x01 - set_lighting 0x00c5, 0x05, 0x01 - set_lighting 0x00c6, 0x05, 0x01 - set_lighting 0x00c7, 0x05, 0x01 - set_lighting 0x00c8, 0x05, 0x01 - set_lighting 0x00c9, 0x05, 0x01 - set_lighting 0x00ca, 0x05, 0x01 - set_lighting 0x00cc, 0x05, 0x01 - set_lighting 0x00cd, 0x05, 0x01 - set_lighting 0x00ce, 0x05, 0x01 - set_lighting 0x00cf, 0x05, 0x01 - set_lighting 0x00d0, 0x05, 0x01 - set_lighting 0x00d1, 0x05, 0x01 - set_lighting 0x00d2, 0x05, 0x01 - set_lighting 0x00dc, 0x05, 0x01 - set_lighting 0x00dd, 0x05, 0x01 - set_lighting 0x00de, 0x05, 0x01 - set_lighting 0x00df, 0x05, 0x01 - set_lighting 0x00e0, 0x05, 0x01 - set_lighting 0x00e1, 0x05, 0x01 - set_lighting 0x00e2, 0x05, 0x01 - set_lighting 0x00e3, 0x05, 0x01 - set_lighting 0x00e4, 0x05, 0x01 - set_lighting 0x00e5, 0x05, 0x01 - set_lighting 0x00e6, 0x05, 0x01 - set_lighting 0x00f2, 0x05, 0x01 - set_lighting 0x00fa, 0x05, 0x01 - set_lighting 0x00fb, 0x05, 0x01 - set_lighting 0x00fc, 0x05, 0x01 - set_lighting 0x00fd, 0x05, 0x01 - set_lighting 0x00fe, 0x05, 0x01 - set_lighting 0x00ff, 0x05, 0x01 - set_lighting 0x0100, 0x05, 0x01 - set_lighting 0x0101, 0x05, 0x01 - set_lighting 0x0102, 0x05, 0x01 - set_lighting 0x0103, 0x05, 0x01 - set_lighting 0x0104, 0x05, 0x01 - set_lighting 0x0105, 0x05, 0x01 - set_lighting 0x0106, 0x05, 0x01 - set_lighting 0x0107, 0x05, 0x01 - set_lighting 0x0108, 0x05, 0x01 - set_lighting 0x0109, 0x05, 0x01 - set_lighting 0x010a, 0x05, 0x01 - set_lighting 0x010b, 0x05, 0x01 - set_lighting 0x010c, 0x05, 0x01 - set_lighting 0x010d, 0x05, 0x01 - set_lighting 0x010e, 0x05, 0x01 - set_lighting 0x00cb, 0x05, 0x01 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -functions: - register_function func1400_setup_counterop 0x1400 - register_function func1001_objectives_failed_msg 0x1001 - register_function func1002_intro 0x1002 - register_function func1004_jon_msgs_gravedanger 0x1004 - register_function func1005_jon_msgs_meetup 0x1005 - register_function func1007_check_medpack_collected 0x1007 - register_function func1008_spawngroup1 0x1008 - register_function func1009_blow_up_wall 0x1009 - register_function func100a_check_hangar_accessed 0x100a - register_function func100b_check_jonathan_dead 0x100b - register_function func100c_medpack_activation 0x100c - register_function func100d_check_terminals_destroyed 0x100d - register_function func100e_check_elvis_dead 0x100e - register_function func100f_terminals 0x100f - register_function func1010_check_end_level 0x1010 - register_function func1011_unlock_doors_when_jo_escaping 0x1011 - register_function func1012_hoverbike_auto_doors 0x1012 - register_function func1013_spawngroup2 0x1013 - register_function func1014_spawngroup3 0x1014 - register_function func1015_spawngroup4 0x1015 - register_function func1016_enable_guards_after_meetup 0x1016 - register_function func1017_check_both_hangar_doors_open 0x1017 - register_function func1018_unhide_guards_when_jo_escaping 0x1018 - register_function func1019_enable_biotechs_after_stash 0x1019 - register_function func101a_medpack_switch 0x101a - register_function func101b_gas_sound 0x101b - register_function func101c_setup_rtracker 0x101c - register_function func101d_msg_medpackaroundhere 0x101d - register_function func101e_msg_hookup 0x101e - register_function func101f_msg_oil 0x101f - register_function func1020_msg_jetbike 0x1020 - register_function func1021_jo_escaping 0x1021 - register_function func1022_gas_damage_joanna 0x1022 - register_function func1023_gas_damage_velvet 0x1023 - register_function func1024_wall_immune_to_explosives 0x1024 - register_function func1026_ufo_spinning 0x1026 - register_function func102e_keep_hangar_doors_open 0x102e - register_function func102f_toggle_remotemines 0x102f - register_function func1030_setup_medpack_glass 0x1030 - register_function func1031_disable_chambers 0x1031 - register_function func1032_unlock_door_after_hangar 0x1032 - register_function func1433_start_lift 0x1433 - register_function func1434_setup_lighting 0x1434 - - register_function func1002_intro 0x0c00 - register_function func0c01_midcutscene 0x0c01 - register_function func0c02_outro 0x0c02 - - register_function func0401_gas_damage 0x0401 - register_function func0402_jonathan_waiting_for_meetup 0x0402 - register_function func0403_init_jonathan 0x0403 - register_function func0404_jonathan_following_and_mine 0x0404 - register_function func0405_jonathan_shot_while_planting 0x0405 - register_function func0406_unused_0406 0x0406 - register_function func1008_spawngroup1_guard 0x0407 - register_function func1013_spawngroup2_guard 0x0408 - register_function func1014_spawngroup3_guard 0x0409 - register_function func1015_spawngroup4_guard 0x040a - register_function func040b_elvis_follow 0x040b - register_function func040c_hidden_guardtype1 0x040c - register_function func0413_jonathan_hangar 0x0413 - register_function func040d_hidden_guardtype2 0x040d - register_function func040e_hidden_biotech 0x040e - register_function func040f_warp_jon_to_catwalk 0x040f - register_function func1002_intro 0x0410 - register_function func0c01_midcutscene 0x0411 - register_function func0412_init_elvis 0x0412 - register_function func0c02_outro 0x0414 - register_function func0415_ufo_exit 0x0415 - register_function func0416_spawn_during_follow 0x0416 - register_function func0417_init_follower_clone 0x0417 - register_function func0418_follower_clone 0x0418 - register_function func0419_init_biotech 0x0419 - register_function func041a_init_superdragon_guard 0x041a - register_function func041b_jonathan_after_terminals 0x041b - register_function func041c_elvis_go_to_ufo 0x041c - endfunctions - -paths: - endpaths - -.align 4 diff --git a/asm/setup/setupuff.s b/asm/setup/setupuff.s deleted file mode 100644 index 67cb3a13b..000000000 --- a/asm/setup/setupuff.s +++ /dev/null @@ -1,21 +0,0 @@ -# -# Stage ID 0x4d -# - -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" - -props: - endprops - -intro: - outfit OUTFIT_DEFAULT - endintro - -paths: - endpaths - -functions: - endfunctions - -.align 4 diff --git a/globals.ld b/globals.ld new file mode 100644 index 000000000..0c1ecc400 --- /dev/null +++ b/globals.ld @@ -0,0 +1,35 @@ +/*OUTPUT_FORMAT ("elf32-bigmips")*/ +OUTPUT_ARCH (mips) + +SECTIONS +{ + _LnameXDataStart = ADDR(.data); + _LnameXDataRomStart = 0x0000; + .data 0x80059fe0 : AT(0x0000) { + build/globals.tmp.o (.data); + } + _LnameXDataEnd = ADDR(.data) + SIZEOF(.data); + _LnameXDataRomEnd = 0x0000 + SIZEOF(.data); + + + + _LnameXRODataStart = ADDR(.rodata); + _LnameXRODataRomStart = _LnameXDataRomEnd; + .rodata : AT(_LnameXDataRomEnd) { + build/globals.tmp.o (.rodata); + } + _LnameXRODataEnd = ADDR( .rodata) + SIZEOF( .rodata); + _LnameXRODataRomEnd = _LnameXDataRomEnd + SIZEOF( .rodata); + + /DISCARD/ : { + * (.MIPS.abiflags); + * (.options); + * (.gnu.attributes); + * (.pdr); + * (.mdebug); + * (.gptab.bss); + * (.gptab.data); + * (.reginfo); +} +} + diff --git a/include/ultra64.h b/include/ultra64.h new file mode 100644 index 000000000..6a96dc803 --- /dev/null +++ b/include/ultra64.h @@ -0,0 +1,29 @@ +#ifndef _ULTRA64_H_ +#define _ULTRA64_H_ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif diff --git a/include/ultra64/cache.h b/include/ultra64/cache.h new file mode 100644 index 000000000..1373a9a9e --- /dev/null +++ b/include/ultra64/cache.h @@ -0,0 +1,11 @@ +#ifndef _ULTRA64_CACHE_H_ +#define _ULTRA64_CACHE_H_ + +/* Functions */ + +void osInvalICache(void *vaddr, s32 nbytes); +void osInvalDCache(void *vaddr, s32 nbytes); +void osWritebackDCache(void *vaddr, s32 nbytes); +void osWritebackDCacheAll(void); + +#endif diff --git a/include/ultra64/eeprom.h b/include/ultra64/eeprom.h new file mode 100644 index 000000000..1724a6d4d --- /dev/null +++ b/include/ultra64/eeprom.h @@ -0,0 +1,18 @@ +#ifndef _ULTRA64_EEPROM_H_ +#define _ULTRA64_EEPROM_H_ + +typedef struct +{ + u16 unk00; + u16 unk01; +} OSEepromUnknownStruct0; + +/* Functions */ + +s32 osEepromLongRead(OSMesgQueue *mq, u8 address, u8 *buffer, int nbytes); +s32 osEepromLongWrite(OSMesgQueue *mq, u8 address, u8 *buffer, int nbytes); +s32 osEepromWrite(OSMesgQueue *mq, u8 address, u8 *buffer); +s32 osEepromRead(OSMesgQueue *mq, u8 address, u8 *buffer); +s32 osEepromProbe(OSMesgQueue *mq); + +#endif diff --git a/include/ultra64/gbi.h b/include/ultra64/gbi.h new file mode 100644 index 000000000..2d6fd6268 --- /dev/null +++ b/include/ultra64/gbi.h @@ -0,0 +1,736 @@ +#ifndef _ULTRA64_GBI_H_ +#define _ULTRA64_GBI_H_ + +/* Types */ + +/* Vertex (set up for use with colors) */ +typedef struct +{ + short ob[3]; /* x, y, z */ + unsigned short flag; + short tc[2]; /* texture coord */ + unsigned char cn[4]; /* color & alpha */ +} Vtx_t; + +/* Vertex (set up for use with normals) */ +typedef struct +{ + short ob[3]; /* x, y, z */ + unsigned short flag; + short tc[2]; /* texture coord */ + signed char n[3]; /* normal */ + unsigned char a; /* alpha */ +} Vtx_tn; + +typedef union +{ + Vtx_t v; /* Use this one for colors */ + Vtx_tn n; /* Use this one for normals */ + long long int force_structure_alignment; +} Vtx; + + +typedef struct +{ + short vscale[4]; /* scale, 2 bits fraction */ + short vtrans[4]; /* translate, 2 bits fraction */ +} Vp_t; + +typedef union +{ + Vp_t vp; + long long int force_structure_alignment; +} Vp; + + +typedef struct +{ + unsigned int w0; + unsigned int w1; +} Gwords; + +/* TODO: fill in the rest of the members */ +typedef union +{ + Gwords words; + long long int force_structure_alignment; +} Gfx; + + +#define _SHIFTL(value, shift, size) \ + ((unsigned int) (((unsigned int) (value) & ((1 << size) - 1)) << shift)) + +#define G_ON 1 +#define G_OFF 0 + +#define GPACK_RGBA5551(r, g, b, a) \ + ((((r) << 8) & 0xF800) | \ + (((g) << 3) & 0x07C0) | \ + (((b) >> 2) & 0x003E) | \ + ((a) & 0x0001)) +#define GPACK_ZDZ(z, dz) ((z) << 2 | (dz)) + + +#define G_ZBUFFER 0x00000001 +#define G_TEXTURE_ENABLE 0x00000002 +#define G_SHADE 0x00000004 +#define G_SHADING_SMOOTH 0x00000200 +#define G_CULL_FRONT 0x00001000 +#define G_CULL_BACK 0x00002000 +#define G_CULL_BOTH 0x00003000 +#define G_FOG 0x00010000 +#define G_LIGHTING 0x00020000 +#define G_TEXTURE_GEN 0x00040000 +#define G_TEXTURE_GEN_LINEAR 0x00080000 +#define G_LOD 0x00100000 +#define G_CLIPPING 0x00800000 + +#define G_IM_FMT_RGBA 0 +#define G_IM_FMT_YUV 1 +#define G_IM_FMT_CI 2 +#define G_IM_FMT_IA 3 +#define G_IM_FMT_I 4 + +#define G_IM_SIZ_4b 0 +#define G_IM_SIZ_8b 1 +#define G_IM_SIZ_16b 2 +#define G_IM_SIZ_32b 3 +#define G_IM_SIZ_DD 5 + +#define G_AC_NONE (0 << 0) +#define G_AC_THRESHOLD (1 << 0) +#define G_AC_DITHER (3 << 0) + +#define G_ZS_PIXEL (0 << 2) +#define G_ZS_PRIM (1 << 2) + +#define G_CD_MAGICSQ (0 << 6) +#define G_CD_BAYER (1 << 6) +#define G_CD_NOISE (2 << 6) + +#define G_CK_NONE (0 << 8) +#define G_CK_KEY (1 << 8) + +#define G_TC_CONV (0 << 9) +#define G_TC_FILTCONV (5 << 9) +#define G_TC_FILT (6 << 9) + +#define G_TF_POINT (0 << 12) +#define G_TF_BILERP (2 << 12) +#define G_TF_AVERAGE (3 << 12) + +#define G_TT_NONE (0 << 14) +#define G_TT_RGBA16 (2 << 14) +#define G_TT_IA16 (3 << 14) + +#define G_TL_TILE (0 << 16) +#define G_TL_LOD (1 << 16) + +#define G_TD_CLAMP (0 << 17) +#define G_TD_SHARPEN (1 << 17) +#define G_TD_DETAIL (2 << 17) + +#define G_TP_NONE (0 << 19) +#define G_TP_PERSP (1 << 19) + +#define G_CYC_1CYCLE (0 << 20) +#define G_CYC_2CYCLE (1 << 20) +#define G_CYC_COPY (2 << 20) +#define G_CYC_FILL (3 << 20) + +#define G_PM_NPRIMITIVE (0 << 23) +#define G_PM_1PRIMITIVE (1 << 23) + +#define G_SC_NON_INTERLACE 0 +#define G_SC_ODD_INTERLACE 3 +#define G_SC_EVEN_INTERLACE 2 + +#define G_TX_LOADTILE 7 +#define G_TX_RENDERTILE 0 + +#define G_TX_NOMIRROR 0 +#define G_TX_WRAP 0 +#define G_TX_MIRROR 1 +#define G_TX_CLAMP 2 +#define G_TX_NOMASK 0 +#define G_TX_NOLOD 0 + +#define G_TX_LDBLK_MAX_TXL 2047 + +#define G_MV_VIEWPORT 0x80 +#define G_MV_LOOKATY 0x82 +#define G_MV_LOOKATX 0x84 +#define G_MV_L0 0x86 +#define G_MV_L1 0x88 +#define G_MV_L2 0x8A +#define G_MV_L3 0x8C +#define G_MV_L4 0x8E +#define G_MV_L5 0x90 +#define G_MV_L6 0x92 +#define G_MV_L7 0x94 +#define G_MV_TXTATT 0x96 +#define G_MV_MATRIX_1 0x9E +#define G_MV_MATRIX_2 0x98 +#define G_MV_MATRIX_3 0x9A +#define G_MV_MATRIX_4 0x9C + +#define G_SETOTHERMODE_L 0xB9 +#define G_SETOTHERMODE_H 0xBA + +#ifndef MAX +#define MAX(a, b) ((a) > (b) ? (a) : (b)) +#endif + +#ifndef MIN +#define MIN(a, b) ((a) < (b) ? (a) : (b)) +#endif + +#define gSPMatrix(pkt, m, p) \ +{ \ + Gfx *_g = (Gfx *)(pkt); \ + _g->words.w0 = _SHIFTL(0x01, 24, 8) \ + | _SHIFTL((p), 16, 8) \ + | _SHIFTL(sizeof(Mtx), 0, 16); \ + _g->words.w1 = (u32)(m); \ +} + +#define gSPVertex(pkt, v, n, v0) \ +{ \ + Gfx *_g = (Gfx *)(pkt); \ + _g->words.w0 = _SHIFTL(0x04, 24, 8) \ + | _SHIFTL(((n)-1) << 4 | (v0), 16, 8) \ + | _SHIFTL(sizeof(Vtx)*(n), 0, 16); \ + _g->words.w1 = (u32)(v); \ +} + +#define gDPLoadSync(pkt) \ +{ \ + Gfx *_g = (Gfx *) (pkt); \ + _g->words.w0 = 0xE6000000; \ + _g->words.w1 = 0x00000000; \ +} + +#define gDPPipeSync(pkt) \ +{ \ + Gfx *_g = (Gfx *) (pkt); \ + _g->words.w0 = 0xE7000000; \ + _g->words.w1 = 0x00000000; \ +} + +#define gDPTileSync(pkt) \ +{ \ + Gfx *_g = (Gfx *) (pkt); \ + _g->words.w0 = 0xE8000000; \ + _g->words.w1 = 0x00000000; \ +} + +#define gDPFullSync(pkt) \ +{ \ + Gfx *_g = (Gfx *) (pkt); \ + _g->words.w0 = 0xE9000000; \ + _g->words.w1 = 0x00000000; \ +} + +#define gSPDisplayList(pkt, dl) \ +{ \ + Gfx *_g = (Gfx *) (pkt); \ + _g->words.w0 = 0x06000000; \ + _g->words.w1 = (u32)(dl); \ +} + +#define gSPBranchList(pkt, dl) \ +{ \ + Gfx *_g = (Gfx *)(pkt); \ + _g->words.w0 = 0x06010000; \ + _g->words.w1 = (u32)(dl); \ +} + +#define gSPEndDisplayList(pkt) \ +{ \ + Gfx *_g = (Gfx *) (pkt); \ + _g->words.w0 = 0xB8000000; \ + _g->words.w1 = 0x00000000; \ +} + +#define gDPSetCycleType(pkt, type) \ +{ \ + Gfx *_g = (Gfx *) (pkt); \ + _g->words.w0 = 0xBA001402; \ + _g->words.w1 = type; \ +} + +#define gDPPipelineMode(pkt, mode) \ +{ \ + Gfx *_g = (Gfx *) (pkt); \ + _g->words.w0 = 0xBA001701; \ + _g->words.w1 = mode; \ +} + +#define gDPSetScissor(pkt, mode, ulx, uly, lrx, lry) \ +{ \ + Gfx *_g = (Gfx *)(pkt); \ + _g->words.w0 = _SHIFTL(0xED, 24, 8) \ + | _SHIFTL((int)((float)(ulx)*4.0f), 12, 12) \ + | _SHIFTL((int)((float)(uly)*4.0f), 0, 12); \ + _g->words.w1 = _SHIFTL((mode), 24, 8) \ + | _SHIFTL((int)((float)(lrx)*4.0f), 12, 12) \ + | _SHIFTL((int)((float)(lry)*4.0f), 0, 12); \ +} + +#define gDPSetCombine(pkt, muxs0, muxs1) \ +{ \ + Gfx *_g = (Gfx *)(pkt); \ + _g->words.w0 = _SHIFTL(0xFC, 24, 8) \ + | _SHIFTL((muxs0), 0, 24); \ + _g->words.w1 = (muxs1); \ +} + +#define gDPSetTextureLOD(pkt, type) \ +{ \ + Gfx *_g = (Gfx *) (pkt); \ + _g->words.w0 = 0xBA001001; \ + _g->words.w1 = type; \ +} + +#define gDPSetTextureLUT(pkt, type) \ +{ \ + Gfx *_g = (Gfx *) (pkt); \ + _g->words.w0 = 0xBA000E02; \ + _g->words.w1 = type; \ +} + +#define gDPSetTextureDetail(pkt, type) \ +{ \ + Gfx *_g = (Gfx *) (pkt); \ + _g->words.w0 = 0xBA001102; \ + _g->words.w1 = type; \ +} + +#define gDPSetTexturePersp(pkt, type) \ +{ \ + Gfx *_g = (Gfx *) (pkt); \ + _g->words.w0 = 0xBA001301; \ + _g->words.w1 = type; \ +} + +#define gDPSetTextureFilter(pkt, type) \ +{ \ + Gfx *_g = (Gfx *) (pkt); \ + _g->words.w0 = 0xBA000C02; \ + _g->words.w1 = type; \ +} + +#define gDPSetTextureConvert(pkt, type) \ +{ \ + Gfx *_g = (Gfx *) (pkt); \ + _g->words.w0 = 0xBA000903; \ + _g->words.w1 = type; \ +} + +#define gDPSetCombineKey(pkt, type) \ +{ \ + Gfx *_g = (Gfx *) (pkt); \ + _g->words.w0 = 0xBA000801; \ + _g->words.w1 = type; \ +} + +#define gDPSetColorDither(pkt, type) \ +{ \ + Gfx *_g = (Gfx *) (pkt); \ + _g->words.w0 = 0xBA000602; \ + _g->words.w1 = type; \ +} + +#define gDPSetFillColor(pkt, color) \ +{ \ + Gfx *_g = (Gfx *) (pkt); \ + _g->words.w0 = 0xF7000000; \ + _g->words.w1 = color; \ +} + +#define gDPFillRectangle(pkt, ulx, uly, lrx, lry) \ +{ \ + Gfx *_g = (Gfx *)(pkt); \ + _g->words.w0 = _SHIFTL(0xF6, 24, 8) \ + | _SHIFTL((lrx), 14, 10) \ + | _SHIFTL((lry), 2, 10); \ + _g->words.w1 = _SHIFTL(0, 24, 8) \ + | _SHIFTL((ulx), 14, 10) \ + | _SHIFTL((uly), 2, 10); \ +} + +#define gDPSetAlphaCompare(pkt, type) \ +{ \ + Gfx *_g = (Gfx *) (pkt); \ + _g->words.w0 = 0xB9000002; \ + _g->words.w1 = type; \ +} + +#define gDPSetDepthSource(pkt, type) \ +{ \ + Gfx *_g = (Gfx *) (pkt); \ + _g->words.w0 = 0xB9000201; \ + _g->words.w1 = type; \ +} + +#define gSPSetOtherMode(pkt, cmd, shift, length, data) \ +{ \ + Gfx *_g = (Gfx *) (pkt); \ + _g->words.w0 = _SHIFTL((cmd), 24, 8) \ + | _SHIFTL((shift), 8, 8) \ + | _SHIFTL(((length)-1), 0, 8); \ + _g->words.w1 = (data); \ +} + +#define gDPSetRenderMode(pkt, mode1, mode2) \ +{ \ + Gfx *_g = (Gfx *) (pkt); \ + _g->words.w0 = 0xB900031D; \ + _g->words.w1 = (mode1) | (mode2); \ +} + +#define gSPClearGeometryMode(pkt, mode) \ +{ \ + Gfx *_g = (Gfx *) (pkt); \ + _g->words.w0 = 0xB6000000; \ + _g->words.w1 = mode; \ +} + +#define gSPSetGeometryMode(pkt, word) \ +{ \ + Gfx *_g = (Gfx *) (pkt); \ + _g->words.w0 = 0xB7000000; \ + _g->words.w1 = word; \ +} + +#define gSPNumLights(pkt, n) \ +{ \ + Gfx *_g = (Gfx *) (pkt); \ + _g->words.w0 = 0xBC000002; \ + _g->words.w1 = (0x80000000 + ((n) + 1) * 0x20); \ +} + +#define gSPTexture(pkt, sc, tc, level, tile, on) \ +{ \ + Gfx *_g = (Gfx *)(pkt); \ + _g->words.w0 = _SHIFTL(0xBB, 24, 8) \ + | _SHIFTL(0, 16, 8) \ + | _SHIFTL((level), 11, 3) \ + | _SHIFTL((tile), 8, 3) \ + | _SHIFTL((on), 0, 8); \ + _g->words.w1 = _SHIFTL((sc), 16, 16) \ + | _SHIFTL((tc), 0, 16); \ +} + +#define gDPSetColorImage(pkt, fmt, size, width, image) \ +{ \ + Gfx *_g = (Gfx *)(pkt); \ + _g->words.w0 = _SHIFTL(0xFF, 24, 8) \ + | _SHIFTL((fmt), 21, 3) \ + | _SHIFTL((size), 19, 2) \ + | _SHIFTL((width)-1, 0, 12); \ + _g->words.w1 = (image); \ +} + +#define gDPSetTileSize(pkt, tile, uls, ult, lrs, lrt) \ +{ \ + Gfx *_g = (Gfx *)(pkt); \ + _g->words.w0 = _SHIFTL(0xF2, 24, 8) \ + | _SHIFTL(uls, 12, 12) \ + | _SHIFTL(ult, 0, 12); \ + _g->words.w1 = _SHIFTL(tile, 24, 3) \ + | _SHIFTL(lrs, 12, 12) \ + | _SHIFTL(lrt, 0, 12); \ +} + +#define gDPLoadBlock(pkt, tile, uls, ult, lrs, dxt) \ +{ \ + Gfx *_g = (Gfx *)(pkt); \ + _g->words.w0 = _SHIFTL(0xF3, 24, 8) \ + | _SHIFTL((uls), 12, 12) \ + | _SHIFTL((ult), 0, 12); \ + _g->words.w1 = _SHIFTL((tile), 24, 3) \ + | _SHIFTL((MIN((lrs),G_TX_LDBLK_MAX_TXL)), 12, 12) \ + | _SHIFTL((dxt), 0, 12); \ +} + +#define gDPSetTile(pkt, fmt, siz, line, tmem, tile, \ + palette, cmt, maskt, shiftt, cms, masks, shifts) \ +{ \ + Gfx *_g = (Gfx *)(pkt); \ + _g->words.w0 = _SHIFTL(0xF5, 24, 8) \ + | _SHIFTL((fmt), 21, 3) \ + | _SHIFTL((siz), 19, 2) \ + | _SHIFTL((line), 9, 9) \ + | _SHIFTL((tmem), 0, 9); \ + _g->words.w1 = _SHIFTL((tile), 24, 3) \ + | _SHIFTL((palette), 20, 4) \ + | _SHIFTL((cmt), 18, 2) \ + | _SHIFTL((maskt), 14, 4) \ + | _SHIFTL((shiftt), 10, 4) \ + | _SHIFTL((cms), 8, 2) \ + | _SHIFTL((masks), 4, 4) \ + | _SHIFTL((shifts), 0, 4); \ +} + +#define gDPSetDepthImage(pkt, image) \ +{ \ + Gfx *_g = (Gfx *)(pkt); \ + _g->words.w0 = _SHIFTL(0xFE, 24, 8); \ + _g->words.w1 = (image); \ +} + +#define G_SETPRIMCOLOR 0xFA + +#define gDPSetPrimColor(pkt, m, l, r, g, b, a) \ +{ \ + Gfx *_g = (Gfx *)(pkt); \ + _g->words.w0 = _SHIFTL(G_SETPRIMCOLOR, 24, 8) \ + | _SHIFTL(m, 8, 8) \ + | _SHIFTL(l, 0, 8); \ + _g->words.w1 = _SHIFTL(r, 24, 8) \ + | _SHIFTL(g, 16, 8) \ + | _SHIFTL(b, 8, 8) \ + | _SHIFTL(a, 0, 8); \ +} + +#define gDPSetEnvColor(pkt, r, g, b, a) \ +{ \ + Gfx *_g = (Gfx *)(pkt); \ + _g->words.w0 = _SHIFTL(0xFB, 24, 8); \ + _g->words.w1 = _SHIFTL((r), 24, 8) \ + | _SHIFTL((g), 16, 8) \ + | _SHIFTL((b), 8, 8) \ + | _SHIFTL((a), 0, 8); \ +} + +#define gDPSetTextureImage(pkt, fmt, size, width, img) \ +{ \ + Gfx *_g = (Gfx *)(pkt); \ + _g->words.w0 = _SHIFTL(0xFD, 24, 8) \ + | _SHIFTL((fmt), 21, 3) \ + | _SHIFTL((size), 19, 2) \ + | _SHIFTL((width)-1, 0, 12); \ + _g->words.w1 = (u32)(img); \ +} + +#define gMoveWd(pkt, index, offset, data) \ +{ \ + Gfx *_g = (Gfx *)(pkt); \ + _g->words.w0 = _SHIFTL(0xBC, 24, 8) \ + | _SHIFTL((offset), 8, 16) \ + | _SHIFTL((index), 0, 8); \ + _g->words.w1 = (u32)(data); \ +} + +/* Matrix Operations */ + +#define G_MTX_MODELVIEW 0x00 +#define G_MTX_PROJECTION 0x01 +#define G_MTX_MUL 0x00 +#define G_MTX_LOAD 0x02 +#define G_MTX_NOPUSH 0x00 +#define G_MTX_PUSH 0x04 + +#define gSPPopMatrix(pkt, n) \ +{ \ + Gfx *_g = (Gfx *) (pkt); \ + _g->words.w0 = 0xBD000000; \ + _g->words.w1 = (n); \ +} + +#define gSPViewport(pkt, v) \ +{ \ + Gfx *_g = (Gfx *)(pkt); \ + _g->words.w0 = _SHIFTL(0x03, 24, 8) \ + | _SHIFTL(G_MV_VIEWPORT, 16, 8) \ + | _SHIFTL(sizeof(Vp), 0, 16); \ + _g->words.w1 = (u32)(v); \ +} + +#define gSP1Triangle(pkt, v0, v1, v2, flag) \ +{ \ + Gfx *_g = (Gfx *)(pkt); \ + _g->words.w0 = _SHIFTL(0xBF, 24, 8); \ + _g->words.w1 = _SHIFTL((flag), 24, 8) \ + | _SHIFTL((v0)*10, 16, 8) \ + | _SHIFTL((v1)*10, 8, 8) \ + | _SHIFTL((v2)*10, 0, 8); \ +} + +#if (defined(F3DLP_GBI)||defined(F3DEX_GBI)) +/*** + *** 2 Triangles + ***/ +#define gSP2Triangles(pkt, v00, v01, v02, flag0, v10, v11, v12, flag1) \ +{ \ + Gfx *_g = (Gfx *)(pkt); \ + \ + _g->words.w0 = (_SHIFTL(G_TRI2, 24, 8)| \ + __gsSP1Triangle_w1f(v00, v01, v02, flag0)); \ + _g->words.w1 = __gsSP1Triangle_w1f(v10, v11, v12, flag1); \ +} + +#define gsSP2Triangles(v00, v01, v02, flag0, v10, v11, v12, flag1) \ +{ \ + (_SHIFTL(G_TRI2, 24, 8)| \ + __gsSP1Triangle_w1f(v00, v01, v02, flag0)), \ + __gsSP1Triangle_w1f(v10, v11, v12, flag1) \ +} + +#endif /* F3DEX_GBI/F3DLP_GBI */ + +#if (defined(TRI4_Ext)) + /*** + *** 4 Triangles - 2Tri Extension + *** Draws up to four triangles at a time. + *** Expects values from 0-F, corresponding with # points declared by vertex command. + *** Triangles with all points set to 0 are not drawn. + *** Vertex Buffer reduced to 16 due to only being able to address 0-F + ***/ +#define gSP4Triangles(pkt, v00, v01, v02, v10, v11, v12, \ + v20, v21, v22, v30, v31, v32 ) \ +{ \ + Gfx *_g = (Gfx *)(pkt); \ + \ + _g->words.w0 = (_SHIFTL(G_TRI2, 24, 8)| \ + _SHIFTL((v32),12,4)|_SHIFTL((v22),8,4)|_SHIFTL((v12),4,4)|_SHIFTL((v02),0,4); \ + _g->words.w1 = _SHIFTL((v31),28,4)|_SHIFTL((v30),24,4)|_SHIFTL((v21),20,4)|_SHIFTL((v20),16,4) \ + _SHIFTL((v11),12,4)|_SHIFTL((v10),8,4)|_SHIFTL((v02),4,4)|_SHIFTL((v00),0,4); \ +} + +#define gsSP4Triangles(v00, v01, v02, flag0, v10, v11, v12, flag1) \ +{ \ + (_SHIFTL(G_TRI2, 24, 8)| \ + _SHIFTL((v32),12,4)|_SHIFTL((v22),8,4)|_SHIFTL((v12),4,4)|_SHIFTL((v02),0,4)), \ + (_SHIFTL((v31),28,4)|_SHIFTL((v30),24,4)|_SHIFTL((v21),20,4)|_SHIFTL((v20),16,4) \ + _SHIFTL((v11),12,4)|_SHIFTL((v10),8,4)|_SHIFTL((v02),4,4)|_SHIFTL((v00),0,4)); \ +} + +#endif /* TRI4_Ext*/ + +#define gSPTextureRectangle(pkt, xl, yl, xh, yh, tile, s, t, dsdx, dtdy) \ +{ \ + Gfx *_g = (Gfx *)(pkt); \ + _g->words.w0 = _SHIFTL(0xE4, 24, 8) \ + | _SHIFTL((xh), 12, 12) \ + | _SHIFTL((yh), 0, 12); \ + _g->words.w1 = _SHIFTL((tile), 24, 3) \ + | _SHIFTL((xl), 12, 12) \ + | _SHIFTL((yl), 0, 12); \ +} \ +{ \ + Gfx *_g = (Gfx *)(pkt); \ + _g->words.w0 = _SHIFTL(0xB3, 24, 8); \ + _g->words.w1 = _SHIFTL((s), 16, 16) \ + | _SHIFTL((t), 0, 16); \ +} \ +{ \ + Gfx *_g = (Gfx *)(pkt); \ + _g->words.w0 = _SHIFTL(0xB2, 24, 8); \ + _g->words.w1 = _SHIFTL((dsdx), 16, 16) \ + | _SHIFTL((dtdy), 0, 16); \ +} + +/* Lights and Light Operations */ + +typedef struct { + unsigned char col[3]; + char pad1; + unsigned char colc[3]; + char pad2; + signed char dir[3]; + char pad3; +} Light_t; + +typedef struct { + unsigned char col[3]; + char pad1; + unsigned char colc[3]; + char pad2; +} Ambient_t; + +typedef union { + Ambient_t l; + long long int force_structure_alignment[1]; +} Ambient; + +typedef union { + Light_t l; + long long int force_structure_alignment[2]; +} Light; + +typedef struct { + Ambient a; + Light l[4]; +} Lights4; + +typedef struct { + Light l[2]; +} LookAt; + +typedef struct { + int x1, y1, x2, y2; +} Hilite_t; + +typedef union { + Hilite_t h; + long int force_alignmnet[4]; +} Hilite; + +#define G_MOVEMEM 0x03 +/* for gSPNumLights */ +// is NUMLIGHTS_0 accurate? +#define NUMLIGHTS_0 1 +#define NUMLIGHTS_1 1 +#define NUMLIGHTS_2 2 +#define NUMLIGHTS_3 3 +#define NUMLIGHTS_4 4 +#define NUMLIGHTS_5 5 +#define NUMLIGHTS_6 6 +#define NUMLIGHTS_7 7 + +/* for gSPLight */ +#define LIGHT_1 1 +#define LIGHT_2 2 +#define LIGHT_3 3 +#define LIGHT_4 4 +#define LIGHT_5 5 +#define LIGHT_6 6 +#define LIGHT_7 7 +#define LIGHT_8 8 + +#define gSPLight(pkt, l, n) \ +{ \ + Gfx *_g = (Gfx *)(pkt); \ + _g->words.w0 = _SHIFTL(G_MOVEMEM, 24, 8) \ + | _SHIFTL(((n)-1)*2+G_MV_L0, 16, 8) \ + | _SHIFTL(sizeof(Light), 0, 16); \ + _g->words.w1 = (u32)(l); \ +} + +#define gSPLookAtX(pkt, la) \ +{ \ + Gfx *_g = (Gfx *)(pkt); \ + _g->words.w0 = _SHIFTL(G_MOVEMEM, 24, 8) \ + | _SHIFTL(G_MV_LOOKATX, 16, 8) \ + | _SHIFTL(sizeof(Light), 0, 16); \ + _g->words.w1 = (u32)(la); \ +} + +#define gSPLookAtY(pkt, la) \ +{ \ + Gfx *_g = (Gfx *)(pkt); \ + _g->words.w0 = _SHIFTL(G_MOVEMEM, 24, 8) \ + | _SHIFTL(G_MV_LOOKATY, 16, 8) \ + | _SHIFTL(sizeof(Light), 0, 16); \ + _g->words.w1 = (u32)(la); \ +} + +#define gSPLookAt(pkt, la) \ +{ \ + gSPLookAtX((pkt), (la)) \ + gSPLookAtY((pkt), (char *)(la)+16) \ +} + +#endif diff --git a/include/ultra64/gbi.inc b/include/ultra64/gbi.inc new file mode 100644 index 000000000..cb05cf41e --- /dev/null +++ b/include/ultra64/gbi.inc @@ -0,0 +1,332 @@ +/* GNU as assembler macros for F3D GBI */ + +/* commands with no parameters */ +.macro f3d_noparam cmd + .word (\cmd << 24), 0x00000000 +.endm + +.macro gsImmp1 cmd, param + .word (\cmd << 24), \param +.endm + +/* DMA helper */ +.macro gsDma1p cmd, segAddr, length, params + .byte \cmd, \params + .hword \length + .word \segAddr +.endm + +/* 01: G_MTX */ +/* params */ +.set G_MTX_MODELVIEW, 0x00 +.set G_MTX_PROJECTION, 0x01 +.set G_MTX_MUL, 0x00 +.set G_MTX_LOAD, 0x02 +.set G_MTX_NOPUSH, 0x00 +.set G_MTX_PUSH, 0x04 + +.set G_MTX, 0x01 +.macro gsSPMatrix matrix, params + gsDma1p G_MTX, \matrix, 64, \params +.endm + +/* 02: reserved */ + +/* 03: G_MOVEMEM */ +.set G_MOVEMEM, 0x03 +.set G_MV_L0, 0x86 +.macro gsSPLight light, num + gsDma1p G_MOVEMEM, \light, 16, ((\num)-1)*2+G_MV_L0 +.endm + +/* 04: G_VTX */ +.set G_VTX, 0x04 +.macro gsSPVertex verts, num, index + gsDma1p G_VTX, \verts, 16*\num, ((\num)-1)<<4|(\index) +.endm + +/* 05: reserved */ + +/* 06: G_DL */ +.set G_DL, 0x06 +.set G_DL_PUSH, 0x00 +.set G_DL_NOPUSH, 0x01 +.macro gsSPDisplayList dl + gsDma1p G_DL, \dl, 0, G_DL_PUSH +.endm +.macro gsSPBranchList dl + gsDma1p G_DL, \dl, 0, G_DL_NOPUSH +.endm + +/* geometry mode flags */ +.set G_ZBUFFER, 0x00000001 +.set G_SHADE, 0x00000004 +.set G_SHADING_SMOOTH, 0x00000200 +.set G_CULL_FRONT, 0x00001000 +.set G_CULL_BACK, 0x00002000 +.set G_FOG, 0x00010000 +.set G_LIGHTING, 0x00020000 +.set G_TEXTURE_GEN, 0x00040000 +.set G_TEXTURE_GEN_LINEAR, 0x00080000 + +/* B3: G_RDPHALF_2 */ +.set G_RDPHALF_2, 0xB3 + +/* B4: G_RDPHALF_1 */ +.set G_RDPHALF_1, 0xB4 + +/* B6: G_CLEARGEOMETRYMODE */ +.set G_CLEARGEOMETRYMODE, 0xB6 +.macro gsSPClearGeometryMode flags + .word G_CLEARGEOMETRYMODE << 24 + .word \flags +.endm + +/* B7: G_SETGEOMETRYMODE */ +.set G_SETGEOMETRYMODE, 0xB7 +.macro gsSPSetGeometryMode flags + .word G_SETGEOMETRYMODE << 24 + .word \flags +.endm + +/* B8: G_ENDDL */ +.set G_ENDDL, 0xB8 +.macro gsSPEndDisplayList + f3d_noparam G_ENDDL +.endm + +/* B9: G_SETOTHERMODE_L */ +.set G_SETOTHERMODE_L, 0xB9 +/* G_SETOTHERMODE_L sft: shift count */ +.set G_MDSFT_ALPHACOMPARE, 0 +.set G_MDSFT_ZSRCSEL, 2 +.set G_MDSFT_RENDERMODE, 3 +.set G_MDSFT_BLENDER, 16 + +/* BA: G_SETOTHERMODE_H */ +.set G_SETOTHERMODE_H, 0xBA +/* G_SETOTHERMODE_H sft: shift count */ +.set G_MDSFT_ALPHADITHER, 4 +.set G_MDSFT_RGBDITHER, 6 +.set G_MDSFT_COMBKEY, 8 +.set G_MDSFT_TEXTCONV, 9 +.set G_MDSFT_TEXTFILT, 12 +.set G_MDSFT_TEXTLUT, 14 +.set G_MDSFT_TEXTLOD, 16 +.set G_MDSFT_TEXTDETAIL, 17 +.set G_MDSFT_TEXTPERSP, 19 +.set G_MDSFT_CYCLETYPE, 20 +.set G_MDSFT_PIPELINE, 23 + +.macro gsSPSetOtherMode cmd, sft, len, data + .word ((\cmd & 0xFF) << 24) | ((\sft & 0xFF) << 8) | (\len & 0xFF) + .word \data +.endm + +/* BB: G_TEXTURE */ +.set G_TEXTURE, 0xBB +.macro gsSPTexture scaleS, scaleT, level, tile, enable + .word (G_TEXTURE << 24) | ((\level & 0x7) << 11) | ((\tile & 0x7) << 8) | \enable + .word ((\scaleS & 0xFFFF) << 16) | (\scaleT & 0xFFFF) +.endm + +/* BC: G_MOVEWORD */ +.set G_MOVEWORD, 0xBC +.macro gsMoveWd index, offset, data + .word G_MOVEWORD << 24 | ((\index & 0xFFFF) << 8) | (\offset & 0xFF) + .word \data +.endm + +/* BF: G_TRI1 */ +.set G_TRI1, 0xBF +.macro gsSP1Triangle v0, v1, v2, flag + .word G_TRI1 << 24 + .byte \flag, \v0*10, \v1*10, \v2*10 +.endm + +/* C0: G_NOOP */ +.set G_NOOP, 0xC0 +.macro gsDPNoOp + f3d_noparam G_NOOP +.endm + +/* E6: G_RDPLOADSYNC */ +.set G_RDPLOADSYNC, 0xE6 +.macro gsDPLoadSync + f3d_noparam G_RDPLOADSYNC +.endm + +/* E7: G_RDPPIPESYNC */ +.set G_RDPPIPESYNC, 0xE7 +.macro gsDPPipeSync + f3d_noparam G_RDPPIPESYNC +.endm + +/* E8: G_RDPTILESYNC */ +.set G_RDPTILESYNC, 0xE8 +.macro gsDPTileSync + f3d_noparam G_RDPTILESYNC +.endm + +/* E9: G_RDPFULLSYNC */ +.set G_RDPFULLSYNC, 0xE9 +.macro gsDPFullSync + f3d_noparam G_RDPFULLSYNC +.endm + +/* F0: G_LOADTLUT */ +.set G_LOADTLUT, 0xF0 +.macro gsDPLoadTLUTCmd tile, count + .word G_LOADTLUT << 24 + .word ((\tile & 0x7) << 24) | (\count & 0x3FFF) << 10 +.endm + +/* F1: unused */ + +/* F2: G_SETTILESIZE */ +.set G_SETTILESIZE, 0xF2 +.macro gsDPSetTileSize tile, uls, ult, lrs, lrt + .word (G_SETTILESIZE << 24) | ((\uls & 0x0FFF) << 12) | (\ult & 0x0FFF) + .word ((\tile & 0x7) << 24) | ((\lrs & 0x0FFF) << 12) | (\lrt & 0x0FFF) +.endm + +/* F3: G_LOADBLOCK */ +.set G_LOADBLOCK, 0xF3 +.macro gsDPLoadBlock tile, uls, ult, lrs, dxt + .word (G_LOADBLOCK << 24) | ((\uls & 0x0FFF) << 12) | (\ult & 0x0FFF) + .word ((\tile & 0x7) << 24) | ((\lrs & 0x0FFF) << 12) | (\dxt & 0x0FFF) +.endm + +/* F5: G_SETTILE */ +.set G_TX_LOADTILE, 0x7 +.set G_TX_RENDERTILE, 0x0 + +/* axis clamp and mirror flags */ +.set G_TX_NOMIRROR, 0x0 +.set G_TX_WRAP, 0x0 +.set G_TX_MIRROR, 0x1 +.set G_TX_CLAMP, 0x2 + +/* mask flags */ +.set G_TX_NOMASK, 0x0 + +/* shift flags */ +.set G_TX_NOLOD, 0x0 + +.set G_SETTILE, 0xF5 +.macro gsDPSetTile fmt, siz, line, tmem, tile, palette, cmt, maskt, shiftt, cms, masks, shifts + .word (G_SETTILE << 24) | ((\fmt & 0x7) << 21) | ((\siz & 0x3) << 19) | ((\line & 0x1FF) << 9) | (\tmem & 0x1FF) + .word ((\tile & 0x7) << 24) | ((\palette & 0xF) << 20) | ((\cmt & 0x3) << 18) | ((\maskt & 0xF) << 14) | ((\shiftt & 0xF) << 10) | ((\cms & 0x3) << 8) | ((\masks & 0xF) << 4) | (\shifts & 0xF) +.endm + +/* F6: G_FILLRECT */ +.set G_FILLRECT, 0xF6 +.macro gsDPFillRectangle ulx, uly, lrx, lry + .word (G_FILLRECT << 24) | ((\lrx & 0x3FF) << 14) | ((\lry & 0x3FF) << 2) + .word ((\ulx & 0x3FF) << 14) | ((\uly & 0x3FF) << 2) +.endm + +/* F7: G_SETFILLCOLOR */ +.set G_SETFILLCOLOR, 0xF7 +.macro gsDPSetFillColor fillValue + .word G_SETFILLCOLOR << 24 + .word \fillValue +.endm + +/* helper for RGBA colors */ +.macro sDPRGBColor cmd r, g, b, a + .word \cmd << 24 + .byte \r, \g, \b, \a +.endm + +/* F8: G_SETFOGCOLOR */ +.set G_SETFOGCOLOR, 0xF8 +.macro gsDPSetFogColor r, g, b, a + sDPRGBColor G_SETFOGCOLOR, \r, \g, \b, \a +.endm + +/* F9: G_SETBLENDCOLOR */ +.set G_SETBLENDCOLOR, 0xF9 +.macro gsDPSetBlendColor r, g, b, a + sDPRGBColor G_SETBLENDCOLOR, \r, \g, \b, \a +.endm + +/* FA: G_SETPRIMCOLOR */ +.set G_SETPRIMCOLOR, 0xFA +.macro gsDPSetPrimColor m, l, r, g, b, a + .word (G_SETPRIMCOLOR << 24) | ((\m & 0xFF) << 8) | (\l & 0xFF) + .byte \r, \g, \b, \a +.endm + +/* FB: G_SETENVCOLOR */ +.set G_SETENVCOLOR, 0xFB +.macro gsDPSetEnvColor r, g, b, a + sDPRGBColor G_SETENVCOLOR, \r, \g, \b, \a +.endm + +/* FC: G_SETCOMBINE */ +/* color combiner */ +.set G_CCMUX_COMBINED, 0 +.set G_CCMUX_TEXEL0, 1 +.set G_CCMUX_TEXEL1, 2 +.set G_CCMUX_PRIMITIVE, 3 +.set G_CCMUX_SHADE, 4 +.set G_CCMUX_ENVIRONMENT, 5 +.set G_CCMUX_CENTER, 6 +.set G_CCMUX_SCALE, 6 +.set G_CCMUX_COMBINED_ALPHA, 7 +.set G_CCMUX_TEXEL0_ALPHA, 8 +.set G_CCMUX_TEXEL1_ALPHA, 9 +.set G_CCMUX_PRIMITIVE_ALPHA, 10 +.set G_CCMUX_SHADE_ALPHA, 11 +.set G_CCMUX_ENV_ALPHA, 12 +.set G_CCMUX_LOD_FRACTION, 13 +.set G_CCMUX_PRIM_LOD_FRAC, 14 +.set G_CCMUX_NOISE, 7 +.set G_CCMUX_K4, 7 +.set G_CCMUX_K5, 15 +.set G_CCMUX_1, 6 +.set G_CCMUX_0, 31 + +/* alpha combiner */ +.set G_ACMUX_COMBINED, 0 +.set G_ACMUX_TEXEL0, 1 +.set G_ACMUX_TEXEL1, 2 +.set G_ACMUX_PRIMITIVE, 3 +.set G_ACMUX_SHADE, 4 +.set G_ACMUX_ENVIRONMENT, 5 +.set G_ACMUX_LOD_FRACTION, 0 +.set G_ACMUX_PRIM_LOD_FRAC, 6 +.set G_ACMUX_1, 6 +.set G_ACMUX_0, 7 + +.set G_SETCOMBINE, 0xFC +.macro gsDPSetCombine muxs0, muxs1 + .word (G_SETCOMBINE << 24) | (\muxs0 & 0x00FFFFFF) + .word \muxs1 +.endm +.macro gsDPSetCombineMode a0, b0, c0, d0, Aa0, Ab0, Ac0, Ad0, a1, b1, c1, d1, Aa1, Ab1, Ac1, Ad1 + .word (G_SETCOMBINE << 24) | ((\a0 & 0xF) << 20) | ((\c0 & 0x1F) << 15) | ((\Aa0 & 0x7) << 12) | ((\Ac0 & 0x7) << 9) | ((\a1 & 0xF) << 5) | (\c1 & 0x1F) + .word ((\b0 & 0xF) << 28) | ((\b1 & 0xF) << 24) | ((\Aa1 & 0x7) << 21) | ((\Ac1 & 0x7) << 18) | ((\d0 & 0x7) << 15) | ((\Ab0 & 0x7) << 12) | ((\Ad0 & 0x7) << 9) | ((\d1 & 0x7) << 6) | ((\Ab1 & 0x7) << 3) | (\Ad1 & 0x7) +.endm + +/* FD: G_SETTIMG */ +/* fmt */ +.set G_IM_FMT_RGBA, 0x00 +.set G_IM_FMT_YUV, 0x01 +.set G_IM_FMT_CI, 0x02 +.set G_IM_FMT_IA, 0x03 +.set G_IM_FMT_I, 0x04 + +/* size */ +.set G_IM_SIZ_4b, 0x00 +.set G_IM_SIZ_8b, 0x01 +.set G_IM_SIZ_16b, 0x02 +.set G_IM_SIZ_32b, 0x03 + +.set G_SETTIMG, 0xFD +.macro gsDPSetTextureImage fmt, size, width, segAddr + .word (G_SETTIMG << 24) | ((\fmt & 0x7) << 21) | ((\size & 0x3) << 19) | ((\width-1) & 0x0FFF) + .word \segAddr +.endm + diff --git a/include/ultra64/gu.h b/include/ultra64/gu.h new file mode 100644 index 000000000..d2ff3a8ec --- /dev/null +++ b/include/ultra64/gu.h @@ -0,0 +1,21 @@ +#ifndef _ULTRA64_GU_H_ +#define _ULTRA64_GU_H_ + +#define GU_PI 3.1415926 +/* Functions */ + +void guPerspectiveF(float mf[4][4], u16 *perspNorm, float fovy, float aspect, + float near, float far, float scale); +void guPerspective(Mtx *m, u16 *perspNorm, float fovy, float aspect, float near, + float far, float scale); +void guOrtho(Mtx *m, float left, float right, float bottom, float top, + float near, float far, float scale); +void guTranslate(Mtx *m, float x, float y, float z); +void guRotate(Mtx *m, float a, float x, float y, float z); +void guScale(Mtx *m, float x, float y, float z); +void guMtxF2L(float mf[4][4], Mtx *m); +void guMtxIdent(Mtx *m); +void guMtxIdentF(float mf[4][4]); +void guMtxL2F(float mf[4][4], Mtx *m); +void guNormalize(float *, float *, float *); +#endif diff --git a/include/ultra64/interrupt.h b/include/ultra64/interrupt.h new file mode 100644 index 000000000..7eb8a4d79 --- /dev/null +++ b/include/ultra64/interrupt.h @@ -0,0 +1,14 @@ +#ifndef _ULTRA64_INTERRUPT_H_ +#define _ULTRA64_INTERRUPT_H_ + +/* Types */ + +typedef u32 OSIntMask; + + +/* Functions */ + +OSIntMask osGetIntMask(void); +OSIntMask osSetIntMask(OSIntMask); + +#endif diff --git a/include/ultra64/libaudio.h b/include/ultra64/libaudio.h new file mode 100644 index 000000000..474061b14 --- /dev/null +++ b/include/ultra64/libaudio.h @@ -0,0 +1,20 @@ +#ifndef _ULTRA64_LIBAUDIO_H_ +#define _ULTRA64_LIBAUDIO_H_ + + +typedef struct +{ + u8 *offset; + s32 len; +} ALSeqData; + +typedef struct +{ + s16 revision; + s16 seqCount; + ALSeqData seqArray[1]; +} ALSeqFile; + +void alSeqFileNew(ALSeqFile *f, u8 *base); + +#endif diff --git a/include/ultra64/libc.h b/include/ultra64/libc.h new file mode 100644 index 000000000..3b402d40c --- /dev/null +++ b/include/ultra64/libc.h @@ -0,0 +1,8 @@ +#ifndef _ULTRA64_LIBC_H_ +#define _ULTRA64_LIBC_H_ + +int sprintf(char *, const char *, ... ); +void bcopy(const void *src, void *dest, size_t size); +void bzero(void *s, size_t size); + +#endif diff --git a/include/ultra64/libultra.h b/include/ultra64/libultra.h new file mode 100644 index 000000000..02543925b --- /dev/null +++ b/include/ultra64/libultra.h @@ -0,0 +1,17 @@ +#ifndef _LIBULTRA_H +#define _LIBULTRA_H + +#define TV_TYPE_NTSC 1 +#define TV_TYPE_PAL 0 +#define TV_TYPE_MPAL 2 + +#define RESET_TYPE_COLD_RESET 0 +#define RESET_TYPE_NMI 1 +#define RESET_TYPE_BOOT_DISK 2 + +extern u32 osTvType; +extern u32 osRomBase; +extern u32 osResetType; +extern u8 osAppNmiBuffer[64]; + +#endif /* _LIBULTRA_H */ diff --git a/include/ultra64/message.h b/include/ultra64/message.h new file mode 100644 index 000000000..195314936 --- /dev/null +++ b/include/ultra64/message.h @@ -0,0 +1,50 @@ +#ifndef _ULTRA64_MESSAGE_H_ +#define _ULTRA64_MESSAGE_H_ + +/* Events */ +#define OS_EVENT_SW1 0 +#define OS_EVENT_SW2 1 +#define OS_EVENT_CART 2 +#define OS_EVENT_COUNTER 3 +#define OS_EVENT_SP 4 +#define OS_EVENT_SI 5 +#define OS_EVENT_AI 6 +#define OS_EVENT_VI 7 +#define OS_EVENT_PI 8 +#define OS_EVENT_DP 9 +#define OS_EVENT_CPU_BREAK 10 +#define OS_EVENT_SP_BREAK 11 +#define OS_EVENT_FAULT 12 +#define OS_EVENT_THREADSTATUS 13 +#define OS_EVENT_PRENMI 14 + +#define OS_MESG_NOBLOCK 0 +#define OS_MESG_BLOCK 1 + +/* Types */ + +typedef u32 OSEvent; + +typedef void *OSMesg; + +typedef struct OSMesgQueue_s +{ + OSThread *mtqueue; + OSThread *fullqueue; + s32 validCount; + s32 first; + s32 msgCount; + OSMesg *msg; +} OSMesgQueue; + +/* Functions */ + +void osCreateMesgQueue(OSMesgQueue *mq, OSMesg *msgBuf, s32 count); +s32 osSendMesg(OSMesgQueue *mq, OSMesg msg, s32 flag); +s32 osJamMesg(OSMesgQueue *mq, OSMesg msg, s32 flag); +s32 osRecvMesg(OSMesgQueue *mq, OSMesg *msg, s32 flag); +void osSetEventMesg(OSEvent e, OSMesgQueue *mq, OSMesg msg); +void osViSetEvent(OSMesgQueue *mq, OSMesg msg, u32 retraceCount); +s32 osContStartReadData(OSMesgQueue *mq); + +#endif diff --git a/include/ultra64/os_ai.h b/include/ultra64/os_ai.h new file mode 100644 index 000000000..02e8ce8f9 --- /dev/null +++ b/include/ultra64/os_ai.h @@ -0,0 +1,8 @@ +#ifndef _ULTRA64_AI_H_ +#define _ULTRA64_AI_H_ + +u32 osAiGetLength(void); +s32 osAiSetNextBuffer(void *, u32); +s32 osAiSetFrequency(u32); + +#endif diff --git a/include/ultra64/os_cont.h b/include/ultra64/os_cont.h new file mode 100644 index 000000000..7393f39f5 --- /dev/null +++ b/include/ultra64/os_cont.h @@ -0,0 +1,39 @@ +#ifndef _ULTRA64_CONTROLLER_H_ +#define _ULTRA64_CONTROLLER_H_ + +typedef struct +{ + /*0x00*/ u16 type; /* Controller Type */ + /*0x02*/ u8 status; /* Controller status */ + /*0x03*/ u8 errno; +} OSContStatus; + +typedef struct { + /*0x00*/ u16 button; + /*0x02*/ s8 stick_x; /* -80 <= stick_x <= 80 */ + /*0x03*/ s8 stick_y; /* -80 <= stick_y <= 80 */ + /*0x04*/ u8 errno; +} OSContPad; + +#define A_BUTTON (1 << 15) // 0x8000 +#define B_BUTTON (1 << 14) // 0x4000 +#define Z_TRIG (1 << 13) // 0x2000 +#define START_BUTTON (1 << 12) // 0x1000 +#define U_JPAD (1 << 11) // 0x0800 +#define D_JPAD (1 << 10) // 0x0400 +#define L_JPAD (1 << 9) // 0x0200 +#define R_JPAD (1 << 8) // 0x0100 +#define DUMMY_1 (1 << 7) // 0x0080 (unused) +#define DUMMY_2 (1 << 6) // 0x0040 (unused) +#define L_TRIG (1 << 5) // 0x0020 +#define R_TRIG (1 << 4) // 0x0010 +#define U_CBUTTONS (1 << 3) // 0x0008 +#define D_CBUTTONS (1 << 2) // 0x0004 +#define L_CBUTTONS (1 << 1) // 0x0002 +#define R_CBUTTONS (1 << 0) // 0x0001 + + +s32 osContInit(OSMesgQueue *, u8 *, OSContStatus *); +void osContGetReadData(OSContPad *); + +#endif diff --git a/include/ultra64/os_internal.h b/include/ultra64/os_internal.h new file mode 100644 index 000000000..067ebaaa3 --- /dev/null +++ b/include/ultra64/os_internal.h @@ -0,0 +1,16 @@ +#ifndef _ULTRA64_OS_INTERNAL_H_ +#define _ULTRA64_OS_INTERNAL_H_ + +/* Internal functions used by the operating system */ +/* Do not include this header in application code */ + +/* Variables */ + +//extern u64 osClockRate; + +/* Functions */ + +/*u32 __osProbeTLB(void *); +u32 __osDisableInt(void); +void __osRestoreInt(u32);*/ +#endif diff --git a/include/ultra64/os_misc.h b/include/ultra64/os_misc.h new file mode 100644 index 000000000..fecc4e742 --- /dev/null +++ b/include/ultra64/os_misc.h @@ -0,0 +1,11 @@ +#ifndef _ULTRA64_OS_MISC_H_ +#define _ULTRA64_OS_MISC_H_ + +/* Miscellaneous OS functions */ + +void osInitialize(void); +u32 osGetCount(void); + +u32 osVirtualToPhysical(void *); + +#endif diff --git a/include/ultra64/pi.h b/include/ultra64/pi.h new file mode 100644 index 000000000..4844f81fb --- /dev/null +++ b/include/ultra64/pi.h @@ -0,0 +1,85 @@ +#ifndef _ULTRA64_PI_H_ +#define _ULTRA64_PI_H_ + +/* Ultra64 Parallel Interface */ + +/* Types */ + +typedef struct +{ + u32 errStatus; + void *dramAddr; + void *C2Addr; + u32 sectorSize; + u32 C1ErrNum; + u32 C1ErrSector[4]; +} __OSBlockInfo; + +typedef struct +{ + u32 cmdType; + u16 transferMode; + u16 blockNum; + s32 sectorNum; + u32 devAddr; + u32 bmCtlShadow; + u32 seqCtlShadow; + __OSBlockInfo block[2]; +} __OSTranxInfo; + +typedef struct OSPiHandle_s +{ + struct OSPiHandle_s *next; + u8 type; + u8 latency; + u8 pageSize; + u8 relDuration; + u8 pulse; + u8 domain; + u32 baseAddress; + u32 speed; + __OSTranxInfo transferInfo; +} OSPiHandle; + +typedef struct +{ + u8 type; + u32 address; +} OSPiInfo; + +typedef struct +{ + u16 type; + u8 pri; + u8 status; + OSMesgQueue *retQueue; +} OSIoMesgHdr; + +typedef struct +{ + /*0x00*/ OSIoMesgHdr hdr; + /*0x08*/ void *dramAddr; + /*0x0C*/ u32 devAddr; + /*0x10*/ u32 size; + OSPiHandle *piHandle; //from the official definition +} OSIoMesg; + +/* Definitions */ + +#define OS_READ 0 // device -> RDRAM +#define OS_WRITE 1 // device <- RDRAM + +#define OS_MESG_PRI_NORMAL 0 +#define OS_MESG_PRI_HIGH 1 + +/* Functions */ + +s32 osPiStartDma(OSIoMesg *mb, s32 priority, s32 direction, + u32 devAddr, void *vAddr, u32 nbytes, OSMesgQueue *mq); +void osCreatePiManager(OSPri pri, OSMesgQueue *cmdQ, OSMesg *cmdBuf, + s32 cmdMsgCnt); +OSMesgQueue *osPiGetCmdQueue(void); +s32 osPiWriteIo(u32 devAddr, u32 data); +s32 osPiReadIo(u32 devAddr, u32 *data); + +#endif diff --git a/include/ultra64/rdp.h b/include/ultra64/rdp.h new file mode 100644 index 000000000..718d223be --- /dev/null +++ b/include/ultra64/rdp.h @@ -0,0 +1,33 @@ +#ifndef _ULTRA64_RDP_H_ +#define _ULTRA64_RDP_H_ + +/* DP Command Registers */ + +#define DPC_REG_BASE 0xA4100000 + +#define DPC_START_REG (*(vu32 *)(DPC_REG_BASE + 0x00)) +#define DPC_END_REG (*(vu32 *)(DPC_REG_BASE + 0x04)) +#define DPC_CURRENT_REG (*(vu32 *)(DPC_REG_BASE + 0x08)) +#define DPC_STATUS_REG (*(vu32 *)(DPC_REG_BASE + 0x0C)) +#define DPC_CLOCK_REG (*(vu32 *)(DPC_REG_BASE + 0x10)) +#define DPC_BUFBUSY_REG (*(vu32 *)(DPC_REG_BASE + 0x14)) +#define DPC_PIPEBUSY_REG (*(vu32 *)(DPC_REG_BASE + 0x18)) +#define DPC_TMEM_REG (*(vu32 *)(DPC_REG_BASE + 0x1C)) + + +/* DP Span Registers */ + +#define DPS_REG_BASE 0xA4200000 + +#define DPS_TBIST_REG (*(vu32 *)(DPS_REG_BASE + 0x00)) +#define DPS_TEST_MODE_REG (*(vu32 *)(DPS_REG_BASE + 0x04)) +#define DPS_BUFTEST_ADDR_REG (*(vu32 *)(DPS_REG_BASE + 0x08)) +#define DPS_BUFTEST_DATA_REG (*(vu32 *)(DPS_REG_BASE + 0x0C)) + + +/* Functions */ + +u32 osDpGetStatus(void); +void osDpSetStatus(u32 status); + +#endif diff --git a/include/ultra64/sptask.h b/include/ultra64/sptask.h new file mode 100644 index 000000000..75d5752a4 --- /dev/null +++ b/include/ultra64/sptask.h @@ -0,0 +1,114 @@ +#ifndef _ULTRA64_SPTASK_H_ +#define _ULTRA64_SPTASK_H_ + +/* Task Types */ +#define M_GFXTASK 1 +#define M_AUDTASK 2 +#define M_VIDTASK 3 +#define M_HVQTASK 6 +#define M_HVQMTASK 7 + +//gGfxSPTaskYieldBuffer has to be changed for this too +#if (defined(F3DEX_GBI) || defined(F3DLP_GBI) || defined(F3DEX_GBI_2)) +#define OS_YIELD_DATA_SIZE 0xc00 +#else +#define OS_YIELD_DATA_SIZE 0x900 +#endif +#define OS_YIELD_AUDIO_SIZE 0x400 + +/* Flags */ +#define M_TASK_FLAG0 1 +#define M_TASK_FLAG1 2 + +/* SpStatus */ +#define SPSTATUS_CLEAR_HALT 0x00000001 +#define SPSTATUS_SET_HALT 0x00000002 +#define SPSTATUS_CLEAR_BROKE 0x00000004 +#define SPSTATUS_CLEAR_INTR 0x00000008 +#define SPSTATUS_SET_INTR 0x00000010 +#define SPSTATUS_CLEAR_SSTEP 0x00000020 +#define SPSTATUS_SET_SSTEP 0x00000040 +#define SPSTATUS_CLEAR_INTR_ON_BREAK 0x00000080 +#define SPSTATUS_SET_INTR_ON_BREAK 0x00000100 +#define SPSTATUS_CLEAR_SIGNAL0 0x00000200 +#define SPSTATUS_SET_SIGNAL0 0x00000400 +#define SPSTATUS_CLEAR_SIGNAL1 0x00000800 +#define SPSTATUS_SET_SIGNAL1 0x00001000 +#define SPSTATUS_CLEAR_SIGNAL2 0x00002000 +#define SPSTATUS_SET_SIGNAL2 0x00004000 +#define SPSTATUS_CLEAR_SIGNAL3 0x00008000 +#define SPSTATUS_SET_SIGNAL3 0x00010000 +#define SPSTATUS_CLEAR_SIGNAL4 0x00020000 +#define SPSTATUS_SET_SIGNAL4 0x00040000 +#define SPSTATUS_CLEAR_SIGNAL5 0x00080000 +#define SPSTATUS_SET_SIGNAL5 0x00100000 +#define SPSTATUS_CLEAR_SIGNAL6 0x00200000 +#define SPSTATUS_SET_SIGNAL6 0x00800000 +#define SPSTATUS_CLEAR_SIGNAL7 0x01000000 +#define SPSTATUS_SET_SIGNAL7 0x02000000 + +#define SPSTATUS_HALT 0x0001 +#define SPSTATUS_BROKE 0x0002 +#define SPSTATUS_DMA_BUSY 0x0004 +#define SPSTATUS_DMA_FULL 0x0008 +#define SPSTATUS_IO_FULL 0x0010 +#define SPSTATUS_SINGLE_STEP 0x0020 +#define SPSTATUS_INTERRUPT_ON_BREAK 0x0040 +#define SPSTATUS_SIGNAL0_SET 0x0080 +#define SPSTATUS_SIGNAL1_SET 0x0100 +#define SPSTATUS_SIGNAL2_SET 0x0200 +#define SPSTATUS_SIGNAL3_SET 0x0400 +#define SPSTATUS_SIGNAL4_SET 0x0800 +#define SPSTATUS_SIGNAL5_SET 0x1000 +#define SPSTATUS_SIGNAL6_SET 0x2000 +#define SPSTATUS_SIGNAL7_SET 0x4000 + +/* Types */ +/* Types */ + +typedef struct +{ + /*0x00*/ u32 type; + /*0x04*/ u32 flags; + + /*0x08*/ u64 *ucode_boot; + /*0x0C*/ u32 ucode_boot_size; + + /*0x10*/ u64 *ucode; + /*0x14*/ u32 ucode_size; + + /*0x18*/ u64 *ucode_data; + /*0x1C*/ u32 ucode_data_size; + + /*0x20*/ u64 *dram_stack; + /*0x24*/ u32 dram_stack_size; + + /*0x28*/ u64 *output_buff; + /*0x2C*/ u64 *output_buff_size; + + /*0x30*/ u64 *data_ptr; + /*0x34*/ u32 data_size; + + /*0x38*/ u64 *yield_data_ptr; + /*0x3C*/ u32 yield_data_size; +} OSTask_t; // size = 0x40 + +typedef union { + OSTask_t t; + long long int force_structure_alignment; +} OSTask; + +typedef u32 OSYieldResult; + +/* Functions */ + +#define osSpTaskStart(p) \ + osSpTaskLoad(p); \ + osSpTaskStartGo(p); + +void osSpTaskLoad(OSTask *task); +void osSpTaskStartGo(OSTask *task); +void osSpTaskYield(void); +OSYieldResult osSpTaskYielded(OSTask *task); + +#endif diff --git a/include/ultra64/thread.h b/include/ultra64/thread.h new file mode 100644 index 000000000..791701c24 --- /dev/null +++ b/include/ultra64/thread.h @@ -0,0 +1,75 @@ +#ifndef _ULTRA64_THREAD_H_ +#define _ULTRA64_THREAD_H_ + +/* Recommended priorities for system threads */ +#define OS_PRIORITY_MAX 255 +#define OS_PRIORITY_VIMGR 254 +#define OS_PRIORITY_RMON 250 +#define OS_PRIORITY_RMONSPIN 200 +#define OS_PRIORITY_PIMGR 150 +#define OS_PRIORITY_SIMGR 140 +#define OS_PRIORITY_APPMAX 127 +#define OS_PRIORITY_IDLE 0 + +#define OS_STATE_STOPPED 1 +#define OS_STATE_RUNNABLE 2 +#define OS_STATE_RUNNING 4 +#define OS_STATE_WAITING 8 + +/* Types */ + +typedef s32 OSPri; +typedef s32 OSId; + +typedef union +{ + struct {f32 f_odd; f32 f_even;} f; +} __OSfp; + +typedef struct +{ + /* registers */ + /*0x20*/ u64 at, v0, v1, a0, a1, a2, a3; + /*0x58*/ u64 t0, t1, t2, t3, t4, t5, t6, t7; + /*0x98*/ u64 s0, s1, s2, s3, s4, s5, s6, s7; + /*0xD8*/ u64 t8, t9, gp, sp, s8, ra; + /*0x108*/ u64 lo, hi; + /*0x118*/ u32 sr, pc, cause, badvaddr, rcp; + /*0x12C*/ u32 fpcsr; + __OSfp fp0, fp2, fp4, fp6, fp8, fp10, fp12, fp14; + __OSfp fp16, fp18, fp20, fp22, fp24, fp26, fp28, fp30; +} __OSThreadContext; + +typedef struct +{ + u32 flag; + u32 count; + u64 time; +} __OSThreadprofile_s; + +typedef struct OSThread_s +{ + /*0x00*/ struct OSThread_s *next; + /*0x04*/ OSPri priority; + /*0x08*/ struct OSThread_s **queue; + /*0x0C*/ struct OSThread_s *tlnext; + /*0x10*/ u16 state; + /*0x12*/ u16 flags; + /*0x14*/ OSId id; + /*0x18*/ int fp; + /*0x1C*/ __OSThreadprofile_s *thprof; + /*0x20*/ __OSThreadContext context; +} OSThread; + + +/* Functions */ + +void osCreateThread(OSThread *thread, OSId id, void (*entry)(void *), + void *arg, void *sp, OSPri pri); +OSId osGetThreadId(OSThread *thread); +OSPri osGetThreadPri(OSThread *thread); +void osSetThreadPri(OSThread *thread, OSPri pri); +void osStartThread(OSThread *thread); +void osStopThread(OSThread *thread); + +#endif diff --git a/include/ultra64/time.h b/include/ultra64/time.h new file mode 100644 index 000000000..1507ed36f --- /dev/null +++ b/include/ultra64/time.h @@ -0,0 +1,25 @@ +#ifndef _ULTRA64_TIME_H_ +#define _ULTRA64_TIME_H_ +#include "message.h" + +/* Types */ + +typedef struct OSTimer_str +{ + struct OSTimer_str *next; + struct OSTimer_str *prev; + u64 interval; + u64 remaining; + OSMesgQueue *mq; + OSMesg *msg; +} OSTimer; + +typedef u64 OSTime; + +/* Functions */ + +OSTime osGetTime(void); +void osSetTime(OSTime time); +u32 osSetTimer(OSTimer *, OSTime, u64, OSMesgQueue *, OSMesg); + +#endif diff --git a/include/ultra64/tlb.h b/include/ultra64/tlb.h new file mode 100644 index 000000000..1a0f4694c --- /dev/null +++ b/include/ultra64/tlb.h @@ -0,0 +1,25 @@ +#ifndef _ULTRA64_TLB_H_ +#define _ULTRA64_TLB_H_ + +/* Types */ + +typedef u32 OSPageMask; +/* OSPageMask Valid Values */ +#define OS_PM_4K 0x0000000 +#define OS_PM_16K 0x0006000 +#define OS_PM_64K 0x001e000 +#define OS_PM_256K 0x007e000 +#define OS_PM_1M 0x01fe000 +#define OS_PM_4M 0x07fe000 +#define OS_PM_16M 0x1ffe000 + +/* Functions */ + +void osMapTLB(s32 index, OSPageMask pm, void *vaddr, u32 evenpaddr, + u32 oddpaddr, s32 asid); +void osMapTLBRdb(void); +void osUnmapTLB(s32 index); +void osUnmapTLBAll(void); +void osSetTLBASID(s32 asid); + +#endif diff --git a/include/ultra64/types.h b/include/ultra64/types.h new file mode 100644 index 000000000..ddad7d15c --- /dev/null +++ b/include/ultra64/types.h @@ -0,0 +1,41 @@ +#ifndef _ULTRA64_TYPES_H_ +#define _ULTRA64_TYPES_H_ + +#ifndef NULL +#define NULL (void *)0 +#endif + +#define TRUE 1 +#define FALSE 0 + +typedef signed char s8; +typedef unsigned char u8; +typedef signed short int s16; +typedef unsigned short int u16; +typedef signed int s32; +typedef unsigned int u32; +typedef signed long long int s64; +typedef unsigned long long int u64; + +typedef volatile u8 vu8; +typedef volatile u16 vu16; +typedef volatile u32 vu32; +typedef volatile u64 vu64; +typedef volatile s8 vs8; +typedef volatile s16 vs16; +typedef volatile s32 vs32; +typedef volatile s64 vs64; + +typedef float f32; +typedef double f64; + +typedef long int Mtx_t[4][4]; +typedef union +{ + Mtx_t m; + long long int forc_structure_alignment; +} Mtx; + +typedef unsigned long size_t; + +#endif diff --git a/include/ultra64/ucode.h b/include/ultra64/ucode.h new file mode 100644 index 000000000..407f7f6b0 --- /dev/null +++ b/include/ultra64/ucode.h @@ -0,0 +1,23 @@ +#ifndef _ULTRA64_UCODE_H_ +#define _ULTRA64_UCODE_H_ + +#define SP_DRAM_STACK_SIZE8 0x400 +#define SP_UCODE_SIZE 0x1000 +#define SP_UCODE_DATA_SIZE 0x800 + +// standard boot ucode +extern u64 rspF3DBootStart[], rspF3DBootEnd[]; + +// F3D ucode +extern u64 rspF3DStart[], rspF3DEnd[]; + +// F3D data ucode +extern u64 rspF3DDataStart[], rspF3DDataEnd[]; + +// F3D audio ucode +extern u64 rspF3DAudioStart[], rspF3DAudioEnd[]; + +// F3D audio data ucode +extern u64 rspF3DAudioDataStart[], rspF3DAudioDataEnd[]; + +#endif diff --git a/include/ultra64/vi.h b/include/ultra64/vi.h new file mode 100644 index 000000000..6433a1d46 --- /dev/null +++ b/include/ultra64/vi.h @@ -0,0 +1,143 @@ +#ifndef _ULTRA64_VI_H_ +#define _ULTRA64_VI_H_ + +/* Ultra64 Video Interface */ + + +/* Special Features */ +#define OS_VI_GAMMA_ON 0x0001 +#define OS_VI_GAMMA_OFF 0x0002 +#define OS_VI_GAMMA_DITHER_ON 0x0004 +#define OS_VI_GAMMA_DITHER_OFF 0x0008 +#define OS_VI_DIVOT_ON 0x0010 +#define OS_VI_DIVOT_OFF 0x0020 +#define OS_VI_DITHER_FILTER_ON 0x0040 +#define OS_VI_DITHER_FILTER_OFF 0x0080 + +#define OS_VI_GAMMA 0x08 +#define OS_VI_GAMMA_DITHER 0x04 +#define OS_VI_DIVOT 0x10 +#define OS_VI_DITHER_FILTER 0x10000 +#define OS_VI_UNK200 0x200 +#define OS_VI_UNK100 0x100 + + +/* Types */ + +typedef struct +{ + u32 ctrl; + u32 width; + u32 burst; + u32 vSync; + u32 hSync; + u32 leap; + u32 hStart; + u32 xScale; + u32 vCurrent; +} OSViCommonRegs; + +typedef struct +{ + u32 origin; + u32 yScale; + u32 vStart; + u32 vBurst; + u32 vIntr; +} OSViFieldRegs; + +typedef struct +{ + u8 type; + OSViCommonRegs comRegs; + OSViFieldRegs fldRegs[2]; +} OSViMode; + +typedef struct +{ + /* 0x00 */ u16 unk00; //some kind of flags. swap buffer sets to 0x10 + /* 0x02 */ u16 retraceCount; + /* 0x04 */ void* buffer; + /* 0x08 */ OSViMode *unk08; + /* 0x0c */ u32 features; + /* 0x10 */ OSMesgQueue *mq; + /* 0x14 */ OSMesg *msg; + /* 0x18 */ u32 unk18; + /* 0x1c */ u32 unk1c; + /* 0x20 */ u32 unk20; + /* 0x24 */ f32 unk24; + /* 0x28 */ u16 unk28; + /* 0x2c */ u32 unk2c; +} OSViContext; + +void osCreateViManager(OSPri pri); +void osViSetMode(OSViMode *mode); +void osViBlack(u8 active); +void osViSetSpecialFeatures(u32 func); +void osViSwapBuffer(void *vaddr); + + +#define OS_VI_NTSC_LPN1 0 /* NTSC */ +#define OS_VI_NTSC_LPF1 1 +#define OS_VI_NTSC_LAN1 2 +#define OS_VI_NTSC_LAF1 3 +#define OS_VI_NTSC_LPN2 4 +#define OS_VI_NTSC_LPF2 5 +#define OS_VI_NTSC_LAN2 6 +#define OS_VI_NTSC_LAF2 7 +#define OS_VI_NTSC_HPN1 8 +#define OS_VI_NTSC_HPF1 9 +#define OS_VI_NTSC_HAN1 10 +#define OS_VI_NTSC_HAF1 11 +#define OS_VI_NTSC_HPN2 12 +#define OS_VI_NTSC_HPF2 13 + +#define OS_VI_PAL_LPN1 14 /* PAL */ +#define OS_VI_PAL_LPF1 15 +#define OS_VI_PAL_LAN1 16 +#define OS_VI_PAL_LAF1 17 +#define OS_VI_PAL_LPN2 18 +#define OS_VI_PAL_LPF2 19 +#define OS_VI_PAL_LAN2 20 +#define OS_VI_PAL_LAF2 21 +#define OS_VI_PAL_HPN1 22 +#define OS_VI_PAL_HPF1 23 +#define OS_VI_PAL_HAN1 24 +#define OS_VI_PAL_HAF1 25 +#define OS_VI_PAL_HPN2 26 +#define OS_VI_PAL_HPF2 27 + +#define OS_VI_MPAL_LPN1 28 /* MPAL - mainly Brazil */ +#define OS_VI_MPAL_LPF1 29 +#define OS_VI_MPAL_LAN1 30 +#define OS_VI_MPAL_LAF1 31 +#define OS_VI_MPAL_LPN2 32 +#define OS_VI_MPAL_LPF2 33 +#define OS_VI_MPAL_LAN2 34 +#define OS_VI_MPAL_LAF2 35 +#define OS_VI_MPAL_HPN1 36 +#define OS_VI_MPAL_HPF1 37 +#define OS_VI_MPAL_HAN1 38 +#define OS_VI_MPAL_HAF1 39 +#define OS_VI_MPAL_HPN2 40 +#define OS_VI_MPAL_HPF2 41 + +#define OS_VI_FPAL_LPN1 42 /* FPAL - Full screen PAL */ +#define OS_VI_FPAL_LPF1 43 +#define OS_VI_FPAL_LAN1 44 +#define OS_VI_FPAL_LAF1 45 +#define OS_VI_FPAL_LPN2 46 +#define OS_VI_FPAL_LPF2 47 +#define OS_VI_FPAL_LAN2 48 +#define OS_VI_FPAL_LAF2 49 +#define OS_VI_FPAL_HPN1 50 +#define OS_VI_FPAL_HPF1 51 +#define OS_VI_FPAL_HAN1 52 +#define OS_VI_FPAL_HAF1 53 +#define OS_VI_FPAL_HPN2 54 +#define OS_VI_FPAL_HPF2 55 + +extern OSViMode osViModeTable[]; /* Global VI mode table */ + + +#endif diff --git a/setup.ld b/setup.ld new file mode 100644 index 000000000..94b3462f0 --- /dev/null +++ b/setup.ld @@ -0,0 +1,35 @@ +/*OUTPUT_FORMAT ("elf32-bigmips")*/ +OUTPUT_ARCH (mips) + +SECTIONS +{ + _LnameXDataStart = ADDR(.data); + _LnameXDataRomStart = 0x0000; + .data 0x00000000 : AT(0x0000) { + build/setup.tmp.o (.data); + } + _LnameXDataEnd = ADDR(.data) + SIZEOF(.data); + _LnameXDataRomEnd = 0x0000 + SIZEOF(.data); + + + + _LnameXRODataStart = ADDR(.rodata); + _LnameXRODataRomStart = _LnameXDataRomEnd; + .rodata : AT(_LnameXDataRomEnd) { + build/setup.tmp.o (.rodata); + } + _LnameXRODataEnd = ADDR( .rodata) + SIZEOF( .rodata); + _LnameXRODataRomEnd = _LnameXDataRomEnd + SIZEOF( .rodata); + + /DISCARD/ : { + * (.MIPS.abiflags); + * (.options); + * (.gnu.attributes); + * (.pdr); + * (.mdebug); + * (.gptab.bss); + * (.gptab.data); + * (.reginfo); +} +} + diff --git a/src/globals.c b/src/globals.c new file mode 100644 index 000000000..263dad2b6 --- /dev/null +++ b/src/globals.c @@ -0,0 +1,5494 @@ +#include "include/setup.h" + +// Create some header padding +u8 headpadding[0x1be00] = {0}; + +u8 func0000_idle[] = { + dprint 'd','y','e','n','g',0, + beginloop(0x0d) + endloop(0x0d) + + endfunction +}; + +u8 func0005_end_cinema[] = { + enter_firstperson + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0001_unalerted_0001[] = { + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +// Never used +u8 func0003_stop_unalerted[] = { + stop_chr + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func0002_unalerted_0002[] = { + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func0004_unalerted_0004[] = { + set_function(CHR_SELF, GFUNC_UNALERTED_0002) + endfunction +}; + +u8 func0006_unalerted[] = { +#define LABEL_AIVSAIFAIL 0x16 +#define LABEL_DISGUISE_UNCOVERED 0x16 +#define LABEL_SCAN_START 0x1a +#define LABEL_SEE_DETECT 0x1e +#define LABEL_HEAR_DETECT 0x1f +#define LABEL_NEAR_MISS 0x20 +#define LABEL_SEEFRIENDDIE 0x21 +#define LABEL_HEARD_ALARM 0x23 +#define LABEL_HEARSPAWN 0xda + + if_chr_flag_bank2(CHR_SELF, CHRFLAG2_PSYCHOSISED, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + set_return_function(CHR_SELF, GFUNC_INIT_PSYCHOSIS) + set_function(CHR_SELF, GFUNC_INIT_PSYCHOSIS) + + label(0x16) + set_target_chr(CHR_P1P2) + set_onshot_function(GFUNC_UNALERTED) + if_chr_dying(CHR_SELF, /*goto*/ 0x15) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x15) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x15) + if_just_injured(CHR_SELF, /*goto*/ 0x16) + if_has_gun(CHR_SELF, /*goto*/ 0x13) + dprint 'N','O','G','U','N','\n',0, + goto_next(0x16) + + label(0x13) + goto_next(LABEL_SCAN_START) + + // Dying + label(0x15) + dprint 'D','I','E',' ','I','N','S','C','A','N','\n',0, + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + // Injured or has no gun + label(0x16) + say_quip(CHR_JOANNA, 0x0c, 0x78, 0x03, 0x00, BANK_0, 0x00, 0x00) // "Holy shh...","What the hell?!" + dprint 'N','O','G','U','N',',','\n',0, + if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, FALSE, BANK_1, /*goto*/ 0x06) + unset_self_flag_bankx(CHRFLAG1_DOINGIDLEANIMATION, BANK_1) + if_chr_idle_action_eq(IDLEACTION_SITTING_TYPING, /*goto*/ 0x05) + if_chr_idle_action_eq(IDLEACTION_SITTING_DORMANT, /*goto*/ 0x05) + goto_next(0x06) + + // Stand up from sitting + label(0x05) + dprint 'N','O','G','U','N','2','\n',0, + dprint 'A','N','I','M',' ','O','B','J','E','C','T',' ','N','O','W','\n',0, + set_chr_health(CHR_SELF, 40) + object_do_animation(0x025a, 0xff, 0x02ff, 0xff) + animation(ANIM_STAND_UP_FROM_SITTING, 0, -1, 0x0210, CHR_SELF, 2) + unset_self_flag_bankx(CHRFLAG1_DOINGIDLEANIMATION, BANK_1) + set_chr_special_death_animation(CHR_SELF, 0) + dprint 'B','4',' ','W','A','T','\n',0, + goto_next(0x0c) + + label(0x06) + dprint 'B','E','E','N',' ','S','H','O','T','\n',0, + // if 01000000, set 04000000 + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_01000000, /*goto*/ 0x14) + goto_next(0x13) + + label(0x14) + set_chr_flag_bank2(TARGET_CHR, CHRFLAG2_04000000) + + // Stop chr, either immediately or by waiting for their animation to end. + // I think the animation is their injured animation. + label(0x13) + set_chr_flag_bank2(TARGET_CHR, CHRFLAG2_02000000) + if_chr_idle(/*goto*/ 0x13) + goto_next(0x03) + + label(0x13) + stop_chr + goto_next(0x16) + + beginloop(0x03) + if_chr_stopped(/*goto*/ 0x16) + endloop(0x03) + + // If warned already, go straight to scan + label(0x16) + if_self_flag_bankx_eq(CHRFLAG1_WARNED, TRUE, BANK_1, /*goto*/ LABEL_SCAN_START) + + say_quip(CHR_JOANNA, 0x0c, 0xff, 0x03, 0x00, BANK_0, 0x00, 0x00) // "Holy shh...","What the hell?!" + dprint 'N','O',' ','W','A','R','N','I','N','G','\n',0, + if_self_flag_bankx_eq(CHRFLAG0_CANT_ALERT_GROUP, TRUE, BANK_0, /*goto*/ 0x13) + set_group_alertness(100) + label(0x13) + dprint 'N','O',' ','W','A','R','N','I','N','G','\n',0, + set_function(CHR_SELF, GFUNC_WAKEUP) + dprint 'S','1',0, + + // Armed + label(LABEL_SCAN_START) + dprint 'S','C','A','N',' ','S','T','A','R','T','\n',0, + set_action(ACTION_SCAN, TRUE) + yield + dprint 'S','2',0, + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + label(0x13) + if_alertness(100, OPERATOR_LESS_THAN, /*goto*/ 0x16) + dprint 'A','L','E','R','T',' ','F','A','I','\n',0, + goto_next(0x78) + + // Not alert + label(0x16) + if_self_flag_bankx_eq(CHRFLAG1_WARNED, TRUE, BANK_1, /*goto*/ 0x13) + if_saw_death(0x01, /*goto*/ LABEL_SEEFRIENDDIE) + if_shot_near_chr(0x01, /*goto*/ LABEL_NEAR_MISS) + + // Warned + label(0x13) + dprint 'A','1','\n',0, + if_player_looking_at_something_maybe(0x00, 0x00, 0x01, /*goto*/ 0x16) + if_target_chr_in_sight(/*goto*/ LABEL_SEE_DETECT) + label(0x16) + dprint 'B','4',' ','A','I','V','S','A','I','\n',0, + if_self_flag_bankx_eq(CHRFLAG0_AIVSAI, FALSE, BANK_0, /*goto*/ LABEL_AIVSAIFAIL) + dprint 'A','I','V','S','A','I','S','E','T','\n',0, + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x13) + dprint 'A','I','V','S','A','I','F','A','I','L','\n',0, + goto_next(LABEL_AIVSAIFAIL) + + label(0x13) + dprint 'A','I','V','S','A','I','P','A','S','S','\n',0, + if_chr_lost_track_of_target_maybe(/*goto*/ LABEL_AIVSAIFAIL) + goto_next(0x12) + + // Check see and hear + label(LABEL_AIVSAIFAIL) + dprint 'S','4',0, + if_near_miss(/*goto*/ LABEL_SEE_DETECT) + if_num_times_shot_gt(0, /*goto*/ LABEL_SEE_DETECT) + dprint 'B','4','N','O','H','E','A','R','\n',0, + if_self_flag_bankx_eq(CHRFLAG0_NOHEAR, FALSE, BANK_0, /*goto*/ 0x16) + if_chr_sees_player(/*goto*/ 0x16) + goto_next(0x13) + + label(0x16) + dprint 'C','H','E','K','H','E','A','R','\n',0, + if_shot_at_close_range(/*goto*/ LABEL_HEAR_DETECT) + label(0x13) + dprint 'N','O','T','H','E','A','R','D','\n',0, + + // Check alarm + label(0x13) + dprint 'N','2','\n',0, + if_self_flag_bankx_eq(CHRFLAG0_CAN_HEAR_ALARMS, FALSE, BANK_0, /*goto*/ 0x16) + dprint 'N','3','\n',0, + if_alarm_active(/*goto*/ LABEL_HEARD_ALARM) + label(0x16) + dprint 'N','1','\n',0, + if_alarm_active(/*goto*/ 0x13) + goto_next(0x16) + + // Can hear alarm + label(0x13) + dprint 'A','L',' ','O','N','A','R','D','\n',0, + if_stage_is_not(STAGE_PELAGIC, /*goto*/ 0x16) + if_bitcheck_in_position_struct(/*goto*/ LABEL_HEARD_ALARM) + + // Check if can see camspy + label(0x16) + if_chr_sees_camspy_maybe(/*goto*/ 0x16) + dprint 'E','S',' ','N','O','V','I','S','\n',0, + goto_next(0x13) + + // Can see camspy + label(0x16) + dprint 'S','E','E','E','Y','E','S','P','Y','\n',0, + if_path_started(/*goto*/ 0x15) + set_return_function(CHR_SELF, GFUNC_UNALERTED) + set_function(CHR_SELF, GFUNC_OBSERVE_CAMSPY) + + // Patroller seeing camspy + label(0x15) + set_return_function(CHR_SELF, GFUNC_DISGUISE_DETECTION) + set_function(CHR_SELF, GFUNC_OBSERVE_CAMSPY) + + // Can't see camspy + label(0x13) + if_self_flag_bankx_eq(CHRFLAG1_00080000, TRUE, BANK_1, /*goto*/ 0x16) + if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x13) + if_self_flag_bankx_eq(CHRFLAG1_DISSPEE, FALSE, BANK_1, /*goto*/ 0x15) + dprint 'C','H','E','C','K',' ','S','O','U','F','I','\n',0, // checks outfit? + if_chr_propsoundcount_zero(CHR_SELF, /*goto*/ 0x28) + if_timer_gt(60, /*goto*/ 0x28) + goto_next(0x15) + + // chr field 0x332 was zero + label(0x28) + unset_self_flag_bankx(CHRFLAG1_DISSPEE, BANK_1) + stop_chr + + // Disspee is false, or timer not at 1 second yet + label(0x15) + if_chr_idle(/*goto*/ 0x16) + call_rng + if_rand_gt(1, /*goto*/ 0x16) + call_rng + if_rand_gt(20, /*goto*/ 0x16) + if_path_started(/*goto*/ 0x15) + set_return_function(CHR_SELF, GFUNC_UNALERTED) + set_function(CHR_SELF, GFUNC_DO_BORED_ANIMATION) + + label(0x15) + set_return_function(CHR_SELF, GFUNC_DISGUISE_DETECTION) + set_function(CHR_SELF, GFUNC_DO_BORED_ANIMATION) + + // Consider looking around + label(0x16) + if_self_flag_bankx_eq(CHRFLAG1_CAN_LOOK_AROUND, FALSE, BANK_1, /*goto*/ 0x16) + call_rng + if_rand_gt(10, /*goto*/ 0x16) + call_rng + if_rand_gt(20, /*goto*/ 0x16) + if_path_started(/*goto*/ 0x15) + set_return_function(CHR_SELF, GFUNC_UNALERTED) + set_function(CHR_SELF, GFUNC_LOOK_AROUND) + + label(0x15) + set_return_function(CHR_SELF, GFUNC_DISGUISE_DETECTION) + set_function(CHR_SELF, GFUNC_LOOK_AROUND) + + label(0x16) + goto_first(LABEL_SCAN_START) + + // Idle animations + label(0x13) + dprint 'N','A','T',' ','A','N','I','M','S','\n',0, + if_chr_idle(/*goto*/ 0x16) + set_return_function(CHR_SELF, GFUNC_UNALERTED) + set_function(CHR_SELF, GFUNC_BUSY) + + label(0x16) + dprint 'I','N',' ','A','N','I','M','S','\n',0, + goto_first(LABEL_SCAN_START) + + // Handle seeing player + label(LABEL_SEE_DETECT) + dprint 'S','E','E',' ','D','E','T','E','C','T','\n',0, + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_DISGUISE_UNCOVERED, /*goto*/ LABEL_DISGUISE_UNCOVERED) + label(0x13) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_02000000, /*goto*/ 0x14) + goto_next(0x13) + + label(0x14) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_NONE, /*goto*/ 0x15) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x15) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_COMBATBOOST, /*goto*/ 0x15) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_HORIZONSCANNER, /*goto*/ 0x15) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_SUITCASE, /*goto*/ 0x15) + if_chr_in_view(/*goto*/ LABEL_DISGUISE_UNCOVERED) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_04000000, /*goto*/ LABEL_DISGUISE_UNCOVERED) + + label(0x15) + dprint 'N','O','T',' ','A','I','M','I','N','G',' ','A','T',' ','M','E','\n',0, + + label(0x13) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x13) + goto_next(LABEL_DISGUISE_UNCOVERED) + + label(0x13) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_NONE, /*goto*/ 0x15) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x15) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_COMBATBOOST, /*goto*/ 0x15) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_HORIZONSCANNER, /*goto*/ 0x15) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_SUITCASE, /*goto*/ 0x15) + goto_next(0x14) + + label(0x15) + if_chr_soundtimer(600, OPERATOR_GREATER_THAN, /*goto*/ 0x15) + goto_next(0xea) + + label(0x14) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_02000000, /*goto*/ 0xe8) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_01000000, /*goto*/ 0xe8) + + label(0xea) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_NONE, /*goto*/ 0xe6) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0xe6) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_COMBATBOOST, /*goto*/ 0xe6) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_HORIZONSCANNER, /*goto*/ 0xe6) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_SUITCASE, /*goto*/ 0xe6) + dprint 'T','A','L','K',' ','D','I','S','T',' ','G','U','N','\n',0, + if_chr_distance_gt(900, /*goto*/ 0x15) + goto_next(0xe8) + + label(0xe6) + if_chr_distance_gt(450, /*goto*/ 0x15) + label(0xe8) + if_chr_sees_player(/*goto*/ 0xe9) + goto_next(LABEL_DISGUISE_UNCOVERED) + + label(0xe9) + label(0x13) + if_player_looking_at_something_maybe(0x0a, 0x01, 0x00, /*goto*/ 0x13) + goto_next(0x15) + + label(0x13) + if_path_started(/*goto*/ 0x14) + set_return_function(CHR_SELF, GFUNC_UNALERTED) + set_function(CHR_SELF, GFUNC_CIVILIAN_SAY_COMMENT) + label(0x14) + set_return_function(CHR_SELF, GFUNC_DISGUISE_DETECTION) + set_function(CHR_SELF, GFUNC_CIVILIAN_SAY_COMMENT) + label(0x15) + goto_first(LABEL_SCAN_START) + + // Disguise broken + label(LABEL_DISGUISE_UNCOVERED) + dprint 'D','I','S','B','R','O','K','E','N','\n',0, + if_near_miss(/*goto*/ 0x16) + if_self_flag_bankx_eq(CHRFLAG0_UNSURPRISABLE, TRUE, BANK_0, /*goto*/ 0x94) + label(0x16) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x14) + if_any_chr_doing_action(ACTION_WARN_OTHERS, /*goto*/ 0x16) + if_self_flag_bankx_eq(CHRFLAG0_CAN_RUN_FOR_ALARM, TRUE, BANK_0, /*goto*/ 0x9f) + label(0x16) + say_quip(CHR_JOANNA, 0x0b, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "Hey, you!","Intruder alert","We've got a contact!" + label(0x9f) + set_group_alertness(100) + goto_next(0x77) + + label(0xdb) // jumped to from below + label(0x14) + say_quip(CHR_JOANNA, 0x20, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "Imposter!","It's a spy!" + set_group_alertness(100) + goto_next(0x77) + + // Unreachable? + label(0x16) + yield + yield + dprint 'S','3',0, + say_quip(CHR_JOANNA, 0x0c, 0xff, 0x03, 0x00, BANK_0, 0x00, 0x00) // "Holy shh...","What the hell?!" + set_group_alertness(100) + goto_next(0x77) + + label(0x94) + label(0x16) + set_chr_flag_bank2(TARGET_CHR, CHRFLAG2_PSYCHOSISED) + dprint 'S','U','R','P','R','I','S','E','D','!','\n',0, + say_quip(CHR_JOANNA, 0x12, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "What the?!","Who the?!" + restart_timer + if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, FALSE, BANK_1, /*goto*/ 0x16) + if_chr_idle_action_eq(IDLEACTION_SITTING_TYPING, /*goto*/ 0x13) + if_chr_idle_action_eq(IDLEACTION_SITTING_DORMANT, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + set_chr_health(CHR_SELF, 40) + goto_next(0x73) + + label(0x16) + animation(ANIM_SURPRISED_0202, 0, -1, 0x0010, CHR_SELF, 2) + + beginloop(0x73) + dprint 'S','4',0, + if_timer_gt(60, /*goto*/ 0x77) + endloop(0x73) + + label(0x77) + set_alertness(255) + if_self_flag_bankx_eq(CHRFLAG0_CANT_ALERT_GROUP, TRUE, BANK_0, /*goto*/ 0x13) + set_group_alertness(100) + label(0x13) + set_function(CHR_SELF, GFUNC_WAKEUP) + + // + // HEAR DETECT + // + label(LABEL_HEAR_DETECT) + yield + dprint 'S','7',0, + dprint 'H','E','A','R','D','E','T','E','C','T','\n',0, + say_quip(CHR_JOANNA, 0x09, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "Did you hear that?","What's that noise?","I heard a noise..." + if_self_flag_bankx_eq(CHRFLAG0_CAN_HEARSPAWN, TRUE, BANK_0, /*goto*/ LABEL_HEARSPAWN) + restart_timer + if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x80) + animation(ANIM_YAWN, 0, 193, 0x1810, CHR_SELF, 2) + + beginloop(0x80) + dprint 'S','8',0, + if_timer_gt(60, /*goto*/ 0x81) + endloop(0x80) + + label(0x81) + if_self_flag_bankx_eq(CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x13) + if_self_flag_bankx_eq(CHRFLAG1_01000000, TRUE, BANK_1, /*goto*/ 0x13) + set_function(CHR_SELF, GFUNC_SEARCH_FOR_PLAYER) + + label(0x13) + set_group_alertness(100) + set_function(CHR_SELF, GFUNC_WAKEUP) + + // + // HEAR SPAWN + // + label(LABEL_HEARSPAWN) + dprint 'H','E','A','R','S','P','A','W','N','\n',0, + if_never_been_onscreen(/*goto*/ 0x0e) + dprint 'N','E','V','E','R',' ','V','I','S','F','A','I','L','\n',0, + set_function(CHR_SELF, GFUNC_SEARCH_FOR_PLAYER) + + label(0x0e) + if_never_been_onscreen(/*goto*/ 0x13) + set_function(CHR_SELF, GFUNC_SEARCH_FOR_PLAYER) + + // Never been on screen + label(0x13) + if_self_flag_bankx_eq(CHRFLAG0_00100000, FALSE, BANK_0, /*goto*/ 0x13) + set_alertness(100) + label(0x13) + dprint 'C','H','E','C','K',' ','D','U','P','E','\n',0, + if_chr_death_animation_finished(CHR_CLONE, /*goto*/ 0x0e) + if_chr_unloaded(CHR_CLONE, /*goto*/ 0x0e) + set_function(CHR_SELF, GFUNC_UNALERTED_0001) + + label(0x0e) + dprint 'C','R','E','A','T','E',' ','S','P','A','W','N','\n',0, + try_spawn_clone2(CHR_SELF, GFUNC_SEARCH_FOR_PLAYER, 0x00000000, /*goto*/ 0x13) + dprint 'C','R','E','A','T','E',' ','F','A','I','L','\n',0, + if_self_flag_bankx_eq(CHRFLAG0_00100000, TRUE, BANK_0, /*goto*/ 0x13) + set_function(CHR_SELF, GFUNC_SEARCH_FOR_PLAYER) + + label(0x13) + set_function(CHR_SELF, GFUNC_UNALERTED_0001) + + // + // NEAR MISS + // + label(LABEL_NEAR_MISS) + increase_self_alertness(100) + say_quip(CHR_JOANNA, 0x0c, 0xff, 0x03, 0x00, BANK_0, 0x00, 0x00) // "Holy shh...","What the hell?!" + set_target_chr(CHR_JOANNA) + if_within_units_of_sight(30, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + set_chr_flag_bank2(TARGET_CHR, CHRFLAG2_02000000) + goto_next(0x94) + + label(0x16) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x16) + set_target_chr(CHR_VELVET) + if_within_units_of_sight(30, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + set_chr_flag_bank2(TARGET_CHR, CHRFLAG2_02000000) + goto_next(0x94) + + label(0x16) + goto_next(0x94) + + // + // SEE FRIEND DIE + // + label(LABEL_SEEFRIENDDIE) + dprint 'S','E','E','F','R','I','E','N','D','D','I','E','\n',0, + if_self_flag_bankx_eq(CHRFLAG0_UNSURPRISABLE, FALSE, BANK_0, /*goto*/ 0x17) + label(0x94) + label(0x16) + dprint 'S','U','R','P','R','I','S','E','D','!','\n',0, + say_quip(CHR_JOANNA, 0x12, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "What the?!","Who the?!" + restart_timer + if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x76) + animation(ANIM_SURPRISED_0202, 0, -1, 0x0010, CHR_SELF, 2) + + beginloop(0x76) + dprint 'S','6',0, + if_timer_gt(60, /*goto*/ 0x17) + endloop(0x76) + + label(0x17) + if_self_flag_bankx_eq(CHRFLAG0_CAN_EXAMINE_BODY, FALSE, BANK_0, /*goto*/ 0x7d) + chr_try_run_to_target_chr_with_hand_up(CHR_FRIEND, /*goto*/ 0x7e) + dprint 'W','A','L','K','F','A','I','L','\n',0, + + beginloop(0x7e) + dprint 'S','9',0, + dprint 'W','A','L','K','I','N','G','\n',0, + if_shot_near_chr(0x00, /*goto*/ 0x16) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_player_looking_at_something_maybe(0x00, 0x00, 0x01, /*goto*/ 0x13) + if_target_chr_in_sight(/*goto*/ 0x16) + label(0x13) + if_self_distance_to_chr_lt(150, CHR_FRIEND, /*goto*/ 0x7f) + if_chr_stopped(/*goto*/ 0x7f) + endloop(0x7e) + + label(0x16) + goto_first(LABEL_SEE_DETECT) + + // At friend + label(0x7f) + restart_timer + kneel + + beginloop(0x7c) + dprint 'T','1',0, + dprint 'E','X','A','M',' ','B','O','D','Y','\n',0, + if_shot_near_chr(0x00, /*goto*/ 0x16) + set_hear_distance(10000) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_hears_gunfire(/*goto*/ 0x16) + if_player_looking_at_something_maybe(0x00, 0x00, 0x01, /*goto*/ 0x13) + if_target_chr_in_sight(/*goto*/ 0x17) + label(0x13) + if_self_flag_bankx_eq(CHRFLAG0_CAN_EXAMINE_BODY, FALSE, BANK_0, /*goto*/ 0x13) + if_timer_lt(120, /*goto*/ 0x13) + say_quip(CHR_JOANNA, 0x13, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "Are you okay?","Got a man down!","He's bought it..." + unset_self_flag_bankx(CHRFLAG0_CAN_EXAMINE_BODY, BANK_0) + label(0x13) + if_timer_gt(600, /*goto*/ 0x7d) + endloop(0x7c) + + // Heard gunfire + label(0x16) + set_alertness(100) + set_chr_flag_bank2(TARGET_CHR, CHRFLAG2_02000000) + goto_first(LABEL_SCAN_START) + + // Saw player + label(0x17) + set_alertness(100) + set_chr_flag_bank2(TARGET_CHR, CHRFLAG2_02000000) + goto_first(LABEL_SCAN_START) + + // Examination finished + label(0x7d) + dprint 'E','X','A','M',' ','B','O','D','Y','D','O','N','E','\n',0, + set_target_chr(CHR_JOANNA) + if_within_units_of_sight(30, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + set_alertness(100) + set_chr_flag_bank2(TARGET_CHR, CHRFLAG2_02000000) + goto_first(0xdb) + + // Can't see Jonna + label(0x16) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x16) + set_target_chr(CHR_VELVET) + if_within_units_of_sight(30, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + set_alertness(100) + set_chr_flag_bank2(TARGET_CHR, CHRFLAG2_02000000) + goto_first(0xdb) + + label(0x16) + set_target_chr(CHR_P1P2) + if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, FALSE, BANK_1, /*goto*/ 0x13) + set_function(CHR_SELF, GFUNC_WAKEUP) + + label(0x13) + set_function(CHR_SELF, GFUNC_SEARCH_FOR_PLAYER) + + // Unreachable - nothing jumps here + label(0x22) + increase_self_alertness(100) + dprint 'S','E','E',' ','O','B','J','E','C','T','\n',0, + goto_next(0x16) + + // + // HEARD ALARM + // + label(LABEL_HEARD_ALARM) + dprint 'H','E','A','R','D',' ','A','L','A','R','M','\n',0, + if_self_flag_bankx_eq(CHRFLAG1_00010000, FALSE, BANK_1, /*goto*/ 0x13) + set_self_flag_bankx(CHRFLAG0_00100000, BANK_0) + label(0x13) + if_self_flag_bankx_eq(CHRFLAG0_CAN_HEARSPAWN, TRUE, BANK_0, /*goto*/ LABEL_HEARSPAWN) + restart_timer + if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x82) + animation(ANIM_YAWN, 0, 193, 0x1810, CHR_SELF, 2) + + beginloop(0x82) + dprint 'T','2',0, + if_timer_gt(60, /*goto*/ 0x81) + endloop(0x82) + + label(0x81) + set_group_alertness(100) + set_alertness(255) + set_function(CHR_SELF, GFUNC_WAKEUP) + + // + // HEAR SPAWN 2 + // + label(LABEL_HEARSPAWN) + yield + dprint 'H','E','A','R','S','P','A','W','N','\n',0, + if_never_been_onscreen(/*goto*/ 0x0e) + dprint 'N','E','V','E','R',' ','V','I','S','F','A','I','L','\n',0, + set_function(CHR_SELF, GFUNC_WAKEUP) + + label(0x0e) + if_never_been_onscreen(/*goto*/ 0x13) + set_function(CHR_SELF, GFUNC_WAKEUP) + + label(0x13) + dprint 'C','H','E','C','K',' ','D','U','P','E','\n',0, + if_chr_death_animation_finished(CHR_CLONE, /*goto*/ 0x0e) + if_chr_unloaded(CHR_CLONE, /*goto*/ 0x0e) + if_self_flag_bankx_eq(CHRFLAG0_00100000, FALSE, BANK_0, /*goto*/ 0x13) + goto_first(LABEL_HEARSPAWN) + + label(0x13) + goto_first(LABEL_SCAN_START) + + label(0x0e) + dprint 'C','R','E','A','T','E',' ','S','P','A','W','N','\n',0, + try_spawn_clone2(CHR_SELF, GFUNC_SEARCH_FOR_PLAYER, 0x00000000, /*goto*/ 0x13) + dprint 'C','R','E','A','T','E',' ','F','A','I','L','\n',0, + if_self_flag_bankx_eq(CHRFLAG0_00100000, FALSE, BANK_0, /*goto*/ 0x16) + goto_first(LABEL_HEARSPAWN) + + label(0x16) + goto_first(LABEL_SCAN_START) + + label(0x13) + if_self_flag_bankx_eq(CHRFLAG0_00100000, FALSE, BANK_0, /*goto*/ 0x13) + goto_first(LABEL_HEARSPAWN) + + label(0x13) + set_function(CHR_SELF, GFUNC_UNALERTED_0001) + + // Unreachable due to set_function above + increase_self_alertness(255) + goto_next(0x16) + + label(0x16) + goto_first(LABEL_SCAN_START) + + // + // ALERT FAIL (alertness < 100) + // + label(0x78) + if_self_flag_bankx_eq(CHRFLAG0_00100000, FALSE, BANK_0, /*goto*/ 0x13) + goto_first(0x0e) // create spawn + + label(0x13) + dprint 'W','A','R','N','E','D','B','Y','F','R','I','E','N','D','\n',0, + if_self_flag_bankx_eq(CHRFLAG0_CAN_HEARSPAWN, FALSE, BANK_0, /*goto*/ 0x13) + set_alertness(0) + goto_first(LABEL_HEARSPAWN) + + label(0x13) + if_chr_is_dead_maybe(CHR_SELF, /*goto*/ 0x7b) + restart_timer + if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x7a) + animation(ANIM_YAWN, 0, 193, 0x1810, CHR_SELF, 2) + + beginloop(0x7a) + dprint 'T','3',0, + if_timer_gt(60, /*goto*/ 0x7b) + endloop(0x7a) + + label(0x7b) + dprint 'W','A','R','N','E','D','B','E','N','D','\n',0, + dprint 'W','A','R','N','E','D','B','E','N','D','2','\n',0, + set_function(CHR_SELF, GFUNC_WAKEUP) + + // Unreachable - nothing jumps here + label(0xe4) + set_return_function(CHR_SELF, GFUNC_UNALERTED) + set_function(CHR_SELF, GFUNC_FLEE_FROM_GRENADE) + + // + // AIVSAI pass + // + label(0x12) + if_self_flag_bankx_eq(CHRFLAG1_00100000, TRUE, BANK_1, /*goto*/ 0x13) + set_return_function(CHR_SELF, GFUNC_UNALERTED) + + label(0x13) + dprint 'W','A','R','N','E','D','B','E','N','D','3','\n',0, + if_self_flag_bankx_eq(CHRFLAG0_UNSURPRISABLE, FALSE, BANK_0, /*goto*/ 0x77) + say_quip(CHR_JOANNA, 0x12, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "What the?!","Who the?!" + restart_timer + if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x75) + animation(ANIM_SURPRISED_0202, 0, -1, 0x0010, CHR_SELF, 2) + + beginloop(0x75) + dprint 'S','6',0, + if_timer_gt(60, /*goto*/ 0x77) + endloop(0x75) + + label(0x77) + if_any_chr_doing_action(ACTION_WARN_OTHERS, /*goto*/ 0x16) + if_self_flag_bankx_eq(CHRFLAG0_CAN_RUN_FOR_ALARM, TRUE, BANK_0, /*goto*/ 0x13) + label(0x16) + set_function(CHR_SELF, GFUNC_INIT_COMBAT) + + label(0x13) + set_function(CHR_SELF, GFUNC_WAKEUP) + + // Wait until chr finished animation, then become alert. + // Used when standing up from sitting. + label(0x0c) + dprint 'G','O','T',' ','W','A','T','\n',0, + yield + if_chr_stopped(/*goto*/ 0x13) + goto_first(0x0c) + + label(0x13) + set_function(CHR_SELF, GFUNC_WAKEUP) + endfunction +}; + +u8 unregistered_function1[] = { + dprint 'I','V','E','I','J','U','R','E','D','\n',0, + set_function(CHR_SELF, GFUNC_WAKEUP) + endfunction +}; + +u8 func0008_wakeup[] = { + set_chr_flag_bank2(TARGET_CHR, CHRFLAG2_PSYCHOSISED) + if_chr_flag_bank2(CHR_SELF, CHRFLAG2_PSYCHOSISED, /*goto*/ 0x13) + goto_next(0x16) + + // Psychosised + label(0x13) + set_return_function(CHR_SELF, GFUNC_INIT_PSYCHOSIS) + set_function(CHR_SELF, GFUNC_INIT_PSYCHOSIS) + + // Unset special death animation if no longer idle + label(0x16) + if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, FALSE, BANK_1, /*goto*/ 0x13) + set_chr_special_death_animation(CHR_SELF, 0) + + // If idle, unset it and stand up or whatever is needed + label(0x13) + set_onshot_function(GFUNC_ALERTED) + if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, FALSE, BANK_1, /*goto*/ 0x06) + unset_self_flag_bankx(CHRFLAG1_DOINGIDLEANIMATION, BANK_1) + if_chr_idle_action_eq(IDLEACTION_SITTING_TYPING, /*goto*/ 0x05) + if_chr_idle_action_eq(IDLEACTION_SITTING_DORMANT, /*goto*/ 0x05) + goto_next(0x06) + + // About to stand up + label(0x05) + dprint 'A','N','I','M',' ','O','B','J','E','C','T',' ','N','O','W','\n',0, + yield + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x13) + if_chr_dying(CHR_SELF, /*goto*/ 0x13) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x13) + goto_next(0x15) + + // Dead + label(0x13) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + // Stand up + label(0x15) + set_chr_health(CHR_SELF, 40) + animation(ANIM_STAND_UP_FROM_SITTING, 0, -1, 0x0210, CHR_SELF, 2) + object_do_animation(0x025a, 0xff, 0x02ff, 0xff) + goto_next(0x0c) + + // Unreachable - nothing jumps here + label(0x16) + object_do_animation(0x027b, 0xff, 0x02ff, 0xff) + + // Wait for stand up animation to finish + label(0x0c) + dprint 'G','O','T',' ','W','A','T','\n',0, + yield + if_chr_stopped(/*goto*/ 0x13) + goto_first(0x0c) + + label(0x13) + label(0x06) + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +u8 func0007_alerted[] = { +#define LABEL_DRAW_PISTOL 0xe7 +#define LABEL_GETGUN_FAILED 0xaf +#define LABEL_CLOAKED 0xeb +#define LABEL_RUN_FOR_ALARM 0x9f +#define LABEL_RETREAT 0x6b +#define LABEL_FLANK_LEFT 0x8f +#define LABEL_FLANK_RIGHT 0x90 +#define LABEL_TRACK 0x34 +#define LABEL_SNIPE 0xde +#define LABEL_FLEE_GRENADE 0xe4 + + set_chr_flag_bank2(TARGET_CHR, CHRFLAG2_PSYCHOSISED) + if_chr_flag_bank2(CHR_SELF, CHRFLAG2_PSYCHOSISED, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + set_return_function(CHR_SELF, GFUNC_INIT_PSYCHOSIS) + set_function(CHR_SELF, GFUNC_INIT_PSYCHOSIS) + + // If doing idle animation, turn off special death animation + label(0x16) + if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, FALSE, BANK_1, /*goto*/ 0x13) + set_chr_special_death_animation(CHR_SELF, 0) + + // If something, jump to combat + label(0x13) + unset_self_flag_bankx(CHRFLAG1_01000000, BANK_1) + if_chr_is_dead_maybe(CHR_SELF, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + + // is_chr_is_dead_maybe (named wrong) was false + label(0x16) + set_onshot_function(GFUNC_ALERTED) + set_aishootingatmel(35) + set_unknown_function(GFUNC_SEARCH_FOR_PLAYER) + + dprint 'S','T','A','R','T',' ','L','O','O','P','\n',0, + if_chr_dying(CHR_SELF, /*goto*/ 0x16) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x16) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x16) + dprint 'N','O','T',' ','D','E','A','D','\n',0, + goto_next(0x13) + + // Dying + label(0x16) + set_chr_dodge_rating(2, 0x00) + set_onshot_function(GFUNC_IDLE) + + restart_timer + + beginloop(0x1c) + dprint 'D','I','E',' ','L','O','O','P','\n',0, + if_timer_gt(15, /*goto*/ 0x16) + endloop(0x1c) + + label(0x16) + say_quip(CHR_JOANNA, 0x19, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "You bitch!","Oh... my... god","She got me" + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x13) + dprint 'S','T','A','R','T',' ','L','O','O','P','2','\n',0, + if_just_injured(CHR_SELF, /*goto*/ 0x16) + if_has_gun(CHR_SELF, /*goto*/ 0x13) + goto_next(0x16) + + // Not injured and has gun + label(0x13) + if_self_flag_bankx_eq(CHRFLAG1_CAN_DRAW_PISTOL, TRUE, BANK_1, /*goto*/ LABEL_DRAW_PISTOL) + goto_next(0x1b) + + // Injured or no gun + label(0x16) + restart_timer + unset_self_flag_bankx(CHRFLAG1_00000020, BANK_1) + unset_self_flag_bankx(CHRFLAG1_CAN_DRAW_PISTOL, BANK_1) + dprint 'C','H','E','C','K','I','N','J','U','R','Y','\n',0, + + // Say an injury quip if we haven't already, then wait up to 3 seconds for + // the chr to have finished their injury animation + beginloop(0x1d) + if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x16) + if_num_times_shot_lt(1, /*goto*/ 0x16) + if_timer_lt(20, /*goto*/ 0x16) + say_quip(CHR_JOANNA, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00) // "Medic!","Help!","You shot me?!" + say_quip(CHR_JOANNA, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00) // "I'm hit, I'm hit!","I'm taking fire!","Taking damage!" + set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0) + label(0x16) + if_timer_gt(180, /*goto*/ 0x13) + if_chr_stopped(/*goto*/ 0x13) + endloop(0x1d) + + label(0x13) + stop_chr + dprint 'I','N','J',' ','O','V','E','R','\n',0, + if_self_flag_bankx_eq(CHRFLAG1_CAN_DRAW_PISTOL, TRUE, BANK_1, /*goto*/ LABEL_DRAW_PISTOL) + dprint 'B','4',' ','G','U','N','\n',0, + if_has_gun(CHR_SELF, /*goto*/ 0x1b) + dprint 'L','O','S','T',' ','M','Y',' ','G','U','N','\n',0, + label(0xac) + set_chr_dodge_rating(2, 0x00) + say_quip(CHR_JOANNA, 0x21, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "My gun!" + stop_chr + restart_timer + yield + + // Wait for gun to land. If it disappears (eg. falls out of geometry), is + // picked up by the player, or we've been waiting for 5 seconds then go to + // GETFUN_FAILED. + label(0xb0) + dprint 'W','A','I','T','I','N','G','\n',0, + yield + yield + yield + if_gun_unclaimed(-1, TRUE, /*goto*/ 0x13) + goto_next(LABEL_GETGUN_FAILED) + + label(0x13) + if_gun_landed(TRUE, /*goto*/ 0xb1) + if_timer_gt(300, /*goto*/ LABEL_GETGUN_FAILED) + goto_first(0xb0) + + // Note: When if_gun_landed param is FALSE, it's not actually an if + // statement, but does some task. + label(0xb1) + restart_timer + if_gun_landed(FALSE, /*goto*/ 0xad) + + beginloop(0xad) + dprint 'G','O',' ','F','O','R',' ','G','U','N','\n',0, + if_timer_gt(300, /*goto*/ LABEL_GETGUN_FAILED) + if_gun_unclaimed(-1, TRUE, /*goto*/ 0x13) + goto_next(LABEL_GETGUN_FAILED) + label(0x13) + if_distance_to_target_position_lt(100, /*goto*/ 0x16) + if_chr_stopped(/*goto*/ 0x16) + endloop(0xad) + + label(0x16) + dprint 'A','T',' ','G','U','N','\n',0, + restart_timer + animation(ANIM_PICK_UP_GUN, 0, -1, 0x1010, CHR_SELF, 2) + + beginloop(0xae) + if_timer_gt(60, /*goto*/ 0x16) + endloop(0xae) + + label(0x16) + if_gun_unclaimed(-1, TRUE, /*goto*/ 0x13) + goto_next(LABEL_GETGUN_FAILED) + + label(0x13) + chr_recover_gun(CHR_SELF, /*goto*/ 0x16) + goto_next(LABEL_GETGUN_FAILED) + + label(0x16) + goto_next(0x1b) + + // + // GETGUN FAILED + // + label(LABEL_GETGUN_FAILED) + stop_chr + dprint 'G','E','T','G','U','N',' ','F','A','I','L','E','D','\n',0, + call_rng + if_rand_lt(50, /*goto*/ 0xe6) + if_rand_lt(100, /*goto*/ LABEL_DRAW_PISTOL) + set_self_flag_bankx(CHRFLAG0_CAN_RETREAT, BANK_0) + set_self_flag_bankx(CHRFLAG0_CANT_ALERT_GROUP, BANK_0) + set_self_flag_bankx(CHRFLAG0_00200000, BANK_0) + unset_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + unset_self_flag_bankx(CHRFLAG0_00004000, BANK_0) + unset_self_flag_bankx(CHRFLAG0_80000000, BANK_0) + set_self_flag_bankx(CHRFLAG1_00000002, BANK_1) + goto_next(0x1b) + + label(0xe6) + set_self_flag_bankx(CHRFLAG1_00000001, BANK_1) + goto_next(0x1b) + + // + // DRAW PISTOL + // + label(LABEL_DRAW_PISTOL) + call_rng + if_rand_lt(82, /*goto*/ 0x13) + if_rand_lt(164, /*goto*/ 0x15) + animation(ANIM_DRAW_PISTOL_0288, 0, -1, 0x1010, CHR_SELF, 2) + goto_next(0x16) + + label(0x13) + animation(ANIM_DRAW_PISTOL_0289, 0, -1, 0x1010, CHR_SELF, 2) + goto_next(0x16) + + label(0x15) + animation(ANIM_DRAW_PISTOL_0245, 0, -1, 0x1010, CHR_SELF, 2) + + label(0x16) + if_stage_is_not(STAGE_AIRFORCEONE, /*goto*/ 0x13) + try_draw_weapon(MODEL_CHRCYCLONE, WEAPON_CYCLONE, 0x00000000, /*goto*/ 0xe5) + label(0x13) + try_draw_weapon(MODEL_CHRFALCON2, WEAPON_FALCON2, 0x00000000, /*goto*/ 0xe5) + + beginloop(0xe5) + if_chr_stopped(/*goto*/ 0x16) + endloop(0xe5) + + label(0x16) + if_self_flag_bankx_eq(CHRFLAG1_CAN_DRAW_PISTOL, TRUE, BANK_1, /*goto*/ 0x13) + unset_self_flag_bankx(CHRFLAG0_80000000, BANK_0) + label(0x13) + unset_self_flag_bankx(CHRFLAG1_CAN_DRAW_PISTOL, BANK_1) + label(0x16) + + // + // Lots of things go here + // + label(0x1b) + yield + label(0x16) + if_chr_flag_bank2(CHR_SELF, CHRFLAG2_00002000, /*goto*/ 0x13) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_BUDDY_PLACED, /*goto*/ 0x01) + label(0x13) + if_self_flag_bankx_eq(CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ LABEL_TRACK) + dprint 'C','H','E','C','K','I','N','J','U','R','Y','E','N','D','\n',0, + + // Consider warning others in team + dprint 'B','4',' ','T','E','A','M',' ','C','H','E','C','K','\n',0, + if_alarm_active(/*goto*/ 0x16) + if_any_chr_doing_action(ACTION_WARN_OTHERS, /*goto*/ 0x16) + if_self_flag_bankx_eq(CHRFLAG0_CAN_RUN_FOR_ALARM, TRUE, BANK_0, /*goto*/ LABEL_RUN_FOR_ALARM) + + // No need to warn + label(0x16) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED) + goto_next(0x16) + + // Unreachable - nothing jumps here + label(0x13) + set_return_function(CHR_SELF, GFUNC_ALERTED) + set_alertness(0) + set_function(CHR_SELF, GFUNC_SEARCH_FOR_PLAYER) + + // This flag appears to control whether the chr can declare that they're + // attempting to surround the player. These quips are never said though, so + // either the flag is never set for anyone or the field_0x201 values are + // something different. + label(0x16) + if_self_flag_bankx_eq(CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x93) + if_field_0x2a1_eq(ACTION_FLANK_LEFT, /*goto*/ 0x13) + if_field_0x2a1_eq(ACTION_FLANK_RIGHT, /*goto*/ 0x15) + goto_next(0x93) + + label(0x13) + say_quip(CHR_JOANNA, 0x07, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00) // "Wipe the target!","Let's split up!","Surround her!" + goto_next(LABEL_FLANK_LEFT) + + label(0x15) + say_quip(CHR_JOANNA, 0x07, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00) // "Wipe the target!","Let's split up!","Surround her!" + goto_next(LABEL_FLANK_RIGHT) + + // Attempt trap (hide and ambush when player gets near) + label(0x93) + if_self_flag_bankx_eq(CHRFLAG0_CANT_ALERT_GROUP, TRUE, BANK_0, /*goto*/ LABEL_RETREAT) + if_self_flag_bankx_eq(CHRFLAG0_CAN_TRAP, TRUE, BANK_0, /*goto*/ 0x13) + dprint 'T','R','A','P',' ','N','O','T',' ','S','E','T','\n',0, + if_self_flag_bankx_eq(CHRFLAG0_00000004, FALSE, BANK_0, /*goto*/ 0x16) + label(0x13) + dprint 'V','I','S','\n',0, + if_in_disarm_range(/*goto*/ 0x16) + goto_next(0x98) + + label(0x16) + dprint 'T','R','A','P',' ','F','A','I','L','E','D','\n',0, + if_self_flag_bankx_eq(CHRFLAG0_02000000, TRUE, BANK_0, /*goto*/ 0x16) + if_self_flag_bankx_eq(CHRFLAG0_01000000, FALSE, BANK_0, /*goto*/ 0x16) + label(0x13) + dprint 'V','I','S','\n',0, + if_in_disarm_range(/*goto*/ 0x16) + goto_next(0xa1) + + label(0x16) + if_self_flag_bankx_eq(CHRFLAG0_10000000, FALSE, BANK_0, /*goto*/ 0x16) + label(0x13) + dprint 'I','M',' ','G','O','I','N','G',' ','T','O',' ','P','O','P','\n',0, + goto_next(0xa4) + + // Not popping + label(0x16) + if_self_flag_bankx_eq(CHRFLAG1_CAN_SNIPE, FALSE, BANK_1, /*goto*/ 0x16) + label(0x13) + dprint 'I','M',' ','G','O','I','N','G',' ','T','O',' ','S','N','I','P','E','\n',0, + goto_next(LABEL_SNIPE) + + label(0x16) + dprint 'A','M','B','U','S','H',' ','F','A','I','L','E','D','\n',0, + if_self_flag_bankx_eq(CHRFLAG0_CAN_RETREAT, FALSE, BANK_0, /*goto*/ 0x16) + if_num_times_shot_lt(1, /*goto*/ 0x16) + if_retreat_risk_lt(3, /*goto*/ LABEL_RETREAT) + dprint 'R','I','S','K',' ','F','A','I','L','E','D','\n',0, + label(0x16) + if_self_flag_bankx_eq(CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x91) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x92) + label(0x91) + if_retreat_risk_lt(5, /*goto*/ 0x52) + label(0x92) + goto_next(0x68) + + // + // TRAP/AMBUSH + // + label(0x98) + dprint 'G','O','I','N','G',' ','T','O',' ','T','R','A','P',' ','P','A','D','\n',0, + go_to_target_pad(SPEED_JOG) + + beginloop(0x99) + label(0x16) + if_chr_stopped(/*goto*/ 0x16) + endloop(0x99) + + label(0x16) + dprint 'A','T',' ','T','R','A','P',' ','P','A','D','\n',0, + label(0x9b) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED) + try_chr_kneel_and_shoot_thing(0x0220, 0x0000, /*goto*/ 0x03) + + beginloop(0x03) + if_in_disarm_range(/*goto*/ 0x9a) + cmd0108_if_something(CHR_SELF, CHR_P1P2, FALSE, /*goto*/ 0xee) + goto_next(0xef) + + label(0xee) + consider_coop_for_p1p2_chr(CHR_SELF) + cmd0108_if_something(CHR_SELF, CHR_P1P2, FALSE, /*goto*/ 0xee) + set_target_chr(CHR_P1P2) + if_in_disarm_range(/*goto*/ 0x9a) + label(0xee) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + label(0xef) + endloop(0x03) + + // Aiming only + label(0x9a) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x04) + + beginloop(0x04) + if_chr_stopped(/*goto*/ 0x16) + endloop(0x04) + + label(0x16) + if_self_flag_bankx_eq(CHRFLAG0_CAN_TRAP, TRUE, BANK_0, /*goto*/ 0x16) + if_chr_distance_lt(800, /*goto*/ 0x9c) + label(0x16) + goto_first(0x9b) + + label(0x9c) + unset_self_flag_bankx(CHRFLAG0_00000004, BANK_0) + goto_first(0x1b) + + label(0xa1) + kneel + + beginloop(0xa2) + dprint 'W','A','I','T',' ','F','O','R',' ','A','M','B','\n',0, + if_in_disarm_range(/*goto*/ 0xa3) + dprint 'A','M','B','1','\n',0, + if_distance_to_pad_gt2(200, TARGET_PAD, /*goto*/ 0x13) + dprint 'A','M','B','2','\n',0, + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_enemy_distance_lt_and_los(1200, /*goto*/ 0xee) + endloop(0xa2) + + label(0xee) + if_chr_lost_track_of_target_maybe(/*goto*/ 0x13) + set_return_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + + label(0x13) + dprint 'A','M','B','U','S','H',' ','P','L','A','Y','E','R','\n',0, + set_accuracy(30) + set_self_flag_bankx(CHRFLAG0_02000000, BANK_0) + say_quip(CHR_JOANNA, 0x01, 0x50, 0x02, 0x01, BANK_0, 0x00, 0x00) // "Open fire!","Wipe her out!","Waste her!" + goto_first(0x1b) + + label(0xa3) + dprint 'S','E','E','N','T','A','R','G','\n',0, // seen target + unset_self_flag_bankx(CHRFLAG0_01000000, BANK_0) + goto_first(0x1b) + + // + // POP + // + label(0xa4) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0xa8) + cmd0121_if_something(0xa0b5, /*goto*/ 0xa5) + dprint 'P','O','P','P','E','R',' ','F','A','I','L','E','D','\n',0, + goto_next(0x52) + + label(0xa5) + dprint 'G','O',' ','T','O',' ','P','O','P','P','E','R','\n',0, + set_action(ACTION_GO_TO_COVER, FALSE) + unset_self_flag_bankx(CHRFLAG1_00040000, BANK_1) + unset_self_flag_bankx(CHRFLAG1_00020000, BANK_1) + label(0x16) + cmd0124_run_for_cover_maybe(2) + + beginloop(0xa6) + if_chr_stopped(/*goto*/ 0xa7) + endloop(0xa6) + + label(0xa7) + dprint 'U','N','D','E','R',' ','P','O','P','P','E','R','\n',0, + label(0xa8) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED) + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0xa9) + + beginloop(0xa9) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_near_miss(/*goto*/ 0x13) + if_shot_near_chr(0x00, /*goto*/ 0x13) + if_saw_death(0x00, /*goto*/ 0x13) + if_in_disarm_range(/*goto*/ 0x13) + endloop(0xa9) + + label(0x13) + call_rng + if_rand_gt(150, /*goto*/ 0x13) + if_in_disarm_range(/*goto*/ 0x16) + goto_next(0x13) + + label(0x16) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0xaa) + label(0x13) + kneel + restart_timer + + beginloop(0xab) + set_target_chr(CHR_P1P2) + if_chr_distance_gt(300, /*goto*/ 0x13) + unset_self_flag_bankx(CHRFLAG0_10000000, BANK_0) + goto_first(0x1b) + + label(0x13) + call_rng + if_rand_gt(250, /*goto*/ 0x13) + if_timer_gt(240, /*goto*/ 0x16) + endloop(0xab) + + label(0x13) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED) + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x13) + goto_first(0xa8) + + label(0x13) + if_in_disarm_range(/*goto*/ 0x13) + goto_first(0xa8) + + label(0x13) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x13) + goto_first(0xa8) + + label(0x13) + + beginloop(0xaa) + if_chr_stopped(/*goto*/ 0x16) + endloop(0xaa) + + label(0x16) + goto_first(0xa8) + + // + // SNIPE + // + label(LABEL_SNIPE) + unset_self_flag_bankx(CHRFLAG0_80000000, BANK_0) + yield + if_chr_distance_lt(1000, /*goto*/ 0x16) + if_chr_distance_gt(2500, /*goto*/ 0x14) + + // Distance between 1000 and 2500 + if_angle_to_target_chr_lt(10, /*goto*/ 0x13) + cmd004f(246, /*goto*/ 0x13) + restart_timer + stop_chr + try_face_entity(0x0200, 0x0000, /*goto*/ 0xec) + + beginloop(0xec) + if_angle_to_target_chr_lt(10, /*goto*/ 0x13) + cmd004f(246, /*goto*/ 0x13) + if_timer_gt(60, /*goto*/ 0x13) + endloop(0xec) + + label(0x13) + if_in_disarm_range(/*goto*/ 0x13) + cmd0108_if_something(CHR_SELF, CHR_P1P2, FALSE, /*goto*/ 0xee) + goto_next(0xef) + + label(0xee) + consider_coop_for_p1p2_chr(CHR_SELF) + cmd0108_if_something(CHR_SELF, CHR_P1P2, FALSE, /*goto*/ 0xee) + set_target_chr(CHR_P1P2) + if_in_disarm_range(/*goto*/ 0x13) + label(0xee) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + label(0xef) + goto_first(LABEL_SNIPE) + + // Distance > 2500 + label(0x14) + try_run_to_target_chr(/*goto*/ 0xe1) + + beginloop(0xe1) + if_chr_distance_lt(2500, /*goto*/ 0x15) + endloop(0xe1) + + label(0x15) + goto_first(LABEL_SNIPE) + + label(0x13) + restart_timer + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED) + cmd01ba(0x0022, 0x0000, /*goto*/ 0xdf) + + beginloop(0xdf) + if_chr_distance_lt(1000, /*goto*/ 0x16) + if_timer_gt(300, /*goto*/ 0x13) + endloop(0xdf) + + label(0x13) + if_in_disarm_range(/*goto*/ 0x13) + set_self_flag_bankx(CHRFLAG0_80000000, BANK_0) + stop_chr + goto_first(0x1b) + + label(0x13) + restart_timer + set_accuracy(100) + cmd01ba(0x0200, 0x0000, /*goto*/ 0xe0) + dprint 'S','N','I','P','E','R',' ','N','O',' ','S','H','O','O','T','\n',0, + + beginloop(0xe0) + dprint 'S','N','I','P','E','R',' ',' ','S','H','O','O','T','\n',0, + if_chr_stopped(/*goto*/ 0x13) + endloop(0xe0) + + label(0x13) + set_accuracy(10) + stop_chr + goto_first(LABEL_SNIPE) + + // Distance < 1000 + label(0x16) + stop_chr + unset_self_flag_bankx(CHRFLAG1_CAN_SNIPE, BANK_1) + set_self_flag_bankx(CHRFLAG0_80000000, BANK_0) + restart_timer + + beginloop(0xbd) + if_timer_gt(60, /*goto*/ 0x13) + endloop(0xbd) + + label(0x13) + goto_first(0x1b) + + // + // POPPER/AMBUSH FAILED + // + label(0x52) + dprint 'A','M','B','U','S','H',' ','F','A','I','L','E','D','3','\n',0, + if_player_looking_at_something_maybe(0x3c, 0x01, 0x00, /*goto*/ 0x16) + goto_next(0x68) + + label(0x16) + dprint 'A','M','B','U','S','H',' ','F','A','I','L','E','D','4','\n',0, + if_self_flag_bankx_eq(CHRFLAG0_00000010, TRUE, BANK_0, /*goto*/ 0x16) + goto_next(0x5b) + + label(0x16) + if_self_flag_bankx_eq(CHRFLAG0_00000080, TRUE, BANK_0, /*goto*/ 0x13) + call_rng + if_rand_gt(100, /*goto*/ 0x13) + if_player_looking_at_something_maybe(0x1e, 0x01, 0x00, /*goto*/ 0x16) + label(0x13) + if_within_units_of_sight(30, /*goto*/ 0x5f) + label(0x16) + if_within_units_of_sight(30, /*goto*/ 0x16) + cmd0126_if_something(/*goto*/ 0x69) + if_chr_distance_gt(2000, /*goto*/ 0x61) + goto_next(0x16) + + label(0x69) + if_chr_distance_gt(4000, /*goto*/ 0x61) + label(0x16) + dprint 'O','K','F','O','R','C','O','V','E','R','\n',0, + if_in_disarm_range(/*goto*/ 0x5b) + if_within_units_of_sight(30, /*goto*/ 0x5b) + if_chr_in_view(/*goto*/ 0x5b) + goto_next(0x56) + + label(0x5b) + dprint 'C','O','V','E','R',' ','I','N','V','A','L','I','D','\n',0, + if_self_flag_bankx_eq(CHRFLAG1_00004000, TRUE, BANK_1, /*goto*/ 0x15) + if_self_flag_bankx_eq(CHRFLAG0_00000040, TRUE, BANK_0, /*goto*/ 0x16) + if_self_flag_bankx_eq(CHRFLAG0_08000000, FALSE, BANK_0, /*goto*/ 0x5c) + cmd0121_if_something(0x10b5, /*goto*/ 0x53) + goto_next(0x14) + + label(0x5c) + cmd0121_if_something(0x1035, /*goto*/ 0x53) + goto_next(0x14) + + label(0x16) + cmd0121_if_something(0x0035, /*goto*/ 0x53) + goto_next(0x14) + + label(0x15) + dprint 'S','O','F','T',' ','C','O','V','E','R','\n',0, + if_self_flag_bankx_eq(CHRFLAG0_00000040, TRUE, BANK_0, /*goto*/ 0x16) + if_self_flag_bankx_eq(CHRFLAG0_08000000, FALSE, BANK_0, /*goto*/ 0x5c) + cmd0121_if_something(0x90b5, /*goto*/ 0x53) + goto_next(0x14) + + label(0x5c) + cmd0121_if_something(0x9035, /*goto*/ 0x53) + goto_next(0x14) + + label(0x16) + cmd0121_if_something(0x8035, /*goto*/ 0x53) + goto_next(0x14) + + label(0x14) + goto_next(0x54) + + label(0x53) + dprint 'G','O',' ','T','O',' ','C','O','V','E','R','\n',0, + set_action(ACTION_GO_TO_COVER, FALSE) + unset_self_flag_bankx(CHRFLAG1_00040000, BANK_1) + unset_self_flag_bankx(CHRFLAG1_00020000, BANK_1) + if_self_flag_bankx_eq(CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x16) + cmd0133(ACTION_SYNC_SHOOT, /*goto*/ 0x16) + label(0x16) + say_quip(CHR_JOANNA, 0x02, 0xff, 0x02, 0x01, BANK_0, 0x00, 0x00) + restart_timer + cmd0124_run_for_cover_maybe(ACTION_UNDER_COVER) + + beginloop(0x55) + cmd013d_if_grenade_thrown_nearby_maybe(ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED) + if_self_flag_bankx_eq(CHRFLAG1_00001000, TRUE, BANK_1, /*goto*/ 0x13) + if_self_flag_bankx_eq(CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x16) + if_chr_distance_lt(120, /*goto*/ 0x16) + call_rng + if_rand_lt(128, /*goto*/ 0x13) + if_chr_distance_gt(250, /*goto*/ 0x13) + label(0x16) + if_in_disarm_range(/*goto*/ 0x16) + goto_next(0x13) + + label(0x16) + set_return_function(CHR_SELF, GFUNC_ALERTED) + set_function(CHR_SELF, GFUNC_HAND_COMBAT) + + label(0x13) + if_timer_gt(300, /*goto*/ 0x56) + if_chr_stopped(/*goto*/ 0x56) + endloop(0x55) + + label(0x56) + set_self_flag_bankx(CHRFLAG0_00000010, BANK_0) + dprint 'U','N','D','E','R',' ','C','O','V','E','R','\n',0, + label(0x58) + set_follow_chr(TARGET_CHR) + restart_timer + set_action(ACTION_UNDER_COVER, TRUE) + unset_self_flag_bankx(CHRFLAG1_00040000, BANK_1) + unset_self_flag_bankx(CHRFLAG1_00020000, BANK_1) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED) + try_chr_kneel_and_shoot_thing(0x0220, 0x0000, /*goto*/ 0x59) + + beginloop(0x59) + cmd013d_if_grenade_thrown_nearby_maybe(ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_within_units_of_sight(30, /*goto*/ 0x5f) + if_timer_gt(240, /*goto*/ 0x61) + if_self_flag_bankx_eq(CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x93) + if_field_0x2a1_nonzero(/*goto*/ 0x84) + label(0x93) + label(0x5a) + endloop(0x59) + + label(0x61) + set_target_chr(FOLLOW_CHR) + dprint 'B','R','E','A','K',' ','C','O','V','E','R','\n',0, + if_self_flag_bankx_eq(CHRFLAG0_00008000, TRUE, BANK_0, /*goto*/ 0x66) + label(0x16) + goto_next(0x16) + + label(0x66) + cmd0126_if_something(/*goto*/ 0x69) + if_chr_distance_gt(2000, /*goto*/ 0x16) + goto_next(0x6a) + + label(0x69) + if_chr_distance_gt(4000, /*goto*/ 0x16) + label(0x6a) + if_player_looking_at_something_maybe(0x11, 0x01, 0x00, /*goto*/ 0x63) + label(0x16) + label(0x64) + set_action(ACTION_BREAKING_COVER, FALSE) + unset_self_flag_bankx(CHRFLAG1_00040000, BANK_1) + unset_self_flag_bankx(CHRFLAG1_00020000, BANK_1) + if_self_flag_bankx_eq(CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x16) + cmd0133(ACTION_BREAKING_COVER, /*goto*/ 0x16) + label(0x16) + cmd012f + restart_timer + try_run_to_target_chr(/*goto*/ 0x62) + + beginloop(0x62) + cmd013d_if_grenade_thrown_nearby_maybe(ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE) + if_in_disarm_range(/*goto*/ 0x5f) + cmd0126_if_something(/*goto*/ 0x69) + if_chr_distance_gt(2000, /*goto*/ 0x65) + goto_next(0x16) + + label(0x69) + if_chr_distance_gt(4000, /*goto*/ 0x65) + label(0x16) + if_timer_gt(120, /*goto*/ 0x63) + label(0x65) + endloop(0x62) + + label(0x63) + if_self_flag_bankx_eq(CHRFLAG0_00008000, FALSE, BANK_0, /*goto*/ 0x13) + if_player_looking_at_something_maybe(0x11, 0x01, 0x00, /*goto*/ 0x16) + goto_first(0x64) + + label(0x13) + set_self_flag_bankx(CHRFLAG1_01000000, BANK_1) + goto_next(LABEL_TRACK) + + label(0x16) + stop_chr + yield + cmd013d_if_grenade_thrown_nearby_maybe(ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE) + dprint 'B','A','C','K',' ','T','O',' ','C','O','V','E','R','\n',0, + goto_first(0x52) + + label(0x5f) + cmd012f + dprint 'S','E','E','C','O','V','E','R','\n',0, + set_action(ACTION_SEE_COVER, FALSE) + unset_self_flag_bankx(CHRFLAG1_00040000, BANK_1) + unset_self_flag_bankx(CHRFLAG1_00020000, BANK_1) + if_self_flag_bankx_eq(CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x16) + cmd0133(ACTION_SEE_COVER, /*goto*/ 0x16) + label(0x16) + if_self_flag_bankx_eq(CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x93) + if_field_0x2a1_nonzero(/*goto*/ 0x84) + label(0x93) + if_in_disarm_range(/*goto*/ 0x26) + goto_next(0x87) + + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED) + if_self_flag_bankx_eq(CHRFLAG1_00001000, TRUE, BANK_1, /*goto*/ 0x13) + if_self_flag_bankx_eq(CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x16) + if_chr_distance_lt(120, /*goto*/ 0x16) + call_rng + if_rand_lt(128, /*goto*/ 0x13) + if_chr_distance_gt(250, /*goto*/ 0x13) + label(0x16) + if_in_disarm_range(/*goto*/ 0x16) + goto_next(0x13) + + label(0x16) + set_return_function(CHR_SELF, GFUNC_ALERTED) + set_function(CHR_SELF, GFUNC_HAND_COMBAT) + + label(0x13) + if_self_flag_bankx_eq(CHRFLAG1_00002000, FALSE, BANK_1, /*goto*/ 0x13) + unset_self_flag_bankx(CHRFLAG1_00002000, BANK_1) + goto_next(0x48) + + label(0x13) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED) + call_rng + if_rand_lt(10, /*goto*/ 0x57) + if_rand_gt(64, /*goto*/ 0x16) + if_self_flag_bankx_eq(CHRFLAG1_00000010, FALSE, BANK_1, /*goto*/ 0x13) + cmd0184(0x5a64) + set_self_flag_bankx(CHRFLAG1_00000020, BANK_1) + goto_next(0x60) + + label(0x13) + if_self_flag_bankx_eq(CHRFLAG1_00000004, FALSE, BANK_1, /*goto*/ 0x13) + cmd0184(0x141e) + goto_next(0x60) + + label(0x13) + label(0x16) + call_rng + if_rand_gt(50, /*goto*/ 0x13) + call_rng + if_rand_gt(128, /*goto*/ 0x16) + label(0xbe) + try_roll_and_shoot(/*goto*/ 0x60) + label(0x16) + try_walk_and_shoot(/*goto*/ 0x60) + label(0x13) + call_rng + if_rand_gt(128, /*goto*/ 0x8c) + try_chr_kneel_and_shoot_thing(0x0220, 0x0000, /*goto*/ 0x16) + label(0x8c) + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x16) + label(0x16) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x60) + + beginloop(0x60) + cmd013d_if_grenade_thrown_nearby_maybe(ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE) + if_chr_stopped(/*goto*/ 0x5e) + endloop(0x60) + + label(0x57) + say_quip(CHR_JOANNA, 0x27, 0xfe, 0x03, 0xff, BANK_0, 0x00, 0x00) + do_special_animation(-2) + goto_next(0xe8) + + label(0x5e) + call_rng + if_rand_lt(20, /*goto*/ 0x16) + if_self_flag_bankx_eq(CHRFLAG1_00000020, FALSE, BANK_1, /*goto*/ 0x13) + label(0x16) + set_self_flag_bankx(CHRFLAG1_00000020, BANK_1) + restart_timer + animation(ANIM_RELOAD_0209, 0, -1, 0x1010, CHR_SELF, 2) + + beginloop(0xe8) + if_self_flag_bankx_eq(CHRFLAG1_00000020, FALSE, BANK_1, /*goto*/ 0x16) + if_timer_lt(120, /*goto*/ 0x16) + assign_sound(0x80f6, CHANNEL_7) + play_sound_from_entity(CHANNEL_7, CHR_SELF, 0x0bb8, 0x1770, 0x01) + unset_self_flag_bankx(CHRFLAG1_00000020, BANK_1) + label(0x16) + if_chr_stopped(/*goto*/ 0x13) + endloop(0xe8) + + label(0x13) + if_self_flag_bankx_eq(CHRFLAG0_01000000, FALSE, BANK_0, /*goto*/ 0x13) + unset_self_flag_bankx(CHRFLAG0_01000000, BANK_0) + set_accuracy(0) + label(0x13) + cmd0125_if_or_try_something(/*goto*/ 0x16) + label(0x16) + goto_first(0x1b) + + label(0x54) + dprint 'N','O',' ','C','O','V','E','R','A','V','A','I','L','A','B','L','E','\n',0, + label(0x68) + if_in_disarm_range(/*goto*/ 0x24) + goto_next(0x25) + + label(0x25) + dprint 'H','E','C','A','N','T',' ','S','E','E',' ','M','E','\n',0, + goto_next(0x2f) + + label(0x24) + label(0x4e) + if_self_flag_bankx_eq(CHRFLAG0_CAN_RETREAT, FALSE, BANK_0, /*goto*/ 0x16) + if_self_flag_bankx_eq(CHRFLAG0_CANT_ALERT_GROUP, TRUE, BANK_0, /*goto*/ LABEL_RETREAT) + if_num_times_shot_lt(1, /*goto*/ 0x16) + if_retreat_risk_lt(3, /*goto*/ LABEL_RETREAT) + label(0x16) + if_self_flag_bankx_eq(CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x91) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x4d) + label(0x91) + if_retreat_risk_lt(5, /*goto*/ 0x32) + goto_next(0x4d) + + label(0x4d) + if_self_flag_bankx_eq(CHRFLAG1_00040000, TRUE, BANK_1, /*goto*/ 0x32) + call_rng + if_player_looking_at_something_maybe(0x1e, 0x01, 0x00, /*goto*/ 0x16) + goto_next(0x32) + + label(0x16) + if_rand_lt(128, /*goto*/ 0x32) + label(0x31) + dprint 'F','L','A','N','K','\n',0, + label(0x16) + label(0x13) + dprint 'F','L','A','N','K',' ','B','E','S','T','\n',0, + unset_self_flag_bankx(CHRFLAG1_00020000, BANK_1) + cmd0139(25, 0x02, TRUE) + if_self_flag_bankx_eq(CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x16) + cmd0133(ACTION_FLANK_LEFT, /*goto*/ 0x16) + cmd0133(ACTION_FLANK_RIGHT, /*goto*/ 0x16) + label(0x16) + goto_next(0x33) + + label(LABEL_FLANK_LEFT) + dprint 'F','L','A','N','K',' ','L','E','F','T','\n',0, + set_action(ACTION_FLANK_LEFT, FALSE) + cmd0139(335, 0x02, FALSE) + if_self_flag_bankx_eq(CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x16) + cmd0133(ACTION_FLANK_LEFT, /*goto*/ 0x16) + label(0x16) + goto_next(0x33) + + label(LABEL_FLANK_RIGHT) + dprint 'F','L','A','N','K',' ','R','I','G','H','T','\n',0, + set_action(ACTION_FLANK_RIGHT, FALSE) + if_self_flag_bankx_eq(CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x16) + cmd0133(ACTION_FLANK_RIGHT, /*goto*/ 0x16) + label(0x16) + cmd0139(25, 0x02, FALSE) + label(0x33) + set_self_flag_bankx(CHRFLAG1_00040000, BANK_1) + restart_timer + + beginloop(0x30) + cmd013d_if_grenade_thrown_nearby_maybe(ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED) + if_self_flag_bankx_eq(CHRFLAG1_00001000, TRUE, BANK_1, /*goto*/ 0x13) + if_self_flag_bankx_eq(CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x16) + if_chr_distance_lt(120, /*goto*/ 0x16) + call_rng + if_rand_lt(128, /*goto*/ 0x13) + if_chr_distance_gt(250, /*goto*/ 0x13) + label(0x16) + if_in_disarm_range(/*goto*/ 0x16) + goto_next(0x13) + + label(0x16) + set_return_function(CHR_SELF, GFUNC_ALERTED) + set_function(CHR_SELF, GFUNC_HAND_COMBAT) + + label(0x13) + if_chr_stopped(/*goto*/ 0x32) + if_timer_gt(180, /*goto*/ 0x32) + endloop(0x30) + + // Unreachable - no label + goto_next(0x2f) + if_self_flag_bankx_eq(CHRFLAG1_00020000, TRUE, BANK_1, /*goto*/ 0x2f) + + label(0x32) + if_player_looking_at_something_maybe(0x14, 0x01, 0x00, /*goto*/ 0x16) + goto_next(0x2f) + + label(0x16) + call_rng + if_rand_gt(100, /*goto*/ 0x2f) + if_chr_in_view(/*goto*/ 0x18) + label(0x2f) + dprint 'C',' ','1','\n',0, + if_chr_distance_gt(1300, /*goto*/ LABEL_TRACK) + if_in_disarm_range(/*goto*/ 0x26) + dprint 'C',' ','2','\n',0, + if_self_flag_bankx_eq(CHRFLAG0_CAN_RETREAT, FALSE, BANK_0, /*goto*/ 0x16) + if_self_flag_bankx_eq(CHRFLAG0_CANT_ALERT_GROUP, TRUE, BANK_0, /*goto*/ LABEL_RETREAT) + if_num_times_shot_lt(1, /*goto*/ 0x16) + if_retreat_risk_lt(3, /*goto*/ LABEL_RETREAT) + label(0x16) + if_self_flag_bankx_eq(CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x91) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x4d) + label(0x91) + if_retreat_risk_lt(5, /*goto*/ 0x51) + label(0x4d) + dprint 'C',' ','3','\n',0, + if_self_flag_bankx_eq(CHRFLAG0_00008000, TRUE, BANK_0, /*goto*/ 0x48) + goto_next(LABEL_TRACK) + + label(0x51) + if_player_looking_at_something_maybe(0x15, 0x01, 0x00, /*goto*/ 0x16) + goto_next(LABEL_TRACK) + + // + // GRENADE THROWING + // + label(0x16) + dprint 'C',' ','4','\n',0, + kneel + yield + cmd013d_if_grenade_thrown_nearby_maybe(ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE) + label(0x48) + dprint 'G','R','E','N','A','D','E','P','\n',0, + set_grenade_probability_out_of_255(255) + label(0x16) + if_self_flag_bankx_eq(CHRFLAG0_CAN_THROW_GRENADES, TRUE, BANK_0, /*goto*/ 0x16) + goto_next(0x4c) + + label(0x16) + if_chr_distance_lt(500, /*goto*/ 0x4c) + dprint 'G','R','E','N','A','D','E','\n',0, + restart_timer + if_any_chr_doing_action(ACTION_THROW_GRENADE, /*goto*/ 0x4c) + dprint 'A','C','T','I','O','N',' ','G','R','E','N','A','D','E','\n',0, + set_action(ACTION_THROW_GRENADE, FALSE) + unset_self_flag_bankx(CHRFLAG1_00040000, BANK_1) + unset_self_flag_bankx(CHRFLAG1_00020000, BANK_1) + consider_throwing_grenade(0x0200, 0x0000, /*goto*/ 0x46) + goto_next(0x4c) + + dprint 'G','R','E','N','A','D','E','F','A','I','L','\n',0, + + beginloop(0x46) + if_chr_stopped(/*goto*/ 0x16) + endloop(0x46) + + label(0x16) + if_self_flag_bankx_eq(CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x47) + cmd0133(ACTION_THROW_GRENADE, /*goto*/ 0x47) + + beginloop(0x47) + say_quip(CHR_JOANNA, 0x05, 0xff, 0x07, 0x00, BANK_0, 0x00, 0x00) + if_chr_stopped(/*goto*/ 0x4a) + endloop(0x47) + + label(0x4a) + if_timer_lt(60, /*goto*/ 0x49) + dprint 'G','R','E','N','A','D','E','S','T','O','P','\n',0, + set_action(ACTION_GRENADE_STOP, FALSE) + unset_self_flag_bankx(CHRFLAG1_00040000, BANK_1) + unset_self_flag_bankx(CHRFLAG1_00020000, BANK_1) + restart_timer + try_face_entity(0x0200, 0x0000, /*goto*/ 0x4b) + + beginloop(0x4b) + if_within_units_of_sight(30, /*goto*/ 0x42) + if_chr_in_view(/*goto*/ 0x42) + cmd0108_if_something(CHR_SELF, CHR_P1P2, FALSE, /*goto*/ 0xee) + goto_next(0xef) + + label(0xee) + consider_coop_for_p1p2_chr(CHR_SELF) + cmd0108_if_something(CHR_SELF, CHR_P1P2, FALSE, /*goto*/ 0xee) + set_target_chr(CHR_P1P2) + if_within_units_of_sight(30, /*goto*/ 0x42) + if_chr_in_view(/*goto*/ 0x42) + label(0xee) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + label(0xef) + if_timer_gt(240, /*goto*/ 0x49) + endloop(0x4b) + + label(0x49) + label(0x4c) + restart_timer + dprint 'W','A','I','T','I','N','G','\n',0, + set_action(ACTION_WAIT, TRUE) + unset_self_flag_bankx(CHRFLAG1_00040000, BANK_1) + unset_self_flag_bankx(CHRFLAG1_00020000, BANK_1) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED) + try_chr_kneel_and_shoot_thing(0x0220, 0x0000, /*goto*/ 0x40) + + beginloop(0x40) + cmd013d_if_grenade_thrown_nearby_maybe(ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE) + if_self_flag_bankx_eq(CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x91) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x16) + label(0x91) + if_retreat_risk_lt(5, /*goto*/ 0x41) + label(0x16) + if_self_flag_bankx_eq(CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x93) + if_field_0x2a1_nonzero(/*goto*/ 0x84) + label(0x93) + if_within_units_of_sight(30, /*goto*/ 0x42) + cmd0108_if_something(CHR_SELF, CHR_P1P2, FALSE, /*goto*/ 0xee) + goto_next(0xef) + label(0xee) + consider_coop_for_p1p2_chr(CHR_SELF) + cmd0108_if_something(CHR_SELF, CHR_P1P2, FALSE, /*goto*/ 0xee) + set_target_chr(CHR_P1P2) + if_within_units_of_sight(30, /*goto*/ 0x42) + label(0xee) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + label(0xef) + if_timer_gt(600, /*goto*/ 0x3d) + if_timer_gt(60, /*goto*/ 0x16) + label(0x16) + if_player_looking_at_something_maybe(0x15, 0x01, 0x00, /*goto*/ 0x16) + goto_next(LABEL_TRACK) + label(0x16) + if_chr_distance_gt(2000, /*goto*/ 0x41) + endloop(0x40) + + label(0x42) + dprint 'S','E','E','W','A','I','T','\n',0, + set_action(ACTION_SEEWAIT, FALSE) + unset_self_flag_bankx(CHRFLAG1_00040000, BANK_1) + unset_self_flag_bankx(CHRFLAG1_00020000, BANK_1) + dprint 'S','E','E','W','A','I','T','2','\n',0, + if_self_flag_bankx_eq(CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x16) + cmd0133(ACTION_SEEWAIT, /*goto*/ 0x16) + label(0x16) + dprint 'S','E','E','W','A','I','T','3','\n',0, + if_in_disarm_range(/*goto*/ 0x8a) + restart_timer + try_run_to_target_chr(/*goto*/ 0x89) + + beginloop(0x89) + cmd013d_if_grenade_thrown_nearby_maybe(ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE) + if_self_flag_bankx_eq(CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x91) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x16) + label(0x91) + if_retreat_risk_lt(5, /*goto*/ 0x41) + label(0x16) + if_in_disarm_range(/*goto*/ 0x8a) + if_timer_gt(60, /*goto*/ 0x29) + endloop(0x89) + + label(0x8a) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED) + if_self_flag_bankx_eq(CHRFLAG1_00001000, TRUE, BANK_1, /*goto*/ 0x13) + if_self_flag_bankx_eq(CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x16) + if_chr_distance_lt(120, /*goto*/ 0x16) + call_rng + if_rand_lt(128, /*goto*/ 0x13) + if_chr_distance_gt(250, /*goto*/ 0x13) + label(0x16) + if_in_disarm_range(/*goto*/ 0x16) + goto_next(0x13) + + label(0x16) + set_return_function(CHR_SELF, GFUNC_ALERTED) + set_function(CHR_SELF, GFUNC_HAND_COMBAT) + + label(0x13) + if_self_flag_bankx_eq(CHRFLAG1_00002000, FALSE, BANK_1, /*goto*/ 0x13) + unset_self_flag_bankx(CHRFLAG1_00002000, BANK_1) + goto_first(0x48) + + label(0x13) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED) + call_rng + if_rand_lt(10, /*goto*/ 0x57) + if_rand_gt(64, /*goto*/ 0x16) + if_self_flag_bankx_eq(CHRFLAG1_00000010, FALSE, BANK_1, /*goto*/ 0x13) + cmd0184(0x5a64) + set_self_flag_bankx(CHRFLAG1_00000020, BANK_1) + goto_next(0x43) + + label(0x13) + if_self_flag_bankx_eq(CHRFLAG1_00000004, FALSE, BANK_1, /*goto*/ 0x13) + cmd0184(0x141e) + goto_next(0x43) + + label(0x13) + label(0x16) + call_rng + if_rand_gt(50, /*goto*/ 0x13) + call_rng + if_rand_gt(128, /*goto*/ 0x16) + label(0xbe) + try_roll_and_shoot(/*goto*/ 0x43) + label(0x16) + try_walk_and_shoot(/*goto*/ 0x43) + label(0x13) + call_rng + if_rand_gt(128, /*goto*/ 0x8c) + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x16) + label(0x8c) + try_chr_kneel_and_shoot_thing(0x0220, 0x0000, /*goto*/ 0x16) + label(0x16) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x43) + + beginloop(0x43) + cmd013d_if_grenade_thrown_nearby_maybe(ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE) + if_chr_stopped(/*goto*/ 0x29) + endloop(0x43) + + label(0x57) + say_quip(CHR_JOANNA, 0x27, 0xfe, 0x03, 0xff, BANK_0, 0x00, 0x00) + do_special_animation(-2) + goto_next(0xe9) + + label(0x29) + if_self_flag_bankx_eq(CHRFLAG0_01000000, FALSE, BANK_0, /*goto*/ 0x13) + unset_self_flag_bankx(CHRFLAG0_01000000, BANK_0) + set_accuracy(0) + label(0x13) + if_chr_injured_target(CHR_SELF, /*goto*/ 0x13) + say_quip(CHR_JOANNA, 0x16, 0x19, 0x03, 0x00, BANK_0, 0x00, 0x00) + say_quip(CHR_JOANNA, 0x17, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00) + goto_next(0x16) + + label(0x13) + say_quip(CHR_JOANNA, 0x15, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00) + say_quip(CHR_JOANNA, 0x15, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00) + label(0x16) + call_rng + if_rand_lt(20, /*goto*/ 0x16) + if_self_flag_bankx_eq(CHRFLAG1_00000020, FALSE, BANK_1, /*goto*/ 0x13) + label(0x16) + set_self_flag_bankx(CHRFLAG1_00000020, BANK_1) + restart_timer + animation(ANIM_RELOAD_0209, 0, -1, 0x1010, CHR_SELF, 2) + label(0xe9) + yield + if_self_flag_bankx_eq(CHRFLAG1_00000020, FALSE, BANK_1, /*goto*/ 0x16) + if_timer_lt(120, /*goto*/ 0x16) + assign_sound(0x80f6, CHANNEL_6) + play_sound_from_entity(CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01) + unset_self_flag_bankx(CHRFLAG1_00000020, BANK_1) + label(0x16) + if_chr_stopped(/*goto*/ 0x13) + goto_first(0xe9) + + label(0x13) + label(0x8b) + dprint 'B','A','C','K','O','F','F','\n',0, + if_player_looking_at_something_maybe(0x14, 0x01, 0x00, /*goto*/ 0x13) + goto_next(0x50) + + label(0x13) + if_self_flag_bankx_eq(CHRFLAG0_CAN_BACKOFF, TRUE, BANK_0, /*goto*/ 0x16) + goto_next(0x50) + + label(0x16) + set_action(ACTION_BACKOFF, FALSE) + unset_self_flag_bankx(CHRFLAG1_00040000, BANK_1) + unset_self_flag_bankx(CHRFLAG1_00020000, BANK_1) + restart_timer + retreat(0x02, 0x01) + cmd012f + + beginloop(0x4f) + cmd013d_if_grenade_thrown_nearby_maybe(ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE) + if_timer_gt(120, /*goto*/ 0x50) + if_chr_stopped(/*goto*/ 0x50) + endloop(0x4f) + + label(0x50) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED) + if_self_flag_bankx_eq(CHRFLAG1_00001000, TRUE, BANK_1, /*goto*/ 0x13) + if_self_flag_bankx_eq(CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x16) + if_chr_distance_lt(120, /*goto*/ 0x16) + call_rng + if_rand_lt(128, /*goto*/ 0x13) + if_chr_distance_gt(250, /*goto*/ 0x13) + label(0x16) + if_in_disarm_range(/*goto*/ 0x16) + goto_next(0x13) + + label(0x16) + set_return_function(CHR_SELF, GFUNC_ALERTED) + set_function(CHR_SELF, GFUNC_HAND_COMBAT) + + label(0x13) + cmd013d_if_grenade_thrown_nearby_maybe(ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED) + goto_next(0x16) + + label(0x13) + set_return_function(CHR_SELF, GFUNC_ALERTED) + set_alertness(0) + set_function(CHR_SELF, GFUNC_SEARCH_FOR_PLAYER) + + if_self_flag_bankx_eq(CHRFLAG0_04000000, TRUE, BANK_0, /*goto*/ 0x16) + call_rng + if_rand_gt(196, /*goto*/ 0x16) + goto_next(LABEL_TRACK) + + label(0x16) + goto_first(0x1b) + + label(0x3d) + dprint 'W','A','I','T','T','I','M','E','O','U','T','\n',0, + if_self_flag_bankx_eq(CHRFLAG0_CAN_TRAP, FALSE, BANK_0, /*goto*/ 0x13) + goto_first(0x1b) + + label(0x13) + set_action(ACTION_16, FALSE) + unset_self_flag_bankx(CHRFLAG1_00040000, BANK_1) + unset_self_flag_bankx(CHRFLAG1_00020000, BANK_1) + if_self_flag_bankx_eq(CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x16) + cmd0133(ACTION_16, /*goto*/ 0x16) + label(0x16) + goto_next(0x3f) + + // Unreachable - no label + dprint 'W','A','I','T','M','O','V','E','\n',0, + try_run_sideways(/*goto*/ 0x3e) + + beginloop(0x3e) + cmd013d_if_grenade_thrown_nearby_maybe(ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE) + if_chr_stopped(/*goto*/ 0x3f) + endloop(0x3e) + + label(0x3f) + goto_first(0x1b) + + label(0x41) + goto_first(0x1b) + + label(LABEL_TRACK) + set_follow_chr(TARGET_CHR) + dprint 'T','R','A','C','K','\n',0, + set_action(ACTION_FOLLOW, FALSE) + unset_self_flag_bankx(CHRFLAG1_00040000, BANK_1) + unset_self_flag_bankx(CHRFLAG1_00020000, BANK_1) + restart_timer + label(0xf7) + try_run_to_target_chr(/*goto*/ 0x35) + + beginloop(0x35) + if_chr_flag_bank2(CHR_SELF, CHRFLAG2_00002000, /*goto*/ 0x13) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_BUDDY_PLACED, /*goto*/ 0x01) + label(0x13) + cmd013d_if_grenade_thrown_nearby_maybe(ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED) + if_self_flag_bankx_eq(CHRFLAG1_00001000, TRUE, BANK_1, /*goto*/ 0x13) + if_self_flag_bankx_eq(CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x16) + if_chr_distance_lt(120, /*goto*/ 0x16) + call_rng + if_rand_lt(128, /*goto*/ 0x13) + if_chr_distance_gt(250, /*goto*/ 0x13) + label(0x16) + if_in_disarm_range(/*goto*/ 0x16) + goto_next(0x13) + + label(0x16) + set_return_function(CHR_SELF, GFUNC_ALERTED) + set_function(CHR_SELF, GFUNC_HAND_COMBAT) + + label(0x13) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_distance_gt(1300, /*goto*/ 0x13) + if_self_flag_bankx_eq(CHRFLAG1_01000000, TRUE, BANK_1, /*goto*/ 0x16) + if_self_flag_bankx_eq(CHRFLAG1_02000000, FALSE, BANK_1, /*goto*/ 0x16) + if_player_looking_at_something_maybe(0x15, 0x01, 0x00, /*goto*/ 0x3b) + goto_next(0x16) + + label(0xc8) + unset_self_flag_bankx(CHRFLAG1_02000000, BANK_1) + goto_first(0x31) + + label(0x16) + if_in_disarm_range(/*goto*/ 0x26) + label(0x13) + dprint 'N','O','S','E','E','P','L','A','Y','E','R','\n',0, + if_self_flag_bankx_eq(CHRFLAG0_AIVSAI, FALSE, BANK_0, /*goto*/ 0x13) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x16) + goto_next(0x13) + + label(0x16) + if_chr_lost_track_of_target_maybe(/*goto*/ 0x13) + set_return_function(CHR_SELF, GFUNC_UNALERTED) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + + label(0x13) + if_chr_distance_gt(1300, /*goto*/ 0x3c) + if_self_flag_bankx_eq(CHRFLAG0_CAN_RETREAT, FALSE, BANK_0, /*goto*/ 0x16) + if_self_flag_bankx_eq(CHRFLAG0_CANT_ALERT_GROUP, TRUE, BANK_0, /*goto*/ LABEL_RETREAT) + if_num_times_shot_lt(1, /*goto*/ 0x16) + if_retreat_risk_lt(3, /*goto*/ LABEL_RETREAT) + label(0x16) + if_self_flag_bankx_eq(CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x91) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x4d) + label(0x91) + if_retreat_risk_lt(5, /*goto*/ 0x39) + label(0x4d) + if_self_flag_bankx_eq(CHRFLAG0_00008000, TRUE, BANK_0, /*goto*/ 0x3a) + goto_next(0x3c) + + label(0x39) + if_self_flag_bankx_eq(CHRFLAG1_01000000, TRUE, BANK_1, /*goto*/ 0x3c) + if_player_looking_at_something_maybe(0x15, 0x01, 0x00, /*goto*/ 0x3b) + if_chr_distance_lt(1300, /*goto*/ 0x3b) + goto_next(0x17) + + label(0x3a) + if_self_flag_bankx_eq(CHRFLAG1_01000000, TRUE, BANK_1, /*goto*/ 0x3c) + if_player_looking_at_something_maybe(0x15, 0x01, 0x00, /*goto*/ 0x3b) + goto_next(0x3c) + + label(0x3c) + dprint 'N','O','A','N','G','\n',0, + label(0x17) + if_chr_stopped(/*goto*/ 0x13) + if_timer_gt(600, /*goto*/ 0x36) + endloop(0x35) + + label(0x13) + dprint 'C','O','M','P','L','E','T','E','D','\n',0, + set_target_chr(FOLLOW_CHR) + goto_first(0xf7) + + label(0x36) + set_target_chr(FOLLOW_CHR) + dprint 'E','N','D',' ','T','R','A','C','K','\n',0, + set_alertness(0) + set_return_function(CHR_SELF, GFUNC_ALERTED) + set_function(CHR_SELF, GFUNC_SEARCH_FOR_PLAYER) + goto_first(0x1b) + + label(0x3b) + goto_first(0x1b) + + label(0x37) + goto_first(0x1b) + + // + // SYNC SHOOT + // + label(0x87) + dprint 'S','Y','N','C',' ','S','H','O','O','T','\n',0, + cmd012f + set_action(ACTION_SYNC_SHOOT, FALSE) + unset_self_flag_bankx(CHRFLAG1_00040000, BANK_1) + unset_self_flag_bankx(CHRFLAG1_00020000, BANK_1) + restart_timer + try_run_to_target_chr(/*goto*/ 0x85) + + beginloop(0x85) + cmd013d_if_grenade_thrown_nearby_maybe(ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED) + if_self_flag_bankx_eq(CHRFLAG1_00001000, TRUE, BANK_1, /*goto*/ 0x13) + if_self_flag_bankx_eq(CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x16) + if_chr_distance_lt(120, /*goto*/ 0x16) + call_rng + if_rand_lt(128, /*goto*/ 0x13) + if_chr_distance_gt(250, /*goto*/ 0x13) + label(0x16) + if_in_disarm_range(/*goto*/ 0x16) + goto_next(0x13) + + label(0x16) + set_return_function(CHR_SELF, GFUNC_ALERTED) + set_function(CHR_SELF, GFUNC_HAND_COMBAT) + + label(0x13) + if_in_disarm_range(/*goto*/ 0x26) + if_timer_gt(120, /*goto*/ 0x86) + endloop(0x85) + + label(0x86) + goto_first(0x1b) + + label(0x26) + dprint 'I','C','A','N','S','E',' ','P','L','A','Y','E','R','\n',0, + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED) + if_self_flag_bankx_eq(CHRFLAG1_00001000, TRUE, BANK_1, /*goto*/ 0x13) + if_self_flag_bankx_eq(CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x16) + if_chr_distance_lt(120, /*goto*/ 0x16) + call_rng + if_rand_lt(128, /*goto*/ 0x13) + if_chr_distance_gt(250, /*goto*/ 0x13) + label(0x16) + if_in_disarm_range(/*goto*/ 0x16) + goto_next(0x13) + + label(0x16) + set_return_function(CHR_SELF, GFUNC_ALERTED) + set_function(CHR_SELF, GFUNC_HAND_COMBAT) + + label(0x13) + dprint 't','a','r','g','e','t','\n',0, + restart_timer + stop_chr + set_action(ACTION_SYNC_SHOOT, FALSE) + unset_self_flag_bankx(CHRFLAG1_00040000, BANK_1) + unset_self_flag_bankx(CHRFLAG1_00020000, BANK_1) + if_self_flag_bankx_eq(CHRFLAG1_00002000, FALSE, BANK_1, /*goto*/ 0x13) + unset_self_flag_bankx(CHRFLAG1_00002000, BANK_1) + goto_first(0x48) + + label(0x13) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ LABEL_CLOAKED) + call_rng + if_rand_lt(10, /*goto*/ 0x57) + if_rand_gt(64, /*goto*/ 0x16) + if_self_flag_bankx_eq(CHRFLAG1_00000010, FALSE, BANK_1, /*goto*/ 0x13) + cmd0184(0x5a64) + set_self_flag_bankx(CHRFLAG1_00000020, BANK_1) + goto_next(0x44) + + label(0x13) + if_self_flag_bankx_eq(CHRFLAG1_00000004, FALSE, BANK_1, /*goto*/ 0x13) + cmd0184(0x141e) + goto_next(0x44) + + label(0x13) + label(0x16) + call_rng + if_rand_gt(50, /*goto*/ 0x13) + call_rng + if_rand_gt(128, /*goto*/ 0x16) + label(0xbe) + try_roll_and_shoot(/*goto*/ 0x44) + label(0x16) + try_walk_and_shoot(/*goto*/ 0x44) + label(0x13) + call_rng + if_rand_gt(128, /*goto*/ 0x8c) + try_chr_kneel_and_shoot_thing(0x0220, 0x0000, /*goto*/ 0x28) + label(0x8c) + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x28) + dprint 'S','H','O','O','T','F','A','I','L','E','D','\n',0, + yield + cmd013d_if_grenade_thrown_nearby_maybe(ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE) + goto_first(0x8b) + + label(0x28) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x44) + goto_next(0x67) + + label(0x44) + say_quip(CHR_JOANNA, 0x00, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00) + say_quip(CHR_JOANNA, 0x01, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00) + + beginloop(0x45) + cmd013d_if_grenade_thrown_nearby_maybe(ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE) + if_chr_stopped(/*goto*/ 0x2a) + endloop(0x45) + + label(0x57) + say_quip(CHR_JOANNA, 0x27, 0xfe, 0x03, 0xff, BANK_0, 0x00, 0x00) + do_special_animation(-2) + goto_next(0xea) + label(0x2a) + if_self_flag_bankx_eq(CHRFLAG0_01000000, FALSE, BANK_0, /*goto*/ 0x13) + unset_self_flag_bankx(CHRFLAG0_01000000, BANK_0) + set_accuracy(0) + label(0x13) + if_chr_injured_target(CHR_SELF, /*goto*/ 0x13) + say_quip(CHR_JOANNA, 0x16, 0x19, 0x03, 0x00, BANK_0, 0x00, 0x00) + say_quip(CHR_JOANNA, 0x17, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00) + goto_next(0x16) + + label(0x13) + say_quip(CHR_JOANNA, 0x15, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00) + say_quip(CHR_JOANNA, 0x15, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00) + label(0x16) + call_rng + if_rand_lt(20, /*goto*/ 0x16) + if_self_flag_bankx_eq(CHRFLAG1_00000020, FALSE, BANK_1, /*goto*/ 0x13) + label(0x16) + set_self_flag_bankx(CHRFLAG1_00000020, BANK_1) + restart_timer + animation(ANIM_RELOAD_0209, 0, -1, 0x1010, CHR_SELF, 2) + label(0xea) + yield + if_self_flag_bankx_eq(CHRFLAG1_00000020, FALSE, BANK_1, /*goto*/ 0x16) + if_timer_lt(120, /*goto*/ 0x16) + assign_sound(0x80f6, CHANNEL_6) + play_sound_from_entity(CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01) + unset_self_flag_bankx(CHRFLAG1_00000020, BANK_1) + label(0x16) + if_chr_stopped(/*goto*/ 0x13) + goto_first(0xea) + + label(0x13) + dprint 'L','E','F','T','S','H','O','O','T','\n',0, + goto_first(0x8b) + + label(0x67) + dprint 'S','H','O','T','N','O','W','O','R','K','\n',0, + label(0x2b) + goto_first(0x8b) + + // + // DODGE + // + label(0x18) + dprint 'D','o','d','g','e','\n',0, + set_action(ACTION_DODGE, FALSE) + unset_self_flag_bankx(CHRFLAG1_00040000, BANK_1) + set_self_flag_bankx(CHRFLAG1_00020000, BANK_1) + if_self_flag_bankx_eq(CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x16) + cmd0133(ACTION_DODGE, /*goto*/ 0x16) + label(0x16) + call_rng + if_rand_lt(128, /*goto*/ 0x2d) + try_hop_sideways(/*goto*/ 0x13) + goto_next(0x2e) + + label(0x2d) + try_jump_sideways(/*goto*/ 0x13) + goto_next(0x2e) + + label(0x13) + set_self_flag_bankx(CHRFLAG1_00020000, BANK_1) + + beginloop(0x2c) + cmd013d_if_grenade_thrown_nearby_maybe(ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE) + if_chr_stopped(/*goto*/ 0x2e) + endloop(0x2c) + + label(0x2e) + dprint 'D','O','D','G','E',' ','D','O','N','E','\n',0, + call_rng + if_rand_lt(128, /*goto*/ 0x16) + goto_first(0x87) + + label(0x16) + goto_first(0x1b) + + // + // RETREAT + // + label(LABEL_RETREAT) + set_chr_dodge_rating(0, 0x00) + set_chr_dodge_rating(1, 0x00) + dprint 'R','O','U','T','E','D','\n',0, + set_action(ACTION_RETREAT, FALSE) + unset_self_flag_bankx(CHRFLAG1_00040000, BANK_1) + unset_self_flag_bankx(CHRFLAG1_00020000, BANK_1) + say_quip(CHR_JOANNA, 0x04, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00) // "Go to plan B","Get the hell out of here!","Retreat!" + try_target_chr_in_same_group(/*goto*/ 0x95) + if_self_flag_bankx_eq(CHRFLAG1_00000002, TRUE, BANK_1, /*goto*/ 0x16) + label(0x16) + if_self_flag_bankx_eq(CHRFLAG0_00200000, TRUE, BANK_0, /*goto*/ 0x16) + unset_self_flag_bankx(CHRFLAG0_CAN_RETREAT, BANK_0) + unset_self_flag_bankx(CHRFLAG0_CANT_ALERT_GROUP, BANK_0) + goto_first(0x1b) + + // + // RUNNING + // + label(0x16) + dprint 'R','U','N','N','I','N','G','\n',0, + set_target_chr(CHR_P1P2) + retreat(0x02, 0x01) + + beginloop(0x6c) + cmd013d_if_grenade_thrown_nearby_maybe(ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE) + if_chr_distance_gt(300, /*goto*/ 0x16) + if_chr_in_view(/*goto*/ 0x70) + label(0x16) + if_chr_distance_gt(3000, /*goto*/ 0x6d) + endloop(0x6c) + + label(0x6d) + stop_chr + + beginloop(0x6e) + cmd013d_if_grenade_thrown_nearby_maybe(ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_distance_lt(3000, /*goto*/ 0x6f) + endloop(0x6e) + + label(0x6f) + goto_first(LABEL_RETREAT) + + // + // SURRENDER + // + label(0x70) + if_chr_dying(CHR_SELF, /*goto*/ 0x88) + set_action(ACTION_SURRENDER, FALSE) + unset_self_flag_bankx(CHRFLAG1_00040000, BANK_1) + unset_self_flag_bankx(CHRFLAG1_00020000, BANK_1) + say_quip(CHR_JOANNA, 0x08, 0xfe, 0x0a, 0xff, BANK_0, 0x00, 0x00) // "Please! Don't shoot me!","I give up!","You win! I surrender" + restart_timer + surrender + + beginloop(0x71) + if_chr_dying(CHR_SELF, /*goto*/ 0x88) + if_timer_gt(300, /*goto*/ 0x16) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_in_view(/*goto*/ 0x72) + if_bitcheck_in_position_struct(/*goto*/ 0x13) + endloop(0x71) + + // Out of view for 5 seconds - remove + label(0x16) + drop_concealed_items(CHR_SELF) + yield + remove_chr(CHR_SELF) + label(0x13) + restart_timer + goto_first(0x71) + + label(0x72) + say_quip(CHR_JOANNA, 0x08, 0x23, 0x0a, 0x00, BANK_0, 0x00, 0x00) + restart_timer + goto_first(0x71) + + label(0x95) + unset_self_flag_bankx(CHRFLAG0_CAN_RETREAT, BANK_0) + unset_self_flag_bankx(CHRFLAG0_CANT_ALERT_GROUP, BANK_0) + try_run_to_chr(FOLLOW_CHR, /*goto*/ 0x96) + + beginloop(0x96) + cmd013d_if_grenade_thrown_nearby_maybe(ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE) + if_chr_death_animation_finished(FOLLOW_CHR, /*goto*/ 0x84) + if_chr_unloaded(FOLLOW_CHR, /*goto*/ 0x84) + if_detected_chr(FOLLOW_CHR, /*goto*/ 0x97) + if_chr_stopped(/*goto*/ 0x97) + endloop(0x96) + + label(0x97) + dprint 'W','A','R','N',' ','F','R','I','E','N','D','S','\n',0, + say_quip(CHR_JOANNA, 0x10, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00) + set_group_alertness(100) + label(0x84) + goto_first(0x1b) + + label(0x88) + set_function(CHR_SELF, GFUNC_IDLE) + + // + // RUN FOR ALARM + // + label(LABEL_RUN_FOR_ALARM) + set_action(ACTION_WARN_OTHERS, FALSE) + unset_self_flag_bankx(CHRFLAG1_00040000, BANK_1) + unset_self_flag_bankx(CHRFLAG1_00020000, BANK_1) + say_quip(CHR_JOANNA, 0x22, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "Trigger the alarm" + go_to_target_pad(SPEED_JOG) + + beginloop(0x9d) + cmd013d_if_grenade_thrown_nearby_maybe(ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE) + if_chr_stopped(/*goto*/ 0x16) + endloop(0x9d) + + label(0x16) + animation(ANIM_PUSH_BUTTON, 0, 193, 0x1010, CHR_SELF, 2) + restart_timer + + beginloop(0xed) + if_timer_gt(70, /*goto*/ 0x16) + endloop(0xed) + + label(0x16) + activate_alarm + + beginloop(0x9e) + cmd013d_if_grenade_thrown_nearby_maybe(ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE) + if_chr_stopped(/*goto*/ 0x16) + endloop(0x9e) + + label(0x16) + goto_first(0x1b) + + // + // FLEE GRENADE + // + label(LABEL_FLEE_GRENADE) + set_return_function(CHR_SELF, GFUNC_ALERTED) + set_function(CHR_SELF, GFUNC_FLEE_FROM_GRENADE) + + // + // CLOAKED + // + label(LABEL_CLOAKED) + set_alertness(0) + set_return_function(CHR_SELF, GFUNC_ALERTED) + set_function(CHR_SELF, GFUNC_SEARCH_FOR_PLAYER) + + label(0x01) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_00002000) + stop_chr + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x16) + if_chr_dying(CHR_SELF, /*goto*/ 0x16) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x16) + if_chr_sees_player(/*goto*/ 0x13) + set_alertness(0) + set_self_flag_bankx(CHRFLAG1_10000000, BANK_1) + set_return_function(CHR_SELF, GFUNC_UNALERTED) + set_function(CHR_SELF, GFUNC_SEARCH_FOR_PLAYER) + + label(0x13) + set_function(CHR_SELF, GFUNC_ALERTED) + + label(0x0a) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func000a_do_idle_animation[] = { + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_00000080) + if_chr_flag_bank2(CHR_SELF, CHRFLAG2_TRIGGER_BUDDY_WARP, /*goto*/ 0x13) + if_chr_idle_action_eq(IDLEACTION_SITTING_TYPING, /*goto*/ 0x16) + if_chr_idle_action_eq(IDLEACTION_SITTING_DORMANT, /*goto*/ 0x16) + goto_next(0x13) + + label(0x16) + set_chr_health(CHR_SELF, 1) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_TRIGGER_BUDDY_WARP) + + label(0x13) + set_onshot_function(GFUNC_UNALERTED) + label(0x00) + if_chr_idle_action_eq(IDLEACTION_STANDING, /*goto*/ 0x03) + if_chr_idle_action_eq(IDLEACTION_SITTING_TYPING, /*goto*/ 0x04) + if_chr_idle_action_eq(IDLEACTION_SITTING_DORMANT, /*goto*/ 0x05) + if_chr_idle_action_eq(IDLEACTION_OPERATING, /*goto*/ 0x06) + if_chr_idle_action_eq(IDLEACTION_OPERATING_PAD, /*goto*/ 0x07) + stop_chr + return + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x03) + dprint 'S','T','A','N','D','I','N','G','\n',0, + animation(ANIM_OPERATE_0204, 0, -1, 0x1010, CHR_SELF, 2) + goto_next(0x0c) + + label(0x04) + dprint 'S','I','T','T','I','N','G',' ','T','Y','P','I','N','G','\n',0, + set_chr_special_death_animation(CHR_SELF, 0x06) + animation(ANIM_SITTING_TYPING, 0, -1, 0x1400, CHR_SELF, 2) + goto_next(0x0c) + + label(0x05) + dprint 'S','I','T','T','I','N','G','\n',0, + set_chr_special_death_animation(CHR_SELF, 0x06) + animation(ANIM_SITTING_DORMANT, 0, -1, 0x1400, CHR_SELF, 2) + goto_next(0x0c) + + label(0x07) + dprint 'N','A','T',' ','5','\n',0, + restart_timer + try_face_entity(ENTITYTYPE_PAD, TARGET_PAD, /*goto*/ 0xfa) + + beginloop(0xfa) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0xfa) + + label(0x06) + dprint 'O','P','E','R','A','T','I','N','G','\n',0, + call_rng + if_rand_gt(85, /*goto*/ 0x28) + if_rand_gt(170, /*goto*/ 0x29) + animation(ANIM_OPERATE_0221, 0, -1, 0x1000, CHR_SELF, 2) + goto_next(0x0c) + + label(0x28) + animation(ANIM_OPERATE_0222, 0, -1, 0x1000, CHR_SELF, 2) + goto_next(0x0c) + + label(0x29) + animation(ANIM_OPERATE_0223, 0, -1, 0x1000, CHR_SELF, 2) + goto_next(0x0c) + + label(0x0c) + return + + // Nothing jumps to here or below + beginloop(0x15) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x13) + if_self_flag_bankx_eq(CHRFLAG0_AIVSAI, FALSE, BANK_0, /*goto*/ 0x16) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + goto_next(0x12) + + label(0x16) + endloop(0x15) + + // Stand up + label(0x13) + animation(ANIM_STAND_UP_FROM_SITTING, 0, -1, 0x0210, CHR_SELF, 2) + object_do_animation(0x025a, 0xff, 0x02ff, 0xff) + + beginloop(0x06) + if_chr_stopped(/*goto*/ 0x13) + endloop(0x06) + + label(0x13) + return + + label(0x12) + set_return_function(CHR_SELF, GFUNC_UNALERTED) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + endfunction +}; + +/** + * Attempts to set the target chr and engage in combat with them. + * + * - If current chr has been shot, say something, raise group alertness, then + * engage combat with the target (if in range and line of sight). + * - Otherwise, attempt to find the target using a one of two methods, + * determined by a bitflag on the chr: + * + * 1) Find chr by group (details unknown) + * 2) Distance and line of sight check on all chrs + * + * When one fails the other is attempted. Presumably both of these are quite + * expensive, so the flag exists to determine which one is more likely to pass + * on a per chr basis. + * + * If both fail, the function yields and continues checking. + */ +u8 func000b_choose_target_chr[] = { + set_onshot_function(GFUNC_CHOOSE_TARGET_CHR) + if_num_times_shot_lt(1, /*goto*/ 0xd3) + + // Has been shot + say_quip(CHR_JOANNA, 0x0c, 0x78, 0x03, 0x00, BANK_0, 0x00, 0x00) // "Holy shh...","What the hell?!" + + beginloop(0x03) + if_chr_stopped(/*goto*/ 0x16) + endloop(0x03) + + label(0x16) + say_quip(CHR_JOANNA, 0x0c, 0xff, 0x03, 0x00, BANK_0, 0x00, 0x00) // "Holy shh...","What the hell?!" + dprint 'N','O',' ','W','A','R','N','I','N','G','\n',0, + set_group_alertness(100) + dprint 'N','O',' ','W','A','R','N','I','N','G','\n',0, + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x13) + goto_next(0xd3) + + label(0x13) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + + // Hasn't been shot, or can't engage target chr + label(0xd3) + set_action(ACTION_SCAN, FALSE) + yield + dprint 'S','C','A','N','\n',0, + + if_self_flag_bankx_eq(CHRFLAG0_NOHEAR, TRUE, BANK_0, /*goto*/ 0x13) + cmd0127_try_find_chr_in_group(/*goto*/ 0x16) + goto_next(0x04) + + // No hear - only see + label(0x13) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x16) + + // Scan failed + label(0x04) + if_shot_near_chr(0x00, /*goto*/ 0x13) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x13) + goto_first(0xd3) + + // Found + label(0x16) + dprint 'F','O','U','N','D','\n',0, + set_group_alertness(100) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + set_return_function(CHR_SELF, GFUNC_CHOOSE_TARGET_CHR) + + label(0x13) + dprint 'F','O','U','N','D','A','L','E','R','T','\n',0, + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x13) + if_self_flag_bankx_eq(CHRFLAG0_NOHEAR, TRUE, BANK_0, /*goto*/ 0x16) + cmd0127_try_find_chr_in_group(/*goto*/ 0x13) + label(0x16) + goto_first(0xd3) + + label(0x13) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + endfunction +}; + +u8 func000d_init_combat[] = { + set_onshot_function(GFUNC_COMBAT_WITH_TARGET_CHR) + + // If not idle, turn off special death animation + if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, FALSE, BANK_1, /*goto*/ 0x13) + set_chr_special_death_animation(CHR_SELF, 0) + + label(0x13) + if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, FALSE, BANK_1, /*goto*/ 0x16) + unset_self_flag_bankx(CHRFLAG1_DOINGIDLEANIMATION, BANK_1) + if_chr_idle_action_eq(IDLEACTION_SITTING_TYPING, /*goto*/ 0x05) + if_chr_idle_action_eq(IDLEACTION_SITTING_DORMANT, /*goto*/ 0x05) + goto_next(0x16) + + // Stand up + label(0x05) + set_chr_health(CHR_SELF, 40) + animation(ANIM_STAND_UP_FROM_SITTING, 0, -1, 0x0210, CHR_SELF, 2) + object_do_animation(0x025a, 0xff, 0x02ff, 0xff) + + beginloop(0x0c) + if_chr_stopped(/*goto*/ 0x13) + endloop(0x0c) + + label(0x13) + label(0x16) + set_onshot_function(GFUNC_COMBAT_WITH_TARGET_CHR) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + endfunction +}; + +u8 func000c_combat_with_target_chr[] = { + if_chr_is_dead_maybe(CHR_SELF, /*goto*/ 0x16) + dprint 'S','E','E',' ','E','N','E','M','Y','\n',0, + if_num_human_players_lt(2, /*goto*/ 0x16) + label(0x13) + if_chr_lost_track_of_target_maybe(/*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + if_stage_is_not(STAGE_WAR, /*goto*/ 0x13) + if_num_human_players_lt(2, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + if_stage_is_not(STAGE_DEEPSEA, /*goto*/ 0x13) + if_num_human_players_lt(2, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + if_stage_is_not(STAGE_DEFENSE, /*goto*/ 0x13) + if_num_human_players_lt(2, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + if_stage_is_not(STAGE_WAR, /*goto*/ 0x13) + if_num_human_players_lt(2, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + if_stage_is_not(STAGE_ESCAPE, /*goto*/ 0x13) + if_num_human_players_lt(2, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + if_stage_is_not(STAGE_ATTACKSHIP, /*goto*/ 0x13) + if_num_human_players_lt(2, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + if_stage_is_not(STAGE_CRASHSITE, /*goto*/ 0x13) + if_num_human_players_lt(2, /*goto*/ 0x13) + goto_next(0x16) + + // Solo mode, or co-op/counter-op on any other stage + label(0x13) + if_chr_lost_track_of_target_maybe(/*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + set_function(CHR_SELF, GFUNC_ALERTED) + + // Co-op with friend or counter-op on any of the above stages + // Or follow through if chr still has target + label(0x16) + set_self_flag_bank3(CHRFLAG3_00000040) + dprint 'D','E','T','E','C','T','\n',0, + if_chr_dying(CHR_SELF, /*goto*/ 0x16) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x16) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x16) + goto_next(0x13) + + // Dying + label(0x16) + set_onshot_function(GFUNC_IDLE) + restart_timer + + beginloop(0x1c) + if_timer_gt(15, /*goto*/ 0x16) + endloop(0x1c) + + label(0x16) + if_chr_is_dead_maybe(CHR_SELF, /*goto*/ 0x16) + say_quip(CHR_JOANNA, 0x19, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) + goto_next(0x17) + + label(0x16) + say_quip(CHR_JOANNA, 0x02, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) + + label(0x17) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x13) + dprint 'D','E','T','E','C','T','1','\n',0, + if_num_times_shot_lt(1, /*goto*/ 0xb2) + if_just_injured(CHR_SELF, /*goto*/ 0x16) + if_has_gun(CHR_SELF, /*goto*/ 0xb2) + set_self_flag_bankx(CHRFLAG1_00000001, BANK_1) + goto_next(0xb2) + + dprint 'D','E','T','E','C','T','2','\n',0, + + // Injured + label(0x16) + restart_timer + + beginloop(0x1d) + if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x16) + if_num_times_shot_lt(1, /*goto*/ 0x16) + if_timer_lt(20, /*goto*/ 0x16) + say_quip(CHR_JOANNA, 0x0d, 0x28, 0x03, 0xff, BANK_0, 0x00, 0x00) + say_quip(CHR_JOANNA, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00) + set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0) + label(0x16) + if_chr_stopped(/*goto*/ 0x13) + if_timer_gt(180, /*goto*/ 0x13) + endloop(0x1d) + + label(0x13) + dprint 'D','E','T','E','C','T','3','\n',0, + label(0xb2) + yield + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_08000000, /*goto*/ 0x13) + unset_self_flag_bankx(CHRFLAG1_00000001, BANK_1) + goto_next(0x16) + + label(0x13) + set_self_flag_bankx(CHRFLAG1_00000001, BANK_1) + label(0x16) + dprint 'T','E','A','M','D','\n',0, + if_alertness(100, OPERATOR_LESS_THAN, /*goto*/ 0xb3) + dprint 'A','L','E','R','T','\n',0, + if_enemy_distance_lt_and_los(2540, /*goto*/ 0xb3) + if_chr_is_dead_maybe(CHR_SELF, /*goto*/ 0x16) + if_chr_flag_bank2(CHR_SELF, CHRFLAG2_PSYCHOSISED, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + if_target_chrs_field_0x17e_is_different(/*goto*/ 0xb3) + label(0x16) + dprint 'N','O',' ','T','A','R','G','E','T','\n',0, + set_target_chr(-1) + return + + label(0xb3) + if_chr_is_dead_maybe(CHR_SELF, /*goto*/ 0x16) + label(0x13) + if_chr_lost_track_of_target_maybe(/*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + if_stage_is_not(STAGE_WAR, /*goto*/ 0x13) + if_num_human_players_lt(2, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + if_stage_is_not(STAGE_DEEPSEA, /*goto*/ 0x13) + if_num_human_players_lt(2, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + if_stage_is_not(STAGE_DEFENSE, /*goto*/ 0x13) + if_num_human_players_lt(2, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + if_stage_is_not(STAGE_WAR, /*goto*/ 0x13) + if_num_human_players_lt(2, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + if_stage_is_not(STAGE_ESCAPE, /*goto*/ 0x13) + if_num_human_players_lt(2, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + if_stage_is_not(STAGE_ATTACKSHIP, /*goto*/ 0x13) + if_num_human_players_lt(2, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + if_stage_is_not(STAGE_CRASHSITE, /*goto*/ 0x13) + if_num_human_players_lt(2, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + set_function(CHR_SELF, GFUNC_ALERTED) + + label(0x16) + dprint 'F','O','U','N','D',' ','E','N','E','M','Y','\n',0, + restart_timer + if_chr_dying(TARGET_CHR, /*goto*/ 0xba) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0xba) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0xba) + if_target_chrs_field_0x17e_is_different(/*goto*/ 0x13) + goto_next(0x16) + + // Target's field 0x17e is different + label(0x13) + if_self_flag_bankx_eq(CHRFLAG1_00000001, FALSE, BANK_1, /*goto*/ 0x16) + if_self_flag_bankx_eq(CHRFLAG1_00001000, TRUE, BANK_1, /*goto*/ 0x16) + call_rng + if_rand_lt(128, /*goto*/ 0x13) + if_chr_distance_gt(250, /*goto*/ 0x16) + if_in_disarm_range(/*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + set_self_flag_bankx(CHRFLAG1_PUNCH_THEN_GENERAL_COMBAT, BANK_1) + set_function(CHR_SELF, GFUNC_HAND_COMBAT) + + label(0x16) + try_run_to_target_chr(/*goto*/ 0xb4) + dprint 'R','U','N',' ','F','A','I','L','\n',0, + + beginloop(0xb4) + dprint 'F','O','U','N','D',' ','1','\n',0, + if_timer_gt(600, /*goto*/ 0xba) + if_self_flag_bankx_eq(CHRFLAG1_00000001, FALSE, BANK_1, /*goto*/ 0x13) + if_timer_gt(20, /*goto*/ 0x09) + label(0x13) + if_chr_dying(TARGET_CHR, /*goto*/ 0xba) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0xba) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0xba) + if_target_chrs_field_0x17e_is_different(/*goto*/ 0x13) + goto_next(0xba) + + label(0x13) + dprint 'F','O','U','N','D',' ','2','\n',0, + if_self_flag_bankx_eq(CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x16) + if_self_flag_bankx_eq(CHRFLAG1_00001000, TRUE, BANK_1, /*goto*/ 0x13) + if_chr_distance_lt(120, /*goto*/ 0x16) + call_rng + if_rand_lt(128, /*goto*/ 0x13) + if_chr_distance_gt(250, /*goto*/ 0x13) + label(0x16) + if_in_disarm_range(/*goto*/ 0x16) + dprint 'N','O','U','N','A','R','M','\n',0, + goto_next(0x13) + + label(0x16) + dprint 'G','O','U','N','A','R','M','\n',0, + set_self_flag_bankx(CHRFLAG1_PUNCH_THEN_GENERAL_COMBAT, BANK_1) + set_function(CHR_SELF, GFUNC_HAND_COMBAT) + + label(0x13) + label(0x13) + if_enemy_distance_lt_and_los(1200, /*goto*/ 0xb5) + if_in_disarm_range(/*goto*/ 0xb6) + endloop(0xb4) + + label(0x09) + goto_first(0xb3) + + label(0xb7) + label(0xb9) + if_in_disarm_range(/*goto*/ 0xb6) + if_chr_dying(TARGET_CHR, /*goto*/ 0xba) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0xba) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0xba) + if_target_chrs_field_0x17e_is_different(/*goto*/ 0x13) + goto_next(0xba) + + label(0x13) + if_chr_in_view(/*goto*/ 0xbb) + goto_first(0xb4) + + label(0xb5) + restart_timer + try_run_to_target_chr(/*goto*/ 0xbc) + + beginloop(0xbc) + if_chr_dying(TARGET_CHR, /*goto*/ 0xc0) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0xc0) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0xc0) + if_target_chrs_field_0x17e_is_different(/*goto*/ 0x13) + goto_next(0xc0) + + label(0x13) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ 0x13) + if_in_disarm_range(/*goto*/ 0xbf) + label(0x13) + if_timer_gt(120, /*goto*/ 0xc0) + endloop(0xbc) + + label(0xbf) + goto_next(0xb6) + + label(0xc0) + goto_first(0xb2) + + label(0xb6) + set_grenade_probability_out_of_255(255) + set_self_flag_bank3(CHRFLAG3_00000040) + if_chr_dying(TARGET_CHR, /*goto*/ 0xc1) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0xc1) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0xc1) + if_target_chrs_field_0x17e_is_different(/*goto*/ 0x13) + goto_next(0xc1) + + label(0x13) + dprint 'S','H','O','O','T','I','N','G','\n',0, + goto_next(0xc2) + + label(0x16) + if_chr_distance_lt(800, /*goto*/ 0xc2) + if_something_hypotenuse(0, /*goto*/ 0xc2) + dprint 'G','R','E','N','A','D','E','\n',0, + restart_timer + if_any_chr_doing_action(ACTION_THROW_GRENADE, /*goto*/ 0xc2) + set_action(ACTION_THROW_GRENADE, FALSE) + consider_throwing_grenade(0x0200, 0x0000, /*goto*/ 0x16) + label(0x16) + if_self_flag_bankx_eq(CHRFLAG1_00001000, TRUE, BANK_1, /*goto*/ 0x13) + if_self_flag_bankx_eq(CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x16) + if_chr_distance_lt(120, /*goto*/ 0x16) + call_rng + if_rand_lt(128, /*goto*/ 0x13) + if_chr_distance_gt(250, /*goto*/ 0x13) + label(0x16) + if_in_disarm_range(/*goto*/ 0x16) + goto_next(0x13) + + label(0x16) + set_self_flag_bankx(CHRFLAG1_PUNCH_THEN_GENERAL_COMBAT, BANK_1) + set_function(CHR_SELF, GFUNC_HAND_COMBAT) + + label(0x13) + yield + dprint 'G','R','E','N','A','D','E',' ','E','N','D','\n',0, + label(0xc2) + if_self_flag_bankx_eq(CHRFLAG1_00001000, TRUE, BANK_1, /*goto*/ 0x13) + if_self_flag_bankx_eq(CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x16) + if_chr_distance_lt(120, /*goto*/ 0x16) + call_rng + if_rand_lt(128, /*goto*/ 0x13) + if_chr_distance_gt(250, /*goto*/ 0x13) + label(0x16) + if_in_disarm_range(/*goto*/ 0x16) + goto_next(0x13) + + label(0x16) + set_self_flag_bankx(CHRFLAG1_PUNCH_THEN_GENERAL_COMBAT, BANK_1) + set_function(CHR_SELF, GFUNC_HAND_COMBAT) + + label(0x13) + label(0x13) + dprint 'C','H','O','S','E',' ','S','H','T','N','D','\n',0, // choose... ? + call_rng + if_rand_gt(64, /*goto*/ 0x16) + if_self_flag_bankx_eq(CHRFLAG1_00000010, FALSE, BANK_1, /*goto*/ 0x13) + cmd0184(0x5a64) + set_self_flag_bankx(CHRFLAG1_00000020, BANK_1) + goto_next(0xc3) + + label(0x13) + if_self_flag_bankx_eq(CHRFLAG1_00000004, FALSE, BANK_1, /*goto*/ 0x13) + cmd0184(0x141e) + goto_next(0xc3) + + label(0x13) + label(0x16) + if_chr_is_dead_maybe(CHR_SELF, /*goto*/ 0x17) + goto_next(0x16) + + label(0x17) + say_quip(CHR_JOANNA, 0x01, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) + label(0x16) + call_rng + if_rand_gt(50, /*goto*/ 0x13) + call_rng + if_rand_gt(128, /*goto*/ 0x16) + label(0xbe) + try_roll_and_shoot(/*goto*/ 0xc3) + label(0x16) + try_walk_and_shoot(/*goto*/ 0xc3) + label(0x13) + call_rng + if_rand_gt(128, /*goto*/ 0x8c) + try_chr_kneel_and_shoot_thing(0x0220, 0x0000, /*goto*/ 0x16) + label(0x8c) + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x16) + label(0x16) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0xc3) + + label(0xc3) + say_quip(CHR_JOANNA, 0x24, 0x19, 0x02, 0xff, BANK_0, 0x00, 0x00) + say_quip(CHR_JOANNA, 0x25, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00) + + beginloop(0xe2) + if_chr_dying(TARGET_CHR, /*goto*/ 0xc1) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0xc1) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0xc1) + if_target_chrs_field_0x17e_is_different(/*goto*/ 0x16) + goto_next(0xc1) + + label(0x16) + if_chr_stopped(/*goto*/ 0xc1) + endloop(0xe2) + + label(0x13) + restart_timer + dprint 'S','H','O','O','T',' ','F','A','I','L','\n',0, + + beginloop(0x03) + if_timer_gt(60, /*goto*/ 0x16) + endloop(0x03) + + label(0x16) + goto_first(0xc3) + + label(0xba) + dprint 'F','O','U','N','D',' ','3','\n',0, + label(0xc1) + if_chr_injured_target(CHR_SELF, /*goto*/ 0x13) + dprint 'P','U','N','C','H','M','I','S','S','E','D','\n',0, + say_quip(CHR_JOANNA, 0x16, 0x19, 0x03, 0xff, BANK_0, 0x00, 0x00) + say_quip(CHR_JOANNA, 0x17, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00) + goto_next(0x16) + + label(0x13) + dprint 'P','U','N','C','H','H','I','T','\n',0, + say_quip(CHR_JOANNA, 0x15, 0x19, 0x02, 0xff, BANK_0, 0x00, 0x00) + say_quip(CHR_JOANNA, 0x15, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00) + + label(0x16) + dprint 'B','O','N','N','D',' ','3','\n',0, + if_self_flag_bankx_eq(CHRFLAG1_00000800, FALSE, BANK_1, /*goto*/ 0x13) + if_chr_lost_track_of_target_maybe(/*goto*/ 0x13) + damage_chr(TARGET_CHR, 18) + unset_self_flag_bankx(CHRFLAG1_00000800, BANK_1) + label(0x13) + if_chr_dying(TARGET_CHR, /*goto*/ 0xc5) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0xc5) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0xc5) + if_target_chrs_field_0x17e_is_different(/*goto*/ 0x13) + goto_next(0xc5) + + label(0x13) + if_self_flag_bankx_eq(CHRFLAG1_40000000, TRUE, BANK_1, /*goto*/ 0xc5) + label(0xb8) + label(0xc6) + if_self_flag_bankx_eq(CHRFLAG0_08000000, FALSE, BANK_0, /*goto*/ 0x13) + goto_first(0xb3) + + label(0x13) + dprint 'L','O','O','K',' ','F','O','R',' ','C','O','V','E','R','\n',0, + if_self_flag_bankx_eq(CHRFLAG1_00004000, TRUE, BANK_1, /*goto*/ 0x15) + cmd0121_if_something(0x1035, /*goto*/ 0x53) + cmd0121_if_something(0x1095, /*goto*/ 0x53) + goto_next(0x16) + + label(0x15) + cmd0121_if_something(0x9035, /*goto*/ 0x53) + cmd0121_if_something(0x9095, /*goto*/ 0x53) + label(0x16) + goto_next(0x54) + + label(0x53) + dprint 'G','O',' ','T','O',' ','C','O','V','E','R','\n',0, + say_quip(CHR_JOANNA, 0x02, 0xff, 0x02, 0x01, BANK_0, 0x00, 0x00) + cmd0124_run_for_cover_maybe(ACTION_UNDER_COVER) + restart_timer + + beginloop(0xc7) + if_chr_dying(TARGET_CHR, /*goto*/ 0xc5) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0xc5) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0xc5) + if_enemy_distance_lt_and_los(400, /*goto*/ 0x13) + if_chr_stopped(/*goto*/ 0x16) + if_timer_gt(360, /*goto*/ 0x16) + endloop(0xc7) + + label(0x13) + goto_first(0xb5) + + label(0x16) + dprint 'G','O','T',' ','T','O',' ','C','O','V','E','R','\n',0, + label(0xc8) + restart_timer + try_chr_kneel_and_shoot_thing(0x0220, 0x0000, /*goto*/ 0xc9) + + beginloop(0xc9) + if_chr_dying(TARGET_CHR, /*goto*/ 0xc5) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0xc5) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0xc5) + if_target_chrs_field_0x17e_is_different(/*goto*/ 0x13) + goto_next(0xc5) + + label(0x13) + if_enemy_distance_lt_and_los(400, /*goto*/ 0x15) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ 0x13) + if_in_disarm_range(/*goto*/ 0xca) + label(0x13) + if_timer_gt(200, /*goto*/ 0x16) + endloop(0xc9) + + label(0x16) + dprint 'T','I','M','O','U','T','\n',0, + goto_first(0xb3) + + label(0x15) + dprint 'O','P','F','I','R','E','\n',0, + goto_first(0xb5) + + label(0xa3) + goto_first(0xc1) + + label(0xca) + restart_timer + dprint 'T','A','R','S','H','O','\n',0, + if_chr_is_dead_maybe(CHR_SELF, /*goto*/ 0x16) + goto_next(0x17) + + label(0x16) + say_quip(CHR_JOANNA, 0x01, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) + label(0x17) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0xcb) + goto_next(0x16) + + label(0xcb) + say_quip(CHR_JOANNA, 0x24, 0x19, 0x02, 0xff, BANK_0, 0x00, 0x00) + say_quip(CHR_JOANNA, 0x25, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00) + + beginloop(0xcc) + if_chr_dying(TARGET_CHR, /*goto*/ 0xc5) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0xc5) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0xc5) + if_target_chrs_field_0x17e_is_different(/*goto*/ 0x13) + goto_next(0xc5) + + label(0x13) + if_timer_gt(300, /*goto*/ 0x16) + if_chr_stopped(/*goto*/ 0x16) + endloop(0xcc) + + label(0x54) + dprint 'N','O','C','O','V','E','R','\n',0, + goto_first(0xb3) + + restart_timer + try_run_sideways(/*goto*/ 0xcd) + + beginloop(0xcd) + if_timer_gt(300, /*goto*/ 0xce) + if_chr_stopped(/*goto*/ 0xce) + endloop(0xcd) + + label(0xce) + goto_first(0xb3) + + label(0xc5) + dprint 'F','O','U','N','D',' ','4','\n',0, + if_self_flag_bankx_eq(CHRFLAG1_00100000, FALSE, BANK_1, /*goto*/ 0x13) + dprint 'F','O','U','N','D',' ','5','\n',0, + return + + label(0x13) + if_self_flag_bankx_eq(CHRFLAG0_NOHEAR, TRUE, BANK_0, /*goto*/ 0x13) + label(0x13) + goto_next(0xcf) + + label(0x16) + dprint 'K','I','L','L','E','D',' ','T','A','R','G','E','T','\n',0, + restart_timer + call_rng + if_self_flag_bankx_eq(CHRFLAG1_00100000, FALSE, BANK_1, /*goto*/ 0x13) + return + + label(0x13) + goto_next(0xd0) + + // Unreachable - no label + if_rand_gt(128, /*goto*/ 0xd1) + try_run_to_target_chr_with_hand_up(/*goto*/ 0xd0) + + beginloop(0xd0) + if_timer_gt(120, /*goto*/ 0xd2) + if_chr_stopped(/*goto*/ 0xd2) + endloop(0xd0) + + label(0xd2) + goto_next(0xc4) + + // Begin unreachable + kneel + + beginloop(0xd4) + if_timer_gt(60, /*goto*/ 0xc4) + endloop(0xd4) + + label(0xd1) + try_run_sideways(/*goto*/ 0xd5) + + beginloop(0xd5) + if_timer_gt(180, /*goto*/ 0xc4) + if_chr_stopped(/*goto*/ 0xc4) + endloop(0xd5) + // End unreachable + + label(0xc4) + if_self_flag_bankx_eq(CHRFLAG0_10000000, FALSE, BANK_0, /*goto*/ 0x13) + return + + label(0x13) + goto_first(0xb3) + + label(0xcf) + if_self_flag_bankx_eq(CHRFLAG0_10000000, FALSE, BANK_0, /*goto*/ 0x13) + if_chr_lost_track_of_target_maybe(/*goto*/ 0x16) + goto_next(0x13) + + label(0x16) + return + + label(0x13) + try_walk_to_target_chr(/*goto*/ 0xd6) + + beginloop(0xd6) + if_enemy_distance_lt_and_los(1200, /*goto*/ 0x13) + if_chr_stopped(/*goto*/ 0xd7) + endloop(0xd6) + + label(0x13) + goto_first(0xb3) + + label(0xd7) + say_quip(CHR_JOANNA, 0x0f, 0x28, 0x00, 0x01, BANK_0, 0x00, 0x00) + try_face_entity(0x0200, 0x0000, /*goto*/ 0x16) + label(0x16) + if_chr_is_dead_maybe(CHR_SELF, /*goto*/ 0xd9) + animation(ANIM_YAWN, 0, 193, 0x1810, CHR_SELF, 2) + + beginloop(0xd8) + if_chr_stopped(/*goto*/ 0xd9) + endloop(0xd8) + + label(0xd9) + return + endfunction +}; + +u8 unregistered_function2[] = { + stop_chr + label(0x19) + stop_chr + yield + goto_first(0x19) + + endfunction +}; + +u8 unregistered_function3[] = { + surrender + beginloop(0x19) + if_chr_stopped(/*goto*/ 0x16) + endloop(0x19) + + label(0x16) + dprint 'f','i','n','y','a','w','n','\n',0, + return + endfunction +}; + +/** + * This is the initial function for Defense blondes and some chr in + * Attack Ship. + */ +u8 func0000_idle_0009[] = { + dprint 'S','T','A','R','T',' ','L','I','S','T','\n',0, + set_action(ACTION_SCAN, FALSE) + set_return_function(CHR_SELF, GFUNC_IDLE_0009) + stop_chr + + beginloop(0x0c) + endloop(0x0c) + + endfunction +}; + +/** + * Not used. + */ +u8 func000e_see_then_attack[] = { + set_onshot_function(GFUNC_ALERTED) + + beginloop(0x0c) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0x16) + endloop(0x0c) + + label(0x16) + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +/** + * Waits for an objective to fail, then shows the objectives failed messages + * periodically. + */ +u8 func0016_show_objective_failed_msg[] = { + // Wait until an objective has failed + beginloop(0x0c) + if_timer_gt(0, /*goto*/ 0x13) + if_objective_failed(0, /*goto*/ 0x16) + if_objective_failed(1, /*goto*/ 0x16) + if_objective_failed(2, /*goto*/ 0x16) + if_objective_failed(3, /*goto*/ 0x16) + if_objective_failed(4, /*goto*/ 0x16) + endloop(0x0c) + + // Wait 30 seconds. It iterates to the top loop here, which instantly jumps + // down to 0x13 because the timer is > 0. Seems a bit unnecessary... + label(0x16) + restart_timer + yield + label(0x13) + if_timer_gt(1800, /*goto*/ 0x13) + goto_first(0x0c) + + // Check objective is still failed + label(0x13) + if_objective_failed(0, /*goto*/ 0x13) + if_objective_failed(1, /*goto*/ 0x13) + if_objective_failed(2, /*goto*/ 0x13) + if_objective_failed(3, /*goto*/ 0x13) + if_objective_failed(4, /*goto*/ 0x13) + set_function(CHR_SELF, GFUNC_IDLE) + + // Show message first time + label(0x13) + message(CHR_JOANNA, 0x5845) // "OBJECTIVES FAILED - abort mission." + + // Wait 60 seconds + restart_timer + + beginloop(0x03) + if_timer_gt(3600, /*goto*/ 0x16) + endloop(0x03) + + // Check objective is still failed + label(0x16) + if_objective_failed(0, /*goto*/ 0x13) + if_objective_failed(1, /*goto*/ 0x13) + if_objective_failed(2, /*goto*/ 0x13) + if_objective_failed(3, /*goto*/ 0x13) + if_objective_failed(4, /*goto*/ 0x13) + set_function(CHR_SELF, GFUNC_IDLE) + + // Show message second time + label(0x13) + message(CHR_JOANNA, 0x5845) // "OBJECTIVES FAILED - abort mission." + restart_timer + + // Wait 2 minutes + beginloop(0x04) + if_timer_gt(7200, /*goto*/ 0x06) + endloop(0x04) + + // Check objective is still failed + label(0x06) + if_objective_failed(0, /*goto*/ 0x13) + if_objective_failed(1, /*goto*/ 0x13) + if_objective_failed(2, /*goto*/ 0x13) + if_objective_failed(3, /*goto*/ 0x13) + if_objective_failed(4, /*goto*/ 0x13) + set_function(CHR_SELF, GFUNC_IDLE) + + // Show message third time + label(0x13) + message(CHR_JOANNA, 0x5845) // "OBJECTIVES FAILED - abort mission." + restart_timer + + // Wait 5 minutes + beginloop(0x05) + if_timer_gt(18000, /*goto*/ 0x16) + endloop(0x05) + + // Loop back to the last message, so it will display every 5 minutes + label(0x16) + goto_first(0x06) + + endfunction +}; + +u8 func0017_rebuild_groups[] = { + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0018_do_bored_animation[] = { + call_rng + if_rand_gt(50, /*goto*/ 0x13) + animation(ANIM_YAWN, 0, 193, 0x1810, CHR_SELF, 2) + goto_next(0x16) + + label(0x13) + if_rand_gt(100, /*goto*/ 0x13) + animation(ANIM_SCRATCH_HEAD, 0, 294, 0x1810, CHR_SELF, 2) + goto_next(0x16) + + label(0x13) + if_rand_gt(150, /*goto*/ 0x13) + animation(ANIM_ROLL_HEAD, 0, 183, 0x1810, CHR_SELF, 2) + goto_next(0x16) + + label(0x13) + if_rand_gt(200, /*goto*/ 0x13) + animation(ANIM_GRAB_CROTCH, 0, 123, 0x1810, CHR_SELF, 2) + goto_next(0x16) + + label(0x13) + if_rand_gt(250, /*goto*/ 0x13) + animation(ANIM_GRAB_BUTT, 0, 56, 0x1810, CHR_SELF, 2) + goto_next(0x16) + + label(0x13) + label(0x16) + return + endfunction +}; + +u8 func001e_look_around[] = { + call_rng + if_rand_gt(50, /*goto*/ 0x13) + animation(ANIM_LOOK_AROUND_025B, 0, 193, 0x1810, CHR_SELF, 2) + goto_next(0x16) + + label(0x13) + if_rand_gt(100, /*goto*/ 0x13) + animation(ANIM_LOOK_AROUND_025C, 0, 294, 0x1810, CHR_SELF, 2) + goto_next(0x16) + + label(0x13) + if_rand_gt(150, /*goto*/ 0x13) + animation(ANIM_LOOK_AROUND_025D, 0, 183, 0x1810, CHR_SELF, 2) + goto_next(0x16) + + // @bug: Shows grab crotch animation when wanting to look around instead. + // Probably a copy/paste error from previous function. + label(0x13) + if_rand_gt(200, /*goto*/ 0x13) + animation(ANIM_GRAB_CROTCH, 0, 123, 0x1810, CHR_SELF, 2) + goto_next(0x16) + + label(0x13) + if_rand_gt(250, /*goto*/ 0x13) + animation(ANIM_LOOK_AROUND_025E, 0, 56, 0x1810, CHR_SELF, 2) + goto_next(0x16) + + label(0x13) + label(0x16) + return + endfunction +}; + +u8 func0019_do_sitting_animation[] = { + call_rng + if_rand_gt(128, /*goto*/ 0x13) + animation(ANIM_SITTING_TYPING, 0, -1, 0x1010, CHR_SELF, 2) + goto_next(0x16) + + label(0x13) + animation(ANIM_SITTING_DORMANT, 0, -1, 0x1010, CHR_SELF, 2) + goto_next(0x16) + + label(0x13) + label(0x16) + return + endfunction +}; + +/** + * This function is only used by other global functions. + * + * It appears the purpose is to unset CHRFLAG1_DISSPEE in certain conditions. + */ +u8 func001a_maybe_unset_disspee[] = { + restart_timer + + // If target has both DISGUISED and chrflag2_02000000 + // then they must not have a gun equipped. + label(0x00) + yield + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x14) + goto_next(0x13) + + label(0x14) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_02000000, /*goto*/ 0xe8) + goto_next(0x13) + + label(0xe8) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_NONE, /*goto*/ 0x13) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x13) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_COMBATBOOST, /*goto*/ 0x13) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_HORIZONSCANNER, /*goto*/ 0x13) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_SUITCASE, /*goto*/ 0x13) + set_function(CHR_SELF, GFUNC_UNALERTED_0004) + + // Not disguised, or + // disguised but not 02000000, or + // disguised and 02000000 and has no weapon equipped. + // Wait 1 second, or for some field in the current chr to change. + label(0x13) + if_timer_lt(60, /*goto*/ 0x15) + if_chr_propsoundcount_zero(CHR_SELF, /*goto*/ 0x28) + goto_next(0x15) + + // Field changed + label(0x28) + unset_self_flag_bankx(CHRFLAG1_DISSPEE, BANK_1) + stop_chr + + // Field changed (follow through from above) or 1 second elapsed + label(0x15) + if_chr_idle(/*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + goto_first(0x00) + + // Resume walking a path + label(0x16) + start_path + set_function(CHR_SELF, GFUNC_UNALERTED_0004) + endfunction +}; + +u8 func000f_hand_combat[] = { +#define LABEL_FACE_TARGET 0x16 +#define LABEL_PUNCH 0x16 + + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x13) + if_chr_dying(CHR_SELF, /*goto*/ 0x13) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x13) + goto_next(0x16) + + // Dying + label(0x13) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x16) + set_action(ACTION_HAND_COMBAT, FALSE) + restart_timer + + // If current chr doesn't have this flag and isn't idle, stop them + if_self_flag_bankx_eq(CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x0c) + if_chr_idle(/*goto*/ 0x0c) + stop_chr + + // Begin loop + label(0x0c) + yield + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0xfa) + if_chr_dying(TARGET_CHR, /*goto*/ 0xfa) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0xfa) + + // This if-statement is effectively a no op + dprint 'L','1','\n',0, + if_target_chrs_field_0x17e_is_different(/*goto*/ 0x13) + + dprint 'L','2','\n',0, + label(0x13) + dprint 'L','O','O','K',' ','F','O','R',' ','T','A','R','G','E','T','\n',0, + if_self_flag_bankx_eq(CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x13) + if_chr_is_dead_maybe(CHR_SELF, /*goto*/ 0x0f) + if_chr_distance_gt(120, /*goto*/ 0x13) + goto_next(0x10) + + label(0x0f) + if_chr_distance_gt(150, /*goto*/ 0x13) + + label(0x10) + if_in_disarm_range(/*goto*/ 0x13) + if_timer_gt(120, /*goto*/ 0x0b) + goto_first(0x0c) + + label(0x13) + if_chr_lost_track_of_target_maybe(/*goto*/ 0x0a) + if_self_flag_bankx_eq(CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x13) + if_chr_distance_gt(400, /*goto*/ 0x0b) + label(0x13) + if_chr_is_dead_maybe(CHR_SELF, /*goto*/ 0x0f) + if_chr_distance_lt(120, /*goto*/ LABEL_FACE_TARGET) + goto_next(0x10) + + label(0x0f) + if_chr_distance_lt(150, /*goto*/ LABEL_FACE_TARGET) + label(0x10) + label(0xe3) + restart_timer + dprint 'R','U','N',' ','T','O',' ','T','A','R','G','E','T','\n',0, + try_run_to_target_chr(/*goto*/ 0x03) + + beginloop(0x03) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0xfa) + if_chr_dying(TARGET_CHR, /*goto*/ 0xfa) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0xfa) + label(0x13) + if_timer_gt(90, /*goto*/ 0x0b) + if_chr_lost_track_of_target_maybe(/*goto*/ 0x09) + if_self_flag_bankx_eq(CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x13) + if_chr_distance_gt(400, /*goto*/ 0x0b) + label(0x13) + if_chr_is_dead_maybe(CHR_SELF, /*goto*/ 0x0f) + if_chr_distance_lt(120, /*goto*/ LABEL_FACE_TARGET) + goto_next(0x10) + + label(0x0f) + if_chr_distance_lt(150, /*goto*/ LABEL_FACE_TARGET) + label(0x10) + endloop(0x03) + + label(0x09) + if_chr_is_dead_maybe(CHR_SELF, /*goto*/ 0x0f) + if_chr_distance_lt(120, /*goto*/ LABEL_FACE_TARGET) + goto_next(0x10) + + label(0x0f) + if_chr_distance_lt(150, /*goto*/ LABEL_FACE_TARGET) + label(0x10) + if_self_flag_bankx_eq(CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x13) + if_chr_distance_gt(400, /*goto*/ 0x0b) + label(0x13) + goto_first(0x03) + + label(0x0a) + if_chr_is_dead_maybe(CHR_SELF, /*goto*/ 0x0f) + if_chr_distance_lt(120, /*goto*/ LABEL_FACE_TARGET) + goto_next(0x10) + + label(0x0f) + if_chr_distance_lt(150, /*goto*/ LABEL_FACE_TARGET) + label(0x10) + if_chr_distance_gt(400, /*goto*/ 0x0b) + goto_first(0xe3) + + label(0x13) + restart_timer + goto_first(0x0c) + + label(LABEL_FACE_TARGET) + restart_timer + dprint 'F','A','C','E',' ','T','A','R','G','E','T','\n',0, + if_angle_to_target_chr_lt(10, /*goto*/ LABEL_PUNCH) + cmd004f(246, /*goto*/ LABEL_PUNCH) + stop_chr + try_face_entity(0x0200, 0x0001, /*goto*/ 0x04) + + beginloop(0x04) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0xfa) + if_chr_dying(TARGET_CHR, /*goto*/ 0xfa) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0xfa) + label(0x13) + if_chr_distance_gt(400, /*goto*/ 0x0b) + if_angle_to_target_chr_lt(15, /*goto*/ LABEL_PUNCH) + cmd004f(240, /*goto*/ LABEL_PUNCH) + if_timer_gt(60, /*goto*/ LABEL_PUNCH) + endloop(0x04) + + label(0x13) + restart_timer + goto_first(0x0c) + + label(LABEL_PUNCH) + dprint 'P','U','N','C','H','\n',0, + try_punch_or_kick(/*goto*/ 0x13) + + // Unable to punch or kick for some reason - return to main loop + restart_timer + goto_first(0x0c) + + label(0x13) + add_var_a(1) + if_chr_is_dead_maybe(CHR_SELF, /*goto*/ 0x17) + goto_next(0x05) + + label(0x17) + restart_timer + say_quip(CHR_JOANNA, 0x01, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "Open fire!","Wipe her out!","Waste her!" + + beginloop(0x05) + if_timer_gt(180, /*goto*/ 0x16) + if_chr_stopped(/*goto*/ 0x16) + endloop(0x05) + + label(0x16) + if_chr_injured_target(CHR_SELF, /*goto*/ 0x13) + dprint 'P','U','N','C','H','M','I','S','S','E','D','\n',0, + say_quip(CHR_JOANNA, 0x16, 0x19, 0x03, 0x00, BANK_0, 0x00, 0x00) // Say random quip: "Damn, missed!","How did I miss?" + say_quip(CHR_JOANNA, 0x17, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00) // "God sakes, someone hit her","She's a tricky one" + goto_next(0x16) + + label(0x13) + dprint 'P','U','N','C','H','H','I','T','\n',0, + say_quip(CHR_JOANNA, 0x15, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00) // Say random quip: "Give it up!","Surrender, now!","Take that!" + say_quip(CHR_JOANNA, 0x15, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00) // "Give it up!","Surrender, now!","Take that!" + + label(0x16) + goto_next(0x0b) + + label(0xfa) + dprint 'T','A','R','G','E','T',' ','I','S',' ','D','Y','I','N','G','\n',0, + + // Finished attack + label(0x0b) + dprint 'F','U','N',' ',' ','H','I','T','\n',0, + label(0x15) + if_self_flag_bankx_eq(CHRFLAG1_PUNCH_THEN_GENERAL_COMBAT, TRUE, BANK_1, /*goto*/ 0x13) + dprint 'R','E','T',' ','H','H','I','T','\n',0, + label(0x17) + return + + label(0x13) + dprint 'D','E','T',' ','E','N','I','T','\n',0, + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + endfunction +}; + +/** + * Used in Chicago, Air Base, and some other global functions. + * + * There is special logic for Chicago, where they don't care if you have a gun + * and say different things. + * + * The chr will make one comment, then it returns to the previous function. + */ +u8 func0010_civilian_say_comment[] = { + set_self_flag_bank3(CHRFLAG3_00040000) + set_onshot_function(GFUNC_SURPRISED) + label(0x0c) + yield + dprint 'L','O','O','K',' ','F','O','R',' ','T','A','R','G','E','T','\n',0, + label(0x16) + restart_timer + dprint 'F','A','C','E',' ','T','A','R','G','E','T','\n',0, + try_face_entity(0x0200, 0x0000, /*goto*/ 0x04) + + // Wait until facing target, or a second has passed, or something else + // happens such as hearing gunfire or seeing someone die. + beginloop(0x04) + if_shot_near_chr(0x01, /*goto*/ 0x83) + if_saw_death(0x01, /*goto*/ 0x83) + if_angle_to_target_chr_lt(10, /*goto*/ 0x13) + cmd004f(246, /*goto*/ 0x13) + if_timer_gt(60, /*goto*/ 0x13) + endloop(0x04) + + // Facing target + label(0x13) + if_stage_is_not(STAGE_CHICAGO, /*goto*/ 0x16) + goto_next(0x0e) + + // Not Chicago + label(0x16) + label(0x16) + set_self_flag_bankx(CHRFLAG1_DISSPEE, BANK_1) + dprint 'S','E','T',' ','D','I','S','S','P','E','E','\n',0, + if_chr_weapon_equipped(TARGET_CHR, WEAPON_NONE, /*goto*/ 0x07) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x07) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_COMBATBOOST, /*goto*/ 0x07) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_HORIZONSCANNER, /*goto*/ 0x07) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_SUITCASE, /*goto*/ 0x07) + goto_next(0x05) + + // Unarmed + label(0x07) + restart_timer + if_chr_flag_bank2(CHR_SELF, CHRFLAG2_01000000, /*goto*/ 0x13) + do_special_animation(-1) + say_quip(CHR_JOANNA, 0x1d, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00) // "How's things?","Hey there","Hi, how are you?" + yield + + // Set a do-once flag, so chr is only stopped the first time + dprint 'R','E','T','\n',0, + if_self_flag_bankx_eq(CHRFLAG1_DISSPEE, TRUE, BANK_1, /*goto*/ 0x13) + stop_chr + set_self_flag_bankx(CHRFLAG1_DISSPEE, BANK_1) + + label(0x13) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_01000000) + return + + // Armed + label(0x05) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_01000000, /*goto*/ 0x06) + set_chr_flag_bank2(TARGET_CHR, CHRFLAG2_01000000) + say_quip(CHR_JOANNA, 0x1e, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00) // "Where did you get that?","Should you have that?","What are you doing with that weapon?" + do_special_animation(6) + restart_timer + + beginloop(0x08) + if_shot_near_chr(0x01, /*goto*/ 0x83) + if_saw_death(0x01, /*goto*/ 0x83) + if_timer_gt(180, /*goto*/ 0x16) + endloop(0x08) + + // Unreachable + return + + // Has chrflag2_01000000 + label(0x06) + if_chr_in_view(/*goto*/ 0x13) + return + + label(0x13) + set_chr_flag_bank2(TARGET_CHR, CHRFLAG2_02000000) + dprint 'D','O','N','T',' ','P','O','I','N','T','\n',0, + say_quip(CHR_JOANNA, 0x1f, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "Don't point that at me","Watch where you're pointing that" + do_special_animation(-1) + restart_timer + + // Wait 3 seconds, or for see/hear gunfire + beginloop(0x09) + if_shot_near_chr(0x01, /*goto*/ 0x83) + if_saw_death(0x01, /*goto*/ 0x83) + if_timer_gt(180, /*goto*/ 0x16) + endloop(0x09) + + // Timer expired + label(0x16) + return + label(0x15) + + // Special Chicago logic + label(0x0e) + call_rng + if_rand_gt(128, /*goto*/ 0x16) + dprint 'B','4','T','A','L','K','\n',0, + if_stage_is_not(STAGE_CHICAGO, /*goto*/ 0x15) // will never pass + + // 50% chance of this happening + say_quip(CHR_JOANNA, 0x16, 0xff, 0x00, 0xff, 0x81, 0x00, 0x00) + goto_next(0x13) + + // 50% chance of this happening + label(0x16) + say_quip(CHR_JOANNA, 0x17, 0xff, 0x00, 0xff, 0x81, 0x00, 0x00) + label(0x13) + do_special_animation(3) + return + + // Not Chicago + label(0x15) + say_quip(CHR_JOANNA, 0x22, 0xff, 0x00, 0xff, 0x81, 0x00, 0x00) + goto_next(0x13) + + label(0x16) + say_quip(CHR_JOANNA, 0x23, 0xff, 0x00, 0xff, 0x81, 0x00, 0x00) + label(0x13) + do_special_animation(3) + return + + label(0x83) + set_alertness(100) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +/** + * This function is only used by civilians while they say comments...? + */ +u8 func001c_surprised[] = { + set_onshot_function(GFUNC_ALERTED) + set_group_alertness(100) + say_quip(CHR_JOANNA, 0x0c, 0xff, 0x03, 0x00, BANK_0, 0x00, 0x00) // "Holy shh...","What the hell?!" + restart_timer + animation(ANIM_SURPRISED_0202, 0, -1, 0x0010, CHR_SELF, 2) + + // Wait 1 second + beginloop(0x03) + dprint 'S','6',0, + if_timer_gt(60, /*goto*/ 0x77) + endloop(0x03) + + label(0x77) + set_function(CHR_SELF, GFUNC_ALERTED) + set_return_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +u8 func0011_flee_from_grenade[] = { + set_action(ACTION_FLEE_GRENADE, FALSE) + dprint 'N','E','A','R',' ','D','A','N','G','E','R','\n',0, + run_from_grenade + say_quip(CHR_JOANNA, 0x03, 0xff, 0x00, 0xff, BANK_0, 0x00, 0x00) // "Look out, look out!","It's a grenade!","Clear the area!" + restart_timer + + beginloop(0x0c) + dprint 'D','A','N','G','E','R',' ','L','O','O','P','\n',0, + cmd013d_if_grenade_thrown_nearby_maybe(ACTION_GRENADE_STOP, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + if_timer_gt(180, /*goto*/ 0x16) + endloop(0x0c) + + label(0x16) + return + endfunction +}; + +u8 func001b_observe_camspy[] = { + stop_chr + set_onshot_function(GFUNC_ALERTED) + unset_self_flag_bankx(CHRFLAG1_DOINGIDLEANIMATION, BANK_1) + set_chr_special_death_animation(CHR_SELF, 0) + set_follow_chr(TARGET_CHR) + + if_just_injured(CHR_SELF, /*goto*/ 0x09) + dprint 'E','Y','E',' ','S','P','Y','\n',0, + + label(0x00) + set_target_chr(FOLLOW_CHR) + if_chr_distance_lt(300, /*goto*/ 0x13) + try_run_to_target_chr_with_hand_up(/*goto*/ 0x0c) + restart_timer + + beginloop(0x0c) + if_timer_gt(60, /*goto*/ 0x0b) + if_chr_distance_lt(300, /*goto*/ 0x13) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_player_looking_at_something_maybe(0x00, 0x00, 0x01, /*goto*/ 0x16) + if_target_chr_in_sight(/*goto*/ 0x0b) + label(0x16) + set_target_chr(FOLLOW_CHR) + endloop(0x0c) + + // At camspy + label(0x13) + set_target_chr(FOLLOW_CHR) + restart_timer + try_face_entity(0x0200, 0x0000, /*goto*/ 0x03) + + // Wait 5 seconds. During this time: + // - If the camspy moves away, exit the loop and follow it + // - If the player comes into sight, return from the function + beginloop(0x03) + if_timer_gt(300, /*goto*/ 0x04) + if_chr_distance_gt(400, /*goto*/ 0x13) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_player_looking_at_something_maybe(0x00, 0x00, 0x01, /*goto*/ 0x16) + if_target_chr_in_sight(/*goto*/ 0x0b) + label(0x16) + set_target_chr(FOLLOW_CHR) + endloop(0x03) + + // Camspy moved away - follow it + label(0x13) + goto_first(0x00) + + // Timer expired + label(0x04) + do_special_animation(-1) + say_quip(CHR_JOANNA, 0x1c, 0xff, 0x00, 0xff, BANK_0, 0x00, 0x00) // "What the hell?","Hello there","What's this?" + + // Wait another 5 seconds with same logic as previous timer + beginloop(0x05) + if_chr_idle(/*goto*/ 0x13) + if_timer_gt(300, /*goto*/ 0x06) + label(0x13) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_player_looking_at_something_maybe(0x00, 0x00, 0x01, /*goto*/ 0x16) + if_target_chr_in_sight(/*goto*/ 0x0b) + label(0x16) + set_target_chr(FOLLOW_CHR) + endloop(0x05) + + // Timer expired + label(0x06) + if_self_flag_bankx_eq(CHRFLAG1_LONG_CAMSPY_OBSERVATION, FALSE, BANK_1, /*goto*/ 0xe8) + unset_self_flag_bankx(CHRFLAG1_LONG_CAMSPY_OBSERVATION, BANK_1) + goto_first(0x00) + + // Player in sight while observing camspy + label(0x0b) + return + + // Timer expired second time + label(0xe8) + say_quip(CHR_JOANNA, 0x28, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "It's a spy!" + + // Shoot camspy + label(0x09) + set_self_flag_bank3(CHRFLAG3_00000040) + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x16) + label(0x16) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0xc3) + + // Wait until shooting animation done + beginloop(0xc3) + if_chr_stopped(/*goto*/ 0x16) + endloop(0xc3) + + label(0x16) + dprint 'E','1','\n',0, + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0x13) + if_chr_dying(TARGET_CHR, /*goto*/ 0x13) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0x13) + + // Camspy still alive + dprint 'E','2','\n',0, + if_chr_sees_player(/*goto*/ 0x16) + dprint 'E','3','\n',0, + goto_next(0x13) + + // Unreachable - no label + dprint 'E','4','\n',0, + if_target_chrs_field_0x17e_is_different(/*goto*/ 0x16) + dprint 'E','5','\n',0, + goto_next(0x13) + + label(0x16) + dprint 'E','6','\n',0, + if_chr_lost_track_of_target_maybe(/*goto*/ 0x13) + dprint 'E','7','\n',0, + goto_first(0x09) + + label(0x13) + set_target_chr(CHR_JOANNA) + dprint 'E','8','\n',0, + set_self_flag_bankx(CHRFLAG1_10000000, BANK_1) + set_function(CHR_SELF, GFUNC_SEARCH_FOR_PLAYER) + endfunction +}; + +u8 func001d_search_for_player[] = { + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x13) + if_chr_dying(CHR_SELF, /*goto*/ 0x13) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x13) + goto_next(0x16) + + // Dying + label(0x13) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x16) + if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, FALSE, BANK_1, /*goto*/ 0x13) + set_chr_special_death_animation(CHR_SELF, 0) + label(0x13) + dprint 'S','E','A','R','C','H',' ','R','O','O','M','\n',0, + set_chr_dodge_rating(2, 0x00) + label(0x00) + set_target_chr(FOLLOW_CHR) + set_self_flag_bankx(CHRFLAG1_01000000, BANK_1) + if_self_flag_bankx_eq(CHRFLAG1_10000000, TRUE, BANK_1, /*goto*/ 0x16) + set_chr_roomtosearch + if_chr_distance_gt(1000, /*goto*/ 0x13) + try_run_to_target_chr_with_hand_up(/*goto*/ 0x03) + label(0x13) + try_run_to_target_chr(/*goto*/ 0x03) + + beginloop(0x03) + dprint 'S','E','A','R','C','H','I','N','I','T','\n',0, + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x12) + if_self_flag_bankx_eq(CHRFLAG0_AIVSAI, FALSE, BANK_0, /*goto*/ 0x13) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0xc3) + label(0x13) + if_chr_in_room(CHR_SELF, 0x01, 0x0001, /*goto*/ 0x16) + endloop(0x03) + + // Player is in the same room as self + label(0x16) + restart_timer + + beginloop(0x0a) + dprint 'P','O','I','N','T',' ','S','R','C','H','\n',0, + if_self_flag_bankx_eq(CHRFLAG0_AIVSAI, FALSE, BANK_0, /*goto*/ 0x13) + if_self_flag_bankx_eq(CHRFLAG1_00000400, TRUE, BANK_1, /*goto*/ 0x15) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0xc3) + goto_next(0x13) + + label(0x15) + if_enemy_distance_lt_and_los(100, /*goto*/ 0xc3) + label(0x13) + if_self_flag_bankx_eq(CHRFLAG1_00000400, FALSE, BANK_1, /*goto*/ 0x13) + if_chr_distance_lt(500, /*goto*/ 0x13) + goto_next(0x05) + + label(0x13) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_player_looking_at_something_maybe(0x00, 0x00, 0x01, /*goto*/ 0x15) + if_target_chr_in_sight(/*goto*/ 0x12) + label(0x15) + if_timer_gt(30, /*goto*/ 0x05) + endloop(0x0a) + + label(0x05) + restart_timer + label(0x06) + if_chr_distance_lt(1000, /*goto*/ 0x13) + goto_first(0x00) + + label(0x13) + stop_chr + if_self_flag_bankx_eq(CHRFLAG1_DONE_SEARCH_ANIM, TRUE, BANK_1, /*goto*/ 0x13) + call_rng + if_rand_gt(128, /*goto*/ 0x13) + call_rng + if_rand_lt(64, /*goto*/ 0x28) + if_rand_lt(128, /*goto*/ 0x29) + if_rand_lt(196, /*goto*/ 0x2a) + set_self_flag_bankx(CHRFLAG1_DONE_SEARCH_ANIM, BANK_1) + animation(ANIM_LOOK_AROUND_025B, 0, -1, 0x100a, CHR_SELF, 2) + goto_next(0x04) + + label(0x28) + animation(ANIM_LOOK_AROUND_025C, 0, -1, 0x100a, CHR_SELF, 2) + goto_next(0x04) + + label(0x29) + animation(ANIM_LOOK_AROUND_025D, 0, -1, 0x100a, CHR_SELF, 2) + goto_next(0x04) + + label(0x2a) + animation(ANIM_LOOK_AROUND_025E, 0, -1, 0x100a, CHR_SELF, 2) + goto_next(0x04) + + label(0x13) + unset_self_flag_bankx(CHRFLAG1_DONE_SEARCH_ANIM, BANK_1) + call_rng + if_rand_lt(64, /*goto*/ 0x28) + if_rand_lt(128, /*goto*/ 0x29) + if_rand_lt(196, /*goto*/ 0x2a) + try_set_target_pad_to_something(0x08, /*goto*/ 0x13) + label(0x28) + try_set_target_pad_to_something(0x02, /*goto*/ 0x13) + label(0x29) + try_set_target_pad_to_something(0x04, /*goto*/ 0x13) + label(0x2a) + try_set_target_pad_to_something(0x08, /*goto*/ 0x13) + goto_next(0x04) + + label(0x13) + go_to_target_pad(SPEED_WALK) + + beginloop(0x04) + dprint 'W','A','L','K',' ','P','A','D','\n',0, + if_self_flag_bankx_eq(CHRFLAG0_AIVSAI, FALSE, BANK_0, /*goto*/ 0x13) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0xc3) + label(0x13) + if_self_flag_bankx_eq(CHRFLAG1_00000400, FALSE, BANK_1, /*goto*/ 0x13) + if_chr_distance_lt(500, /*goto*/ 0x13) + label(0x13) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + dprint '1','\n',0, + if_timer_gt(600, /*goto*/ 0x0b) + dprint '1','\n',0, + if_chr_stopped(/*goto*/ 0x16) + dprint '1','\n',0, + if_hears_gunfire(/*goto*/ 0x12) + dprint '1','\n',0, + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x12) + dprint '1','\n',0, + if_near_miss(/*goto*/ 0x12) + dprint '1','\n',0, + if_self_flag_bankx_eq(CHRFLAG1_00000400, FALSE, BANK_1, /*goto*/ 0x13) + if_chr_distance_gt(500, /*goto*/ 0x15) + label(0x13) + dprint 'C','H','E','K',' ','V','I','S','\n',0, + if_player_looking_at_something_maybe(0x00, 0x00, 0x01, /*goto*/ 0x15) + if_target_chr_in_sight(/*goto*/ 0x12) + label(0x15) + if_saw_death(0x00, /*goto*/ 0x28) + endloop(0x04) + + label(0x16) + goto_first(0x06) + + // Saw death? + label(0x28) + dprint 'E','Y','E',' ','S','P','Y','\n',0, + label(0x12) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + set_alertness(0) + set_return_function(CHR_SELF, GFUNC_UNALERTED) + set_function(CHR_SELF, GFUNC_UNALERTED) + + label(0x16) + set_alertness(100) + dprint 'S','E','E',' ','P','L','A','Y','\n',0, + if_self_flag_bankx_eq(CHRFLAG1_00000400, FALSE, BANK_1, /*goto*/ 0x13) + say_quip(CHR_JOANNA, 0x1b, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) + label(0x13) + set_function(CHR_SELF, GFUNC_ALERTED) + label(0x0b) + say_quip(CHR_JOANNA, 0x23, 0x32, 0x03, 0xff, BANK_0, 0x00, 0x00) + goto_first(0x05) + + label(0xc3) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + set_alertness(0) + set_return_function(CHR_SELF, GFUNC_UNALERTED) + set_function(CHR_SELF, GFUNC_UNALERTED) + + label(0x16) + set_return_function(CHR_SELF, GFUNC_UNALERTED) + set_onshot_function(GFUNC_COMBAT_WITH_TARGET_CHR) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + endfunction +}; + +u8 func001f_related_to_spawning[] = { + dprint 'S','E','E',' ','P','L','A','Y','\n',0, + if_chr_dying(CHR_SELF, /*goto*/ 0x13) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x13) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x13) + goto_next(0x16) + + // Dying + label(0x13) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x16) + set_return_function(CHR_SELF, GFUNC_RELATED_TO_SPAWNING) + set_target_chr(CHR_P1P2) + set_onshot_function(GFUNC_RELATED_TO_SPAWNING) + if_num_times_shot_lt(1, /*goto*/ 0x1a) // pointless check + label(0x1a) + set_action(ACTION_SCAN, TRUE) + yield + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_alertness(100, OPERATOR_LESS_THAN, /*goto*/ 0x16) + goto_next(0x78) + + // Not alert + label(0x16) + if_saw_death(0x01, /*goto*/ 0x1e) + if_shot_near_chr(0x01, /*goto*/ 0x1e) + if_player_looking_at_something_maybe(0x00, 0x00, 0x01, /*goto*/ 0x16) + if_target_chr_in_sight(/*goto*/ 0x1e) + label(0x16) + if_self_flag_bankx_eq(CHRFLAG0_AIVSAI, FALSE, BANK_0, /*goto*/ 0x16) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + goto_next(0x12) + + label(0x16) + if_near_miss(/*goto*/ 0x1e) + if_num_times_shot_gt(0, /*goto*/ 0x1e) + if_self_flag_bankx_eq(CHRFLAG0_NOHEAR, FALSE, BANK_0, /*goto*/ 0x16) + if_chr_sees_player(/*goto*/ 0x16) + goto_next(0x13) + + label(0x16) + if_shot_at_close_range(/*goto*/ 0x1f) + label(0x13) + if_self_flag_bankx_eq(CHRFLAG0_CAN_HEAR_ALARMS, FALSE, BANK_0, /*goto*/ 0x16) + if_alarm_active(/*goto*/ 0x23) + label(0x16) + goto_first(0x1a) + + label(0x1e) + dprint 'S','E','E',' ','D','E','T','E','C','T','\n',0, + say_quip(CHR_JOANNA, 0x0b, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) + label(0x9f) + set_group_alertness(100) + set_alertness(255) + set_return_function(CHR_SELF, GFUNC_RELATED_TO_SPAWNING) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + + label(0x1f) + yield + say_quip(CHR_JOANNA, 0x09, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) + if_self_flag_bankx_eq(CHRFLAG0_CAN_HEARSPAWN, TRUE, BANK_0, /*goto*/ 0xda) + set_group_alertness(100) + set_return_function(CHR_SELF, GFUNC_RELATED_TO_SPAWNING) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + + label(0xda) + if_never_been_onscreen(/*goto*/ 0x0e) + set_return_function(CHR_SELF, GFUNC_RELATED_TO_SPAWNING) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + + label(0x0e) + if_chr_death_animation_finished(CHR_CLONE, /*goto*/ 0x0e) + if_chr_unloaded(CHR_CLONE, /*goto*/ 0x0e) + set_return_function(CHR_SELF, GFUNC_RELATED_TO_SPAWNING) + set_function(CHR_SELF, GFUNC_RELATED_TO_SPAWNING) + + label(0x0e) + try_spawn_clone2(CHR_SELF, GFUNC_SEARCH_FOR_PLAYER, 0x00000000, /*goto*/ 0x13) + set_return_function(CHR_SELF, GFUNC_RELATED_TO_SPAWNING) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + + label(0x13) + set_function(CHR_SELF, GFUNC_RELATED_TO_SPAWNING) + + // Alert + label(0x78) + if_self_flag_bankx_eq(CHRFLAG0_CAN_HEARSPAWN, FALSE, BANK_0, /*goto*/ 0x13) + set_alertness(0) + goto_first(0xda) + + label(0x13) + set_return_function(CHR_SELF, GFUNC_RELATED_TO_SPAWNING) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + + label(0x12) + if_self_flag_bankx_eq(CHRFLAG1_00100000, TRUE, BANK_1, /*goto*/ 0x13) + set_return_function(CHR_SELF, GFUNC_RELATED_TO_SPAWNING) + + label(0x13) + dprint 'W','A','R','N','E','D','B','E','N','D','3','\n',0, + set_return_function(CHR_SELF, GFUNC_RELATED_TO_SPAWNING) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + endfunction +}; + +/** + * Not used? + */ +u8 func0012_init_coop_100[] = { + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_00000400) + set_self_flag_bank3(CHRFLAG3_00040000) + set_chr_alliance(CHR_SELF, ALLIANCE_ALLY) + set_self_flag_bank3(CHRFLAG3_01000000) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_PSYCHOSISED) + set_alertness(100) + set_follow_chr(CHR_JOANNA) + yield + cmd0145_rebuild_groups + cmd0146_rebuild_groups + yield + yield + yield + yield + yield + yield + yield + yield + + // Wait for intro to finish + beginloop(0x03) + if_camera_animating(/*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + endloop(0x03) + + label(0x16) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_target_chr(-1) + + // Set stage flag 00000080 for Air Force One and Skedar Ruins + if_stage_is_not(STAGE_AIRFORCEONE, /*goto*/ 0x15) + set_stage_flag(0x00000080) + label(0x15) + + if_stage_is_not(STAGE_SKEDARRUINS, /*goto*/ 0x15) + set_stage_flag(0x00000080) + label(0x15) + + // Uncloak + set_chr_cloaked(CHR_SELF, FALSE, TRUE) + + // Wait 2 seconds + restart_timer + + beginloop(0x04) + if_timer_gt(120, /*goto*/ 0x16) + endloop(0x04) + + label(0x16) + set_target_chr(-1) + + // Set the flags again + if_stage_is_not(STAGE_AIRFORCEONE, /*goto*/ 0x15) + set_stage_flag(0x00000080) + + label(0x15) + if_stage_is_not(STAGE_SKEDARRUINS, /*goto*/ 0x15) + set_stage_flag(0x00000080) + + label(0x15) + set_function(CHR_SELF, GFUNC_COOP_BUDDY) + endfunction +}; + +/** + * Similar to the previous function, but with minor differences. + * Alertness is 200 for example. + * + * Not used? + */ +u8 func0013_init_coop_200[] = { + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_00000400) + set_chr_alliance(CHR_SELF, ALLIANCE_ALLY) + set_self_flag_bank3(CHRFLAG3_00040000) + set_self_flag_bank3(CHRFLAG3_01000000) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_PSYCHOSISED) + set_alertness(200) + yield + yield + yield + yield + yield + yield + yield + yield + yield + set_self_flag_bank3(CHRFLAG3_00080000) + + // Wait for intro to finish + beginloop(0x03) + if_camera_animating(/*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + endloop(0x03) + + label(0x16) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_chr_cloaked(CHR_SELF, FALSE, TRUE) + + // Wait 2 seconds + restart_timer + + beginloop(0x04) + if_timer_gt(120, /*goto*/ 0x16) + endloop(0x04) + + label(0x16) + set_target_chr(-1) + + // Set stage flag 00000080 for Air Force One and Skedar Ruins + if_stage_is_not(STAGE_AIRFORCEONE, /*goto*/ 0x15) + set_stage_flag(0x00000080) + + label(0x15) + if_stage_is_not(STAGE_SKEDARRUINS, /*goto*/ 0x15) + set_stage_flag(0x00000080) + + label(0x15) + set_function(CHR_SELF, GFUNC_COOP_BUDDY) + endfunction +}; + +u8 func0014_coop_buddy[] = { +#define LABEL_PLACE_BUDDY 0x0a + + set_return_function(CHR_SELF, GFUNC_COOP_BUDDY) + set_onshot_function(GFUNC_COOP_BUDDY) + dprint 'B','A','C','K',' ','T','O',' ','B','U','D','D','Y','\n',0, + unset_self_flag_bank3(CHRFLAG3_00040000) + set_self_flag_bankx(CHRFLAG1_00100000, BANK_1) + set_var_a(0) + set_onshot_function(GFUNC_COOP_BUDDY) + set_target_chr(CHR_JOANNA) + if_chr_dying(CHR_SELF, /*goto*/ 0x13) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x13) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x13) + goto_next(0x16) + + // Dying + label(0x13) + dprint 'B','U','D','D','Y',' ','D','I','E','\n',0, + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x16) + if_just_injured(CHR_SELF, /*goto*/ 0x13) + goto_next(0x16) + + // Injured + label(0x13) + say_quip(CHR_JOANNA, 0x0e, 0xff, 0x14, 0xff, BANK_0, 0x00, 0x00) // "I'm hit, I'm hit!","I'm taking fire!","Taking damage!" + dprint 'B','U','D','D','Y',' ','W','O','U','N','D','\n',0, + + beginloop(0xf2) + if_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP, /*goto*/ 0x13) + unset_chr_flag_bank2(CHR_SELF, CHRFLAG2_BUDDY_PLACED) + goto_next(0x15) + + label(0x13) + if_chr_flag_bank2(CHR_SELF, CHRFLAG2_BUDDY_PLACED, /*goto*/ 0x15) + goto_next(LABEL_PLACE_BUDDY) + + label(0x15) + if_chr_stopped(/*goto*/ 0x16) + endloop(0xf2) + + // Healthy + label(0x16) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_08000000, /*goto*/ 0x13) + unset_self_flag_bankx(CHRFLAG1_00000001, BANK_1) + goto_next(0x16) + + label(0x13) + set_self_flag_bankx(CHRFLAG1_00000001, BANK_1) + label(0x16) + if_chr_flag_bank2(CHR_SELF, CHRFLAG2_00000400, /*goto*/ 0xdc) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x03) + label(0xdc) + set_target_chr(CHR_JOANNA) + if_chr_distance_lt(200, /*goto*/ 0x16) + + // Start outer loop + label(0x00) + dprint 'B','U','D','D','Y',' ','G','O',' ','T','O','W','A','R','D','S','\n',0, + set_target_chr(CHR_JOANNA) + restart_timer + if_chr_distance_gt(300, /*goto*/ 0x16) + try_run_to_target_chr_with_hand_up(/*goto*/ 0x0c) + label(0x16) + try_run_to_target_chr(/*goto*/ 0x0c) + + beginloop(0x0c) + if_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP, /*goto*/ 0x13) + unset_chr_flag_bank2(CHR_SELF, CHRFLAG2_BUDDY_PLACED) + goto_next(0x15) + + label(0x13) + if_chr_flag_bank2(CHR_SELF, CHRFLAG2_BUDDY_PLACED, /*goto*/ 0x15) + goto_next(LABEL_PLACE_BUDDY) + + label(0x15) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x06) + goto_next(0x07) + + label(0x06) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_DISGUISED) + label(0x07) + set_target_chr(CHR_JOANNA) + if_chr_sees_player(/*goto*/ 0xdd) + if_chr_flag_bank2(CHR_SELF, CHRFLAG2_00000400, /*goto*/ 0xdc) + label(0xdd) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x03) + label(0xdc) + set_target_chr(CHR_JOANNA) + if_chr_distance_lt(200, /*goto*/ 0x16) + if_timer_gt(60, /*goto*/ 0x13) + endloop(0x0c) + + label(0x13) + goto_first(0x00) + + // Standing next to player + label(0x16) + dprint 'B','U','D','D','Y',' ','S','T','A','N','D','\n',0, + stop_chr + + beginloop(0x04) + if_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP, /*goto*/ 0x13) + unset_chr_flag_bank2(CHR_SELF, CHRFLAG2_BUDDY_PLACED) + goto_next(0x15) + + label(0x13) + if_chr_flag_bank2(CHR_SELF, CHRFLAG2_BUDDY_PLACED, /*goto*/ 0x15) + goto_next(LABEL_PLACE_BUDDY) + + label(0x15) + label(0x13) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x06) + goto_next(0x07) + + label(0x06) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_DISGUISED) + label(0x07) + if_chr_flag_bank2(CHR_SELF, CHRFLAG2_00000400, /*goto*/ 0xdc) + if_stage_is_not(STAGE_G5BUILDING, /*goto*/ 0x15) + goto_next(0x13) + + label(0x15) + if_stage_is_not(STAGE_DEEPSEA, /*goto*/ 0x15) + goto_next(0x13) + + // Not G5 Building or Deep Sea + label(0x15) + cmd0127_try_find_chr_in_group(/*goto*/ 0x0b) + + // All stages + label(0x13) + label(0xdc) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x03) + set_target_chr(CHR_JOANNA) + if_chr_distance_gt(300, /*goto*/ 0x16) + endloop(0x04) + + label(0x16) + goto_first(0x00) + + label(0x03) + dprint 'D','E','T','E','C','T','E','D','\n',0, + call_rng + if_rand_lt(85, /*goto*/ 0xfa) + if_rand_lt(170, /*goto*/ 0xf3) + say_quip(CHR_JOANNA, 0x00, 0xff, 0x14, 0xff, BANK_0, 0x00, 0x00) // "I've got a clear shot","She's mine!" + goto_next(0x13) + + label(0xfa) + say_quip(CHR_JOANNA, 0x0b, 0xff, 0x14, 0xff, BANK_0, 0x00, 0x00) // "Hey, you!","Intruder alert","We've got a contact!" + goto_next(0x13) + + label(0xf3) + say_quip(CHR_JOANNA, 0x15, 0xff, 0x14, 0xff, BANK_0, 0x00, 0x00) // "Give it up!","Surrender, now!","Take that!" + label(0x13) + + // Found chr in group from non G5 or Deep Sea stage + label(0x0b) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_08000000, /*goto*/ 0x13) + unset_self_flag_bankx(CHRFLAG1_00000001, BANK_1) + goto_next(0x16) + + label(0x13) + set_self_flag_bankx(CHRFLAG1_00000001, BANK_1) + label(0x16) + set_return_function(CHR_SELF, GFUNC_COOP_BUDDY) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + + label(LABEL_PLACE_BUDDY) + set_function(CHR_SELF, GFUNC_PLACE_COOP_BUDDY) + endfunction +}; + +/** + * Not used? + */ +u8 func002b_do_something_and_wait[] = { + cmd01c5 + + beginloop(0x03) + if_chr_stopped(/*goto*/ 0x16) + endloop(0x03) + + label(0x16) + return + endfunction +}; + +/** + * Not used. + */ +u8 func0022_comment_on_player_dead[] = { + set_aishootingatmel(0) + dprint 'K','I','L','L','\n',0, + stop_chr + + // Wait until player in sight. Which won't happen if the current chr is + // stopped and player is dying... + beginloop(0x0c) + if_chr_sees_player(/*goto*/ 0x16) + endloop(0x0c) + + // Wait half a second + label(0x16) + restart_timer + + beginloop(0x03) + if_timer_gt(30, /*goto*/ 0x13) + endloop(0x03) + + // Roll the dice, and maybe wait another half second + label(0x13) + call_rng + if_rand_gt(25, /*goto*/ 0x16) + goto_first(0x03) + + label(0x16) + dprint 'K','I','L','L','E','D','E','R','\n',0, + say_quip(CHR_JOANNA, 0x26, 0xff, 0x02, 0x00, BANK_0, 0x00, 0x00) // "Grab a body bag","One for the morgue","Rest in peace" + say_quip(CHR_JOANNA, 0x15, 0x80, 0x03, 0x01, BANK_0, 0x00, 0x00) // "Give it up!","Surrender, now!","Take that!" + + beginloop(0x04) + endloop(0x04) + + // Unreachable + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Do a sideways dodge, then assign GFUNC_ALERTED. + * + * Not used? + */ +u8 func0023_dodge[] = { + if_chr_dying(CHR_SELF, /*goto*/ 0x16) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x16) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x16) + goto_next(0x13) + + // Dying + label(0x16) + set_aishootingatmel(0) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x13) + dprint 'D','O','D','O','\n',0, + set_self_flag_bankx(CHRFLAG1_00020000, BANK_1) + + // 50% chance of hop vs jump + call_rng + if_rand_lt(128, /*goto*/ 0x2d) + try_hop_sideways(/*goto*/ 0x13) + goto_next(0x2e) + + label(0x2d) + try_jump_sideways(/*goto*/ 0x13) + goto_next(0x2c) + + // Unreachable + label(0xbb) + cmd0139(25, 0x01, TRUE) + goto_next(0x2c) + + // Was able to start dodge + label(0x13) + + beginloop(0x2c) + if_chr_stopped(/*goto*/ 0x2e) + endloop(0x2c) + + // Unable to hop sideways, or follow-through from above + label(0x2e) + set_self_flag_bankx(CHRFLAG1_00020000, BANK_1) + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +/** + * This appears to be a function used to test something related to the co-op + * buddy and the intro cinema. The function expects the cutscene to finish and + * then start again several times. After this has happened, the co-op buddy is + * warped to the same pad every second. + * + * Not used. + */ +u8 func0015_test_cutscene_buddy[] = { + stop_chr + set_chr_cloaked(CHR_SELF, TRUE, TRUE) + + // Wait 1 second + restart_timer + + beginloop(0x03) + if_timer_gt(60, /*goto*/ 0x16) + endloop(0x03) + + // Hide chr + label(0x16) + cmd01e0 + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3((CHRFLAG3_HIDDEN | CHRFLAG3_00010000 | CHRFLAG3_00040000)) + + // Wait 3 seconds + restart_timer + + beginloop(0x04) + if_timer_gt(180, /*goto*/ 0x16) + endloop(0x04) + + // Wait for intro to finish and for 1 second to have passed + // (in case intro was cut by player) + #define wait_intro(loopid) \ + restart_timer \ + beginloop(loopid) \ + if_camera_animating(/*goto*/ 0x13) \ + if_timer_gt(60, /*goto*/ 0x16) \ + label(0x13) \ + endloop(loopid) \ + label(0x16) + + + + label(0x16) + + wait_intro(0x05) + cmd01b4_if_something(/*goto*/ 0x17) + + wait_intro(0x06) + cmd01b4_if_something(/*goto*/ 0x17) + + wait_intro(0x07) + cmd01b4_if_something(/*goto*/ 0x17) + + wait_intro(0x08) + cmd01b4_if_something(/*goto*/ 0x17) + + wait_intro(0x09) + cmd01b4_if_something(/*goto*/ 0x17) + + wait_intro(0x0a) + cmd01b4_if_something(/*goto*/ 0x17) + + label(0x19) + wait_intro(0x0b) + + // This will execute every second after the initial 7ish seconds and while + // cutscene is not running. The chr is being moved back to the same pad + // repeatedly, so this is surely some kind of debug function. + set_chr_flag_bank2(CHR_SELF, 0x00100200) + chr_move_to_pad(CHR_SELF, 0x00f8, 0x58, /*goto*/ 0x17) + goto_first(0x19) + + label(0x17) + unset_self_flag_bank3(0x00050400) + unset_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank2(CHR_SELF, 0x00100200) + set_chr_cloaked(CHR_SELF, FALSE, TRUE) + set_return_function(CHR_SELF, GFUNC_COOP_BUDDY) + set_onshot_function(GFUNC_COOP_BUDDY) + set_function(CHR_SELF, GFUNC_COOP_BUDDY) + endfunction +}; + +/** + * Not used. + */ +u8 func002c_init_search_unused[] = { + set_self_flag_bankx(CHRFLAG1_00000400, BANK_1) + set_self_flag_bankx(CHRFLAG1_10000000, BANK_1) + set_function(CHR_SELF, GFUNC_SEARCH_FOR_PLAYER) + endfunction +}; + +/** + * Not used. + */ +u8 func0024_follow_joanna[] = { + set_target_chr(CHR_JOANNA) + + label(0x03) + restart_timer + try_run_to_target_chr(/*goto*/ 0x04) + + beginloop(0x04) + set_action(ACTION_FOLLOW, FALSE) + if_chr_distance_lt(200, /*goto*/ 0x16) + if_timer_gt(120, /*goto*/ 0x13) + if_chr_stopped(/*goto*/ 0x13) + endloop(0x04) + + // Been running for 2 seconds, or stopped + label(0x13) + goto_first(0x03) + + // Within 200 units + label(0x16) + stop_chr + + // Wait here until 300 units away, then follow again + beginloop(0x05) + set_action(ACTION_WAIT, FALSE) + if_chr_distance_gt(300, /*goto*/ 0x16) + endloop(0x05) + + label(0x16) + goto_first(0x03) + + endfunction +}; + +/** + * Not used. + */ +u8 func0025_pointless[] = { + // Wait until target chr is dead + beginloop(0x0c) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0x03) + if_chr_dying(TARGET_CHR, /*goto*/ 0x03) + endloop(0x0c) + + // Wait 10 seconds + label(0x03) + restart_timer + + beginloop(0x04) + if_timer_gt(600, /*goto*/ 0x13) + endloop(0x04) + + // Continue waiting 10 seconds indefinitely + label(0x13) + goto_first(0x03) + + endfunction +}; + +u8 func0026_init_psychosis[] = { + set_onshot_function(GFUNC_INIT_PSYCHOSIS) + set_chr_alliance(CHR_SELF, 0x80) + set_self_flag_bankx(CHRFLAG1_80000000, BANK_1) + set_self_flag_bank3(CHRFLAG3_00040000) + set_self_flag_bank3(CHRFLAG3_01000000) + set_self_flag_bankx(CHRFLAG1_00100000, BANK_1) + set_self_flag_bankx(CHRFLAG1_40000000, BANK_1) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_PSYCHOSISED) + set_alertness(100) + set_follow_chr(CHR_JOANNA) + yield + cmd0145_rebuild_groups + cmd0146_rebuild_groups + yield + yield + yield + yield + yield + yield + yield + yield + animation(ANIM_BIG_SNEEZE, -1, -1, 0x1014, CHR_SELF, 2) + + // Wait for animation to finish + beginloop(0x03) + if_chr_stopped(/*goto*/ 0x16) + endloop(0x03) + + // Become ally + label(0x16) + set_chr_alliance(CHR_SELF, ALLIANCE_ALLY) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + + label(0x16) + set_target_chr(-1) + set_function(CHR_SELF, GFUNC_PSYCHOSISED) + endfunction +}; + +u8 func0027_psychosised[] = { + set_var_a(0) + set_onshot_function(GFUNC_PSYCHOSISED) + set_target_chr(FOLLOW_CHR) + if_chr_dying(CHR_SELF, /*goto*/ 0x13) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x13) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x13) + goto_next(0x16) + + // Dying + label(0x13) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x16) + if_just_injured(CHR_SELF, /*goto*/ 0x13) + goto_next(0x16) + + // Injured + label(0x13) + say_quip(CHR_JOANNA, 0x0e, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "I'm hit, I'm hit!","I'm taking fire!","Taking damage!" + + beginloop(0xf2) + if_chr_stopped(/*goto*/ 0x16) + endloop(0xf2) + + // Healthy + label(0x16) + cmd0127_try_find_chr_in_group(/*goto*/ 0x03) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x03) + set_target_chr(FOLLOW_CHR) + if_chr_distance_lt(200, /*goto*/ 0x16) + + // Following Joanna + label(0x00) + set_target_chr(FOLLOW_CHR) + restart_timer + if_chr_distance_gt(300, /*goto*/ 0x16) + try_run_to_target_chr_with_hand_up(/*goto*/ 0x0c) + label(0x16) + if_chr_distance_lt(200, /*goto*/ 0x16) + try_run_to_target_chr(/*goto*/ 0x0c) + + beginloop(0x0c) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x06) + goto_next(0x07) + + label(0x06) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_DISGUISED) + label(0x07) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x03) + set_target_chr(FOLLOW_CHR) + if_chr_distance_lt(200, /*goto*/ 0x16) + if_timer_gt(60, /*goto*/ 0x13) + endloop(0x0c) + + label(0x13) + goto_first(0x00) + + // At Joanna + label(0x16) + stop_chr + + beginloop(0x04) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x06) + goto_next(0x07) + + label(0x06) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_DISGUISED) + label(0x07) + cmd0127_try_find_chr_in_group(/*goto*/ 0x03) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x03) + set_target_chr(FOLLOW_CHR) + if_chr_distance_gt(300, /*goto*/ 0x16) + endloop(0x04) + + label(0x16) + goto_first(0x00) + + // Detected enemy + label(0x03) + call_rng + if_rand_lt(85, /*goto*/ 0xfa) + if_rand_lt(170, /*goto*/ 0xf3) + + say_quip(CHR_JOANNA, 0x00, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "I've got a clear shot","She's mine!" + goto_next(0x13) + + label(0xfa) + say_quip(CHR_JOANNA, 0x0b, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "Hey, you!","Intruder alert","We've got a contact!" + goto_next(0x13) + + label(0xf3) + say_quip(CHR_JOANNA, 0x15, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "Give it up!","Surrender, now!","Take that!" + + label(0x13) + set_return_function(CHR_SELF, GFUNC_PSYCHOSISED) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + endfunction +}; + +u8 func002d_invincible_and_idle[] = { + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_UNEXPLODABLE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0020_place_coop_buddy[] = { + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_00040000) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_CLOAKED) + stop_chr + set_target_chr(CHR_JOANNA) + yield + if_stage_is_not(STAGE_DEEPSEA, /*goto*/ 0x15) + goto_next(0x16) + + // Not Deep Sea + label(0x15) + if_stage_is_not(STAGE_AIRFORCEONE, /*goto*/ 0x15) + + // Deep Sea or Air Force One + label(0x16) + yield + yield + yield + yield + yield + + // Try to move chr to one of four pads until it works + label(0x03) + yield + try_set_target_pad_to_something2(0x01, /*goto*/ 0xfa) + goto_next(0xf3) + + label(0xfa) + chr_move_to_pad(CHR_SELF, TARGET_PAD, 0x01, /*goto*/ 0x13) + label(0xf3) + try_set_target_pad_to_something2(0x02, /*goto*/ 0xfa) + goto_next(0xf3) + + label(0xfa) + chr_move_to_pad(CHR_SELF, TARGET_PAD, 0x01, /*goto*/ 0x13) + label(0xf3) + try_set_target_pad_to_something2(0x04, /*goto*/ 0xfa) + goto_next(0xf3) + + label(0xfa) + chr_move_to_pad(CHR_SELF, TARGET_PAD, 0x01, /*goto*/ 0x13) + label(0xf3) + try_set_target_pad_to_something2(0x08, /*goto*/ 0xfa) + goto_next(0xf3) + + label(0xfa) + chr_move_to_pad(CHR_SELF, TARGET_PAD, 0x01, /*goto*/ 0x13) + label(0xf3) + goto_first(0x03) + + // Move to pad worked + label(0x13) + unset_self_flag_bank3(CHRFLAG3_HIDDEN) + unset_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + stop_chr + set_chr_cloaked(CHR_SELF, FALSE, TRUE) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_BUDDY_PLACED) + set_return_function(CHR_SELF, GFUNC_COOP_BUDDY) + set_function(CHR_SELF, GFUNC_COOP_BUDDY) + + // Not Deep Sea nor Air Force One + label(0x15) + yield + yield + yield + yield + yield + stop_chr + if_stage_is_not(STAGE_ATTACKSHIP, /*goto*/ 0x04) + + // Attack Ship + beginloop(0x05) + chr_move_to_pad(CHR_SELF, 0x011f, 0x01, /*goto*/ 0x13) + chr_move_to_pad(CHR_SELF, 0x0120, 0x01, /*goto*/ 0x13) + chr_move_to_pad(CHR_SELF, 0x0121, 0x01, /*goto*/ 0x13) + chr_move_to_pad(CHR_SELF, 0x0122, 0x01, /*goto*/ 0x13) + endloop(0x05) + + // Not Air Force One, Deep Sea or Attack Ship + beginloop(0x04) + chr_move_to_pad(CHR_SELF, 0x0012, 0x01, /*goto*/ 0x13) + chr_move_to_pad(CHR_SELF, 0x001a, 0x01, /*goto*/ 0x13) + chr_move_to_pad(CHR_SELF, 0x0013, 0x01, /*goto*/ 0x13) + chr_move_to_pad(CHR_SELF, 0x0019, 0x01, /*goto*/ 0x13) + endloop(0x04) + + // Move to pad worked + label(0x13) + stop_chr + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_00020000) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_BUDDY_PLACED) + + // Wait until flag unset (timer is not checked) + restart_timer + + beginloop(0xef) + if_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + endloop(0xef) + + // Unhide + label(0x16) + unset_self_flag_bank3(CHRFLAG3_HIDDEN) + unset_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + stop_chr + set_chr_cloaked(CHR_SELF, FALSE, TRUE) + set_return_function(CHR_SELF, GFUNC_COOP_BUDDY) + set_function(CHR_SELF, GFUNC_COOP_BUDDY) + endfunction +}; + +u8 func0021_stop_and_idle[] = { + set_onshot_function(GFUNC_STOP_AND_IDLE) + stop_chr + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Maybe used by multiplayer bots? + */ +u8 func0029_ai_bot_init[] = { + dprint 'l','i','s','t',':',' ','a','i','b','o','t','i','n','i','t',0, + set_chr_health(CHR_SELF, 80) + set_reaction_speed(100) + set_return_function(CHR_SELF, GFUNC_AI_BOT_ALIVE) + + beginloop(0x19) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x13) + goto_next(0x16) + + label(0x13) + endloop(0x19) + + label(0x16) + set_function(CHR_SELF, GFUNC_AI_BOT_ALIVE) + endfunction +}; + +u8 func0028_ai_bot_dead[] = { + dprint 'l','i','s','t',':',' ','a','i','d','e','a','d',0, + + beginloop(0x0d) + cmd0176_if_something(/*goto*/ 0x16) + endloop(0x0d) + + label(0x16) + set_function(CHR_SELF, GFUNC_AI_BOT_INIT) + endfunction +}; + +u8 func002a_ai_bot_alive[] = { + beginloop(0xf8) + if_chr_dying(CHR_SELF, /*goto*/ 0xf9) + endloop(0xf8) + + label(0xf9) + set_function(CHR_SELF, GFUNC_AI_BOT_DEAD) + endfunction +}; + +struct ailists functions[] = { + { func0000_idle, 0x0000 }, + { func0001_unalerted_0001, 0x0001 }, + { func0004_unalerted_0004, 0x0004 }, + { func0003_stop_unalerted, 0x0003 }, + { func0002_unalerted_0002, 0x0002 }, + { func0005_end_cinema, 0x0005 }, + { func0006_unalerted, 0x0006 }, + { func0007_alerted, 0x0007 }, + { func0008_wakeup, 0x0008 }, + { func000a_do_idle_animation, 0x000a }, + { func000b_choose_target_chr, 0x000b }, + { func000c_combat_with_target_chr, 0x000c }, + { func000d_init_combat, 0x000d }, + { func000e_see_then_attack, 0x000e }, + { func0016_show_objective_failed_msg, 0x0016 }, + { func0017_rebuild_groups, 0x0017 }, + { func0018_do_bored_animation, 0x0018 }, + { func0019_do_sitting_animation, 0x0019 }, + { func0000_idle_0009, 0x0009 }, + { func001a_maybe_unset_disspee, 0x001a }, + { func000f_hand_combat, 0x000f }, + { func0010_civilian_say_comment, 0x0010 }, + { func0011_flee_from_grenade, 0x0011 }, + { func001b_observe_camspy, 0x001b }, + { func0020_place_coop_buddy, 0x0020 }, + { func0012_init_coop_100, 0x0012 }, + { func0013_init_coop_200, 0x0013 }, + { func0014_coop_buddy, 0x0014 }, + { func001d_search_for_player, 0x001d }, + { func001e_look_around, 0x001e }, + { func001f_related_to_spawning, 0x001f }, + { func001c_surprised, 0x001c }, + { func0022_comment_on_player_dead, 0x0022 }, + { func0023_dodge, 0x0023 }, + { func002c_init_search_unused, 0x002c }, + { func0024_follow_joanna, 0x0024 }, + { func0025_pointless, 0x0025 }, + { func0026_init_psychosis, 0x0026 }, + { func0027_psychosised, 0x0027 }, + { func002d_invincible_and_idle, 0x002d }, + { func0021_stop_and_idle, 0x0021 }, + { func0015_test_cutscene_buddy, 0x0015 }, + { func0028_ai_bot_dead, 0x0028 }, + { func0029_ai_bot_init, 0x0029 }, + { func002a_ai_bot_alive, 0x002a }, + { func002b_do_something_and_wait, 0x002b }, + { NULL, 0 }, +}; + diff --git a/src/include/commands.h b/src/include/commands.h new file mode 100644 index 000000000..9d4abb728 --- /dev/null +++ b/src/include/commands.h @@ -0,0 +1,1846 @@ +#include "util.h" + +#define goto_next(label) \ + mkshort(0x0000), \ + label, + +#define goto_first(label) \ + mkshort(0x0001), \ + label, + +#define label(id) \ + mkshort(0x0002), \ + id, + +#define yield \ + mkshort(0x0003), + +#define endfunction \ + mkshort(0x0004), + +#define set_function(chr, function) \ + mkshort(0x0005), \ + chr, \ + mkshort(function), + +#define set_return_function(chr, function) \ + mkshort(0x0006), \ + chr, \ + mkshort(function), + +#define set_onshot_function(function) \ + mkshort(0x0007), \ + mkshort(function), + +#define return \ + mkshort(0x0008), + +#define stop_chr \ + mkshort(0x0009), + +#define kneel \ + mkshort(0x000a), + +#define animation(animation, unknown1, unknown2, unknown3, chr, animspeed) \ + mkshort(0x000b), \ + mkshort(animation), \ + mkshort(unknown1), \ + mkshort(unknown2), \ + mkshort(unknown3), \ + chr, \ + animspeed, + +#define if_chr_idle(label) \ + mkshort(0x000c), \ + label, + +#define try_jump_sideways(label) \ + mkshort(0x000f), \ + label, + +#define try_hop_sideways(label) \ + mkshort(0x0010), \ + label, + +#define try_run_sideways(label) \ + mkshort(0x0011), \ + label, + +#define try_walk_and_shoot(label) \ + mkshort(0x0012), \ + label, + +#define try_roll_and_shoot(label) \ + mkshort(0x0014), \ + label, + +#define try_aim_and_shoot_thing1(u1, u2, label) \ + mkshort(0x0015), \ + mkshort(u1), \ + mkshort(u2), \ + label, + +#define try_chr_kneel_and_shoot_thing(u1, u2, label) \ + mkshort(0x0016), \ + mkshort(u1), \ + mkshort(u2), \ + label, + +#define try_aim_and_shoot_thing2(u1, u2, label) \ + mkshort(0x0017), \ + mkshort(u1), \ + mkshort(u2), \ + label, + +// Suspected types: +// Type 0004 = no idea +// Type 0008 = pad +// Type 0010 = compass direction (0000, 4000, 8000, c000) +// Type 0200 = player +#define try_face_entity(entity_type, entity_id, label) \ + mkshort(0x0018), \ + mkshort(entity_type), \ + mkshort(entity_id), \ + label, + +#define damage_chr(chr, value) \ + mkshort(0x0019), \ + chr, \ + 0x08, \ + value, \ + 0x00, \ + 0x00, \ + 0x00, + +#define chr_shoot_chr(chr1, chr2, weapon) \ + mkshort(0x001a), \ + chr1, \ + chr2, \ + weapon, + +// Only ever called with values 512, 0 +#define consider_throwing_grenade(value_1, value_2, label) \ + mkshort(0x001b), \ + mkshort(value_1), \ + mkshort(value_2), \ + label, + +#define jog_to_pad(pad) \ + mkshort(0x001d), \ + mkshort(pad), + +#define go_to_target_pad(speed) \ + mkshort(0x001e), \ + speed, + +#define walk_to_pad(pad) \ + mkshort(0x001f), \ + mkshort(pad), + +#define run_to_pad(pad) \ + mkshort(0x0020), \ + mkshort(pad), + +#define assign_path(pathid) \ + mkshort(0x0021), \ + pathid, + +#define start_path \ + mkshort(0x0022), + +#define if_path_started(label) \ + mkshort(0x0023), \ + label, + +#define surrender \ + mkshort(0x0024), + +#define drop_gun_and_fade_out \ + mkshort(0x0025), + +#define remove_chr(chr) \ + mkshort(0x0026), \ + chr, + +#define activate_alarm \ + mkshort(0x0028), + +#define deactivate_alarm \ + mkshort(0x0029), + +#define try_run_to_target_chr_with_hand_up(label) \ + mkshort(0x002b), \ + label, + +#define try_walk_to_target_chr(label) \ + mkshort(0x002c), \ + label, + +#define try_run_to_target_chr(label) \ + mkshort(0x002d), \ + label, + +#define chr_try_run_to_target_chr_with_hand_up(chr, label) \ + mkshort(0x002f), \ + chr, \ + label, + +#define try_run_to_chr(chr, label) \ + mkshort(0x0031), \ + chr, \ + label, + +#define if_chr_stopped(label) \ + mkshort(0x0032), \ + label, + +#define if_chr_dying(chr, label) \ + mkshort(0x0033), \ + chr, \ + label, + +#define if_chr_death_animation_finished(chr, label) \ + mkshort(0x0034), \ + chr, \ + label, + +#define if_target_chr_in_sight(label) \ + mkshort(0x0035), \ + label, + +#define call_rng \ + mkshort(0x0036), + +#define if_rand_lt(value, label) \ + mkshort(0x0037), \ + value, \ + label, + +#define if_rand_gt(value, label) \ + mkshort(0x0038), \ + value, \ + label, + +#define if_alarm_active2(label) \ + mkshort(0x0039), \ + label, + +#define if_alarm_active(label) \ + mkshort(0x003a), \ + label, + +#define if_hears_gunfire(label) \ + mkshort(0x003c), \ + label, + +#define if_shot_near_chr(u1, label) \ + mkshort(0x003d), \ + u1, \ + label, + +#define if_saw_death(u1, label) \ + mkshort(0x003e), \ + u1, \ + label, + +#define if_chr_sees_player(label) \ + mkshort(0x003f), \ + label, + +#define if_within_units_of_sight(value, label) \ + mkshort(0x0041), \ + mkword(value), \ + label, + +#define if_shot_at_close_range(label) \ + mkshort(0x0044), \ + label, + +#define if_detected_chr(chr, label) \ + mkshort(0x0045), \ + chr, \ + label, + +#define if_never_been_onscreen(label) \ + mkshort(0x0046), \ + label, + +#define if_bitcheck_in_position_struct(label) \ + mkshort(0x0047), \ + label, + +// Used by CIA guards in chicago +#define cmd0049(u1, label) \ + mkshort(0x0049), \ + mkshort(u1), \ + label, + +#define if_chr_in_view(label) \ + mkshort(0x004a), \ + label, + +#define if_near_miss(label) \ + mkshort(0x004b), \ + label, + +#define if_dying(label) \ + mkshort(0x004c), \ + label, + +#define if_angle_to_target_chr_lt(value, label) \ + mkshort(0x004d), \ + value, \ + label, + +// Either bool1 or bool2 are set - never none or both +// When bool1 is set, u1 is populated +// When bool2 is set, u1 is 0 (likely unused) +#define if_player_looking_at_something_maybe(u1, bool1, bool2, label) \ + mkshort(0x004e), \ + u1, \ + bool1, \ + bool2, \ + label, + +// If given value * some global / 256 is less than some value derived from the current chr +// Used by skedar before they do hand combat or pounce +#define cmd004f(value, label) \ + mkshort(0x004f), \ + value, \ + label, + +// The value is multiplied by a variable at 0x7f1a9364 +#define if_distance_to_target_chr_lt(value, label) \ + mkshort(0x0050), \ + value, \ + label, + +#define if_chr_distance_lt(distance, label) \ + mkshort(0x0052), \ + mkshort(distance / 10), \ + label, + +#define if_chr_distance_gt(distance, label) \ + mkshort(0x0053), \ + mkshort(distance / 10), \ + label, + +#define if_chr_distance_to_pad_lt(chr, distance, pad, label) \ + mkshort(0x0054), \ + chr, \ + mkshort(distance / 10), \ + mkshort(pad), \ + label, + +#define if_chr_distance_to_pad_gt(chr, distance, pad, label) \ + mkshort(0x0055), \ + chr, \ + mkshort(distance / 10), \ + mkshort(pad), \ + label, + +#define if_self_distance_to_chr_lt(distance, chr, label) \ + mkshort(0x0056), \ + mkshort(distance / 10), \ + chr, \ + label, + +#define if_chr_distance_to_target_chr_gt(distance, chr, label) \ + mkshort(0x0057), \ + mkshort(distance / 10), \ + chr, \ + label, + +#define if_distance_to_pad_gt2(distance, pad, label) \ + mkshort(0x0059), \ + mkshort(distance / 10), \ + mkshort(pad), \ + label, + +// type 0 = if in +// type 1 = if in same room as self +// type 2 = if 's camspy in +#define if_chr_in_room(chr, type, room, label) \ + mkshort(0x005b), \ + chr, \ + type, \ + mkshort(room), \ + label, + +#define if_chr_has_object(chr, object, label) \ + mkshort(0x005d), \ + chr, \ + object, \ + label, + +#define if_weapon_thrown(weapon, label) \ + mkshort(0x005e), \ + weapon, \ + label, + +#define if_weapon_thrown_on_object(weapon, object, label) \ + mkshort(0x005f), \ + weapon, \ + object, \ + label, + +#define if_chr_weapon_equipped(chr, weapon, label) \ + mkshort(0x0060), \ + chr, \ + weapon, \ + label, + +// If behavior is zero, go to label if object exists. +// If behavior is nonzero, do something related to the current chr and ignore +// the object parameter. +// In practice this is always called with object = -1 and behavior = 1. +#define if_gun_unclaimed(object, behavior, label) \ + mkshort(0x0061), \ + object, \ + behavior, \ + label, + +#define if_object_in_good_condition(object, label) \ + mkshort(0x0062), \ + object, \ + label, + +#define if_chr_activated_object(chr, object, label) \ + mkshort(0x0063), \ + chr, \ + object, \ + label, + +#define destroy_object(object) \ + mkshort(0x0066), \ + object, + +#define drop_concealed_items(chr) \ + mkshort(0x0068), \ + chr, + +#define chr_drop_weapon(chr) \ + mkshort(0x0069), \ + chr, + +#define give_object_to_chr(object, chr) \ + mkshort(0x006a), \ + object, \ + chr, + +#define move_object_to_pad(object, pad) \ + mkshort(0x006b), \ + object, \ + mkshort(pad), + +#define open_door(door) \ + mkshort(0x006c), \ + door, + +#define close_door(door) \ + mkshort(0x006d), \ + door, + +#define if_door_state(door, doorstate, label) \ + mkshort(0x006e), \ + door, \ + doorstate, \ + label, + +#define lock_door(door, bits) \ + mkshort(0x0070), \ + door, \ + bits, + +#define unlock_door(door, bits) \ + mkshort(0x0071), \ + door, \ + bits, + +#define if_door_locked(door, bits, label) \ + mkshort(0x0072), \ + door, \ + bits, \ + label, + +#define if_objective_complete(objective, label) \ + mkshort(0x0073), \ + objective, \ + label, + +#define if_objective_failed(objective, label) \ + mkshort(0x0074), \ + objective, \ + label, + +// This is only ever called in a sequence of 4, with u1 values 8, 2, 4, 8 in +// that order. Believed to be a pad within specific distance of target chr, +// where the higher the number the further the distance. +// If u1 were 0x10 or 0x20, some other logic would be used. +#define try_set_target_pad_to_something(u1, label) \ + mkshort(0x0075), \ + u1, \ + label, + +// Only ever called with values 1, 2, 4 and 8. The value is related to circles, +// perhaps specifying a certain side of the target chr. +// If u1 were 0x10 or 0x20, some other logic would be used (same as previous). +#define try_set_target_pad_to_something2(u1, label) \ + mkshort(0x0076), \ + u1, \ + label, + +#define if_difficulty_lt(diff, label) \ + mkshort(0x0077), \ + diff, \ + label, + +#define if_difficulty_gt(diff, label) \ + mkshort(0x0078), \ + diff, \ + label, + +#define if_stage_lt(stage, label) \ + mkshort(0x007b), \ + stage, \ + label, + +#define if_stage_gt(stage, label) \ + mkshort(0x007c), \ + stage, \ + label, + +#define if_num_times_shot_lt(value, label) \ + mkshort(0x007d), \ + value, \ + label, + +#define if_num_times_shot_gt(value, label) \ + mkshort(0x007e), \ + value, \ + label, + +// Checks chr bank 3 0x00000100. If set, unsets it and follows label. +#define if_just_injured(chr, label) \ + mkshort(0x0083), \ + chr, \ + label, + +#define set_var_a(value) \ + mkshort(0x0084), \ + value, + +#define add_var_a(value) \ + mkshort(0x0085), \ + value, + +#define subtract_var_a(value) \ + mkshort(0x0087), \ + value, + +#define if_var_a_lt(value, label) \ + mkshort(0x0088), \ + value, \ + label, + +#define set_alertness(value) \ + mkshort(0x008a), \ + value, + +#define increase_self_alertness(value) \ + mkshort(0x008b), \ + value, + +#define increase_chr_alertness(value, chr) \ + mkshort(0x008c), \ + value, \ + chr, + +#define if_alertness(value, operator, label) \ + mkshort(0x008e), \ + value, \ + operator, \ + label, + +#define if_chr_alertness_lt(value, chr, label) \ + mkshort(0x008f), \ + value, \ + chr, \ + label, + +// Set their hear distance to value divided by 1000. +// Only ever called with distance = 10,000, so it gets set to 10. +#define set_hear_distance(value) \ + mkshort(0x0092), \ + mkshort(value), + +#define set_view_distance(value) \ + mkshort(0x0093), \ + value, + +#define set_grenade_probability_out_of_255(value) \ + mkshort(0x0094), \ + value, + +#define set_chr_id(newid) \ + mkshort(0x0095), \ + newid, + +#define set_chr_health(chr, value) \ + mkshort(0x0096), \ + chr, \ + mkshort(value), + +#define set_armor(value) \ + mkshort(0x0097), \ + mkshort(value), + +#define set_reaction_speed(value) \ + mkshort(0x0098), \ + value, + +#define set_recovery_speed(value) \ + mkshort(0x0099), \ + value, + +#define set_accuracy(value) \ + mkshort(0x009a), \ + value, + +#define set_self_flag_bankx(flag, bank) \ + mkshort(0x009b), \ + mkword(flag), \ + bank, + +#define unset_self_flag_bankx(flag, bank) \ + mkshort(0x009c), \ + mkword(flag), \ + bank, + +#define if_self_flag_bankx_eq(props, bool, bank, label) \ + mkshort(0x009d), \ + mkword(props), \ + bool, \ + bank, \ + label, + +#define set_chr_flag_bankx(chr, props, bank) \ + mkshort(0x009e), \ + chr, \ + mkword(props), \ + bank, + +#define unset_chr_flag_bankx(chr, flag, bank) \ + mkshort(0x009f), \ + chr, \ + mkword(flag), \ + bank, + +#define if_chr_flag_bankx(chr, flag, bank, label) \ + mkshort(0x00a0), \ + chr, \ + mkword(flag), \ + bank, \ + label, + +#define set_stage_flag(stageflag) \ + mkshort(0x00a1), \ + mkword(stageflag), + +#define unset_stage_flag(stageflag) \ + mkshort(0x00a2), \ + mkword(stageflag), + +#define if_stage_flag_eq(stageflag, bool, label) \ + mkshort(0x00a3), \ + mkword(stageflag), \ + bool, \ + label, + +#define set_self_flag_bank3(chrflag3) \ + mkshort(0x00a4), \ + mkword(chrflag3), + +#define unset_self_flag_bank3(chrflag3) \ + mkshort(0x00a5), \ + mkword(chrflag3), + +#define if_self_flag_bank3(chrflag3, label) \ + mkshort(0x00a6), \ + mkword(chrflag3), \ + label, + +#define set_chr_flag_bank3(chr, chrflag3) \ + mkshort(0x00a7), \ + chr, \ + mkword(chrflag3), + +#define unset_chr_flag_bank3(chr, chrflag3) \ + mkshort(0x00a8), \ + chr, \ + mkword(chrflag3), + +#define if_chr_flag_bank3(chr, chrflag3, label) \ + mkshort(0x00a9), \ + chr, \ + mkword(chrflag3), \ + label, + +#define set_object_flag_bank0(object, objectflag0) \ + mkshort(0x00aa), \ + object, \ + mkword(objectflag0), + +#define unset_object_flag_bank0(object, objectflag0) \ + mkshort(0x00ab), \ + object, \ + mkword(objectflag0), + +#define set_object_flag_bank1(object, objectflag1) \ + mkshort(0x00ad), \ + object, \ + mkword(objectflag1), + +#define unset_object_flag_bank1(object, objectflag1) \ + mkshort(0x00ae), \ + object, \ + mkword(objectflag1), + +#define if_object_flag_bank1(object, objectflag1, label) \ + mkshort(0x00af), \ + object, \ + mkword(objectflag1), \ + label, + +#define set_follow_chr(chr) \ + mkshort(0x00b0), \ + chr, + +#define set_chr_target_chr(chr, target) \ + mkshort(0x00b1), \ + chr, \ + target, + +#define set_target_pad(pad) \ + mkshort(0x00b2), \ + mkshort(pad), + +#define dprint \ + mkshort(0x00b5), + +#define restart_timer \ + mkshort(0x00b6), + +#define reset_timer \ + mkshort(0x00b7), + +#define pause_timer \ + mkshort(0x00b8), + +#define resume_timer \ + mkshort(0x00b9), + +#define if_timer_gt(value, label) \ + mkshort(0x00bd), \ + 0x00, \ + mkshort(value), \ + label, + +#define if_timer_lt(value, label) \ + mkshort(0x00bc), \ + 0x00, \ + mkshort(value), \ + label, + +#define show_countdown_timer \ + mkshort(0x00be), + +#define hide_countdown_timer \ + mkshort(0x00bf), + +#define set_countdown_timer(seconds) \ + mkshort(0x00c0), \ + mkshort(seconds), + +#define stop_countdown_timer \ + mkshort(0x00c1), + +#define start_countdown_timer \ + mkshort(0x00c2), + +#define if_countdown_timer_lt(value, label) \ + mkshort(0x00c4), \ + mkshort(value), \ + label, + +#define if_countdown_timer_gt(value, label) \ + mkshort(0x00c5), \ + mkshort(value), \ + label, + +#define try_spawn_chr(body, head, pad, function, props, label) \ + mkshort(0x00c6), \ + body, \ + head, \ + mkshort(pad), \ + mkshort(function), \ + mkword(props), \ + label, + +#define try_spawn_clone(body, head, u1, function, props, label) \ + mkshort(0x00c7), \ + body, \ + head, \ + u1, \ + mkshort(function), \ + mkword(props), \ + label, + +#define try_draw_weapon(model, weapon, u1, label) \ + mkshort(0x00c8), \ + mkshort(model), \ + weapon, \ + mkword(u1), \ + label, + +#define try_spawn_clone2(chr, function, u1, label) \ + mkshort(0x00ca), \ + chr, \ + mkshort(function), \ + mkword(u1), \ + label, + +#define message(chr, text) \ + mkshort(0x00cb), \ + chr, \ + mkshort(text), + +#define display_text_top_middle(chr, text, color) \ + mkshort(0x00cc), \ + chr, \ + mkshort(text), \ + color, + +#define speak(chr, text, sound, channel, color) \ + mkshort(0x00cd), \ + chr, \ + mkshort(text), \ + mkshort(sound), \ + channel, \ + color, + +#define play_sound(id, channel) \ + mkshort(0x00ce), \ + mkshort(id), \ + channel, + +#define control_sound_from_object(channel, object, bool) \ + mkshort(0x00cf), \ + channel, \ + object, \ + 0x00, \ + bool, + +#define play_sound_from_pad(pad, sound) \ + mkshort(0x00d0), \ + 0x00, \ + mkshort(pad), \ + mkshort(sound), + +#define mute_channel(channel) \ + mkshort(0x00d3), \ + channel, + +#define begin_hovercar_path(path) \ + mkshort(0x00d5), \ + path, + +#define set_vehicle_speed(speed, num_accel_frames) \ + mkshort(0x00d6), \ + mkshort(speed), \ + mkshort(num_accel_frames), + +#define set_rotor_speed(speed, u1, u2) \ + mkshort(0x00d7), \ + mkshort(speed), \ + u1, \ + u2, + +#define set_object_image(object, slot, image) \ + mkshort(0x00da), \ + object, \ + slot, \ + image, + +#define end_level \ + mkshort(0x00dc), + +#define enter_firstperson \ + mkshort(0x00dd), + +#define enter_camera_and_move_to_pad(pad) \ + mkshort(0x00de), \ + mkshort(pad), + +#define revoke_control(chr, value) \ + mkshort(0x00e0), \ + chr, \ + value, + +#define grant_control(chr) \ + mkshort(0x00e1), \ + chr, + +#define chr_move_to_pad(chr, pad, unknown, label) \ + mkshort(0x00e2), \ + chr, \ + mkshort(pad), \ + unknown, \ + label, + +#define open_door2(door) \ + mkshort(0x00e8), \ + door, + +// Reads 4 global values and counts how many are nonzero. +// If number of nonzeroes is less than given value, goto label. +// Only ever called with value = 2 +#define if_num_human_players_lt(value, label) \ + mkshort(0x00ea), \ + value, \ + label, + +#define if_ammo_quantity_lt(chr, ammotype, value, label) \ + mkshort(0x00eb), \ + chr, \ + ammotype, \ + value, \ + label, + +#define chr_draw_weapon(chr, weapon) \ + mkshort(0x00ec), \ + chr, \ + weapon, + +#define chr_draw_weapon_in_cutscene(chr, weapon) \ + mkshort(0x00ed), \ + chr, \ + weapon, + +#define if_object_in_room(object, room, label) \ + mkshort(0x00ef), \ + object, \ + mkshort(room), \ + label, + +#define set_invincible(chr) \ + mkshort(0x00f3), \ + chr, + +#define if_all_objectives_complete(label) \ + mkshort(0x00f7), \ + label, + +#define play_x_music(channel, seconds) \ + mkshort(0x00f9), \ + 0x01, \ + channel, \ + seconds, + +#define stop_music_channel(channel) \ + mkshort(0x00fa), \ + channel, + +#define explosions_around_chr(chr) \ + mkshort(0x00fb), \ + chr, + +#define if_kill_count_gt(value, label) \ + mkshort(0x00fc), \ + value, \ + label, + +#define set_lights_state(room, u1, u2, u3, u4) \ + mkshort(0x0102), \ + mkshort(room), \ + u1, \ + u2, \ + u3, \ + u4, \ + 0x00, \ + 0x00, \ + 0x00, + +#define set_target_chr(chr) \ + mkshort(0x0106), \ + chr, \ + 0x00, \ + 0x00, + +#define if_target_chrs_field_0x17e_is_different(label) \ + mkshort(0x0107), \ + label, + +// Used only in globals.s with CHR_SELF, CHR_P1P2, FALSE +#define cmd0108_if_something(chr1, chr2, bool, label) \ + mkshort(0x0108), \ + chr1, \ + chr2, \ + bool, \ + label, + +#define set_chr_alliance(chr, alliance) \ + mkshort(0x010b), \ + chr, \ + alliance, + +#define set_shield(value) \ + mkshort(0x010e), \ + mkshort(value), + +#define if_chr_shield_lt(chr, value, label) \ + mkshort(0x010f), \ + chr, \ + mkshort(value), \ + label, + +#define camera_movement(animation) \ + mkshort(0x0111), \ + mkshort(animation), + +#define object_do_animation(u1, object, u2, u3) \ + mkshort(0x0112), \ + mkshort(u1), \ + object, \ + mkshort(u2), \ + u3, + +#define if_camera_animating(label) \ + mkshort(0x0113), \ + label, + +#define show_chr(chr) \ + mkshort(0x0114), \ + chr, + +#define hide_chr(chr) \ + mkshort(0x0115), \ + chr, + +#define show_object(object) \ + mkshort(0x0116), \ + object, + +#define hide_object(object) \ + mkshort(0x0117), \ + object, + +#define set_object_flag_bank2(object, objectflag2) \ + mkshort(0x0118), \ + object, \ + mkword(objectflag2), + +#define unset_object_flag_bank2(object, objectflag2) \ + mkshort(0x0119), \ + object, \ + mkword(objectflag2), + +#define if_object_flag_bank2(object, objectflag2, label) \ + mkshort(0x011a), \ + object, \ + mkword(objectflag2), \ + label, + +#define set_chr_flag_bank2(chr, chrflag2) \ + mkshort(0x011b), \ + chr, \ + mkword(chrflag2), + +#define unset_chr_flag_bank2(chr, chrflag2) \ + mkshort(0x011c), \ + chr, \ + mkword(chrflag2), + +#define if_chr_flag_bank2(chr, chrflag2, label) \ + mkshort(0x011d), \ + chr, \ + mkword(chrflag2), \ + label, + +// This is definitely wrong +#define if_chr_is_dead_maybe(chr, label) \ + mkshort(0x011f), \ + chr, \ + label, + +// Tries to find an chr in the group who meets certain criteria. For each +// chr, a score is calculated based on several fchrs, such as whether +// they've been shot. If any chr in the group has a score lower than the given +// value, the condition passes. +#define if_retreat_risk_lt(value, label) \ + mkshort(0x0120), \ + value, \ + label, + +// If cover exists nearby +#define cmd0121_if_something(u1, label) \ + mkshort(0x0121), \ + mkshort(u1), \ + label, + +#define cmd0124_run_for_cover_maybe(action) \ + mkshort(0x0124), \ + action, + +// Related to command 012f +// globals.s only +#define cmd0125_if_or_try_something(label) \ + mkshort(0x0125), \ + label, + +// Looks at the first element in some struct array, +// and checks if field 0x640 is nonzero. +// globals.s only +#define cmd0126_if_something(label) \ + mkshort(0x0126), \ + label, + +// Tries to find an chr in the group who meets some criteria, the stores them +// in the current chr's struct at 0x17e. +// globals.s only +#define cmd0127_try_find_chr_in_group(label) \ + mkshort(0x0127), \ + label, + +// Check if there's an enemy within the range and sight, then sets the +// target chr field to that enemy +#define if_enemy_distance_lt_and_los(distance, label) \ + mkshort(0x0128), \ + distance / 10, \ + label, + +// If value is nonzero then it's an chr ID. If zero then use current chr. +// This means chr ID 0 cannot be used. In practice, this command is only +// called once and it has value 0. +#define if_something_hypotenuse(value, label) \ + mkshort(0x012a), \ + value, \ + label, + +// Checks if the chr is within 50 units of something +#define if_something_chicago_robot(label) \ + mkshort(0x012b), \ + label, + +// Does some math on chr's bdlist, possibly involving square roots. +// If result is > 50, goto label +#define if_distance_to_home_gt_50_maybe(label) \ + mkshort(0x012c), \ + label, + +// If chr field 0x292 > 0, call some function. +// Involves some global array at 0x800a2360 +// globals.s only +#define cmd012f \ + mkshort(0x012f), + +#define say_quip(chr, u1, index, u2, u3, bank, u4, channel) \ + mkshort(0x0130), \ + chr, \ + u1, \ + index, \ + u2, \ + u3, \ + bank, \ + u4, \ + channel, + +#define set_group_alertness(value) \ + mkshort(0x0131), \ + value, + +// Sets chr's field_0x2a0 to value. If bool is false, also sets 0x2a1 to zero. +#define set_action(value, bool) \ + mkshort(0x0132), \ + value, \ + bool, + +// Set next action (0x2a1)? +#define cmd0133(action, label) \ + mkshort(0x0133), \ + action, \ + label, + +#define if_field_0x2a1_eq(action, label) \ + mkshort(0x0134), \ + 0xfd, \ + action, \ + label, + +#define if_field_0x2a1_nonzero(label) \ + mkshort(0x0135), \ + label, + +// u1 can theoretically be any value but in practice is only ever 2. +// u2 can be either 0, 1 or 2 and determines what the command does, +// but in practice is only ever 1 or 2. +#define retreat(u1, u2) \ + mkshort(0x0136), \ + u1, \ + u2, + +#define if_any_chr_doing_action(action, label) \ + mkshort(0x0137), \ + action, \ + label, + +#define if_sound_finished(channel, label) \ + mkshort(0x0138), \ + channel, \ + label, + +// value is either 25, 70 or 335. +// u1 is either 1 or 2. +// It seems related to the chr's position properties +// Used by G5 cloaked guards, Deep Sea cloaked purple guards and globals.s +// I think this is related to flanking, where the value arg is the angle +// relative to the player's direction. 335 is the same as 25 degress to the +// right (360 - 25). +#define cmd0139(value, u1, bool) \ + mkshort(0x0139), \ + mkword(value), \ + u1, \ + bool, + +#define try_target_chr_in_same_group(label) \ + mkshort(0x013a), \ + 0x00, \ + 0x00, \ + label, + +#define set_group(id) \ + mkshort(0x013b), \ + id, + +// Value is only ever 3. The function checks bits 0x01 and 0x02 to decide what +// to do, so in all cases it does both paths. +// globals.s only +#define cmd013d_if_grenade_thrown_nearby_maybe(value, label) \ + mkshort(0x013d), \ + value, \ + label, + +#define run_from_grenade \ + mkshort(0x013e), + +#define if_hoverbot_path_finished(u1, u2, label) \ + mkshort(0x0140), \ + u1, \ + u2, \ + label, + +#define shuffle_investigation_terminals(dst1, dst2, src1, src2, src3, src4) \ + mkshort(0x0141), \ + dst1, \ + dst2, \ + src1, \ + src2, \ + src3, \ + src4, \ + 0x00, + +#define jog_to_object(object) \ + mkshort(0x0142), \ + object, \ + 0x00, + +// Related to hovercopter and Infiltration interceptors +// Sets player struct's field_0x2e to 1/true. +#define cmd0143 \ + mkshort(0x0143), + +#define cmd0145_rebuild_groups \ + mkshort(0x0145), + +#define cmd0146_rebuild_groups \ + mkshort(0x0146), + +#define if_all_chrs_in_group_are_dead(group, label) \ + mkshort(0x0147), \ + group, \ + label, + +#define if_num_chrs_in_group_gt(value, group, label) \ + mkshort(0x0152), \ + value, \ + group, \ + label, + +#define set_tinted_glass_enabled(bool) \ + mkshort(0x0157), \ + bool, + +#define play_music_track(id) \ + mkshort(0x015b), \ + id, + +#define restart_music \ + mkshort(0x015c), + +#define if_chr_injured_target(chr, label) \ + mkshort(0x0165), \ + chr, \ + label, + +#define hovercopter_fire_rocket(side) \ + mkshort(0x0167), \ + side, + +// If flag is set, unsets it and goes to label +#define try_unset_chr_flag_bank3_02000000(chr, label) \ + mkshort(0x0168), \ + chr, \ + label, + +#define if_chr_idle_action_eq(action, label) \ + mkshort(0x0169), \ + action, \ + label, + +#define if_chr_y(chr, value, operator, label) \ + mkshort(0x016a), \ + chr, \ + mkshort(value), \ + operator, \ + label, + +#define play_sound_from_object(channel, object, sound, u1) \ + mkshort(0x016b), \ + channel, \ + object, \ + 0x00, \ + 0x01, \ + mkshort(sound), \ + mkshort(u1), + +#define noop016c \ + mkshort(0x016c), + +#define add_motion_blur(chr, value, bool) \ + mkshort(0x016d), \ + chr, \ + value, \ + bool, + +#define damage_chr2(chr, value) \ + mkshort(0x016e), \ + chr, \ + mkshort(value), + +// Likely related to being disarmed. +// Not sure what this does if the chr had no gun to begin with. +#define if_has_gun(chr, label) \ + mkshort(0x016f), \ + chr, \ + 0x00, \ + label, + +// If bool is false, run some function on the chr and their gun ground +// position, then follow the label. +// If bool is true, don't call the function, and only follow the label if field +// 0x4 in the gun ground position struct is less than 64. +#define if_gun_landed(bool, label) \ + mkshort(0x0170), \ + bool, \ + label, + +#define if_distance_to_target_position_lt(distance, label) \ + mkshort(0x0171), \ + mkshort(distance / 10), \ + label, + +// Makes gun disappear from the ground and gives it to the chr +// (when a guard drops their gun and picks it up) +#define chr_recover_gun(chr, label) \ + mkshort(0x0172), \ + chr, \ + label, + +#define try_inherit_properties(chr_src, label) \ + mkshort(0x0173), \ + chr_src, \ + label, + +#define if_controller_button_pressed(label) \ + mkshort(0x0174), \ + label, + +// Used in cutscenes before giving control to Jo +// Value is always 60 +// Without this command, or with a 0 value, Jo faces a different direction +#define cmd0175(u1) \ + mkshort(0x0175), \ + u1, + +// Points to a non-command function...? +// globals.s only +#define cmd0176_if_something(label) \ + mkshort(0x0176), \ + label, + +#define force_walk(chr, pad, unknown1, unknown2) \ + mkshort(0x0177), \ + chr, \ + mkshort(pad), \ + mkshort(unknown1), \ + mkshort(unknown2), + +#define if_force_walk_finished(chr, label) \ + mkshort(0x0178), \ + chr, \ + label, + +#define play_sound_from_entity(channel, entity_id, u1, u2, entity_type) \ + mkshort(0x0179), \ + channel, \ + entity_id, \ + 0x00, \ + 0x01, \ + mkshort(u1), \ + mkshort(u2), \ + entity_type, + +// Suspected to be named incorrectly. Global functions suggests this checks if +// the chr can see the player. +#define if_in_disarm_range(label) \ + mkshort(0x017a), \ + label, + +#define if_chr_unloaded(chr, label) \ + mkshort(0x017b), \ + chr, \ + label, + +#define assign_sound(sound, channel) \ + mkshort(0x017c), \ + mkshort(sound), \ + channel, + +#define set_music_track(id) \ + mkshort(0x017d), \ + id, + +#define restart_default_music \ + mkshort(0x017e), + +#define set_sfx_track(id) \ + mkshort(0x017f), \ + id, + +#define reset_ambience \ + mkshort(0x0180), + +#define if_chr_looking_at_object(chr, object, label) \ + mkshort(0x0181), \ + chr, \ + object, \ + label, + +#define try_punch_or_kick(label) \ + mkshort(0x0182), \ + 0x00, \ + label, + +// Related to chr fields 0x17e and 0x32e +// In practice, scripts will assign function unalerted guard if this passes +#define if_chr_lost_track_of_target_maybe(label) \ + mkshort(0x0183), \ + label, + +// Involves a call to the RNG, and zeroing chr fields aimendlshoulder, +// aimendrshoulder, aimendback and amendsideback. +// +// Called with values: +// 0x5a64 (23140) +// 0x283c (10300) +// 0x141e (5150) +// +// Used by: +// Attack Ship - Bridge skedar (with 0x283c) +// Ruins - Reaper and Slayer skedar (with 0x283c) +// globals.s - with values 0x5a64 and 0x141e +// +// Sometimes accompanied with dprint "FIRE FULL" +#define cmd0184(u1) \ + mkshort(0x0184), \ + mkshort(u1), + +// The rom address for this command is not a valid function entry...? +#define cmd0185_mponly \ + mkshort(0x0185), + +#define if_chr_soundtimer(value, operator, label) \ + mkshort(0x0186), \ + mkshort(value), \ + operator, \ + label, + +#define if_chr_sees_camspy_maybe(label) \ + mkshort(0x0187), \ + label, + +#define if_lift_stationary(lift, label) \ + mkshort(0x0188), \ + lift, \ + label, + +#define enable_rain(value) \ + mkshort(0x018b), \ + value, + +#define remove_cass_necklace(chr) \ + mkshort(0x018c), \ + chr, \ + 0x07, + +#define activate_lift(liftid, object) \ + mkshort(0x018d), \ + liftid, \ + object, + +#define miniskedar_try_pounce(u1, u2, label) \ + mkshort(0x018e), \ + u1, \ + mkshort(u2), \ + 0x00, \ + label, + +#define if_object_distance_to_pad_lt(object, distance, pad, label) \ + mkshort(0x018f), \ + object, \ + mkshort(distance / 10), \ + mkshort(pad), \ + label, + +#define set_eeprom_flag(eeprom_flag) \ + mkshort(0x0190), \ + eeprom_flag, + +#define unset_eeprom_flag(eeprom_flag) \ + mkshort(0x0191), \ + eeprom_flag, + +#define if_eeprom_flag_is_set(eeprom_flag, label) \ + mkshort(0x0192), \ + eeprom_flag, \ + label, + +#define if_eeprom_flag_is_unset(eeprom_flag, label) \ + mkshort(0x0193), \ + eeprom_flag, \ + label, + +#define if_object_health_lt(object, value, label) \ + mkshort(0x019e), \ + object, \ + mkshort(value), \ + label, + +#define set_object_health(object, value) \ + mkshort(0x019f), \ + object, \ + mkshort(value), + +#define set_chr_special_death_animation(chr, anim) \ + mkshort(0x01a0), \ + chr, \ + anim, + +// Copies the room from the chr's position struct into the chr struct itself +#define set_chr_roomtosearch \ + mkshort(0x01a1), + +#define play_chr_specific_quip(bank, channel) \ + mkshort(0x01a2), \ + bank, \ + channel, + +#define do_special_animation(value) \ + mkshort(0x01a3), \ + value, + +#define display_text(position, color, text) \ + mkshort(0x01a4), \ + position, \ + color, \ + mkshort(text), + +#define if_chr_propsoundcount_zero(chr, label) \ + mkshort(0x01a7), \ + chr, \ + label, + +#define if_num_subdued(value, operator, label) \ + mkshort(0x01ab), \ + value, \ + 1 - operator, \ + label, + +#define release_grabbed_object(chr) \ + mkshort(0x01ad), \ + chr, + +#define clear_inventory(chr) \ + mkshort(0x01ae), \ + chr, + +#define grab_object(chr, object) \ + mkshort(0x01af), \ + chr, \ + object, + +#define shuffle_ruins_pillars(pdst1, pdst2, pdst3, psrc1, psrc2, psrc3, psrc4, psrc5, mdst1, mdst2, mdst3, msrc1, msrc2, msrc3, msrc4, msrc5) \ + mkshort(0x01b1), \ + pdst1, \ + pdst2, \ + pdst3, \ + psrc1, \ + psrc2, \ + psrc3, \ + psrc4, \ + psrc5, \ + mdst1, \ + mdst2, \ + mdst3, \ + msrc1, \ + msrc2, \ + msrc3, \ + msrc4, \ + msrc5, + +// This just does: +// addr8007db84 = addr7f1a9da4 * value +// In practice, value is 8, 11, 15, 20, 22 and 130, +// though some of these setup files are probably not used. +#define cmd01b2_mponly(value) \ + mkshort(0x01b2), \ + value, + +#define consider_coop_for_p1p2_chr(chr) \ + mkshort(0x01b3), \ + chr, + +#define cmd01b4_if_something(label) \ + mkshort(0x01b4), \ + label, + +#define enable_snow(bool) \ + mkshort(0x01b6), \ + bool, + +// bool_unknown determines whether to call some function on the chr afterwards +#define set_chr_cloaked(chr, bool_enable, bool_unknown) \ + mkshort(0x01b7), \ + chr, \ + bool_enable, \ + bool_unknown, + +#define set_autoturret_type(object, type) \ + mkshort(0x01b8), \ + object, \ + type, + +#define shuffle_pelagic_switches \ + mkshort(0x01b9), + +#define cmd01ba(u1, u2, label) \ + mkshort(0x01ba), \ + mkshort(u1), \ + mkshort(u2), \ + label, + +#define if_training_pc_holographed(label) \ + mkshort(0x01bd), \ + label, + +#define if_chr_has_weapon_equipped(chr, weapon, label) \ + mkshort(0x01be), \ + chr, \ + weapon, \ + label, + +#define teleport_to_pad(pad, chr) \ + mkshort(0x01bf), \ + mkshort(pad), \ + chr, + +#define if_teleport_full_white(label, chr) \ + mkshort(0x01c0), \ + label, \ + chr, + +#define set_aishootingatmel(value) \ + mkshort(0x01c2), \ + mkshort(value), + +// Sets a function in the chr's struct. Likely a callback of some sort, such as +// the onshot function. +#define set_unknown_function(function) \ + mkshort(0x01c3), \ + mkshort(function), + +// Calls some function on the chr. Possibly related to geometry, because it +// works with values such as 45 and 360. +#define cmd01c5 \ + mkshort(0x01c5), + +// Sets a field in the chr struct +// If whichprop is 0, set dodgerating +// If whichprop is 1, set maxdodgerating +// If whichprop is 2, set both +#define set_chr_dodge_rating(value, whichprop) \ + mkshort(0x01c6), \ + value, \ + whichprop, + +#define set_unarmeddodgerating(value) \ + mkshort(0x01c7), \ + value, + +// Only used in test levels. Value can be 0-4. +// Looks up the index in a pointer array and calls the function at the pointer. +// If passed a value > 4, sets 800624b8 to -1. +// Related to cmd01c9 +#define cmd01c8(value) \ + mkshort(0x01c8), \ + value, + +// Test levels only. Checks if value at 800624b8 is >= 0. +// If so, runs some function and goes to label. +// Related to cmd01c8. +#define cmd01c9(label) \ + mkshort(0x01c9), \ + label, + +#define set_cutscene_weapon(chr, weapon, weapon_fallback) \ + mkshort(0x01ca), \ + chr, \ + weapon, \ + weapon_fallback, + +#define fade_to_color(rgba, num_frames) \ + mkshort(0x01cb), \ + mkword(rgba), \ + mkshort(num_frames), + +#define set_chr_hud_visible(chr, bool) \ + mkshort(0x01cd), \ + chr, \ + bool, + +// If enabled, Jo cannot use weapons or even the "unarmed" weapon +#define passive_mode(bool) \ + mkshort(0x01ce), \ + bool, + +#define set_chr_shooting_in_cutscene(chr, bool) \ + mkshort(0x01cf), \ + chr, \ + bool, + +#define set_portal_flag(portal, flag) \ + mkshort(0x01d0), \ + mkshort(portal), \ + flag, + +#define set_object_part_visible(object, bool) \ + mkshort(0x01d1), \ + object, \ + 0xb7, \ + bool, + +#define emit_sparks(chr) \ + mkshort(0x01d2), \ + chr, + +#define set_drcaroll_image(chr, left, right) \ + mkshort(0x01d3), \ + chr, \ + left, \ + right, + +#define configure_room_portals(room) \ + mkshort(0x01d4), \ + mkshort(room), \ + 0x08, \ + 0x00, + +#define show_nonessential_chrs(bool) \ + mkshort(0x01d5), \ + bool, + +#define set_lighting(room, operation, unknown) \ + mkshort(0x01d6), \ + mkshort(room), \ + operation, \ + unknown, + +#define play_sound_from_object2(channel, object, sound, u1, u2) \ + mkshort(0x01d9), \ + channel, \ + object, \ + mkshort(sound), \ + 0xff, \ + 0xff, \ + u1, \ + 0x00, \ + u2, + +// Only called in AF1 with param 0x35. +// Calls some functions and stores the value at 80840c8. +#define cmd01da(u1) \ + mkshort(0x01da), \ + u1, + +#define kill(chr) \ + mkshort(0x01db), \ + chr, + +#define remove_weapon_from_inventory(weapon) \ + mkshort(0x01dc), \ + weapon, + +// Only used to trigger the Defection intro. +// Calls a bunch of functions outside of the main game binary object and then +// goes to label if 800840c4 is 0. +#define cmd01dd_if_something(u1, label) \ + mkshort(0x01dd), \ + u1, \ + label, + +#define if_chr_distance_to_pad_lt2(chr, pad, distance, label) \ + mkshort(0x01df), \ + chr, \ + mkshort(pad), \ + mkshort(distance / 10), \ + label, + +#define if_coop_mode(label) \ + mkshort(0x01de), \ + label, + +// Something to do with the chr's position struct +#define cmd01e0 \ + mkshort(0x01e0), + +// Convenience macros for readability +#define beginloop(id) label(id) yield + +#define endloop(id) goto_first(id) + +#define reloop(id) goto_first(id) + +#define remove_displayed_text display_text(0x02, 0, 0x0002) + +#define if_stage_is_not(stage, label) if_stage_lt(stage, label) if_stage_gt(stage, label) + diff --git a/src/include/constants.h b/src/include/constants.h new file mode 100644 index 000000000..84d89461a --- /dev/null +++ b/src/include/constants.h @@ -0,0 +1,1391 @@ +#define FALSE 0 +#define TRUE 1 + +#define ACTION_SCAN 0x01 +#define ACTION_UNDER_COVER 0x02 +#define ACTION_GRENADE_STOP 0x03 +#define ACTION_WAIT 0x04 +#define ACTION_GO_TO_COVER 0x05 +#define ACTION_BREAKING_COVER 0x06 +#define ACTION_SEE_COVER 0x07 +#define ACTION_FLANK_LEFT 0x08 +#define ACTION_FLANK_RIGHT 0x09 +#define ACTION_DODGE 0x0a +#define ACTION_THROW_GRENADE 0x0b +#define ACTION_SEEWAIT 0x0c +#define ACTION_BACKOFF 0x0d +#define ACTION_SYNC_SHOOT 0x0e +#define ACTION_16 0x10 // unknown +#define ACTION_FOLLOW 0x12 +#define ACTION_RETREAT 0x13 +#define ACTION_SURRENDER 0x14 +#define ACTION_COWER 0x15 +#define ACTION_WARN_OTHERS 0x17 +#define ACTION_RUN_AWAY 0x1f +#define ACTION_FLEE_GRENADE 0x20 +#define ACTION_HAND_COMBAT 0x21 +#define ACTION_FACING_TARGET 0x35 +#define ACTION_HAND_COMBAT_SKEDAR 0x36 + +#define ALLIANCE_ENEMY 0x02 +#define ALLIANCE_ALLY 0x10 + +#define AMMOTYPE_PISTOL 0x01 +#define AMMOTYPE_SMG 0x02 +#define AMMOTYPE_CROSSBOW 0x03 +#define AMMOTYPE_RIFLE 0x04 +#define AMMOTYPE_SHOTGUN 0x05 +#define AMMOTYPE_FARSIGHT 0x06 +#define AMMOTYPE_GRENADE 0x07 +#define AMMOTYPE_ROCKET 0x08 +#define AMMOTYPE_KNIFE 0x09 +#define AMMOTYPE_MAGNUM 0x0a +#define AMMOTYPE_DEVASTATOR 0x0b +#define AMMOTYPE_REMOTE_MINE 0x0c +#define AMMOTYPE_PROXY_MINE 0x0d +#define AMMOTYPE_TIMED_MINE 0x0e +#define AMMOTYPE_REAPER 0x0f +// 0x10 +// 0x11 +#define AMMOTYPE_NBOMB 0x12 +#define AMMOTYPE_SEDATIVE 0x13 +#define AMMOTYPE_CLOAK 0x14 +#define AMMOTYPE_BOOST 0x15 +#define AMMOTYPE_PSYCHOSIS 0x16 +// 0x17 +#define AMMOTYPE_BUG 0x18 +// 0x19 +#define AMMOTYPE_ECM_MINE 0x20 + +#define BANK_0 0 +#define BANK_1 1 +#define BANK_2 2 +#define BANK_3 3 + +#define CHANNEL_0 0 +#define CHANNEL_1 1 +#define CHANNEL_2 2 +#define CHANNEL_3 3 +#define CHANNEL_4 4 +#define CHANNEL_5 5 +#define CHANNEL_6 6 +#define CHANNEL_7 7 +#define CHANNEL_8 8 +#define CHANNEL_9 9 +#define CHANNEL_10 10 + +#define CHR_P1P2 0xf2 +#define CHR_F3 0xf3 +#define CHR_COUNTEROP 0xf4 +#define CHR_VELVET 0xf5 +#define TARGET_CHR 0xf6 +#define CHR_JOANNA 0xf8 +#define CHR_CLONE 0xf9 +#define CHR_FRIEND 0xfb // when seeing friend die +#define FOLLOW_CHR 0xfc +#define CHR_SELF 0xfd + +// Character flags - bank 0 (chr struct offset 0x114) +#define CHRFLAG0_CANT_ALERT_GROUP 0x00000001 // Don't set group alertness when becoming aware +#define CHRFLAG0_00000002 0x00000002 // Not used in scripts +#define CHRFLAG0_00000004 0x00000004 // Can search for player when heard? +#define CHRFLAG0_CAN_EXAMINE_BODY 0x00000008 +#define CHRFLAG0_00000010 0x00000010 // Globals, Skedar Ruins +#define CHRFLAG0_SAID_INJURY_QUIP 0x00000020 +#define CHRFLAG0_00000040 0x00000040 // Globals - related to cover? +#define CHRFLAG0_00000080 0x00000080 // Globals, Chicago, Air Base +#define CHRFLAG0_CAN_BACKOFF 0x00000100 +#define CHRFLAG0_CAN_RETREAT 0x00000200 +#define CHRFLAG0_UNSURPRISABLE 0x00000400 // may also be "can uncover disguise" +#define CHRFLAG0_CAN_THROW_GRENADES 0x00000800 +#define CHRFLAG0_CAN_FLANK 0x00001000 +#define CHRFLAG0_00002000 0x00002000 // Used quite a lot +#define CHRFLAG0_00004000 0x00004000 // Patroller - if set, overrides the 00002000 flag (interprets 00002000 as off) +#define CHRFLAG0_00008000 0x00008000 // Something to do with breaking cover or grenades? +#define CHRFLAG0_AIVSAI 0x00010000 +#define CHRFLAG0_CAN_TRAP 0x00020000 +#define CHRFLAG0_CAN_RUN_FOR_ALARM 0x00040000 +#define CHRFLAG0_00080000 0x00080000 // Air Force One: a "spawn done" flag +#define CHRFLAG0_00100000 0x00100000 // Become alert when hearing player and never on screen +#define CHRFLAG0_00200000 0x00200000 // Globals, Villa hostage takers +#define CHRFLAG0_00400000 0x00400000 // Not used in scripts +#define CHRFLAG0_CAN_HEAR_ALARMS 0x00800000 +#define CHRFLAG0_01000000 0x01000000 // Globals +#define CHRFLAG0_02000000 0x02000000 // Globals - set when ambushing +#define CHRFLAG0_04000000 0x04000000 // If set, chr can't follow player (ie. stays)? +#define CHRFLAG0_08000000 0x08000000 // Globals, Villa, Infiltration, Pelagic +#define CHRFLAG0_10000000 0x10000000 // If set, "IM GOING TO POP" +#define CHRFLAG0_CAN_HEARSPAWN 0x20000000 +#define CHRFLAG0_NOHEAR 0x40000000 // Globals, Villa +#define CHRFLAG0_80000000 0x80000000 // Globals, Villa, Chicago, CI Training + +// Character flags - bank 1 (chr struct offset 0x118) +#define CHRFLAG1_00000001 0x00000001 // Globals, Extraction, Air Base, Deep Sea +#define CHRFLAG1_00000002 0x00000002 // Globals +#define CHRFLAG1_00000004 0x00000004 // Globals - If set, avoids cmd0184 +#define CHRFLAG1_00000008 0x00000008 // Only used in WAR. If set, chr waits 2 seconds before attacking while defending +#define CHRFLAG1_00000010 0x00000010 // Globals - If set, avoids cmd0184 +#define CHRFLAG1_00000020 0x00000020 // Globals, AF1, Defense - related to reload animation +#define CHRFLAG1_CAN_SNIPE 0x00000040 +#define CHRFLAG1_00000080 0x00000080 // Not used in scripts +#define CHRFLAG1_DOINGIDLEANIMATION 0x00000100 +#define CHRFLAG1_WARNED 0x00000200 +#define CHRFLAG1_00000400 0x00000400 // Globals +#define CHRFLAG1_00000800 0x00000800 // Globals - related to punch damage +#define CHRFLAG1_00001000 0x00001000 // Globals, Chicago, Infiltration +#define CHRFLAG1_00002000 0x00002000 // Globals - triggers grenade throw +#define CHRFLAG1_00004000 0x00004000 // Globals - related to cover +#define CHRFLAG1_LONG_CAMSPY_OBSERVATION 0x00008000 +#define CHRFLAG1_00010000 0x00010000 // Globals - if set, prevents setting of chrflag0_00100000 +#define CHRFLAG1_00020000 0x00020000 // Globals +#define CHRFLAG1_00040000 0x00040000 // Globals - seems related to 00020000 +#define CHRFLAG1_00080000 0x00080000 // Set in many places, read in globals and AF1 +#define CHRFLAG1_00100000 0x00100000 // Globals +#define CHRFLAG1_00200000 0x00200000 // Deep Sea (Elvis) +#define CHRFLAG1_PUNCH_THEN_GENERAL_COMBAT 0x00400000 // If unset, return after punching. If set, assign general combat +#define CHRFLAG1_DONE_SEARCH_ANIM 0x00800000 +#define CHRFLAG1_01000000 0x01000000 // Can search for player when heard? +#define CHRFLAG1_02000000 0x02000000 // Globals +#define CHRFLAG1_CAN_LOOK_AROUND 0x04000000 +#define CHRFLAG1_DISSPEE 0x08000000 +#define CHRFLAG1_10000000 0x10000000 // Some kind of param for searching +#define CHRFLAG1_CAN_DRAW_PISTOL 0x20000000 +#define CHRFLAG1_40000000 0x40000000 // Globals +#define CHRFLAG1_80000000 0x80000000 // Globals + +// Character flags - bank 2 (chr struct offset 0x14) +#define CHRFLAG2_00000001 0x00000001 // Not used in scripts - sunglasses? +#define CHRFLAG2_00000002 0x00000002 // Not used in scripts +#define CHRFLAG2_00000004 0x00000004 // Not used in scripts +#define CHRFLAG2_00000008 0x00000008 // Not used in scripts +#define CHRFLAG2_00000010 0x00000010 // Not used in scripts +#define CHRFLAG2_00000020 0x00000020 // Not used in scripts +#define CHRFLAG2_00000040 0x00000040 // Not used in scripts +#define CHRFLAG2_00000080 0x00000080 // Not used in scripts +#define CHRFLAG2_00000100 0x00000100 // Not used in scripts +#define CHRFLAG2_00000200 0x00000200 // Not used in scripts +#define CHRFLAG2_00000400 0x00000400 // Related to coop buddy? Also used in Chicago +#define CHRFLAG2_KEEP_CORPSE 0x00000800 +#define CHRFLAG2_BUDDY_PLACED 0x00001000 +#define CHRFLAG2_00002000 0x00002000 // Globals, Rescue guards once disguised +#define CHRFLAG2_TRIGGER_BUDDY_WARP 0x00004000 +#define CHRFLAG2_00008000 0x00008000 // Duel only. Set on each opponent when they start combat. +#define CHRFLAG2_DISGUISE_UNCOVERED 0x00010000 +#define CHRFLAG2_00020000 0x00020000 // Used in every stage, on Jo and other chrs. Only ever set, never unset or read. +#define CHRFLAG2_00040000 0x00040000 // Not used in scripts +#define CHRFLAG2_DISGUISED 0x00080000 +#define CHRFLAG2_00100000 0x00100000 // Set before warping to pad, never unset or read +#define CHRFLAG2_00200000 0x00200000 // Not used in scripts +#define CHRFLAG2_00400000 0x00400000 // Set in Chicago, G5, AF1, Defense, Attack Ship, Skedar Ruins, Maian SOS, WAR +#define CHRFLAG2_00800000 0x00800000 // Not used in scripts +#define CHRFLAG2_01000000 0x01000000 // Globals - asked about gun (eg. "where did you get that?") +#define CHRFLAG2_02000000 0x02000000 // Similar to DISGUISED flag, but not sure where set +#define CHRFLAG2_04000000 0x04000000 // Related to disguise and detection +#define CHRFLAG2_08000000 0x08000000 // Globals, Villa and G5 +#define CHRFLAG2_10000000 0x10000000 // Related to invincible flag +#define CHRFLAG2_CLOAKED 0x20000000 +#define CHRFLAG2_40000000 0x40000000 // Air Base and AF1 +#define CHRFLAG2_PSYCHOSISED 0x80000000 + +// Character flags - bank 3 (chr struct offset 0x18) +#define CHRFLAG3_00000001 0x00000001 // Villa takers, Attack Ship Cass and skedar - both set at end of intros +#define CHRFLAG3_00000002 0x00000002 // Seems to be set on guards who can spawn clones? +#define CHRFLAG3_00000004 0x00000004 // Not used in scripts +#define CHRFLAG3_NEVER_BEEN_ON_SCREEN 0x00000008 +#define CHRFLAG3_INVINCIBLE_TO_GUNFIRE 0x00000010 +#define CHRFLAG3_00000020 0x00000020 // Chicago, Infiltration, AF1, Ruins, WAR +#define CHRFLAG3_00000040 0x00000040 // Used quite a lot +#define CHRFLAG3_00000080 0x00000080 // Defection programmer, Rescue lab techs, globals when doing idle animation +#define CHRFLAG3_JUST_INJURED 0x00000100 +#define CHRFLAG3_00000200 0x00000200 // Set on clones +#define CHRFLAG3_HIDDEN 0x00000400 +#define CHRFLAG3_NOAUTOAIM 0x00000800 +#define CHRFLAG3_UNEXPLODABLE 0x00001000 +#define CHRFLAG3_00002000 0x00002000 // Not used in scripts +#define CHRFLAG3_HAS_SPECIAL_DEATH_ANIMATION 0x00004000 +#define CHRFLAG3_00008000 0x00008000 // Not used in scripts +#define CHRFLAG3_00010000 0x00010000 // Related to dead people in intro cutscenes +#define CHRFLAG3_00020000 0x00020000 // Chicago, Crash Site, Deep Sea, Defense, Ruins +#define CHRFLAG3_00040000 0x00040000 // Used a lot +#define CHRFLAG3_00080000 0x00080000 +#define CHRFLAG3_KILLCOUNTABLE 0x00100000 +#define CHRFLAG3_00200000 0x00200000 // Not used in scripts +#define CHRFLAG3_00400000 0x00400000 // Not used in scripts +#define CHRFLAG3_UNPLAYABLE 0x00800000 +#define CHRFLAG3_01000000 0x01000000 // Typically set on allies during init +#define CHRFLAG3_02000000 0x02000000 // can be unset by cmd0168 +#define CHRFLAG3_04000000 0x04000000 +#define CHRFLAG3_08000000 0x08000000 // Not used in scripts +#define CHRFLAG3_10000000 0x10000000 // Not used in scripts +#define CHRFLAG3_20000000 0x20000000 // Not used in scripts +#define CHRFLAG3_40000000 0x40000000 // Not used in scripts +#define CHRFLAG3_80000000 0x80000000 // Not used in scripts + +#define COLOR_00_GREEN 0x00 +#define COLOR_02_WHITE 0x02 +#define COLOR_03_RED 0x03 +#define COLOR_04_ORANGE 0x04 +#define COLOR_05_GREEN 0x05 +#define COLOR_06_WHITE 0x06 +#define COLOR_07_RED 0x07 +#define COLOR_08_RED 0x08 +#define COLOR_09_BLUE 0x09 + +#define DIFF_A 0x00 +#define DIFF_SA 0x01 +#define DIFF_PA 0x02 +#define DIFF_PD 0x03 + +// These difficulties are for briefings, which can be bitwise ORed +#define DIFFBIT_A 0x01 +#define DIFFBIT_SA 0x02 +#define DIFFBIT_PA 0x04 +#define DIFFBIT_PD 0x08 + +#define DOORSTATE_CLOSED 1 +#define DOORSTATE_OPEN 2 +#define DOORSTATE_CLOSING 4 +#define DOORSTATE_OPENING 8 + +#define EEPROMFLAG_CI_TOUR_DONE 0x24 +#define EEPROMFLAG_CI_HOLO7_DONE 0x29 +#define EEPROMFLAG_CI_HOLO6_DONE 0x2a +#define EEPROMFLAG_CI_HOLO5_DONE 0x2b +#define EEPROMFLAG_CI_HOLO4_DONE 0x2c +#define EEPROMFLAG_CI_HOLO3_DONE 0x2d +#define EEPROMFLAG_CI_HOLO2_DONE 0x2e +#define EEPROMFLAG_CI_HOLO1_DONE 0x2f +#define EEPROMFLAG_CI_CLOAK_DONE 0x30 +#define EEPROMFLAG_CI_DISGUISE_DONE 0x31 +#define EEPROMFLAG_CI_XRAY_DONE 0x32 +#define EEPROMFLAG_CI_IR_DONE 0x33 +#define EEPROMFLAG_CI_RTRACKER_DONE 0x34 +#define EEPROMFLAG_CI_DOORDECODER_DONE 0x35 +#define EEPROMFLAG_CI_NIGHTVISION_DONE 0x36 +#define EEPROMFLAG_CI_CAMSPY_DONE 0x37 +#define EEPROMFLAG_CI_ECMMINE_DONE 0x38 +#define EEPROMFLAG_CI_UPLINK_DONE 0x39 +#define EEPROMFLAG_CI_TOUR_STARTED 0x3a +#define EEPROMFLAG_CRASHSITE_BIKE 0x3b +#define EEPROMFLAG_DEFENSE_JON 0x3c +#define EEPROMFLAG_AF1_ENTRY 0x3d +#define EEPROMFLAG_RESCUE_MECHANIC_DEAD 0x3e +#define EEPROMFLAG_G5_MINE 0x3f // true if thrown on top door + +#define ENTITYTYPE_CHR 0x0004 +#define ENTITYTYPE_PAD 0x0008 +#define ENTITYTYPE_DIRECTION 0x0010 +#define ENTITYTYPE_TARGETCHR 0x0200 + +#define GFUNC_IDLE 0x0000 +#define GFUNC_UNALERTED_0001 0x0001 +#define GFUNC_UNALERTED_0002 0x0002 +#define GFUNC_STOP_UNALERTED 0x0003 // unused +#define GFUNC_UNALERTED_0004 0x0004 +#define GFUNC_END_CINEMA 0x0005 +#define GFUNC_UNALERTED 0x0006 +#define GFUNC_ALERTED 0x0007 +#define GFUNC_WAKEUP 0x0008 +#define GFUNC_IDLE_0009 0x0009 +#define GFUNC_BUSY 0x000a +#define GFUNC_CHOOSE_TARGET_CHR 0x000b +#define GFUNC_COMBAT_WITH_TARGET_CHR 0x000c +#define GFUNC_INIT_COMBAT 0x000d // unused +#define GFUNC_SEE_THEN_ATTACK 0x000e // unused +#define GFUNC_HAND_COMBAT 0x000f +#define GFUNC_CIVILIAN_SAY_COMMENT 0x0010 +#define GFUNC_FLEE_FROM_GRENADE 0x0011 +#define GFUNC_INIT_COOP_100 0x0012 // unused +#define GFUNC_INIT_COOP_200 0x0013 // unused +#define GFUNC_COOP_BUDDY 0x0014 +#define GFUNC_TEST_CUTSCENE_BUDDY 0x0015 // unused +#define GFUNC_SHOW_OBJ_FAILED_MSG 0x0016 +#define GFUNC_REBUILD_GROUPS 0x0017 +#define GFUNC_DO_BORED_ANIMATION 0x0018 +#define GFUNC_DO_SITTING_ANIMATION 0x0019 +#define GFUNC_DISGUISE_DETECTION 0x001a +#define GFUNC_OBSERVE_CAMSPY 0x001b +#define GFUNC_SURPRISED 0x001c +#define GFUNC_SEARCH_FOR_PLAYER 0x001d +#define GFUNC_LOOK_AROUND 0x001e +#define GFUNC_RELATED_TO_SPAWNING 0x001f +#define GFUNC_PLACE_COOP_BUDDY 0x0020 +#define GFUNC_STOP_AND_IDLE 0x0021 +#define GFUNC_COMMENT_ON_PLAYER_DEAD 0x0022 // unused +#define GFUNC_DODGE 0x0023 +#define GFUNC_FOLLOW_JOANNA 0x0024 +#define GFUNC_POINTLESS 0x0025 // unused +#define GFUNC_INIT_PSYCHOSIS 0x0026 +#define GFUNC_PSYCHOSISED 0x0027 +#define GFUNC_AI_BOT_DEAD 0x0028 // unused +#define GFUNC_AI_BOT_INIT 0x0029 // unused +#define GFUNC_AI_BOT_ALIVE 0x002a // unused +#define GFUNC_DO_SOMETHING_AND_WAIT 0x002b // unused +#define GFUNC_INIT_SEARCH 0x002c // unused +#define GFUNC_INVINCIBLE_AND_IDLE 0x002d + +#define IDLEACTION_STANDING 0x01 +#define IDLEACTION_SITTING_TYPING 0x02 +#define IDLEACTION_SITTING_DORMANT 0x03 +#define IDLEACTION_OPERATING 0x04 +#define IDLEACTION_OPERATING_PAD 0x05 + +// Object flags - bank 0 (object struct offset 0x08) +#define OBJECTFLAG0_00000001 0x00000001 // Not used in scripts +#define OBJECTFLAG0_00000002 0x00000002 // Not used in scripts +#define OBJECTFLAG0_00000004 0x00000004 // Not used in scripts +#define OBJECTFLAG0_00000008 0x00000008 // Not used in scripts +#define OBJECTFLAG0_00000010 0x00000010 // Not used in scripts +#define OBJECTFLAG0_00000020 0x00000020 // Not used in scripts +#define OBJECTFLAG0_00000040 0x00000040 // Not used in scripts +#define OBJECTFLAG0_00000080 0x00000080 // Not used in scripts +#define OBJECTFLAG0_00000100 0x00000100 // G5 mines, Air Base brown door, AF1 grate and escape door, Defense shuttle, Ruins mines, MBR lift door +#define OBJECTFLAG0_00000200 0x00000200 // Not used in scripts +#define OBJECTFLAG0_ILLUMINATED 0x00000400 +#define OBJECTFLAG0_00000800 0x00000800 // Not used in scripts +#define OBJECTFLAG0_00001000 0x00001000 // Not used in scripts +#define OBJECTFLAG0_00002000 0x00002000 // AF1 commhubs +#define OBJECTFLAG0_00004000 0x00004000 // Not used in scripts +#define OBJECTFLAG0_00008000 0x00008000 // Not used in scripts +#define OBJECTFLAG0_00010000 0x00010000 // Not used in scripts +#define OBJECTFLAG0_INVINCIBLE 0x00020000 +#define OBJECTFLAG0_COLLECTABLE 0x00040000 +#define OBJECTFLAG0_00080000 0x00080000 // Not used in scripts +#define OBJECTFLAG0_00100000 0x00100000 // Lots of stages - mainly keycards? +#define OBJECTFLAG0_00200000 0x00200000 // Not used in scripts +#define OBJECTFLAG0_00400000 0x00400000 // Not used in scripts +#define OBJECTFLAG0_00800000 0x00800000 // Not used in scripts +#define OBJECTFLAG0_01000000 0x01000000 // Not used in scripts +#define OBJECTFLAG0_02000000 0x02000000 // Extraction "winddoor", Rescue doors, Air Base lift door, Attack Ship hanger doors, CI xray comhubs +#define OBJECTFLAG0_04000000 0x04000000 // Not used in scripts +#define OBJECTFLAG0_08000000 0x08000000 // Not used in scripts +#define OBJECTFLAG0_DEACTIVATED 0x10000000 +#define OBJECTFLAG0_20000000 0x20000000 // Not used in scripts +#define OBJECTFLAG0_40000000 0x40000000 // Used quite a lot +#define OBJECTFLAG0_INTERCEPTOR_DISABLED 0x80000000 + +// Object flags - bank 1 (object struct offset 0x0c) +#define OBJECTFLAG1_00000001 0x00000001 // Used only in CI Training +#define OBJECTFLAG1_00000002 0x00000002 // Ruins spikes +#define OBJECTFLAG1_00000004 0x00000004 // Defense hostage doors - openable by AI? +#define OBJECTFLAG1_00000008 0x00000008 // Not used in scripts +#define OBJECTFLAG1_00000010 0x00000010 // Not used in scripts +#define OBJECTFLAG1_00000020 0x00000020 // Not used in scripts +#define OBJECTFLAG1_00000040 0x00000040 // Not used in scripts +#define OBJECTFLAG1_00000080 0x00000080 // Not used in scripts +#define OBJECTFLAG1_00000100 0x00000100 // Not used in scripts +#define OBJECTFLAG1_00000200 0x00000200 // Not used in scripts +#define OBJECTFLAG1_00000400 0x00000400 // Not used in scripts +#define OBJECTFLAG1_00000800 0x00000800 // Not used in scripts +#define OBJECTFLAG1_00001000 0x00001000 // Investigation CMP150s, Air Base safe item and shield +#define OBJECTFLAG1_00002000 0x00002000 // Ruins commhub +#define OBJECTFLAG1_00004000 0x00004000 // Not used in scripts +#define OBJECTFLAG1_00008000 0x00008000 // Not used in scripts +#define OBJECTFLAG1_00010000 0x00010000 // Not used in scripts +#define OBJECTFLAG1_00020000 0x00020000 // G5 mine, Air Base mine +#define OBJECTFLAG1_00040000 0x00040000 // Only used in CI training +#define OBJECTFLAG1_INVISIBLE 0x00080000 +#define OBJECTFLAG1_00100000 0x00100000 // Not used in scripts +#define OBJECTFLAG1_00200000 0x00200000 // Ruins spikes +#define OBJECTFLAG1_00400000 0x00400000 // Not used in scripts +#define OBJECTFLAG1_00800000 0x00800000 // Not used in scripts +#define OBJECTFLAG1_01000000 0x01000000 // Not used in scripts +#define OBJECTFLAG1_02000000 0x02000000 // Not used in scripts +#define OBJECTFLAG1_04000000 0x04000000 // Used quite a lot - gravity? +#define OBJECTFLAG1_08000000 0x08000000 // Locked door? +#define OBJECTFLAG1_10000000 0x10000000 // Locked door? +#define OBJECTFLAG1_20000000 0x20000000 // Locked door? Or indestructible by counter op? +#define OBJECTFLAG1_40000000 0x40000000 // Not used in scripts +#define OBJECTFLAG1_80000000 0x80000000 // Attack Ship glass + +// Object flags - bank 2 (object struct offset 0x10) +#define OBJECTFLAG2_PUSHABLE 0x00000001 +#define OBJECTFLAG2_GRABBABLE 0x00000002 +#define OBJECTFLAG2_00000004 0x00000004 // Not used in scripts +#define OBJECTFLAG2_00000008 0x00000008 // Not used in scripts +#define OBJECTFLAG2_00000010 0x00000010 // Used heaps +#define OBJECTFLAG2_00000020 0x00000020 // Not used in scripts +#define OBJECTFLAG2_RTRACKED_YELLOW 0x00000040 +#define OBJECTFLAG2_00000080 0x00000080 // Not used in scripts +#define OBJECTFLAG2_00000100 0x00000100 // Not used in scripts +#define OBJECTFLAG2_00000200 0x00000200 // Not used in scripts +#define OBJECTFLAG2_NO_COLLISION 0x00000400 +#define OBJECTFLAG2_RTRACKED_BLUE 0x00000800 +#define OBJECTFLAG2_00001000 0x00001000 // Show shield around object (always) +#define OBJECTFLAG2_00002000 0x00002000 // Not used in scripts +#define OBJECTFLAG2_00004000 0x00004000 // Not used in scripts +#define OBJECTFLAG2_00008000 0x00008000 // Not used in scripts +#define OBJECTFLAG2_00010000 0x00010000 // Not used in scripts +#define OBJECTFLAG2_00020000 0x00020000 // Not used in scripts +#define OBJECTFLAG2_00040000 0x00040000 // Not used in scripts +#define OBJECTFLAG2_00080000 0x00080000 // Not used in scripts +#define OBJECTFLAG2_00100000 0x00100000 // Ruins spikes +#define OBJECTFLAG2_00200000 0x00200000 // Not used in scripts +#define OBJECTFLAG2_00400000 0x00400000 // Investigation tech items +#define OBJECTFLAG2_00800000 0x00800000 // Not used in scripts +#define OBJECTFLAG2_01000000 0x01000000 // Not used in scripts +#define OBJECTFLAG2_02000000 0x02000000 // Not used in scripts +#define OBJECTFLAG2_04000000 0x04000000 // Not used in scripts +#define OBJECTFLAG2_08000000 0x08000000 // Not used in scripts +#define OBJECTFLAG2_10000000 0x10000000 // Not used in scripts +#define OBJECTFLAG2_20000000 0x20000000 // Not used in scripts +#define OBJECTFLAG2_40000000 0x40000000 // Not used in scripts +#define OBJECTFLAG2_80000000 0x80000000 // Not used in scripts + +#define OPERATOR_LESS_THAN 0 +#define OPERATOR_GREATER_THAN 1 + +#define OUTFIT_DEFAULT 0x00 +#define OUTFIT_ELVIS 0x01 +#define OUTFIT_TRENT 0x02 // unused +#define OUTFIT_TRENCH 0x03 +#define OUTFIT_FROCK_RIPPED 0x04 +#define OUTFIT_FROCK 0x05 +#define OUTFIT_LEATHER 0x06 +#define OUTFIT_DEEPSEA 0x07 +#define OUTFIT_WETSUIT 0x08 +#define OUTFIT_SNOW 0x09 +#define OUTFIT_LAB 0x0a +#define OUTFIT_STEWARDESS 0x0b +#define OUTFIT_MRBLONDE 0x0c +#define OUTFIT_MAIAN 0x0d +#define OUTFIT_NEGOTIATOR 0x0e // unused by scripts + +#define PADEFFECT_SPARKS 0x00 +#define PADEFFECT_01 0x01 // used only in Escape on a pad containing nothing +#define PADEFFECT_SPLASH 0x02 +#define PADEFFECT_SPARKS2 0x03 +#define PADEFFECT_SMOKE 0x04 +#define PADEFFECT_SMOKE_TEMPORARY 0x05 + +#define SPEED_WALK 0 +#define SPEED_JOG 1 +#define SPEED_RUN 2 + +#define STAGE_MAIANSOS 0x09 +#define STAGE_WAR 0x16 +#define STAGE_MP_RAVINE 0x17 +#define STAGE_ESCAPE 0x19 +#define STAGE_RETAKING 0x1b +#define STAGE_CRASHSITE 0x1c +#define STAGE_CHICAGO 0x1d +#define STAGE_G5BUILDING 0x1e +#define STAGE_MP_COMPLEX 0x1f +#define STAGE_MP_G5BUILDING 0x20 +#define STAGE_PELAGIC 0x21 +#define STAGE_EXTRACTION 0x22 +#define STAGE_MP_TEMPLE 0x25 +#define STAGE_CITRAINING 0x26 +#define STAGE_AIRBASE 0x27 +#define STAGE_MP_PIPES 0x29 +#define STAGE_SKEDARRUINS 0x2a +#define STAGE_VILLA 0x2c +#define STAGE_DEFENSE 0x2d +#define STAGE_INFILTRATION 0x2f +#define STAGE_DEFECTION 0x30 +#define STAGE_AIRFORCEONE 0x31 +#define STAGE_MP_SKEDAR 0x32 +#define STAGE_INVESTIGATION 0x33 +#define STAGE_ATTACKSHIP 0x34 +#define STAGE_RESCUE 0x35 +#define STAGE_MBR 0x37 +#define STAGE_DEEPSEA 0x38 +#define STAGE_MP_BASE 0x39 +#define STAGE_MP_AREA52 0x3b +#define STAGE_MP_WAREHOUSE 0x3c +#define STAGE_MP_CARPARK 0x3d +#define STAGE_MP_RUINS 0x41 +#define STAGE_MP_SEWERS 0x42 +#define STAGE_MP_FELICITY 0x43 +#define STAGE_MP_FORTRESS 0x44 +#define STAGE_MP_VILLA 0x45 +#define STAGE_MP_GRID 0x47 +#define STAGE_DUEL 0x4f + +#define TARGET_PAD 0x2328 + +#define WEAPON_NONE 0x00 +#define WEAPON_UNARMED 0x01 +#define WEAPON_FALCON2 0x02 +#define WEAPON_FALCON2_SILENCER 0x03 +#define WEAPON_FALCON2_SCOPE 0x04 +#define WEAPON_MAGSEC4 0x05 +#define WEAPON_MAULER 0x06 +#define WEAPON_PHOENIX 0x07 +#define WEAPON_DY357MAGNUM 0x08 +#define WEAPON_DY357LX 0x09 +#define WEAPON_CMP150 0x0a +#define WEAPON_CYCLONE 0x0b +#define WEAPON_CALLISTONTG 0x0c +#define WEAPON_RCP120 0x0d +#define WEAPON_LAPTOPGUN 0x0e +#define WEAPON_DRAGON 0x0f +#define WEAPON_K7AVENGER 0x10 +#define WEAPON_AR34 0x11 +#define WEAPON_SUPERDRAGON 0x12 +#define WEAPON_SHOTGUN 0x13 +#define WEAPON_REAPER 0x14 +#define WEAPON_SNIPERRIFLE 0x15 +#define WEAPON_FARSIGHTXR20 0x16 +#define WEAPON_DEVASTATOR 0x17 +#define WEAPON_ROCKETLAUNCHER 0x18 +#define WEAPON_SLAYER 0x19 +#define WEAPON_COMBATKNIFE 0x1a +#define WEAPON_CROSSBOW 0x1b +#define WEAPON_TRANQUILIZER 0x1c +#define WEAPON_LASER 0x1d +#define WEAPON_GRENADE 0x1e +#define WEAPON_NBOMB 0x1f +#define WEAPON_TIMEDMINE 0x20 +#define WEAPON_PROXIMITYMINE 0x21 +#define WEAPON_REMOTEMINE 0x22 +#define WEAPON_COMBATBOOST 0x23 +#define WEAPON_PP9I 0x24 +#define WEAPON_CC13 0x25 +#define WEAPON_KL01313 0x26 +#define WEAPON_KF7SPECIAL 0x27 +#define WEAPON_ZZT9MM 0x28 +#define WEAPON_DMC 0x29 +#define WEAPON_AR53 0x2a +#define WEAPON_RCP45 0x2b +#define WEAPON_PSYCHOSISGUN 0x2c +#define WEAPON_NIGHTVISION 0x2d +#define WEAPON_CAMSPY 0x2e +#define WEAPON_XRAYSCANNER 0x2f +#define WEAPON_IRSCANNER 0x30 +#define WEAPON_CLOAKINGDEVICE 0x31 +#define WEAPON_HORIZONSCANNER 0x32 +#define WEAPON_TESTER 0x33 +#define WEAPON_ROCKETLAUNCHER_34 0x34 +#define WEAPON_ECMMINE 0x35 +#define WEAPON_DATAUPLINK 0x36 +#define WEAPON_RTRACKER 0x37 +#define WEAPON_PRESIDENTSCANNER 0x38 +#define WEAPON_DOORDECODER 0x39 +#define WEAPON_AUTOSURGEON 0x3a +#define WEAPON_EXPLOSIVES 0x3b +#define WEAPON_SKEDARBOMB 0x3c +#define WEAPON_COMMSRIDER 0x3d +#define WEAPON_TRACERBUG 0x3e +#define WEAPON_TARGETAMPLIFIER 0x3f +#define WEAPON_DISGUISE40 0x40 +#define WEAPON_DISGUISE41 0x41 +#define WEAPON_FLIGHTPLANS 0x42 +#define WEAPON_RESEARCHTAPE 0x43 +#define WEAPON_BACKUPDISK 0x44 +#define WEAPON_KEYCARD45 0x45 +#define WEAPON_KEYCARD46 0x46 +#define WEAPON_KEYCARD47 0x47 +#define WEAPON_KEYCARD48 0x48 +#define WEAPON_KEYCARD49 0x49 +#define WEAPON_KEYCARD4A 0x4a +#define WEAPON_KEYCARD4B 0x4b +#define WEAPON_KEYCARD4C 0x4c +#define WEAPON_SUITCASE 0x4d +#define WEAPON_BRIEFCASE 0x4e +#define WEAPON_SHIELD 0x4f +#define WEAPON_NECKLACE 0x50 +#define WEAPON_HAMMER 0x51 +#define WEAPON_52 0x52 +#define WEAPON_ROCKET 0x53 +#define WEAPON_HOMINGROCKET 0x54 +#define WEAPON_GRENADEROUND 0x55 +#define WEAPON_BOLT 0x56 +#define WEAPON_BRIEFCASE2 0x57 +#define WEAPON_ROCKET2 0x58 +#define WEAPON_59 0x59 +#define WEAPON_5A 0x5a +#define WEAPON_5B 0x5b +#define WEAPON_5C 0x5c +#define WEAPON_SUICIDEPILL 0x5d + +// Heads and bodies +#define HEAD_RANDOM -1 +#define BODY_DJBOND 0x00 +#define BODY_CONNERY 0x01 +#define BODY_DALTON 0x02 +#define BODY_MOORE 0x03 +#define HEAD_DARK_COMBAT 0x04 +#define HEAD_ELVIS 0x05 +#define HEAD_ROSS 0x06 +#define HEAD_CARRINGTON 0x07 +#define HEAD_MRBLONDE 0x08 +#define HEAD_TRENT 0x09 +#define HEAD_DDSHOCK 0x0a +#define HEAD_GRAHAM 0x0b +#define HEAD_DARK_FROCK 0x0c +#define HEAD_SECRETARY 0x0d +#define HEAD_CASSANDRA 0x0e +#define HEAD_THEKING 0x0f +#define HEAD_FEM_GUARD 0x10 +#define HEAD_JON 0x11 +#define HEAD_MARK2 0x12 +#define HEAD_CHRIST 0x13 +#define HEAD_RUSS 0x14 +#define HEAD_GREY 0x15 +#define HEAD_DARLING 0x16 +#define HEAD_ROBERT 0x17 +#define HEAD_BEAU1 0x18 +#define HEAD_FEM_GUARD2 0x19 +#define HEAD_BRIAN 0x1a +#define HEAD_JAMIE 0x1b +#define HEAD_DUNCAN2 0x1c +#define HEAD_BIOTECH 0x1d +#define HEAD_NEIL2 0x1e +#define HEAD_EDMCG 0x1f +#define HEAD_ANKA 0x20 +#define HEAD_LESLIE_S 0x21 +#define HEAD_MATT_C 0x22 +#define HEAD_PEER_S 0x23 +#define HEAD_EILEEN_T 0x24 +#define HEAD_ANDY_R 0x25 +#define HEAD_BEN_R 0x26 +#define HEAD_STEVE_K 0x27 +#define HEAD_JONATHAN 0x28 +#define HEAD_MAIAN_S 0x29 +#define HEAD_SHAUN 0x2a +#define HEAD_BEAU2 0x2b +#define HEAD_EILEEN_H 0x2c +#define HEAD_SCOTT_H 0x2d +#define HEAD_SANCHEZ 0x2e +#define HEAD_DARKAQUA 0x2f +#define HEAD_DDSNIPER 0x30 +#define HEAD_BEAU3 0x31 +#define HEAD_BEAU4 0x32 +#define HEAD_BEAU5 0x33 +#define HEAD_BEAU6 0x34 +#define HEAD_GRIFFEY 0x35 +#define HEAD_MOTO 0x36 +#define HEAD_KEITH 0x37 +#define HEAD_WINNER 0x38 +#define HEAD_A51FACEPLATE 0x39 +#define HEAD_ELVIS_GOGS 0x3a +#define HEAD_STEVEM 0x3b +#define HEAD_DARK_SNOW 0x3c +#define HEAD_PRESIDENT 0x3d +#define HEAD_VD 0x3e +#define HEAD_KEN 0x3f +#define HEAD_JOEL 0x40 +#define HEAD_TIM 0x41 +#define HEAD_GRANT 0x42 +#define HEAD_PENNY 0x43 +#define HEAD_ROBIN 0x44 +#define HEAD_ALEX 0x45 +#define HEAD_JULIANNE 0x46 +#define HEAD_LAURA 0x47 +#define HEAD_DAVEC 0x48 +#define HEAD_COOK 0x49 +#define HEAD_PRYCE 0x4a +#define HEAD_SILKE 0x4b +#define HEAD_SMITH 0x4c +#define HEAD_GARETH 0x4d +#define HEAD_MURCHIE 0x4e +#define HEAD_WONG 0x4f +#define HEAD_CARTER 0x50 +#define HEAD_TINTIN 0x51 +#define HEAD_MUNTON 0x52 +#define HEAD_STAMPER 0x53 +#define HEAD_JONES 0x54 +#define HEAD_PHELPS 0x55 +#define BODY_DARK_COMBAT 0x56 +#define BODY_ELVIS1 0x57 +#define BODY_AREA51GUARD 0x58 +#define BODY_OVERALL 0x59 +#define BODY_CARRINGTON 0x5a +#define BODY_MRBLONDE 0x5b +#define BODY_SKEDAR 0x5c +#define BODY_TRENT 0x5d +#define BODY_DDSHOCK 0x5e +#define BODY_LABTECH 0x5f +#define BODY_STRIPES 0x60 +#define BODY_DARK_FROCK 0x61 +#define BODY_DARK_TRENCH 0x62 +#define BODY_OFFICEWORKER 0x63 +#define BODY_OFFICEWORKER2 0x64 +#define BODY_SECRETARY 0x65 +#define BODY_CASSANDRA 0x66 +#define BODY_THEKING 0x67 +#define BODY_FEM_GUARD 0x68 +#define BODY_DD_LABTECH 0x69 +#define BODY_DD_SECGUARD 0x6a +#define BODY_DRCARROLL 0x6b +#define BODY_EYESPY 0x6c +#define BODY_DARK_RIPPED 0x6d +#define BODY_DD_GUARD 0x6e +#define BODY_DD_SHOCK_INF 0x6f +#define BODY_TESTCHR 0x70 +#define BODY_BIOTECH 0x71 +#define BODY_FBIGUY 0x72 +#define BODY_CIAGUY 0x73 +#define BODY_A51TROOPER 0x74 +#define BODY_A51AIRMAN 0x75 +#define BODY_CHICROB 0x76 +#define BODY_STEWARD 0x77 +#define BODY_STEWARDESS 0x78 +#define BODY_PRESIDENT 0x79 +#define BODY_STEWARDESS_COAT 0x7a +#define BODY_MINISKEDAR 0x7b +#define BODY_NSA_LACKEY 0x7c +#define BODY_PRES_SECURITY 0x7d +#define BODY_NEGOTIATOR 0x7e +#define BODY_G5_GUARD 0x7f +#define BODY_PELAGIC_GUARD 0x80 +#define BODY_G5_SWAT_GUARD 0x81 +#define BODY_ALASKAN_GUARD 0x82 +#define BODY_MAIAN_SOLDIER 0x83 +#define BODY_PRESIDENT_CLONE 0x84 +#define BODY_PRESIDENT_CLONE2 0x85 +#define BODY_DARK_AF1 0x86 +#define BODY_DARKWET 0x87 +#define BODY_DARKAQUALUNG 0x88 +#define BODY_DARKSNOW 0x89 +#define BODY_DARKLAB 0x8a +#define BODY_FEMLABTECH 0x8b +#define BODY_DDSNIPER 0x8c +#define BODY_PILOTAF1 0x8d +#define BODY_CILABTECH 0x8e +#define BODY_CIFEMTECH 0x8f +#define BODY_CARREVENINGSUIT 0x90 +#define BODY_JONATHON 0x91 +#define BODY_CISOLDIER 0x92 +#define BODY_SKEDARKING 0x93 +#define BODY_ELVISWAISTCOAT 0x94 +#define BODY_DARK_LEATHER 0x95 +#define BODY_DARK_NEGOTIATOR 0x96 + +// Models +#define MODEL_ROOFGUN 0x0000 +#define MODEL_GROUNDGUN 0x0001 +#define MODEL_TVSCREEN 0x0002 +#define MODEL_BORG_CRATE 0x0003 +#define MODEL_WINDOW 0x0004 +#define MODEL_A51_CRATE1_0005 0x0005 +#define MODEL_A51_CRATE1_0006 0x0006 +#define MODEL_A51_CRATE1_0007 0x0007 +#define MODEL_A51_CRATE1_0008 0x0008 +#define MODEL_A51_CRATE1_0009 0x0009 +#define MODEL_A51_CRATE1_000a 0x000a +#define MODEL_A51_CRATE1_000b 0x000b +#define MODEL_A51_CRATE1_000c 0x000c +#define MODEL_A51_CRATE1_000d 0x000d +#define MODEL_A51_CRATE1_000e 0x000e +#define MODEL_A51_CRATE1_000f 0x000f +#define MODEL_CRYPTDOOR1B 0x0010 +#define MODEL_CHRBRIEFCASE 0x0011 +#define MODEL_CHRBUG 0x0012 +#define MODEL_CHRDATATHIEF 0x0013 +#define MODEL_NINTENDOLOGO 0x0014 +#define MODEL_DOOR_ROLLERTRAIN 0x0015 +#define MODEL_FLAG 0x0016 +#define MODEL_MODEMBOX 0x0017 +#define MODEL_DOORCONSOLE 0x0018 +#define MODEL_A51_HORIZ_DOOR_TOP 0x0019 +#define MODEL_A51_HORIZ_DOOR_BOT 0x001a +#define MODEL_A51_VERT_DOOR_LEFT 0x001b +#define MODEL_A51_VERT_DOOR_RIGHT 0x001c +#define MODEL_A51_VERT_DOOR_ST 0x001d +#define MODEL_A51_HORIZ_DOOR_GL 0x001e +#define MODEL_A51_HORIZ_DOOR_SECRET 0x001f +#define MODEL_A51_CRATE1 0x0020 +#define MODEL_A51_CRATE2 0x0021 +#define MODEL_A51_CRATE3 0x0022 +#define MODEL_A51_EXP1 0x0023 +#define MODEL_A51_UNEXP1 0x0024 +#define MODEL_A51_EXP2 0x0025 +#define MODEL_A51_UNEXP2 0x0026 +#define MODEL_A51_UNEXP3 0x0027 +#define MODEL_AIVILLADOOR1 0x0028 +#define MODEL_AIVILLADOOR2A 0x0029 +#define MODEL_AIVILLADOOR4 0x002a +#define MODEL_A51_LIFT_HANGAR 0x002b +#define MODEL_A51_LIFT_CONTROL 0x002c +#define MODEL_A51_LIFT_STORE 0x002d +#define MODEL_A51_LIFT_THINWALL 0x002e +#define MODEL_AIVILLABOT1 0x002f +#define MODEL_AIVILLABOT2 0x0030 +#define MODEL_AIVILLABOT3 0x0031 +#define MODEL_AIVILLAWINDMILL 0x0032 +#define MODEL_HOVERBED 0x0033 +#define MODEL_MARKER 0x0034 +#define MODEL_ALDOOR_R 0x0035 +#define MODEL_ALDOOR_L 0x0036 +#define MODEL_DD_LIFTR 0x0037 +#define MODEL_DD_FANROOF 0x0038 +#define MODEL_DD_FANWALL 0x0039 +#define MODEL_HOVBIKE 0x003a +#define MODEL_DD_OFFICEDOOR 0x003b +#define MODEL_DD_PLANTRUBBER 0x003c +#define MODEL_DD_PLANTSPIKE 0x003d +#define MODEL_DD_PLANTSPIDER 0x003e +#define MODEL_DD_WINDOW 0x003f +#define MODEL_DD_REDSOFA 0x0040 +#define MODEL_DD_REDARM 0x0041 +#define MODEL_DD_SERVICEDOOR 0x0042 +#define MODEL_DD_WINDDOOR 0x0043 +#define MODEL_DD_LIFTDOOR 0x0044 +#define MODEL_DD_VERTBLIND 0x0045 +#define MODEL_DD_DESK 0x0046 +#define MODEL_DD_CHAIR 0x0047 +#define MODEL_NLOGO 0x0048 +#define MODEL_NLOGO2 0x0049 +#define MODEL_NLOGO3 0x004a +#define MODEL_PERFECTDARK 0x004b +#define MODEL_PDONE 0x004c +#define MODEL_PDTWO 0x004d +#define MODEL_PDTHREE 0x004e +#define MODEL_PDFOUR 0x004f +#define MODEL_DD_HOVCOP 0x0050 +#define MODEL_DD_HOVMOTO 0x0051 +#define MODEL_DD_HOVTRUCK 0x0052 +#define MODEL_DD_HOVCAR 0x0053 +#define MODEL_DD_HOVCAB 0x0054 +#define MODEL_DD_AC_UNEXP 0x0055 +#define MODEL_DD_AC_EXP 0x0056 +#define MODEL_DD_ACBOT_UNEXP 0x0057 +#define MODEL_DD_ACBOT_EXP 0x0058 +#define MODEL_PC1 0x0059 +#define MODEL_HOVERCRATE1 0x005a +#define MODEL_DROPSHIP 0x005b +#define MODEL_AL_AIRLOCK 0x005c +#define MODEL_AL_DOCKLIFT 0x005d +#define MODEL_CASE 0x005e +#define MODEL_DD_STONEDESK 0x005f +#define MODEL_MEDLABWIN1 0x0060 +#define MODEL_MEDLABWIN2 0x0061 +#define MODEL_A51TABLE 0x0062 +#define MODEL_A51CHAIR 0x0063 +#define MODEL_A51SCREEN 0x0064 +#define MODEL_A51WASTEBIN 0x0065 +#define MODEL_A51DESKENT 0x0066 +#define MODEL_A51TROLLEY 0x0067 +#define MODEL_A51DIVIDE 0x0068 +#define MODEL_A51BOARD 0x0069 +#define MODEL_SKCREV_EXP1 0x006a +#define MODEL_SKCREV_UNEXP1 0x006b +#define MODEL_SKTNL_EXP1 0x006c +#define MODEL_SKTNL_UNEXP1 0x006d +#define MODEL_SK_DOOR1 0x006e +#define MODEL_SK_SHIP_DOOR1 0x006f +#define MODEL_SK_SHIP_HOLO1 0x0070 +#define MODEL_SK_SHIP_HOLO2 0x0071 +#define MODEL_SK_SHIP_HULLDOOR1 0x0072 +#define MODEL_SK_SHIP_HULLDOOR2 0x0073 +#define MODEL_SK_SHIP_HULLDOOR3 0x0074 +#define MODEL_SK_SHIP_HULLDOOR4 0x0075 +#define MODEL_SK_FIGHTER1 0x0076 +#define MODEL_SK_CRYOPOD1_TOP 0x0077 +#define MODEL_SK_CRYOPOD1_BOT 0x0078 +#define MODEL_SK_UNDER_GENERATOR 0x0079 +#define MODEL_SK_UNDER_TRANS 0x007a +#define MODEL_SK_HANGARDOOR_TOP 0x007b +#define MODEL_SK_HANGARDOOR_BOT 0x007c +#define MODEL_DOOR2_G5 0x007d +#define MODEL_DOOR1A_G5 0x007e +#define MODEL_DOOR1B_G5 0x007f +#define MODEL_DOOR1ATRI_G5 0x0080 +#define MODEL_DOOR2A_G5 0x0081 +#define MODEL_DD_DECODOOR 0x0082 +#define MODEL_DD_SECRETDOOR 0x0083 +#define MODEL_DD_SECRETDOOR2 0x0084 +#define MODEL_DDJUMPSHIP 0x0085 +#define MODEL_TAXICAB 0x0086 +#define MODEL_POLICECAR 0x0087 +#define MODEL_RAVINELIFT 0x0088 +#define MODEL_DD_LAB_DOOR_BS 0x0089 +#define MODEL_DD_LAB_DOOR_SEC 0x008a +#define MODEL_DD_LAB_DOOR_WIND 0x008b +#define MODEL_HOOVERBOT 0x008c +#define MODEL_TESTERBOT 0x008d +#define MODEL_DD_LAB_SECTOR2BOT 0x008e +#define MODEL_DD_LAB_SECTOR2TOP 0x008f +#define MODEL_DD_LAB_CAUTIONTOP 0x0090 +#define MODEL_DD_LAB_HAZARD 0x0091 +#define MODEL_DD_LAB_CAUTION 0x0092 +#define MODEL_DR_CAROLL_DOOR 0x0093 +#define MODEL_DD_LAB_SECTOR3TOP 0x0094 +#define MODEL_DD_LAB_SECTOR3 0x0095 +#define MODEL_DD_LAB_SECTOR3WIND 0x0096 +#define MODEL_DD_HOVERCOPTER 0x0097 +#define MODEL_DD_LAB_SECTOR4TOP 0x0098 +#define MODEL_DD_LAB_RESTRICTED 0x0099 +#define MODEL_DOOR4A_G5 0x009a +#define MODEL_DOOR4B_G5 0x009b +#define MODEL_LASDOOR 0x009c +#define MODEL_G5SAFEDOOR 0x009d +#define MODEL_ROPE 0x009e +#define MODEL_G5_MAINFRAME 0x009f +#define MODEL_DR_CAROLL_DOOR_BASE 0x00a0 +#define MODEL_DR_CAROLL_DOOR_MAIN 0x00a1 +#define MODEL_DR_CAROLL_DOOR_LEFT 0x00a2 +#define MODEL_DR_CAROLL_DOOR_RIGHT 0x00a3 +#define MODEL_DR_CAROLL_DOOR_BMAIN 0x00a4 +#define MODEL_DR_CAROLL_DOOR_BLEFT 0x00a5 +#define MODEL_DR_CAROLL_DOOR_BRIGHT 0x00a6 +#define MODEL_DD_BANNER 0x00a7 +#define MODEL_G5_ESCDOORUP 0x00a8 +#define MODEL_G5_ESCDOORUPBOOM 0x00a9 +#define MODEL_G5_ESCDOORDOWN 0x00aa +#define MODEL_G5_ESCDOORDOWNBOOM 0x00ab +#define MODEL_DUMPSTER 0x00ac +#define MODEL_G5CARLIFTDOOR 0x00ad +#define MODEL_CH_SHUTTER1 0x00ae +#define MODEL_CCTV_PD 0x00af +#define MODEL_COMHUB 0x00b0 +#define MODEL_QUADPOD 0x00b1 +#define MODEL_PD_CONSOLE 0x00b2 +#define MODEL_DD_GRATE 0x00b3 +#define MODEL_LIFT_PLATFORM 0x00b4 +#define MODEL_LIGHTSWITCH 0x00b5 +#define MODEL_BLASTSHIELD 0x00b6 +#define MODEL_LIGHTSWITCH2 0x00b7 +#define MODEL_DD_ACCESSDOORUP 0x00b8 +#define MODEL_DD_ACCESSDOORDN 0x00b9 +#define MODEL_LAB_CONTAINER 0x00ba +#define MODEL_LAB_CHAIR 0x00bb +#define MODEL_LAB_TABLE 0x00bc +#define MODEL_LAB_MICROSCOPE 0x00bd +#define MODEL_LAB_MAINFRAME 0x00be +#define MODEL_DD_LABDOOR 0x00bf +#define MODEL_DD_LAB_DOORTOP 0x00c0 +#define MODEL_MULTI_AMMO_CRATE 0x00c1 +#define MODEL_CHRCHAIN 0x00c2 +#define MODEL_TDOOR 0x00c3 +#define MODEL_CI_SOFA 0x00c4 +#define MODEL_CI_LIFT 0x00c5 +#define MODEL_CI_LIFTDOOR 0x00c6 +#define MODEL_LASERCUT 0x00c7 +#define MODEL_SK_SHUTTLE 0x00c8 +#define MODEL_NEWVILLADOOR 0x00c9 +#define MODEL_SK_PILLARLEFT 0x00ca +#define MODEL_SK_PILLARRIGHT 0x00cb +#define MODEL_SK_PLINTH_T 0x00cc +#define MODEL_SK_PLINTH_ML 0x00cd +#define MODEL_SK_PLINTH_MR 0x00ce +#define MODEL_SK_PLINTH_BL 0x00cf +#define MODEL_SK_PLINTH_BR 0x00d0 +#define MODEL_SK_FL_SHAD_T 0x00d1 +#define MODEL_SK_FL_SHAD_ML 0x00d2 +#define MODEL_SK_FL_SHAD_MR 0x00d3 +#define MODEL_SK_FL_SHAD_BL 0x00d4 +#define MODEL_SK_FL_SHAD_BR 0x00d5 +#define MODEL_SK_FL_NOSHAD_T 0x00d6 +#define MODEL_SK_FL_NOSHAD_ML 0x00d7 +#define MODEL_SK_FL_NOSHAD_MR 0x00d8 +#define MODEL_SK_FL_NOSHAD_BL 0x00d9 +#define MODEL_SK_FL_NOSHAD_BR 0x00da +#define MODEL_SK_TEMPLECOLUMN1 0x00db +#define MODEL_SK_TEMPLECOLUMN2 0x00dc +#define MODEL_SK_TEMPLECOLUMN3 0x00dd +#define MODEL_SK_SUNSHAD1 0x00de +#define MODEL_SK_SUNSHAD2 0x00df +#define MODEL_SK_SUNNOSHAD1 0x00e0 +#define MODEL_SK_SUNNOSHAD2 0x00e1 +#define MODEL_BARREL 0x00e2 +#define MODEL_GLASS_FLOOR 0x00e3 +#define MODEL_ESCA_STEP 0x00e4 +#define MODEL_MATRIX_LIFT 0x00e5 +#define MODEL_RUBBLE1 0x00e6 +#define MODEL_RUBBLE2 0x00e7 +#define MODEL_RUBBLE3 0x00e8 +#define MODEL_RUBBLE4 0x00e9 +#define MODEL_CABLE_CAR 0x00ea +#define MODEL_ELVIS_SAUCER 0x00eb +#define MODEL_STEWARDESS_TROLLEY 0x00ec +#define MODEL_AIRBASE_LIFT_ENCLOSED 0x00ed +#define MODEL_AIRBASE_LIFT_ANGLE 0x00ee +#define MODEL_AIRBASE_SAFEDOOR 0x00ef +#define MODEL_AF1_PILOTCHAIR 0x00f0 +#define MODEL_AF1_PASSCHAIR 0x00f1 +#define MODEL_TESTOBJ 0x00f2 +#define MODEL_CHRNIGHTSIGHT 0x00f3 +#define MODEL_CHRSHIELD 0x00f4 +#define MODEL_CHRFALCON2 0x00f5 +#define MODEL_CHRLEEGUN1 0x00f6 +#define MODEL_CHRMAULER 0x00f7 +#define MODEL_CHRDY357 0x00f8 +#define MODEL_CHRDY357TRENT 0x00f9 +#define MODEL_CHRMAIANPISTOL 0x00fa +#define MODEL_CHRFALCON2SIL 0x00fb +#define MODEL_CHRFALCON2SCOPE 0x00fc +#define MODEL_CHRCMP150 0x00fd +#define MODEL_CHRAR34 0x00fe +#define MODEL_CHRDRAGON 0x00ff +#define MODEL_CHRSUPERDRAGON 0x0100 +#define MODEL_CHRAVENGER 0x0101 +#define MODEL_CHRCYCLONE 0x0102 +#define MODEL_CHRMAIANSMG 0x0103 +#define MODEL_CHRRCP120 0x0104 +#define MODEL_CHRPCGUN 0x0105 +#define MODEL_CHRSHOTGUN 0x0106 +#define MODEL_CHRSKMINIGUN 0x0107 +#define MODEL_CHRDYROCKET 0x0108 +#define MODEL_CHRDEVASTATOR 0x0109 +#define MODEL_CHRSKROCKET 0x010a +#define MODEL_CHRZ2020 0x010b +#define MODEL_CHRSNIPERRIFLE 0x010c +#define MODEL_CHRCROSSBOW 0x010d +#define MODEL_CHRDRUGGUN 0x010e +#define MODEL_CHRKNIFE 0x010f +#define MODEL_CHRNBOMB 0x0110 +#define MODEL_CHRFLASHBANG 0x0111 +#define MODEL_CHRGRENADE 0x0112 +#define MODEL_CHRTIMEDMINE 0x0113 +#define MODEL_CHRPROXIMITYMINE 0x0114 +#define MODEL_CHRREMOTEMINE 0x0115 +#define MODEL_CHRECMMINE 0x0116 +#define MODEL_CHRWPPK 0x0117 +#define MODEL_CHRTT33 0x0118 +#define MODEL_CHRSKORPION 0x0119 +#define MODEL_CHRKALASH 0x011a +#define MODEL_CHRUZI 0x011b +#define MODEL_CHRMP5K 0x011c +#define MODEL_CHRM16 0x011d +#define MODEL_CHRFNP90 0x011e +#define MODEL_CHRDYROCKETMIS 0x011f +#define MODEL_CHRSKROCKETMIS 0x0120 +#define MODEL_CHRCROSSBOLT 0x0121 +#define MODEL_CHRDEVGRENADE 0x0122 +#define MODEL_CHRDRAGGRENADE 0x0123 +#define MODEL_A51_TURRET 0x0124 +#define MODEL_PELAGICDOOR 0x0125 +#define MODEL_AUTOSURGEON 0x0126 +#define MODEL_LIMO 0x0127 +#define MODEL_A51INTERCEPTOR 0x0128 +#define MODEL_A51DISH 0x0129 +#define MODEL_A51RADARCONSOLE 0x012a +#define MODEL_A51LOCKERDOOR 0x012b +#define MODEL_G5GENERATOR 0x012c +#define MODEL_G5DUMPSTER 0x012d +#define MODEL_CHRCLOAKER 0x012e +#define MODEL_CHRSPEEDPILL 0x012f +#define MODEL_BIGPELAGICDOOR 0x0130 +#define MODEL_SK_JONRUBBLE3 0x0131 +#define MODEL_SK_JONRUBBLE4 0x0132 +#define MODEL_SK_JONRUBBLE5 0x0133 +#define MODEL_SK_JONRUBBLE6 0x0134 +#define MODEL_BAGGAGECARRIER 0x0135 +#define MODEL_MINESIGN 0x0136 +#define MODEL_CHAMBER 0x0137 +#define MODEL_ISOTOPEEXPERIMENT 0x0138 +#define MODEL_ISOTOPE 0x0139 +#define MODEL_REACTORDOOR 0x013a +#define MODEL_SAUCERINSIDE 0x013b +#define MODEL_VILLASTOOL 0x013c +#define MODEL_CETANWINDOW1 0x013d +#define MODEL_CETANWINDOW2 0x013e +#define MODEL_CETANWINDOW3 0x013f +#define MODEL_BINOCULARS 0x0140 +#define MODEL_SUBMARINE 0x0141 +#define MODEL_AIRFORCE1 0x0142 +#define MODEL_ENGINEPART 0x0143 +#define MODEL_CETROOFGUN 0x0144 +#define MODEL_CETANSMALLDOOR 0x0145 +#define MODEL_POWERNODE 0x0146 +#define MODEL_CETANBLUEGREENL 0x0147 +#define MODEL_CETANBLUEGREENR 0x0148 +#define MODEL_SKEDARCONSOLE 0x0149 +#define MODEL_SKEDARCONSOLEPANEL 0x014a +#define MODEL_WEAPONCDOOR 0x014b +#define MODEL_TARGET 0x014c +#define MODEL_DEVICESECRETDOOR 0x014d +#define MODEL_CARRINGTONSECRETDOOR 0x014e +#define MODEL_SINISTERPC 0x014f +#define MODEL_SINISTERSTATION 0x0150 +#define MODEL_KEYPADLOCK 0x0151 +#define MODEL_THUMBPRINTSCANNER 0x0152 +#define MODEL_RETINALOCK 0x0153 +#define MODEL_CARDLOCK 0x0154 +#define MODEL_GOODSTATION 0x0155 +#define MODEL_GOODPC 0x0156 +#define MODEL_CHRAUTOGUN 0x0157 +#define MODEL_G5BIGCHAIR 0x0158 +#define MODEL_G5SMALLCHAIR 0x0159 +#define MODEL_KINGSCEPTRE 0x015a +#define MODEL_LABCOAT 0x015b +#define MODEL_CIDOOR1 0x015c +#define MODEL_G5_CHAIR 0x015d +#define MODEL_G5_CHAIR2 0x015e +#define MODEL_DD_WINDOW_FOYER 0x015f +#define MODEL_CI_CABINET 0x0160 +#define MODEL_CI_DESK 0x0161 +#define MODEL_CI_CARR_DESK 0x0162 +#define MODEL_CI_F_CHAIR 0x0163 +#define MODEL_CI_LOUNGER 0x0164 +#define MODEL_CI_F_SOFA 0x0165 +#define MODEL_CI_TABLE 0x0166 +#define MODEL_CV_COFFEE_TABLE 0x0167 +#define MODEL_CV_CHAIR1 0x0168 +#define MODEL_CV_CHAIR2 0x0169 +#define MODEL_CV_SOFA 0x016a +#define MODEL_CV_CHAIR4 0x016b +#define MODEL_CV_LAMP 0x016c +#define MODEL_CV_CABINET 0x016d +#define MODEL_CV_F_BED 0x016e +#define MODEL_PEL_CHAIR1 0x016f +#define MODEL_SK_CONSOLE2 0x0170 +#define MODEL_DD_EAR_TABLE 0x0171 +#define MODEL_DD_EAR_CHAIR 0x0172 +#define MODEL_AIRBASE_TABLE2 0x0173 +#define MODEL_AIRBASE_CHAIR2 0x0174 +#define MODEL_MISC_CRATE 0x0175 +#define MODEL_A51_CRATE1_0175 0x0176 +#define MODEL_MISC_IRSPECS 0x0177 +#define MODEL_A51_ROOFGUN 0x0178 +#define MODEL_SK_DRONE_GUN 0x0179 +#define MODEL_CI_ROOFGUN 0x017a +#define MODEL_CV_TABLE 0x017b +#define MODEL_CIDOOR1_REF 0x017c +#define MODEL_ALASKADOOR_OUT 0x017d +#define MODEL_ALASKADOOR_IN 0x017e +#define MODEL_WIREFENCE 0x017f +#define MODEL_RARELOGO 0x0180 +#define MODEL_KEYCARD 0x0181 +#define MODEL_BODYARMOUR 0x0182 +#define MODEL_A51GATE_R 0x0183 +#define MODEL_A51GATE_L 0x0184 +#define MODEL_AF1_LAMP 0x0185 +#define MODEL_AF1_TOILET 0x0186 +#define MODEL_AF1_DOORBIG2 0x0187 +#define MODEL_AF1_PHONE 0x0188 +#define MODEL_AF1_CARGODOOR 0x0189 +#define MODEL_G5_ALARM 0x018a +#define MODEL_G5_LASER_SWITCH 0x018b +#define MODEL_SK_TEMPLECOLUMN4 0x018c +#define MODEL_COREHATCH 0x018d +#define MODEL_A51GRATE 0x018e +#define MODEL_AF1ESCAPEDOOR 0x018f +#define MODEL_PRESCAPSULE 0x0190 +#define MODEL_SKEDARBRIDGE 0x0191 +#define MODEL_PELAGICDOOR2 0x0192 +#define MODEL_TTB_BOX 0x0193 +#define MODEL_INSTFRONTDOOR 0x0194 +#define MODEL_CHRLASER 0x0195 +#define MODEL_BAFTA 0x0196 +#define MODEL_CHRSONICSCREWER 0x0197 +#define MODEL_CHRLUMPHAMMER 0x0198 +#define MODEL_EXPLOSIVEBRICK 0x0199 +#define MODEL_SKEDARBOMB 0x019a +#define MODEL_ZIGGYCARD 0x019b +#define MODEL_SAFEITEM 0x019c +#define MODEL_RUSSDAR 0x019d +#define MODEL_XRAYSPECS 0x019e +#define MODEL_CHRLUMPHAMMER2 0x019f +#define MODEL_CHREYESPY 0x01a0 +#define MODEL_CHRDOORDECODER 0x01a1 +#define MODEL_AF1_TABLE 0x01a2 +#define MODEL_SHUTTLEDOOR 0x01a3 +#define MODEL_RUINBRIDGE 0x01a4 +#define MODEL_SECRETINDOOR 0x01a5 +#define MODEL_SENSITIVEINFO 0x01a6 +#define MODEL_SUITCASE 0x01a7 +#define MODEL_SKPUZZLEOBJECT 0x01a8 +#define MODEL_A51LIFTDOOR 0x01a9 +#define MODEL_CIHUB 0x01aa +#define MODEL_SK_SHIP_DOOR2 0x01ab +#define MODEL_SK_WINDOW1 0x01ac +#define MODEL_SK_HANGARDOORB_TOP 0x01ad +#define MODEL_SK_HANGARDOORB_BOT 0x01ae +#define MODEL_AF1_INNERDOOR 0x01af +#define MODEL_LASER_POST 0x01b0 +#define MODEL_TARGETAMP 0x01b1 +#define MODEL_SK_LIFT 0x01b2 +#define MODEL_KNOCKKNOCK 0x01b3 +#define MODEL_CETANDOOR 0x01b4 +#define MODEL_AF1RUBBLE 0x01b5 +#define MODEL_DD_DR_NONREF 0x01b6 +#define MODEL_CETANDOORSIDE 0x01b7 +#define MODEL_BUDDYBRIDGE 0x01b8 + +#define MUSIC_NONE 0x00 +#define MUSIC_TITLE2 0x01 +#define MUSIC_EXTRACTION 0x02 +#define MUSIC_PAUSEMENU 0x03 +#define MUSIC_DEFENSE 0x04 +#define MUSIC_INVESTIGATION_SFX 0x05 +#define MUSIC_ESCAPE 0x06 +#define MUSIC_DEEPSEA 0x07 +#define MUSIC_DDTOWER_SFX 0x08 +#define MUSIC_DEFECTION 0x09 +#define MUSIC_DEATH_SOLO 0x0a +#define MUSIC_DEFECTION_INTRO_SFX 0x0b +#define MUSIC_VILLA 0x0c +#define MUSIC_CI 0x0d +#define MUSIC_CHICAGO 0x0e +#define MUSIC_G5 0x0f +#define MUSIC_DEFECTION_X 0x10 +#define MUSIC_EXTRACTION_X 0x11 +#define MUSIC_INVESTIGATION 0x12 +#define MUSIC_INVESTIGATION_x 0x13 +#define MUSIC_INFILTRATION 0x14 +#define MUSIC_DEATH_BETA 0x15 +#define MUSIC_RESCUE 0x16 +#define MUSIC_AIRBASE 0x17 +#define MUSIC_AIRFORCEONE 0x18 +#define MUSIC_DEATH_MP 0x19 +#define MUSIC_EXTRACTION_OUTRO_SFX 0x1a +#define MUSIC_MISSION_UNKNOWN 0x1b +#define MUSIC_PELAGIC 0x1c +#define MUSIC_CRASHSITE 0x1d +#define MUSIC_CRASHSITE_X 0x1e +#define MUSIC_ATTACKSHIP 0x1f +#define MUSIC_ATTACKSHIP_X 0x20 +#define MUSIC_SKEDARRUINS 0x21 +#define MUSIC_DEFECTION_INTRO 0x22 +#define MUSIC_DEFECTION_OUTRO 0x23 +#define MUSIC_DEFENSE_X 0x24 +#define MUSIC_INVESTIGATION_INTRO 0x25 +#define MUSIC_INVESTIGATION_OUTRO 0x26 +#define MUSIC_VILLA_X 0x27 +#define MUSIC_CHICAGO_X 0x28 +#define MUSIC_G5_X 0x29 +#define MUSIC_INFILTRATION_X 0x2a +#define MUSIC_CHICAGO_OUTRO 0x2b +#define MUSIC_EXTRACTION_OUTRO 0x2c +#define MUSIC_EXTRACTION_INTRO 0x2d +#define MUSIC_G5_INTRO 0x2e +#define MUSIC_CHICAGO_INTRO 0x2f +#define MUSIC_VILLA_INTRO1 0x30 +#define MUSIC_INFILTRATION_INTRO 0x31 +#define MUSIC_RESCUE_X 0x32 +#define MUSIC_ESCAPE_X 0x33 +#define MUSIC_AIRBASE_X 0x34 +#define MUSIC_AIRFORCEONE_X 0x35 +#define MUSIC_PELAGIC_X 0x36 +#define MUSIC_DEEPSEA_X 0x37 +#define MUSIC_SKEDARRUINS_X 0x38 +#define MUSIC_AIRBASE_OUTRO_LONG 0x39 +#define MUSIC_DARK_COMBAT 0x3a +#define MUSIC_SKEDAR_MYSTERY 0x3b +#define MUSIC_DEEPSEA_BETA 0x3c +#define MUSIC_CI_OPERATIVE 0x3d +#define MUSIC_DATADYNE_ACTION 0x3e +#define MUSIC_MAIAN_TEARS 0x3f +#define MUSIC_ALIEN_CONFLICT 0x40 +#define MUSIC_ESCAPE_INTRO 0x41 +#define MUSIC_RESCUE_OUTRO 0x42 +#define MUSIC_VILLA_INTRO2 0x43 +#define MUSIC_VILLA_INTRO3 0x44 +#define MUSIC_G5_OUTRO 0x45 +#define MUSIC_G5_MIDCUTSCENE 0x46 +#define MUSIC_MISSION_FAILED 0x47 +#define MUSIC_COMBATSIM_MENU 0x48 +#define MUSIC_MISSION_SUCCESS 0x49 +#define MUSIC_CRASHSITE_INTRO 0x4a +#define MUSIC_AIRBASE_INTRO 0x4b +#define MUSIC_ATTACKSHIP_INTRO 0x4c +#define MUSIC_DEEPSEA_MIDCUTSCENE 0x4d +#define MUSIC_AIRFORCEONE_INTRO 0x4e +#define MUSIC_ATTACKSHIP_OUTRO 0x4f +#define MUSIC_ESCAPE_MIDCUTSCENE 0x50 +#define MUSIC_RESCUE_INTRO 0x51 +#define MUSIC_DEEPSEA_INTRO 0x52 +#define MUSIC_INFILTRATION_OUTRO 0x53 +#define MUSIC_PELAGIC_INTRO 0x54 +#define MUSIC_ESCAPE_OUTRO_LONG 0x55 +#define MUSIC_DEFENSE_INTRO 0x56 +#define MUSIC_CRASHSITE_OUTRO 0x57 +#define MUSIC_CREDITS 0x58 +#define MUSIC_MAINMENU 0x59 +#define MUSIC_DEEPSEA_OUTRO 0x5a +#define MUSIC_AIRFORCEONE_MIDCUTSCENE 0x5b +#define MUSIC_PELAGIC_OUTRO 0x5c +#define MUSIC_AIRFORCEONE_OUTRO 0x5d +#define MUSIC_SKEDARRUINS_INTRO 0x5e +#define MUSIC_BETA_NOTE 0x5f +#define MUSIC_AIRBASE_OUTRO 0x60 +#define MUSIC_DEFENSE_OUTRO 0x61 +#define MUSIC_SKEDARRUINS_OUTRO 0x62 +#define MUSIC_VILLA_OUTRO 0x63 +#define MUSIC_SKEDARRUINS_KING 0x64 +#define MUSIC_CI_TRAINING 0x65 +#define MUSIC_CRASHSITE_WIND 0x66 +#define MUSIC_COMBATSIM_COMPLETE 0x67 +#define MUSIC_OCEAN 0x68 +#define MUSIC_WIND 0x69 +#define MUSIC_TRAFFIC 0x6a +#define MUSIC_TITLE1 0x6b +#define MUSIC_CI_INTRO 0x6c +#define MUSIC_INFILTRATION_SFX 0x6d +#define MUSIC_DEEPSEA_SFX 0x6e +#define MUSIC_AIRFORCEONE_SFX 0x6f +#define MUSIC_ATTACKSHIP_SFX 0x70 +#define MUSIC_SKEDAR_WIND 0x71 +#define MUSIC_ESCAPE_OUTRO_SFX 0x72 +#define MUSIC_A51_LOUDSPEAKER1 0x73 +#define MUSIC_A51_LOUDSPEAKER2 0x74 +#define MUSIC_BETA_MELODY 0x75 +#define MUSIC_ESCAPE_OUTRO_SHORT 0x76 + + +// Animations +//.set ANIM_, 0x0000: idle +#define ANIM_TWO_GUN_HOLD 0x0001 +#define ANIM_SURRENDER_002E 0x002e +#define ANIM_TALKING_003D 0x003d +//.set ANIM_, 0x0066: arms up action then move forward +#define ANIM_TALKING_0098 0x0098 +#define ANIM_YAWN 0x009a +#define ANIM_SCRATCH_HEAD 0x009b +#define ANIM_ROLL_HEAD 0x009c +#define ANIM_GRAB_CROTCH 0x009d +#define ANIM_GRAB_BUTT 0x009e +#define ANIM_SNEEZE 0x009f +#define ANIM_TALKING_00A0 0x00a0 +//.set ANIM_, 0x00a1: two handed gun, taunting a bit +#define ANIM_TALKING_00A3 0x00a3 +#define ANIM_PUSH_BUTTON 0x00ac +#define ANIM_STANDING_TYPE_ONE_HAND 0x00af +//.set ANIM_, 0x00e1: look up +//.set ANIM_, 0x0156: Jo in Defection intro +//.set ANIM_, 0x0166: Jo in G5 intro +//.set ANIM_, 0x0167: Guard in G5 intro +//.set ANIM_, 0x0179: Jo in Chicago outro +//.set ANIM_, 0x0197: Jo in G5 outro +//.set ANIM_, 0x01d5: Jo in Deep Sea mid cutscene +//.set ANIM_, 0x01d6: Elvis in Deep Sea mid cutscene +//.set ANIM_, 0x01d7: Dr Caroll in Deep Sea mid cutscene +#define ANIM_COWER_01F5 0x01f5 +#define ANIM_STAND_UP_FROM_SITTING 0x01fa +#define ANIM_SITTING_TYPING 0x01fb +//.set ANIM_, 0x01fd: slow aim and walk forward +#define ANIM_RELOAD 0x01ff +#define ANIM_DONT_SHOOT 0x0201 +#define ANIM_SURPRISED_0202 0x0202 +#define ANIM_OPERATE_0204 0x0204 +#define ANIM_OPERATE_0205 0x0205 +#define ANIM_OPERATE_0206 0x0206 +#define ANIM_SMOKE_CIGARETTE 0x0207 +#define ANIM_RELOAD_0209 0x0209 +//.set ANIM_, 0x020b: laying on floor +//.set ANIM_, 0x020c: seated dead on floor +#define ANIM_OPERATE_0221 0x0221 // point with right arm +#define ANIM_OPERATE_0222 0x0222 // push button with right hand +#define ANIM_OPERATE_0223 0x0223 // right arm up, waggle for a bit +#define ANIM_WALK_BACKWARDS 0x0226 +#define ANIM_SITTING_DORMANT 0x0227 +#define ANIM_BLINDED 0x0228 +#define ANIM_COWER_0229 0x0229 +//.set ANIM_, 0x022a: on floor face down +#define ANIM_TALKING_0231 0x0231 +#define ANIM_TALKING_0232 0x0232 +#define ANIM_TALKING_0233 0x0233 +#define ANIM_TALKING_0234 0x0234 +//.set ANIM_, 0x023a: scratch head +#define ANIM_HEAD_ROLL 0x023b +#define ANIM_PICK_UP_GUN 0x023d +#define ANIM_BIG_SNEEZE 0x023f +#define ANIM_DRAW_PISTOL_0245 0x0245 +#define ANIM_LOOK_AROUND_025B 0x025b +#define ANIM_LOOK_AROUND_025C 0x025c +#define ANIM_LOOK_AROUND_025D 0x025d +#define ANIM_LOOK_AROUND_025E 0x025e +#define ANIM_LOOK_AROUND_FRANTIC 0x025f +#define ANIM_SITTING_0265 0x0265 +//.set ANIM_, 0x0266: covering mouth looking +#define ANIM_DRAW_PISTOL_0288 0x0288 +#define ANIM_DRAW_PISTOL_0289 0x0289 +//.set ANIM_, 0x02c4: Jo in Defense intro +//.set ANIM_, 0x0350: Skedar right up straight up +//.set ANIM_, 0x0351: Skedar stretching arms and lefts +#define ANIM_SKEDAR_COLLAPSE 0x0352 + diff --git a/src/include/intro.h b/src/include/intro.h new file mode 100644 index 000000000..33d391553 --- /dev/null +++ b/src/include/intro.h @@ -0,0 +1,39 @@ +#include "util.h" + +#define spawn(pad) \ + mkword(0x00), \ + mkword(pad), \ + mkword(0), + +#define intro_weapon(weapon, u1) \ + mkword(0x01), \ + mkword(weapon), \ + mkword(u1), \ + mkword(0), + +#define ammo(ammotype, value) \ + mkword(0x02), \ + mkword(ammotype), \ + mkword(value), \ + mkword(0), + +#define outfit(outfit) \ + mkword(0x05), \ + mkword(outfit), + +#define case(id, pad) \ + mkword(0x09), \ + mkword(id), \ + mkword(pad), + +#define case_respawn(id, pad) \ + mkword(0x0a), \ + mkword(id), \ + mkword(pad), + +#define hill(room) \ + mkword(0x0b), \ + mkword(room), + +#define endintro \ + mkword(0x0c), diff --git a/src/include/props.h b/src/include/props.h new file mode 100644 index 000000000..2a6de2fc3 --- /dev/null +++ b/src/include/props.h @@ -0,0 +1,375 @@ +#include "util.h" + +// Only used within this file +#define generic_object(model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19) \ + mkshort(model), \ + mkshort(pad), \ + mkword(props1), \ + mkword(props2), \ + mkword(u1), mkword(u2), mkword(u3), mkword(u4), \ + mkword(u5), mkword(u6), mkword(u7), mkword(u8), \ + mkword(u9), mkword(u10), mkword(u11), mkword(u12), \ + mkword(u13), mkword(u14), mkword(u15), mkword(u16), \ + mkword(u17), mkword(u18), mkword(u19) + +#define door(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24, u25, u26, u27, u28, u29, u30, u31, u32, u33, u34, u35, u36, u37, u38, u39, u40, u41, u42, u43, u44, u45, u46, u47, u48, u49, u50, u51) \ + mkshort(scale), \ + mkshort(0x01), \ + generic_object(model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), \ + mkword(u20), mkword(u21), mkword(u22), mkword(u23), \ + mkword(u24), mkword(u25), mkword(u26), mkword(u27), \ + mkword(u28), mkword(u29), mkword(u30), mkword(u31), \ + mkword(u32), mkword(u33), mkword(u34), mkword(u35), \ + mkword(u36), mkword(u37), mkword(u38), mkword(u39), \ + mkword(u40), mkword(u41), mkword(u42), mkword(u43), \ + mkword(u44), mkword(u45), mkword(u46), mkword(u47), \ + mkword(u48), mkword(u49), mkword(u50), mkword(u51), + +#define door_scale(scale) \ + mkshort(0), \ + mkshort(0x02), \ + mkword(scale), + +#define stdobject(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19) \ + mkshort(scale), \ + mkshort(0x03), \ + generic_object(model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), + +#define key(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, lockbits) \ + mkshort(scale), \ + mkshort(0x04), \ + generic_object(model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), \ + mkword(lockbits), + +#define camera(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24, u25, u26, u27, u28, u29, u30, u31, u32, u33, u34, u35, u36, u37, u38, u39, u40, u41, u42, u43, u44, u45) \ + mkshort(scale), \ + mkshort(0x06), \ + generic_object(model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), \ + mkword(u20), mkword(u21), mkword(u22), mkword(u23), \ + mkword(u24), mkword(u25), mkword(u26), mkword(u27), \ + mkword(u28), mkword(u29), mkword(u30), mkword(u31), \ + mkword(u32), mkword(u33), mkword(u34), mkword(u35), \ + mkword(u36), mkword(u37), mkword(u38), mkword(u39), \ + mkword(u40), mkword(u41), mkword(u42), mkword(u43), \ + mkword(u44), mkword(u45), + +#define weapon(scale, model, chr, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, weapon, u20, u21) \ + mkshort(scale), \ + mkshort(0x08), \ + generic_object(model, chr, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), \ + weapon, 0x00, 0x00, 0x00, \ + mkword(u20), mkword(u21), + +#define ammocrate(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, ammotype) \ + mkshort(scale), \ + mkshort(0x07), \ + generic_object(model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), \ + mkword(ammotype), + +#define chr(unk1, id, pad, body, head, function, target_pad, target_chr, hear_dist, view_dist, props1, bank1flags, alliance, group, chair, group2, associated) \ + mkshort(0), \ + mkshort(0x09), \ + mkword(unk1), \ + mkshort(id), \ + mkshort(pad), \ + body, \ + head, \ + mkshort(function), \ + mkshort(target_pad), \ + mkshort(target_chr), \ + mkshort(hear_dist), \ + mkshort(view_dist), \ + mkword(props1), \ + mkword(bank1flags), \ + alliance, \ + group, \ + mkshort(chair), \ + mkword(group2), \ + mkword(associated), + +#define singlemonitor(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24, u25, u26, u27, u28, u29, u30, u31, u32, u33, u34, u35, u36, u37, u38, u39, u40, u41, u42, u43, u44, u45, u46, u47, u48, u49) \ + mkshort(scale), \ + mkshort(0x0a), \ + generic_object(model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), \ + mkword(u20), mkword(u21), mkword(u22), mkword(u23), \ + mkword(u24), mkword(u25), mkword(u26), mkword(u27), \ + mkword(u28), mkword(u29), mkword(u30), mkword(u31), \ + mkword(u32), mkword(u33), mkword(u34), mkword(u35), \ + mkword(u36), mkword(u37), mkword(u38), mkword(u39), \ + mkword(u40), mkword(u41), mkword(u42), mkword(u43), \ + mkword(u44), mkword(u45), mkword(u46), mkword(u47), \ + mkword(u48), mkword(u49), + +#define multimonitor(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24, u25, u26, u27, u28, u29, u30, u31, u32, u33, u34, u35, u36, u37, u38, u39, u40, u41, u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59, u60, u61, u62, u63, u64, u65, u66, u67, u68, u69, u70, u71, u72, u73, u74, u75, u76, u77, u78, u79, u80, u81, u82, u83, u84, u85, u86, u87, u88, u89, u90, u91, u92, u93, u94, u95, u96, u97, u98, u99, u100, u101, u102, u103, u104, u105, u106, u107, u108, u109, u110, u111, u112, u113, u114, u115, u116, u117, u118, u119, u120, u121, u122, u123, u124, u125, u126, u127, u128, u129, u130, u131, u132, u133, u134, u135, u136) \ + mkshort(scale), \ + mkshort(0x0b), \ + generic_object(model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), \ + mkword(u20), mkword(u21), mkword(u22), mkword(u23), \ + mkword(u24), mkword(u25), mkword(u26), mkword(u27), \ + mkword(u28), mkword(u29), mkword(u30), mkword(u31), \ + mkword(u32), mkword(u33), mkword(u34), mkword(u35), \ + mkword(u36), mkword(u37), mkword(u38), mkword(u39), \ + mkword(u40), mkword(u41), mkword(u42), mkword(u43), \ + mkword(u44), mkword(u45), mkword(u46), mkword(u47), \ + mkword(u48), mkword(u49), mkword(u50), mkword(u51), \ + mkword(u52), mkword(u53), mkword(u54), mkword(u55), \ + mkword(u56), mkword(u57), mkword(u58), mkword(u59), \ + mkword(u60), mkword(u61), mkword(u62), mkword(u63), \ + mkword(u64), mkword(u65), mkword(u66), mkword(u67), \ + mkword(u68), mkword(u69), mkword(u70), mkword(u71), \ + mkword(u72), mkword(u73), mkword(u74), mkword(u75), \ + mkword(u76), mkword(u77), mkword(u78), mkword(u79), \ + mkword(u80), mkword(u81), mkword(u82), mkword(u83), \ + mkword(u84), mkword(u85), mkword(u86), mkword(u87), \ + mkword(u88), mkword(u89), mkword(u90), mkword(u91), \ + mkword(u92), mkword(u93), mkword(u94), mkword(u95), \ + mkword(u96), mkword(u97), mkword(u98), mkword(u99), \ + mkword(u100), mkword(u101), mkword(u102), mkword(u103), \ + mkword(u104), mkword(u105), mkword(u106), mkword(u107), \ + mkword(u108), mkword(u109), mkword(u110), mkword(u111), \ + mkword(u112), mkword(u113), mkword(u114), mkword(u115), \ + mkword(u116), mkword(u117), mkword(u118), mkword(u119), \ + mkword(u120), mkword(u121), mkword(u122), mkword(u123), \ + mkword(u124), mkword(u125), mkword(u126), mkword(u127), \ + mkword(u128), mkword(u129), mkword(u130), mkword(u131), \ + mkword(u132), mkword(u133), mkword(u134), mkword(u135), \ + mkword(u136), + +#define autogun(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24, u25, u26, u27, u28, u29, u30, u31, u32, u33, u34, u35, u36, u37, u38, u39) \ + mkshort(scale), \ + mkshort(0x0d), \ + generic_object(model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), \ + mkword(u20), mkword(u21), mkword(u22), mkword(u23), \ + mkword(u24), mkword(u25), mkword(u26), mkword(u27), \ + mkword(u28), mkword(u29), mkword(u30), mkword(u31), \ + mkword(u32), mkword(u33), mkword(u34), mkword(u35), \ + mkword(u36), mkword(u37), mkword(u38), mkword(u39), + +#define link_collectibles(a, b) \ + mkshort(0), \ + mkshort(0x0e), \ + mkshort(a), \ + mkshort(b), + +#define debris(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19) \ + mkshort(scale), \ + mkshort(0x0f), \ + generic_object(model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), + +#define link_objects(u1, u2, u3, u4) \ + mkshort(0), \ + mkshort(0x13), \ + mkword(u1), mkword(u2), mkword(u3), mkword(u4), + +#define ammocratemulti(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24, u25, u26, u27, u28, u29, u30, u31, u32, u33, u34, u35, u36, u37, u38) \ + mkshort(scale), \ + mkshort(0x14), \ + generic_object(model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), \ + mkword(u20), mkword(u21), mkword(u22), mkword(u23), \ + mkword(u24), mkword(u25), mkword(u26), mkword(u27), \ + mkword(u28), mkword(u29), mkword(u30), mkword(u31), \ + mkword(u32), mkword(u33), mkword(u34), mkword(u35), \ + mkword(u36), mkword(u37), mkword(u38), + +#define shield(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22) \ + mkshort(scale), \ + mkshort(0x15), \ + generic_object(model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), \ + mkword(u20), mkword(u21), mkword(u22), + +#define tag(id, value) \ + mkshort(0), \ + mkshort(0x16), \ + mkshort(id), \ + mkshort(value), \ + mkword(0), \ + mkword(0), + +#define beginobjective(value, text, diffbit) \ + mkshort(0), \ + mkshort(0x17), \ + mkword(value), \ + mkword(text), \ + mkword(diffbit), + +#define endobjective \ + mkshort(0), \ + mkshort(0x18), + +#define require_object_destroyed(object) \ + mkshort(0), \ + mkshort(0x19), \ + mkword(object), + +#define complete_flags(stageflag) \ + mkshort(0), \ + mkshort(0x1a), \ + mkword(stageflag), + +#define fail_flags(stageflag) \ + mkshort(0), \ + mkshort(0x1b), \ + mkword(stageflag), + +#define require_object_collected(object) \ + mkshort(0), \ + mkshort(0x1c), \ + mkword(object), + +#define require_object_thrown(object) \ + mkshort(0), \ + mkshort(0x1d), \ + mkword(object), + +#define require_object_holographed(object, u1, u2) \ + mkshort(0), \ + mkshort(0x1e), \ + mkword(object), \ + mkword(u1), \ + mkword(u2), + +#define require_room_entered(room) \ + mkshort(0), \ + mkshort(0x20), \ + mkword(room), + +#define require_object_thrown_on_target(throw_object, target_object, u1) \ + mkshort(0), \ + mkshort(0x21), \ + mkword(throw_object), \ + mkword(target_object), \ + mkword(u1), + +#define briefing(value, text1) \ + mkshort(0), \ + mkshort(0x23), \ + mkword(value), \ + mkword(text1), \ + mkword(0), + +#define rename_object(u1, id, text, text2, text3, text4, text5, u2, u3) \ + mkshort(0), \ + mkshort(0x25), \ + mkword(u1), \ + mkword(id), \ + mkword(text), \ + mkword(text2), \ + mkword(text3), \ + mkword(text4), \ + mkword(text5), \ + mkword(u2), mkword(u3), + +#define glass(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20) \ + mkshort(scale), \ + mkshort(0x2a), \ + generic_object(model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), \ + mkword(u20), + +#define camera2(scale, u1, u2, u3, u4, u5, u6) \ + mkshort(scale), \ + mkshort(0x2e), \ + mkword(u1), mkword(u2), mkword(u3), mkword(u4), \ + mkword(u5), mkword(u6), + +#define tinted_glass(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22) \ + mkshort(scale), \ + mkshort(0x2f), \ + generic_object(model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), \ + mkword(u20), mkword(u21), mkword(u22), + +#define lift(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, pad1, pad2, u20, u21, u22, u23, u24, u25, u26, u27, u28, u29, u30, u31, u32) \ + mkshort(scale), \ + mkshort(0x30), \ + generic_object(model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), \ + mkshort(pad1), \ + mkshort(pad2), \ + mkword(u20), mkword(u21), mkword(u22), mkword(u23), \ + mkword(u24), mkword(u25), mkword(u26), mkword(u27), \ + mkword(u28), mkword(u29), mkword(u30), mkword(u31), \ + mkword(u32), + +#define link_scenery(unk1, unk2, unk3) \ + mkshort(0), \ + mkshort(0x31), \ + mkword(unk1), mkword(unk2), mkword(unk3), \ + mkword(0), + +#define link_paths(u1, u2, u3) \ + mkshort(0), \ + mkshort(0x32), \ + mkword(u1), mkword(u2), mkword(u3), + +#define hoverbike(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24, u25, u26, u27, u28, u29, u30, u31, u32, u33, u34, u35, u36, u37, u38, u39, u40, u41, u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52) \ + mkshort(scale), \ + mkshort(0x33), \ + generic_object(model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), \ + mkword(u20), mkword(u21), mkword(u22), mkword(u23), \ + mkword(u24), mkword(u25), mkword(u26), mkword(u27), \ + mkword(u28), mkword(u29), mkword(u30), mkword(u31), \ + mkword(u32), mkword(u33), mkword(u34), mkword(u35), \ + mkword(u36), mkword(u37), mkword(u38), mkword(u39), \ + mkword(u40), mkword(u41), mkword(u42), mkword(u43), \ + mkword(u44), mkword(u45), mkword(u46), mkword(u47), \ + mkword(u48), mkword(u49), mkword(u50), mkword(u51), \ + mkword(u52), + +#define endprops \ + mkshort(0), \ + mkshort(0x34), + +#define hover_prop(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24, u25, u26, u27, u28, u29, u30, u31, u32, u33, u34, u35) \ + mkshort(scale), \ + mkshort(0x35), \ + generic_object(model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), \ + mkword(u20), mkword(u21), mkword(u22), mkword(u23), \ + mkword(u24), mkword(u25), mkword(u26), mkword(u27), \ + mkword(u28), mkword(u29), mkword(u30), mkword(u31), \ + mkword(u32), mkword(u33), mkword(u34), mkword(u35), + +#define vent_fan(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24, u25) \ + mkshort(scale), \ + mkshort(0x36), \ + generic_object(model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), \ + mkword(u20), mkword(u21), mkword(u22), mkword(u23), \ + mkword(u24), mkword(u25), + +#define hover_vehicle(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24, u25, u26, u27, u28, u29, u30, u31, u32, u33, u34) \ + mkshort(scale), \ + mkshort(0x37), \ + generic_object(model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), \ + mkword(u20), mkword(u21), mkword(u22), mkword(u23), \ + mkword(u24), mkword(u25), mkword(u26), mkword(u27), \ + mkword(u28), mkword(u29), mkword(u30), mkword(u31), \ + mkword(u32), mkword(u33), mkword(u34), + +#define pad_effect(effect, pad) \ + mkshort(0), \ + mkshort(0x38), \ + mkword(effect), \ + mkword(pad), + +#define armed_vehicle(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24, u25, u26, u27, u28, u29, u30, u31, u32, u33, u34, u35, u36, u37, u38, u39, u40, u41, u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54) \ + mkshort(scale), \ + mkshort(0x39), \ + generic_object(model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), \ + mkword(u20), mkword(u21), mkword(u22), mkword(u23), \ + mkword(u24), mkword(u25), mkword(u26), mkword(u27), \ + mkword(u28), mkword(u29), mkword(u30), mkword(u31), \ + mkword(u32), mkword(u33), mkword(u34), mkword(u35), \ + mkword(u36), mkword(u37), mkword(u38), mkword(u39), \ + mkword(u40), mkword(u41), mkword(u42), mkword(u43), \ + mkword(u44), mkword(u45), mkword(u46), mkword(u47), \ + mkword(u48), mkword(u49), mkword(u50), mkword(u51), \ + mkword(u52), mkword(u53), mkword(u54), + +#define remote_mine(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22) \ + mkshort(scale), \ + mkshort(0x3a), \ + generic_object(model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), \ + mkword(u20), mkword(u21), mkword(u22), + +#define escalator(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23) \ + mkshort(scale), \ + mkshort(0x3b), \ + generic_object(model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), \ + mkword(u20), mkword(u21), mkword(u22), mkword(u23), diff --git a/src/include/setup.h b/src/include/setup.h new file mode 100644 index 000000000..aea2152aa --- /dev/null +++ b/src/include/setup.h @@ -0,0 +1,16 @@ +#include "ultra64.h" +#include "constants.h" +#include "commands.h" +#include "intro.h" +#include "props.h" + +struct ailists { + u8 *list; + u32 id; +}; + +struct aipaths { + s32 *pads; + u8 id; + u8 type; +}; diff --git a/src/include/util.h b/src/include/util.h new file mode 100644 index 000000000..e714b16f9 --- /dev/null +++ b/src/include/util.h @@ -0,0 +1,7 @@ +#ifndef _IN_UTIL_H +#define _IN_UTIL_H + +#define mkshort(val) (val >> 8) & 0xff, val & 0xff +#define mkword(val) (val >> 24) & 0xff, (val >> 16) & 0xff, (val >> 8) & 0xff, val & 0xff + +#endif diff --git a/src/setup/mp_setupame.c b/src/setup/mp_setupame.c new file mode 100644 index 000000000..a38ce7fd9 --- /dev/null +++ b/src/setup/mp_setupame.c @@ -0,0 +1,46 @@ +// +// Defection +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + endintro +}; + +s32 path00[] = { + -1, +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 func0000_0034[] = { + endfunction +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setuparch.c b/src/setup/mp_setuparch.c new file mode 100644 index 000000000..c8dce90da --- /dev/null +++ b/src/setup/mp_setuparch.c @@ -0,0 +1,38 @@ +// +// Stage ID 0x18 +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/asm/setup/mp_setuparec.s b/src/setup/mp_setuparec.c similarity index 52% rename from asm/setup/mp_setuparec.s rename to src/setup/mp_setuparec.c index e0a919312..ebccf8721 100644 --- a/asm/setup/mp_setuparec.s +++ b/src/setup/mp_setuparec.c @@ -1,129 +1,149 @@ -# -# Ravine (MP) -# +// +// Ravine (MP) +// -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" +#include "../include/setup.h" -props: - tag 0x00, 1 - lift 0x0100, MODEL_RAVINELIFT, 0x00bc, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00bc, 0x00bb, 0x00baffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - weapon 0x0200, MODEL_ROOFGUN, 0x00bd, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00c7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00c8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0200, 0x0000, 0x00be, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00c9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00ca, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0200, 0x0000, 0x00bf, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00cb, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00cc, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0133, 0x0000, 0x00c0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00cd, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00ce, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0133, 0x0000, 0x00c1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00cf, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00d0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0133, 0x0000, 0x00c2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00d1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00d2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00c3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf6, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00d3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00d4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00c4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf7, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00d5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00d6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00c5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf8, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00d7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00d8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00c6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf9, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00d9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00da, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - object 0x0100, MODEL_A51_CRATE2, 0x00db, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x00dc, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x00dd, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x00de, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x00df, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x00e0, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x00e1, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x00e2, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x00e3, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x00e4, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x00e5, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x00e6, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x00e7, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x00e8, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x00e9, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x00ea, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x00eb, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x00ec, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x00ed, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x00ee, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + tag(0x00, 1) + lift(0x0100, MODEL_RAVINELIFT, 0x00bc, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00bc, 0x00bb, 0x00baffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + weapon(0x0200, MODEL_ROOFGUN, 0x00bd, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00c7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00c8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0200, 0x0000, 0x00be, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00c9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00ca, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0200, 0x0000, 0x00bf, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00cb, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00cc, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0133, 0x0000, 0x00c0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00cd, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00ce, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0133, 0x0000, 0x00c1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00cf, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00d0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0133, 0x0000, 0x00c2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00d1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00d2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00c3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf6, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00d3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00d4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00c4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf7, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00d5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00d6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00c5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf8, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00d7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00d8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00c6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf9, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00d9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00da, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x00db, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x00dc, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x00dd, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x00de, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x00df, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x00e0, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x00e1, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x00e2, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x00e3, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x00e4, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x00e5, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x00e6, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x00e7, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x00e8, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x00e9, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x00ea, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x00eb, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x00ec, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x00ed, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x00ee, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) endprops +}; -intro: - spawn 0x00b0 - spawn 0x00b1 - spawn 0x00b2 - spawn 0x00b3 - spawn 0x00b4 - spawn 0x00b5 - spawn 0x00b6 - spawn 0x00b7 - spawn 0x00b8 - spawn 0x00b9 - hill 0x0066 - hill 0x008d - hill 0x0071 - hill 0x007c - hill 0x005c - case 0, 0x009a - case_respawn 0, 0x0094 - case_respawn 0, 0x0096 - case_respawn 0, 0x0097 - case_respawn 0, 0x0099 - case_respawn 0, 0x0098 - case_respawn 0, 0x0095 - case 1, 0x00a1 - case_respawn 1, 0x009b - case_respawn 1, 0x009c - case_respawn 1, 0x009d - case_respawn 1, 0x009e - case_respawn 1, 0x009f - case_respawn 1, 0x00a0 - case 2, 0x00a8 - case_respawn 2, 0x00a2 - case_respawn 2, 0x00a3 - case_respawn 2, 0x00a4 - case_respawn 2, 0x00a5 - case_respawn 2, 0x00a6 - case_respawn 2, 0x00a7 - case 3, 0x00af - case_respawn 3, 0x00a9 - case_respawn 3, 0x00aa - case_respawn 3, 0x00ab - case_respawn 3, 0x00ac - case_respawn 3, 0x00ad - case_respawn 3, 0x00ae +u8 intro[] = { + spawn(0x00b0) + spawn(0x00b1) + spawn(0x00b2) + spawn(0x00b3) + spawn(0x00b4) + spawn(0x00b5) + spawn(0x00b6) + spawn(0x00b7) + spawn(0x00b8) + spawn(0x00b9) + hill(0x0066) + hill(0x008d) + hill(0x0071) + hill(0x007c) + hill(0x005c) + case(0, 0x009a) + case_respawn(0, 0x0094) + case_respawn(0, 0x0096) + case_respawn(0, 0x0097) + case_respawn(0, 0x0099) + case_respawn(0, 0x0098) + case_respawn(0, 0x0095) + case(1, 0x00a1) + case_respawn(1, 0x009b) + case_respawn(1, 0x009c) + case_respawn(1, 0x009d) + case_respawn(1, 0x009e) + case_respawn(1, 0x009f) + case_respawn(1, 0x00a0) + case(2, 0x00a8) + case_respawn(2, 0x00a2) + case_respawn(2, 0x00a3) + case_respawn(2, 0x00a4) + case_respawn(2, 0x00a5) + case_respawn(2, 0x00a6) + case_respawn(2, 0x00a7) + case(3, 0x00af) + case_respawn(3, 0x00a9) + case_respawn(3, 0x00aa) + case_respawn(3, 0x00ab) + case_respawn(3, 0x00ac) + case_respawn(3, 0x00ad) + case_respawn(3, 0x00ae) endintro +}; -paths: - endpaths +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; -func1001_start_lift: - activate_lift 1, 0x00 - set_function CHR_SELF, GFUNC_IDLE +u8 func1001_start_lift[] = { + activate_lift(1, 0x00) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1000_1b30: +u8 func1000_1b30[] = { cmd0185_mponly cmd0145_rebuild_groups cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -functions: - register_function func1000_1b30 0x1000 - register_function func1001_start_lift 0x1001 - endfunctions +struct ailists functions[] = { + { func1000_1b30, 0x1000 }, + { func1001_start_lift, 0x1001 }, + { NULL, 0 }, +}; -.align 4 diff --git a/src/setup/mp_setupark.c b/src/setup/mp_setupark.c new file mode 100644 index 000000000..78c7a9cc4 --- /dev/null +++ b/src/setup/mp_setupark.c @@ -0,0 +1,42 @@ +// +// Extraction +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + endintro +}; + +s32 path00[] = { + -1, +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setupash.c b/src/setup/mp_setupash.c new file mode 100644 index 000000000..a8b3fab36 --- /dev/null +++ b/src/setup/mp_setupash.c @@ -0,0 +1,46 @@ +// +// Stage ID 0x2e +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + endintro +}; + +s32 path00[] = { + -1, +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 func0000_0034[] = { + endfunction +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setupate.c b/src/setup/mp_setupate.c new file mode 100644 index 000000000..a8fcca60c --- /dev/null +++ b/src/setup/mp_setupate.c @@ -0,0 +1,39 @@ +// +// Duel +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setupazt.c b/src/setup/mp_setupazt.c new file mode 100644 index 000000000..5e2b7965b --- /dev/null +++ b/src/setup/mp_setupazt.c @@ -0,0 +1,46 @@ +// +// Crash Site +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + endintro +}; + +s32 path00[] = { + -1, +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 func0000_0034[] = { + endfunction +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setupcat.c b/src/setup/mp_setupcat.c new file mode 100644 index 000000000..00eb4cf7c --- /dev/null +++ b/src/setup/mp_setupcat.c @@ -0,0 +1,38 @@ +// +// Stage ID 0x28 +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setupcave.c b/src/setup/mp_setupcave.c new file mode 100644 index 000000000..df0988b19 --- /dev/null +++ b/src/setup/mp_setupcave.c @@ -0,0 +1,38 @@ +// +// Air Base +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/asm/setup/mp_setupcrad.s b/src/setup/mp_setupcrad.c similarity index 69% rename from asm/setup/mp_setupcrad.s rename to src/setup/mp_setupcrad.c index 3f3ffd03a..eca81d7ff 100644 --- a/asm/setup/mp_setupcrad.s +++ b/src/setup/mp_setupcrad.c @@ -1,121 +1,141 @@ -# -# Pipes (MP) -# +// +// Pipes (MP) +// -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" +#include "../include/setup.h" -props: - weapon 0x0100, 0x0000, 0x00e2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ec, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ed, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00e3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ee, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ef, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00e4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00f0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00f1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00e5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00f2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00f3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00e6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00f4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00f5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00e7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00f6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00f7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00e8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf6, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00f8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00f9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00e9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf7, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00fa, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00fb, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00ea, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf8, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00fc, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00fd, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00eb, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf9, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00fe, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0100, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x01, 1 - lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x0104, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0104, 0x0103, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005b0, 0x00050000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + weapon(0x0100, 0x0000, 0x00e2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ec, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ed, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00e3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ee, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ef, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00e4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00f0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00f1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00e5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00f2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00f3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00e6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00f4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00f5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00e7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00f6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00f7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00e8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf6, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00f8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00f9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00e9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf7, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00fa, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00fb, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00ea, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf8, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00fc, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00fd, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00eb, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf9, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00fe, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0100, 0x000201e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x01, 1) + lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x0104, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0104, 0x0103, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005b0, 0x00050000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) endprops +}; -intro: - spawn 0x00cd - spawn 0x00ce - spawn 0x00cf - spawn 0x00d0 - spawn 0x00d1 - spawn 0x00d2 - spawn 0x00d3 - spawn 0x00d4 - spawn 0x00d5 - spawn 0x00d6 - spawn 0x00d7 - spawn 0x00d8 - spawn 0x00d9 - spawn 0x00da - spawn 0x00db - spawn 0x00dc - spawn 0x00dd - spawn 0x00de - spawn 0x00df - spawn 0x00e0 - spawn 0x00e1 - hill 0x0019 - hill 0x009e - hill 0x0007 - hill 0x001b - hill 0x001f - case 0, 0x00b7 - case_respawn 0, 0x00b1 - case_respawn 0, 0x00b2 - case_respawn 0, 0x00b3 - case_respawn 0, 0x00b4 - case_respawn 0, 0x00b5 - case_respawn 0, 0x00b6 - case 1, 0x00be - case_respawn 1, 0x00b8 - case_respawn 1, 0x00b9 - case_respawn 1, 0x00ba - case_respawn 1, 0x00bb - case_respawn 1, 0x00bc - case_respawn 1, 0x00bd - case 2, 0x00c5 - case_respawn 2, 0x00bf - case_respawn 2, 0x00c0 - case_respawn 2, 0x00c1 - case_respawn 2, 0x00c2 - case_respawn 2, 0x00c3 - case_respawn 2, 0x00c4 - case 3, 0x00cc - case_respawn 3, 0x00c6 - case_respawn 3, 0x00c7 - case_respawn 3, 0x00c8 - case_respawn 3, 0x00c9 - case_respawn 3, 0x00ca - case_respawn 3, 0x00cb +u8 intro[] = { + spawn(0x00cd) + spawn(0x00ce) + spawn(0x00cf) + spawn(0x00d0) + spawn(0x00d1) + spawn(0x00d2) + spawn(0x00d3) + spawn(0x00d4) + spawn(0x00d5) + spawn(0x00d6) + spawn(0x00d7) + spawn(0x00d8) + spawn(0x00d9) + spawn(0x00da) + spawn(0x00db) + spawn(0x00dc) + spawn(0x00dd) + spawn(0x00de) + spawn(0x00df) + spawn(0x00e0) + spawn(0x00e1) + hill(0x0019) + hill(0x009e) + hill(0x0007) + hill(0x001b) + hill(0x001f) + case(0, 0x00b7) + case_respawn(0, 0x00b1) + case_respawn(0, 0x00b2) + case_respawn(0, 0x00b3) + case_respawn(0, 0x00b4) + case_respawn(0, 0x00b5) + case_respawn(0, 0x00b6) + case(1, 0x00be) + case_respawn(1, 0x00b8) + case_respawn(1, 0x00b9) + case_respawn(1, 0x00ba) + case_respawn(1, 0x00bb) + case_respawn(1, 0x00bc) + case_respawn(1, 0x00bd) + case(2, 0x00c5) + case_respawn(2, 0x00bf) + case_respawn(2, 0x00c0) + case_respawn(2, 0x00c1) + case_respawn(2, 0x00c2) + case_respawn(2, 0x00c3) + case_respawn(2, 0x00c4) + case(3, 0x00cc) + case_respawn(3, 0x00c6) + case_respawn(3, 0x00c7) + case_respawn(3, 0x00c8) + case_respawn(3, 0x00c9) + case_respawn(3, 0x00ca) + case_respawn(3, 0x00cb) endintro +}; -paths: - endpaths +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; -func1001_start_lift: - activate_lift 1, 0x01 - set_function CHR_SELF, GFUNC_IDLE +u8 func1001_start_lift[] = { + activate_lift(1, 0x01) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1000_14e0: +u8 func1000_14e0[] = { cmd0185_mponly cmd0145_rebuild_groups cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -functions: - register_function func1000_14e0 0x1000 - register_function func1001_start_lift 0x1001 - endfunctions +struct ailists functions[] = { + { func1000_14e0, 0x1000 }, + { func1001_start_lift, 0x1001 }, + { NULL, 0 }, +}; -.align 4 diff --git a/asm/setup/mp_setupmp13.s b/src/setup/mp_setupcryp.c similarity index 70% rename from asm/setup/mp_setupmp13.s rename to src/setup/mp_setupcryp.c index 85e32810e..27b2c8554 100644 --- a/asm/setup/mp_setupmp13.s +++ b/src/setup/mp_setupcryp.c @@ -1,103 +1,138 @@ -# -# Villa (MP) -# +// +// G5 Building (MP) +// -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" +#include "../include/setup.h" -props: - weapon 0x0100, 0x0000, 0x00bd, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00c7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00c8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00be, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00c9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ca, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00bf, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00cb, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00cc, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00c0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00cd, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ce, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00c1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00cf, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00d0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00c2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00d1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00d2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00c3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf6, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00d3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00d4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00c4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf7, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00d5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00d6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00c5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf8, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00d7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00d8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00c6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf9, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00d9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00da, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + weapon(0x0100, 0x0000, 0x00b2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00bc, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00bd, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00b3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00be, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00bf, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00b4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00c0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00c1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00b5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00c2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00c3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00b6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00c4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00c5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00b7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00c6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00c7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00b8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf6, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00c8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00c9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00b9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf7, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00ca, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00cb, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00ba, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf8, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00cc, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00cd, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00bb, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf9, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00ce, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00cf, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) endprops +}; -intro: - outfit OUTFIT_DEFAULT - spawn 0x001c - spawn 0x001d - spawn 0x001e - spawn 0x001f - spawn 0x0020 - spawn 0x0021 - spawn 0x0022 - spawn 0x0023 - spawn 0x0024 - spawn 0x0025 - spawn 0x0026 - spawn 0x0027 - case 0, 0x0006 - case_respawn 0, 0x0000 - case_respawn 0, 0x0001 - case_respawn 0, 0x0002 - case_respawn 0, 0x0003 - case_respawn 0, 0x0004 - case_respawn 0, 0x0005 - case 1, 0x000d - case_respawn 1, 0x0007 - case_respawn 1, 0x0008 - case_respawn 1, 0x0009 - case_respawn 1, 0x000a - case_respawn 1, 0x000b - case_respawn 1, 0x000c - case 2, 0x0013 - case_respawn 2, 0x000e - case_respawn 2, 0x000f - case_respawn 2, 0x0010 - case_respawn 2, 0x0011 - case_respawn 2, 0x0012 - case_respawn 2, 0x0014 - case 3, 0x001b - case_respawn 3, 0x0015 - case_respawn 3, 0x0016 - case_respawn 3, 0x0017 - case_respawn 3, 0x0018 - case_respawn 3, 0x0019 - case_respawn 3, 0x001a - hill 0x004c - hill 0x008e - hill 0x00aa - hill 0x0043 +u8 intro[] = { + spawn(0x009d) + spawn(0x009e) + spawn(0x009f) + spawn(0x00a0) + spawn(0x00a1) + spawn(0x00a2) + spawn(0x00a3) + spawn(0x00a4) + spawn(0x00a5) + spawn(0x00a6) + spawn(0x00a7) + spawn(0x00a8) + spawn(0x00a9) + spawn(0x00aa) + spawn(0x00ab) + spawn(0x00ac) + spawn(0x00ad) + spawn(0x00ae) + spawn(0x00af) + spawn(0x00b0) + spawn(0x00b1) + case(0, 0x0087) + case_respawn(0, 0x0081) + case_respawn(0, 0x0082) + case_respawn(0, 0x0083) + case_respawn(0, 0x0084) + case_respawn(0, 0x0085) + case_respawn(0, 0x0086) + case(1, 0x0088) + case_respawn(1, 0x0089) + case_respawn(1, 0x008a) + case_respawn(1, 0x008b) + case_respawn(1, 0x008c) + case_respawn(1, 0x008d) + case_respawn(1, 0x008e) + case(2, 0x0095) + case_respawn(2, 0x008f) + case_respawn(2, 0x0090) + case_respawn(2, 0x0091) + case_respawn(2, 0x0092) + case_respawn(2, 0x0093) + case_respawn(2, 0x0094) + case(3, 0x009c) + case_respawn(3, 0x0096) + case_respawn(3, 0x0097) + case_respawn(3, 0x0098) + case_respawn(3, 0x0099) + case_respawn(3, 0x009a) + case_respawn(3, 0x009b) + hill(0x0033) + hill(0x004d) + hill(0x0056) + hill(0x001a) + hill(0x0066) endintro +}; -paths: - endpaths +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; -func1000_1368: +u8 func1001_13d4[] = { + cmd01b2_mponly(11) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1000_13e0[] = { cmd0185_mponly cmd0145_rebuild_groups cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -functions: - register_function func1000_1368 0x1000 - endfunctions +struct ailists functions[] = { + { func1000_13e0, 0x1000 }, + { func1001_13d4, 0x1001 }, + { NULL, 0 }, +}; -.align 4 diff --git a/src/setup/mp_setupdam.c b/src/setup/mp_setupdam.c new file mode 100644 index 000000000..d4f8ec591 --- /dev/null +++ b/src/setup/mp_setupdam.c @@ -0,0 +1,48 @@ +// +// Pelagic II +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +char *text_stagename = "B Y E L O M O R Y E D A M\n"; +char *text_briefing1 = "mi6 has confirmed the existence of a secret chemical warfare facility at the arkhangelsk dam, ussr. its heavily guarded location and workings are a cause for major concern. nerve gas produced there has been turning up in the hands of hostile regimes around the world and deals with international terrorists have been rumoured. this facility should be destroyed without prejudice.\n"; +char *text_briefing2 = "the area around the dam is well defended against a full scale military attack but they won't be expecting a lone agent. i've looked at the recon reports and decided that the easiest way to gain entrance to the weapons factory will be to bungee jump down the face of the dam. safe and simple. just throw yourself off the top and remember to look before you leap old chap.\n"; +char *text_briefing3 = "information concerning shipping and contacts is stored on a computer system in a secret ops room within the dam.with this covert modem connected to their satellite link we can intercept this data when a backup is carried out.\n"; +char *text_briefing4 = "hardly a lover's leap, james. be careful though, i hate to think of you falling for anyone else.\n"; +char *text_objective1 = "neutralize all alarms\n"; +char *text_objective2 = "install covert modem\n"; +char *text_objective3 = "intercept data backup\n"; +char *text_objective4 = "bungee jump from platform\n"; +char *text_objective5 = "Byelomorye Dam, Archangel, USSR\n"; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; diff --git a/src/setup/mp_setupdepo.c b/src/setup/mp_setupdepo.c new file mode 100644 index 000000000..b6393abda --- /dev/null +++ b/src/setup/mp_setupdepo.c @@ -0,0 +1,38 @@ +// +// G5 Building +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setupdest.c b/src/setup/mp_setupdest.c new file mode 100644 index 000000000..de39efeb1 --- /dev/null +++ b/src/setup/mp_setupdest.c @@ -0,0 +1,38 @@ +// +// Stage ID 0x1a +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setupdish.c b/src/setup/mp_setupdish.c new file mode 100644 index 000000000..d4f41e40e --- /dev/null +++ b/src/setup/mp_setupdish.c @@ -0,0 +1,38 @@ +// +// CI Training +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setupear.c b/src/setup/mp_setupear.c new file mode 100644 index 000000000..87c86c321 --- /dev/null +++ b/src/setup/mp_setupear.c @@ -0,0 +1,48 @@ +// +// Investigation +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + intro_weapon(WEAPON_UNARMED, -1) + outfit(OUTFIT_DEFAULT) + endintro +}; + +s32 path00[] = { + -1, +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 func0000_004c[] = { + endfunction +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setupeld.c b/src/setup/mp_setupeld.c new file mode 100644 index 000000000..546400524 --- /dev/null +++ b/src/setup/mp_setupeld.c @@ -0,0 +1,48 @@ +// +// Villa +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + intro_weapon(WEAPON_UNARMED, -1) + outfit(OUTFIT_DEFAULT) + endintro +}; + +s32 path00[] = { + -1, +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 func0000_004c[] = { + endfunction +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setupimp.c b/src/setup/mp_setupimp.c new file mode 100644 index 000000000..bd89f0c4c --- /dev/null +++ b/src/setup/mp_setupimp.c @@ -0,0 +1,46 @@ +// +// Defense +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + endintro +}; + +s32 path00[] = { + -1, +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 func0000_0034[] = { + endfunction +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/asm/setup/mp_setupjun.s b/src/setup/mp_setupjun.c similarity index 75% rename from asm/setup/mp_setupjun.s rename to src/setup/mp_setupjun.c index 7453d3ecf..dac35e2a8 100644 --- a/asm/setup/mp_setupjun.s +++ b/src/setup/mp_setupjun.c @@ -1,115 +1,136 @@ -# -# Temple (MP) -# +// +// Temple (MP) +// -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" +#include "../include/setup.h" -props: - weapon 0x0100, 0x0000, 0x0093, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x009d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x009e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0094, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x009f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0095, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0096, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0097, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0098, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0099, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf6, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00aa, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x009a, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf7, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ab, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ac, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x009b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf8, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ad, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ae, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x009c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf9, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00af, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00b0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - door 0x0100, MODEL_TDOOR, 0x008d, 0x10000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000551e, 0x00002aaa, 0x00002aaa, 0x000000da, 0x00040004, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_TDOOR, 0x008e, 0x10000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000551e, 0x00002aaa, 0x00002aaa, 0x000000da, 0x00040004, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_TDOOR, 0x008f, 0x10000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000551e, 0x00002aaa, 0x00002aaa, 0x000000da, 0x00040004, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_TDOOR, 0x0090, 0x10000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000551e, 0x00002aaa, 0x00002aaa, 0x000000da, 0x00040004, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_TDOOR, 0x0091, 0x10000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000551e, 0x00002aaa, 0x00002aaa, 0x000000da, 0x00040004, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_TDOOR, 0x0092, 0x10000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000551e, 0x00002aaa, 0x00002aaa, 0x000000da, 0x00040004, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + weapon(0x0100, 0x0000, 0x0093, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x009d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x009e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0094, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x009f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0095, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0096, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0097, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0098, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0099, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf6, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00aa, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x009a, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf7, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ab, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ac, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x009b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf8, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ad, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ae, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x009c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf9, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00af, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00b0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + door(0x0100, MODEL_TDOOR, 0x008d, 0x10000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000551e, 0x00002aaa, 0x00002aaa, 0x000000da, 0x00040004, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_TDOOR, 0x008e, 0x10000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000551e, 0x00002aaa, 0x00002aaa, 0x000000da, 0x00040004, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_TDOOR, 0x008f, 0x10000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000551e, 0x00002aaa, 0x00002aaa, 0x000000da, 0x00040004, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_TDOOR, 0x0090, 0x10000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000551e, 0x00002aaa, 0x00002aaa, 0x000000da, 0x00040004, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_TDOOR, 0x0091, 0x10000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000551e, 0x00002aaa, 0x00002aaa, 0x000000da, 0x00040004, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_TDOOR, 0x0092, 0x10000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000551e, 0x00002aaa, 0x00002aaa, 0x000000da, 0x00040004, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) endprops +}; -intro: - spawn 0x001c - spawn 0x001d - spawn 0x001e - spawn 0x001f - spawn 0x0020 - spawn 0x0021 - spawn 0x0022 - spawn 0x0023 - spawn 0x0024 - spawn 0x0025 - spawn 0x0026 - spawn 0x0027 - case 0, 0x0006 - case_respawn 0, 0x0000 - case_respawn 0, 0x0001 - case_respawn 0, 0x0002 - case_respawn 0, 0x0003 - case_respawn 0, 0x0004 - case_respawn 0, 0x0005 - case 1, 0x000d - case_respawn 1, 0x0007 - case_respawn 1, 0x0008 - case_respawn 1, 0x0009 - case_respawn 1, 0x000a - case_respawn 1, 0x000b - case_respawn 1, 0x000c - case 2, 0x0014 - case_respawn 2, 0x000e - case_respawn 2, 0x000f - case_respawn 2, 0x0010 - case_respawn 2, 0x0011 - case_respawn 2, 0x0012 - case_respawn 2, 0x0013 - case 3, 0x0015 - case_respawn 3, 0x0016 - case_respawn 3, 0x0017 - case_respawn 3, 0x0018 - case_respawn 3, 0x0019 - case_respawn 3, 0x001a - case_respawn 3, 0x001b - hill 0x0072 - hill 0x005a - hill 0x0080 - hill 0x007a - outfit OUTFIT_DEFAULT +u8 intro[] = { + spawn(0x001c) + spawn(0x001d) + spawn(0x001e) + spawn(0x001f) + spawn(0x0020) + spawn(0x0021) + spawn(0x0022) + spawn(0x0023) + spawn(0x0024) + spawn(0x0025) + spawn(0x0026) + spawn(0x0027) + case(0, 0x0006) + case_respawn(0, 0x0000) + case_respawn(0, 0x0001) + case_respawn(0, 0x0002) + case_respawn(0, 0x0003) + case_respawn(0, 0x0004) + case_respawn(0, 0x0005) + case(1, 0x000d) + case_respawn(1, 0x0007) + case_respawn(1, 0x0008) + case_respawn(1, 0x0009) + case_respawn(1, 0x000a) + case_respawn(1, 0x000b) + case_respawn(1, 0x000c) + case(2, 0x0014) + case_respawn(2, 0x000e) + case_respawn(2, 0x000f) + case_respawn(2, 0x0010) + case_respawn(2, 0x0011) + case_respawn(2, 0x0012) + case_respawn(2, 0x0013) + case(3, 0x0015) + case_respawn(3, 0x0016) + case_respawn(3, 0x0017) + case_respawn(3, 0x0018) + case_respawn(3, 0x0019) + case_respawn(3, 0x001a) + case_respawn(3, 0x001b) + hill(0x0072) + hill(0x005a) + hill(0x0080) + hill(0x007a) + outfit(OUTFIT_DEFAULT) endintro +}; -path00: - endpath +s32 path00[] = { + -1, +}; -paths: - endpaths +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; -unregistered_func1: +u8 unregistered_func1[] = { endfunction +}; -func1000_1898: +u8 func1000_1898[] = { cmd0185_mponly cmd0145_rebuild_groups cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -functions: - register_function func1000_1898 0x1000 - endfunctions +struct ailists functions[] = { + { func1000_1898, 0x1000 }, + { NULL, 0 }, +}; -.align 4 diff --git a/src/setup/mp_setuplam.c b/src/setup/mp_setuplam.c new file mode 100644 index 000000000..66f84e499 --- /dev/null +++ b/src/setup/mp_setuplam.c @@ -0,0 +1,39 @@ +// +// Stage ID 0x50 +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setuplee.c b/src/setup/mp_setuplee.c new file mode 100644 index 000000000..893530926 --- /dev/null +++ b/src/setup/mp_setuplee.c @@ -0,0 +1,48 @@ +// +// Attack Ship +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + intro_weapon(WEAPON_UNARMED, -1) + outfit(OUTFIT_DEFAULT) + endintro +}; + +s32 path00[] = { + -1, +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 func0000_004c[] = { + endfunction +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setuplen.c b/src/setup/mp_setuplen.c new file mode 100644 index 000000000..e389e22cc --- /dev/null +++ b/src/setup/mp_setuplen.c @@ -0,0 +1,47 @@ +// +// Stage ID 0x36 +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +s32 path00[] = { + -1, +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 func0000_003c[] = { + endfunction +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setuplip.c b/src/setup/mp_setuplip.c new file mode 100644 index 000000000..4e38041f3 --- /dev/null +++ b/src/setup/mp_setuplip.c @@ -0,0 +1,46 @@ +// +// Rescue +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + endintro +}; + +s32 path00[] = { + -1, +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 func0000_0034[] = { + endfunction +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setuplue.c b/src/setup/mp_setuplue.c new file mode 100644 index 000000000..bdd59850c --- /dev/null +++ b/src/setup/mp_setuplue.c @@ -0,0 +1,46 @@ +// +// Infiltration +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + endintro +}; + +s32 path00[] = { + -1, +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 func0000_0034[] = { + endfunction +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/asm/setup/mp_setupmp1.s b/src/setup/mp_setupmp1.c similarity index 54% rename from asm/setup/mp_setupmp1.s rename to src/setup/mp_setupmp1.c index f46bfd7d1..0d9f94710 100644 --- a/asm/setup/mp_setupmp1.s +++ b/src/setup/mp_setupmp1.c @@ -1,146 +1,166 @@ -# -# Base (MP) -# +// +// Base (MP) +// -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" +#include "../include/setup.h" -props: - weapon 0x0100, 0x0000, 0x002c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0036, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0037, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x002d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0038, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0039, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x002e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x003a, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x003b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x002f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x003c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x003d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0030, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x003e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x003f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0031, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0040, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0041, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0032, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf6, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0042, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0043, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0033, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf7, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0044, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0045, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0034, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf8, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0046, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0047, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0035, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf9, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0048, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0049, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - tag 0x01, 1 - lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x004c, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x004c, 0x004d, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001555, 0x00320000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x02, 1 - lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x004b, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x004b, 0x004a, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001555, 0x00320000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LABDOOR, 0x004e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LABDOOR, 0x004f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LABDOOR, 0x0051, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LABDOOR, 0x0050, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LABDOOR, 0x0052, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - object 0x0100, MODEL_A51_CRATE2, 0x0053, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0054, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0055, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0056, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0057, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0058, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0059, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x005a, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x005b, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x005c, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x005d, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x005e, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x005f, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0060, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0061, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0062, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0063, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0064, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0065, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0066, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0067, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0068, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0069, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x006a, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + weapon(0x0100, 0x0000, 0x002c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0036, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0037, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x002d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0038, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0039, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x002e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x003a, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x003b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x002f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x003c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x003d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0030, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x003e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x003f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0031, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0040, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0041, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0032, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf6, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0042, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0043, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0033, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf7, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0044, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0045, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0034, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf8, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0046, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0047, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0035, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf9, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0048, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0049, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + tag(0x01, 1) + lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x004c, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x004c, 0x004d, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001555, 0x00320000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x02, 1) + lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x004b, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x004b, 0x004a, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001555, 0x00320000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LABDOOR, 0x004e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LABDOOR, 0x004f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LABDOOR, 0x0051, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LABDOOR, 0x0050, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LABDOOR, 0x0052, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0053, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0054, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0055, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0056, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0057, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0058, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0059, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x005a, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x005b, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x005c, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x005d, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x005e, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x005f, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0060, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0061, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0062, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0063, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0064, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0065, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0066, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0067, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0068, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0069, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x006a, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) endprops +}; -intro: - spawn 0x001c - spawn 0x001d - spawn 0x001e - spawn 0x001f - spawn 0x0020 - spawn 0x0021 - spawn 0x0022 - spawn 0x0023 - spawn 0x0024 - spawn 0x0025 - spawn 0x0026 - spawn 0x0027 - spawn 0x0028 - spawn 0x0029 - spawn 0x002a - spawn 0x002b - case 0, 0x0006 - case_respawn 0, 0x0000 - case_respawn 0, 0x0001 - case_respawn 0, 0x0002 - case_respawn 0, 0x0003 - case_respawn 0, 0x0004 - case_respawn 0, 0x0005 - case 1, 0x000d - case_respawn 1, 0x0007 - case_respawn 1, 0x0008 - case_respawn 1, 0x0009 - case_respawn 1, 0x000a - case_respawn 1, 0x000b - case_respawn 1, 0x000c - case 2, 0x0014 - case_respawn 2, 0x000e - case_respawn 2, 0x000f - case_respawn 2, 0x0010 - case_respawn 2, 0x0011 - case_respawn 2, 0x0012 - case_respawn 2, 0x0013 - case 3, 0x001b - case_respawn 3, 0x0015 - case_respawn 3, 0x0016 - case_respawn 3, 0x0017 - case_respawn 3, 0x0018 - case_respawn 3, 0x0019 - case_respawn 3, 0x001a - hill 0x00db - hill 0x00f0 - hill 0x00aa - hill 0x00b7 +u8 intro[] = { + spawn(0x001c) + spawn(0x001d) + spawn(0x001e) + spawn(0x001f) + spawn(0x0020) + spawn(0x0021) + spawn(0x0022) + spawn(0x0023) + spawn(0x0024) + spawn(0x0025) + spawn(0x0026) + spawn(0x0027) + spawn(0x0028) + spawn(0x0029) + spawn(0x002a) + spawn(0x002b) + case(0, 0x0006) + case_respawn(0, 0x0000) + case_respawn(0, 0x0001) + case_respawn(0, 0x0002) + case_respawn(0, 0x0003) + case_respawn(0, 0x0004) + case_respawn(0, 0x0005) + case(1, 0x000d) + case_respawn(1, 0x0007) + case_respawn(1, 0x0008) + case_respawn(1, 0x0009) + case_respawn(1, 0x000a) + case_respawn(1, 0x000b) + case_respawn(1, 0x000c) + case(2, 0x0014) + case_respawn(2, 0x000e) + case_respawn(2, 0x000f) + case_respawn(2, 0x0010) + case_respawn(2, 0x0011) + case_respawn(2, 0x0012) + case_respawn(2, 0x0013) + case(3, 0x001b) + case_respawn(3, 0x0015) + case_respawn(3, 0x0016) + case_respawn(3, 0x0017) + case_respawn(3, 0x0018) + case_respawn(3, 0x0019) + case_respawn(3, 0x001a) + hill(0x00db) + hill(0x00f0) + hill(0x00aa) + hill(0x00b7) endintro +}; -paths: - endpaths +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; -func1001_start_lifts: - activate_lift 1, 0x01 - activate_lift 2, 0x02 - set_function CHR_SELF, GFUNC_IDLE +u8 func1001_start_lifts[] = { + activate_lift(1, 0x01) + activate_lift(2, 0x02) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1000_21d4: +u8 func1000_21d4[] = { cmd0185_mponly cmd0145_rebuild_groups cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -functions: - register_function func1000_21d4 0x1000 - register_function func1001_start_lifts 0x1001 - endfunctions +struct ailists functions[] = { + { func1000_21d4, 0x1000 }, + { func1001_start_lifts, 0x1001 }, + { NULL, 0 }, +}; -.align 4 diff --git a/asm/setup/mp_setupmp10.s b/src/setup/mp_setupmp10.c similarity index 67% rename from asm/setup/mp_setupmp10.s rename to src/setup/mp_setupmp10.c index fa9661319..089487c69 100644 --- a/asm/setup/mp_setupmp10.s +++ b/src/setup/mp_setupmp10.c @@ -1,120 +1,140 @@ -# -# Sewers (MP) -# +// +// Sewers (MP) +// -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" +#include "../include/setup.h" -props: - weapon 0x0100, 0x0000, 0x0099, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x009a, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x009b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x009c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a9, 0x00000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00aa, 0x00000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - object 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00b7, 0x000200e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00b8, 0x000200e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00b9, 0x000200e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - weapon 0x0100, 0x0000, 0x009d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ab, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ac, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x009e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ad, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ae, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x009f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf6, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00af, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00b0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00a0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf7, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00b1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00b2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00a1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf8, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00b3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00b4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00a2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf9, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00b5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00b6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - tag 0x00, 1 - lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x006a, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x006a, 0x006b, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c71, 0x0074aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x01, 1 - lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x006c, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x006c, 0x006d, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c71, 0x0074aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x02, 1 - lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x006e, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x006e, 0x006f, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c71, 0x0074aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + weapon(0x0100, 0x0000, 0x0099, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x009a, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x009b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x009c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00a9, 0x00000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00aa, 0x00000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + stdobject(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00b7, 0x000200e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00b8, 0x000200e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00b9, 0x000200e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + weapon(0x0100, 0x0000, 0x009d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ab, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ac, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x009e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ad, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ae, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x009f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf6, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00af, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00b0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00a0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf7, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00b1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00b2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00a1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf8, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00b3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00b4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00a2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf9, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00b5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00b6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + tag(0x00, 1) + lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x006a, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x006a, 0x006b, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c71, 0x0074aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x01, 1) + lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x006c, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x006c, 0x006d, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c71, 0x0074aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x02, 1) + lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x006e, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x006e, 0x006f, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c71, 0x0074aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) endprops +}; -intro: - spawn 0x008c - spawn 0x008d - spawn 0x008e - spawn 0x008f - spawn 0x0090 - spawn 0x0091 - spawn 0x0092 - spawn 0x0093 - spawn 0x0094 - spawn 0x0095 - spawn 0x0096 - spawn 0x0097 - spawn 0x0098 - case 0, 0x0070 - case_respawn 0, 0x0071 - case_respawn 0, 0x0072 - case_respawn 0, 0x0073 - case_respawn 0, 0x0074 - case_respawn 0, 0x0075 - case_respawn 0, 0x0076 - case 1, 0x0077 - case_respawn 1, 0x0078 - case_respawn 1, 0x0079 - case_respawn 1, 0x007a - case_respawn 1, 0x007b - case_respawn 1, 0x007c - case_respawn 1, 0x007d - case 2, 0x007e - case_respawn 2, 0x007f - case_respawn 2, 0x0080 - case_respawn 2, 0x0081 - case_respawn 2, 0x0082 - case_respawn 2, 0x0083 - case_respawn 2, 0x0084 - case 3, 0x008b - case_respawn 3, 0x0085 - case_respawn 3, 0x0086 - case_respawn 3, 0x0087 - case_respawn 3, 0x0088 - case_respawn 3, 0x0089 - case_respawn 3, 0x008a - hill 0x005f - hill 0x002d - hill 0x003a - hill 0x002a +u8 intro[] = { + spawn(0x008c) + spawn(0x008d) + spawn(0x008e) + spawn(0x008f) + spawn(0x0090) + spawn(0x0091) + spawn(0x0092) + spawn(0x0093) + spawn(0x0094) + spawn(0x0095) + spawn(0x0096) + spawn(0x0097) + spawn(0x0098) + case(0, 0x0070) + case_respawn(0, 0x0071) + case_respawn(0, 0x0072) + case_respawn(0, 0x0073) + case_respawn(0, 0x0074) + case_respawn(0, 0x0075) + case_respawn(0, 0x0076) + case(1, 0x0077) + case_respawn(1, 0x0078) + case_respawn(1, 0x0079) + case_respawn(1, 0x007a) + case_respawn(1, 0x007b) + case_respawn(1, 0x007c) + case_respawn(1, 0x007d) + case(2, 0x007e) + case_respawn(2, 0x007f) + case_respawn(2, 0x0080) + case_respawn(2, 0x0081) + case_respawn(2, 0x0082) + case_respawn(2, 0x0083) + case_respawn(2, 0x0084) + case(3, 0x008b) + case_respawn(3, 0x0085) + case_respawn(3, 0x0086) + case_respawn(3, 0x0087) + case_respawn(3, 0x0088) + case_respawn(3, 0x0089) + case_respawn(3, 0x008a) + hill(0x005f) + hill(0x002d) + hill(0x003a) + hill(0x002a) endintro +}; -paths: - endpaths +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; -func1001_start_lifts: - activate_lift 1, 0x00 - activate_lift 2, 0x01 - activate_lift 3, 0x02 - set_function CHR_SELF, GFUNC_IDLE +u8 func1001_start_lifts[] = { + activate_lift(1, 0x00) + activate_lift(2, 0x01) + activate_lift(3, 0x02) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1000_1680: +u8 func1000_1680[] = { cmd0185_mponly cmd0145_rebuild_groups cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -functions: - register_function func1000_1680 0x1000 - register_function func1001_start_lifts 0x1001 - endfunctions +struct ailists functions[] = { + { func1000_1680, 0x1000 }, + { func1001_start_lifts, 0x1001 }, + { NULL, 0 }, +}; -.align 4 diff --git a/asm/setup/mp_setupmp11.s b/src/setup/mp_setupmp11.c similarity index 77% rename from asm/setup/mp_setupmp11.s rename to src/setup/mp_setupmp11.c index 44779a1f3..1f9b7e282 100644 --- a/asm/setup/mp_setupmp11.s +++ b/src/setup/mp_setupmp11.c @@ -1,130 +1,149 @@ -# -# Felicity (MP) -# +// +// Felicity (MP) +// -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" +#include "../include/setup.h" -props: - weapon 0x0100, 0x0000, 0x0028, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0032, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0033, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0029, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0034, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0035, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x002a, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0036, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0037, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x002b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0038, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0039, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x002c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x003a, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x003b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x002d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x003c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x003d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x002e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf6, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x003e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x003f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x002f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf7, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0040, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0041, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0030, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf8, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0043, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0042, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0031, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf9, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0044, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0045, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - door 0x0100, MODEL_DD_DR_NONREF, 0x0046, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x0047, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x0048, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x0049, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x004a, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x004b, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x004c, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0062, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0063, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0064, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0065, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0066, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0067, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0068, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0069, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x004d, 0x90000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x004e, 0x90000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x004f, 0x90000000, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x0050, 0xb0000000, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x0051, 0x90000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x0052, 0xb0000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x0053, 0x90000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x0054, 0xb0000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x0055, 0x90000000, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x0056, 0xb0000000, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x0058, 0xb0000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DR_NONREF, 0x0057, 0xb0000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + weapon(0x0100, 0x0000, 0x0028, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0032, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0033, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0029, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0034, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0035, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x002a, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0036, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0037, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x002b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0038, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0039, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x002c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x003a, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x003b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x002d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x003c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x003d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x002e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf6, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x003e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x003f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x002f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf7, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0040, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0041, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0030, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf8, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0043, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0042, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0031, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf9, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0044, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0045, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + door(0x0100, MODEL_DD_DR_NONREF, 0x0046, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x0047, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x0048, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x0049, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x004a, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x004b, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x004c, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0062, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0063, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0064, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0065, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0066, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0067, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0068, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0069, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x004d, 0x90000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x004e, 0x90000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x004f, 0x90000000, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x0050, 0xb0000000, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x0051, 0x90000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x0052, 0xb0000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x0053, 0x90000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x0054, 0xb0000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x0055, 0x90000000, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x0056, 0xb0000000, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x0058, 0xb0000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x0057, 0xb0000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) endprops +}; -intro: - spawn 0x001c - spawn 0x001d - spawn 0x001e - spawn 0x001f - spawn 0x0020 - spawn 0x0021 - spawn 0x0022 - spawn 0x0023 - spawn 0x0024 - spawn 0x0025 - spawn 0x0026 - spawn 0x0027 - case 0, 0x0006 - case_respawn 0, 0x0000 - case_respawn 0, 0x0001 - case_respawn 0, 0x0002 - case_respawn 0, 0x0003 - case_respawn 0, 0x0004 - case_respawn 0, 0x0005 - case 1, 0x000d - case_respawn 1, 0x0007 - case_respawn 1, 0x0008 - case_respawn 1, 0x0009 - case_respawn 1, 0x000a - case_respawn 1, 0x000b - case_respawn 1, 0x000c - case 2, 0x0014 - case_respawn 2, 0x000e - case_respawn 2, 0x000f - case_respawn 2, 0x0010 - case_respawn 2, 0x0011 - case_respawn 2, 0x0012 - case_respawn 2, 0x0013 - case 3, 0x001b - case_respawn 3, 0x0015 - case_respawn 3, 0x0016 - case_respawn 3, 0x0017 - case_respawn 3, 0x0018 - case_respawn 3, 0x0019 - case_respawn 3, 0x001a - hill 0x0091 - hill 0x008b - hill 0x0071 - hill 0x009f - outfit OUTFIT_DEFAULT +u8 intro[] = { + spawn(0x001c) + spawn(0x001d) + spawn(0x001e) + spawn(0x001f) + spawn(0x0020) + spawn(0x0021) + spawn(0x0022) + spawn(0x0023) + spawn(0x0024) + spawn(0x0025) + spawn(0x0026) + spawn(0x0027) + case(0, 0x0006) + case_respawn(0, 0x0000) + case_respawn(0, 0x0001) + case_respawn(0, 0x0002) + case_respawn(0, 0x0003) + case_respawn(0, 0x0004) + case_respawn(0, 0x0005) + case(1, 0x000d) + case_respawn(1, 0x0007) + case_respawn(1, 0x0008) + case_respawn(1, 0x0009) + case_respawn(1, 0x000a) + case_respawn(1, 0x000b) + case_respawn(1, 0x000c) + case(2, 0x0014) + case_respawn(2, 0x000e) + case_respawn(2, 0x000f) + case_respawn(2, 0x0010) + case_respawn(2, 0x0011) + case_respawn(2, 0x0012) + case_respawn(2, 0x0013) + case(3, 0x001b) + case_respawn(3, 0x0015) + case_respawn(3, 0x0016) + case_respawn(3, 0x0017) + case_respawn(3, 0x0018) + case_respawn(3, 0x0019) + case_respawn(3, 0x001a) + hill(0x0091) + hill(0x008b) + hill(0x0071) + hill(0x009f) + outfit(OUTFIT_DEFAULT) endintro +}; -paths: - endpaths +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; -func1000_26fc: +u8 func1000_26fc[] = { cmd0185_mponly cmd0145_rebuild_groups cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -functions: - register_function func1000_26fc 0x1000 - endfunctions +struct ailists functions[] = { + { func1000_26fc, 0x1000 }, + { NULL, 0 }, +}; -.align 4 diff --git a/asm/setup/mp_setupmp12.s b/src/setup/mp_setupmp12.c similarity index 77% rename from asm/setup/mp_setupmp12.s rename to src/setup/mp_setupmp12.c index d8ea6decd..812f24481 100644 --- a/asm/setup/mp_setupmp12.s +++ b/src/setup/mp_setupmp12.c @@ -1,189 +1,209 @@ -# -# Fortress (MP) -# +// +// Fortress (MP) +// -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" +#include "../include/setup.h" -props: - weapon 0x0100, 0x0000, 0x01a7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01c0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01c1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x01a8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01c2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01c3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x01a9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01c4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01c5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x01aa, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01c6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01c7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x01ab, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01c8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01c9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x01ac, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01ca, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01cb, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x01ad, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01cc, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01cd, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x01ae, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01ce, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01cf, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x01af, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01d0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01d1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x01b0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01d2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01d3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x01b1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01d4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01d5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x01b2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01d6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01d7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x01b3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01d8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01d9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x01b4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01da, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01db, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x01b5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01dc, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01dd, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x01b6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01de, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01df, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x01b7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01e0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x01b8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01e3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01e2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x01b9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01e4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01e5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x01ba, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01e6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01e7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x01bb, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01e8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01e9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x01bc, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01ea, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01eb, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x01bd, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01ec, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01ed, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x01be, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01ee, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01ef, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x01bf, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01f0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01f1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - tag 0x01, 1 - lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x01f2, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x01f2, 0x01f3, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x02, 1 - lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x01f4, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x01f4, 0x01f5, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x03, 1 - lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x01f6, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x01f6, 0x01f7, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x04, 1 - lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x01f8, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x01f8, 0x01f9, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x05, 1 - lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x01fa, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x01fa, 0x01fb, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x06, 1 - lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x01fc, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x01fc, 0x01fd, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x07, 1 - lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x01fe, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x01fe, 0x01ff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x08, 1 - lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x0200, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0200, 0x0201, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x019e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, 0x00040004, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x019f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x01a0, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x01a1, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, 0x00040004, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x01a2, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x01a3, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x019b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, 0x00040004, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x019c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x019d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x01a4, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, 0x00040004, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x01a5, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x01a6, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + weapon(0x0100, 0x0000, 0x01a7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01c0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01c1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x01a8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01c2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01c3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x01a9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01c4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01c5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x01aa, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01c6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01c7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x01ab, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01c8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01c9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x01ac, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01ca, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01cb, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x01ad, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01cc, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01cd, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x01ae, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01ce, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01cf, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x01af, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01d0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01d1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x01b0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01d2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01d3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x01b1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01d4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01d5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x01b2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01d6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01d7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x01b3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01d8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01d9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x01b4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01da, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01db, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x01b5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01dc, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01dd, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x01b6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01de, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01df, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x01b7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01e0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x01b8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01e3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01e2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x01b9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01e4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01e5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x01ba, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01e6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01e7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x01bb, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01e8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01e9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x01bc, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01ea, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01eb, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x01bd, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01ec, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01ed, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x01be, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01ee, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01ef, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x01bf, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01f0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, 0x01f1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + tag(0x01, 1) + lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x01f2, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x01f2, 0x01f3, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x02, 1) + lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x01f4, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x01f4, 0x01f5, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x03, 1) + lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x01f6, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x01f6, 0x01f7, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x04, 1) + lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x01f8, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x01f8, 0x01f9, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x05, 1) + lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x01fa, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x01fa, 0x01fb, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x06, 1) + lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x01fc, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x01fc, 0x01fd, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x07, 1) + lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x01fe, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x01fe, 0x01ff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x08, 1) + lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x0200, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0200, 0x0201, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x019e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, 0x00040004, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x019f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x01a0, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x01a1, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, 0x00040004, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x01a2, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x01a3, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x019b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, 0x00040004, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x019c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x019d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x01a4, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, 0x00040004, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x01a5, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x01a6, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) endprops +}; -intro: - spawn 0x018f - spawn 0x0190 - spawn 0x0191 - spawn 0x0192 - spawn 0x0193 - spawn 0x0194 - spawn 0x0195 - spawn 0x0196 - spawn 0x0197 - spawn 0x0198 - spawn 0x0199 - spawn 0x019a - case 0, 0x0188 - case_respawn 0, 0x0189 - case_respawn 0, 0x018a - case_respawn 0, 0x018b - case_respawn 0, 0x018c - case_respawn 0, 0x018d - case_respawn 0, 0x018e - case 1, 0x0179 - case_respawn 1, 0x0178 - case_respawn 1, 0x0177 - case_respawn 1, 0x0176 - case_respawn 1, 0x0175 - case_respawn 1, 0x0174 - case_respawn 1, 0x0173 - case 2, 0x017a - case_respawn 2, 0x017b - case_respawn 2, 0x017c - case_respawn 2, 0x017d - case_respawn 2, 0x017e - case_respawn 2, 0x017f - case_respawn 2, 0x0180 - case 3, 0x0187 - case_respawn 3, 0x0186 - case_respawn 3, 0x0185 - case_respawn 3, 0x0184 - case_respawn 3, 0x0183 - case_respawn 3, 0x0182 - case_respawn 3, 0x0181 - hill 0x0009 - hill 0x0029 - hill 0x00f8 - hill 0x00b4 - hill 0x009a +u8 intro[] = { + spawn(0x018f) + spawn(0x0190) + spawn(0x0191) + spawn(0x0192) + spawn(0x0193) + spawn(0x0194) + spawn(0x0195) + spawn(0x0196) + spawn(0x0197) + spawn(0x0198) + spawn(0x0199) + spawn(0x019a) + case(0, 0x0188) + case_respawn(0, 0x0189) + case_respawn(0, 0x018a) + case_respawn(0, 0x018b) + case_respawn(0, 0x018c) + case_respawn(0, 0x018d) + case_respawn(0, 0x018e) + case(1, 0x0179) + case_respawn(1, 0x0178) + case_respawn(1, 0x0177) + case_respawn(1, 0x0176) + case_respawn(1, 0x0175) + case_respawn(1, 0x0174) + case_respawn(1, 0x0173) + case(2, 0x017a) + case_respawn(2, 0x017b) + case_respawn(2, 0x017c) + case_respawn(2, 0x017d) + case_respawn(2, 0x017e) + case_respawn(2, 0x017f) + case_respawn(2, 0x0180) + case(3, 0x0187) + case_respawn(3, 0x0186) + case_respawn(3, 0x0185) + case_respawn(3, 0x0184) + case_respawn(3, 0x0183) + case_respawn(3, 0x0182) + case_respawn(3, 0x0181) + hill(0x0009) + hill(0x0029) + hill(0x00f8) + hill(0x00b4) + hill(0x009a) endintro +}; -paths: - endpaths +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; -func1001_start_lifts: - activate_lift 1, 0x01 - activate_lift 2, 0x02 - activate_lift 3, 0x03 - activate_lift 4, 0x04 - activate_lift 5, 0x05 - activate_lift 6, 0x06 - activate_lift 7, 0x07 - activate_lift 8, 0x08 - set_function CHR_SELF, GFUNC_IDLE +u8 func1001_start_lifts[] = { + activate_lift(1, 0x01) + activate_lift(2, 0x02) + activate_lift(3, 0x03) + activate_lift(4, 0x04) + activate_lift(5, 0x05) + activate_lift(6, 0x06) + activate_lift(7, 0x07) + activate_lift(8, 0x08) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1000_3cc8: +u8 func1000_3cc8[] = { cmd0185_mponly cmd0145_rebuild_groups cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -functions: - register_function func1000_3cc8 0x1000 - register_function func1001_start_lifts 0x1001 - endfunctions +struct ailists functions[] = { + { func1000_3cc8, 0x1000 }, + { func1001_start_lifts, 0x1001 }, + { NULL, 0 }, +}; -.align 4 diff --git a/asm/setup/mp_setupcryp.s b/src/setup/mp_setupmp13.c similarity index 71% rename from asm/setup/mp_setupcryp.s rename to src/setup/mp_setupmp13.c index df9d7ede3..63fcd1e31 100644 --- a/asm/setup/mp_setupcryp.s +++ b/src/setup/mp_setupmp13.c @@ -1,118 +1,122 @@ -# -# G5 Building (MP) -# +// +// Villa (MP) +// -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" +#include "../include/setup.h" -props: - weapon 0x0100, 0x0000, 0x00b2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00bc, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00bd, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00b3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00be, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00bf, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00b4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00c0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00c1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00b5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00c2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00c3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00b6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00c4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00c5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00b7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00c6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00c7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00b8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf6, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00c8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00c9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00b9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf7, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00ca, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00cb, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00ba, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf8, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00cc, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00cd, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00bb, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf9, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00ce, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x00cf, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + weapon(0x0100, 0x0000, 0x00bd, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00c7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00c8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00be, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00c9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ca, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00bf, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00cb, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00cc, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00c0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00cd, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ce, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00c1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00cf, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00d0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00c2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00d1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00d2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00c3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf6, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00d3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00d4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00c4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf7, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00d5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00d6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00c5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf8, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00d7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00d8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00c6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf9, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00d9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00da, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) endprops +}; -intro: - spawn 0x009d - spawn 0x009e - spawn 0x009f - spawn 0x00a0 - spawn 0x00a1 - spawn 0x00a2 - spawn 0x00a3 - spawn 0x00a4 - spawn 0x00a5 - spawn 0x00a6 - spawn 0x00a7 - spawn 0x00a8 - spawn 0x00a9 - spawn 0x00aa - spawn 0x00ab - spawn 0x00ac - spawn 0x00ad - spawn 0x00ae - spawn 0x00af - spawn 0x00b0 - spawn 0x00b1 - case 0, 0x0087 - case_respawn 0, 0x0081 - case_respawn 0, 0x0082 - case_respawn 0, 0x0083 - case_respawn 0, 0x0084 - case_respawn 0, 0x0085 - case_respawn 0, 0x0086 - case 1, 0x0088 - case_respawn 1, 0x0089 - case_respawn 1, 0x008a - case_respawn 1, 0x008b - case_respawn 1, 0x008c - case_respawn 1, 0x008d - case_respawn 1, 0x008e - case 2, 0x0095 - case_respawn 2, 0x008f - case_respawn 2, 0x0090 - case_respawn 2, 0x0091 - case_respawn 2, 0x0092 - case_respawn 2, 0x0093 - case_respawn 2, 0x0094 - case 3, 0x009c - case_respawn 3, 0x0096 - case_respawn 3, 0x0097 - case_respawn 3, 0x0098 - case_respawn 3, 0x0099 - case_respawn 3, 0x009a - case_respawn 3, 0x009b - hill 0x0033 - hill 0x004d - hill 0x0056 - hill 0x001a - hill 0x0066 +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + spawn(0x001c) + spawn(0x001d) + spawn(0x001e) + spawn(0x001f) + spawn(0x0020) + spawn(0x0021) + spawn(0x0022) + spawn(0x0023) + spawn(0x0024) + spawn(0x0025) + spawn(0x0026) + spawn(0x0027) + case(0, 0x0006) + case_respawn(0, 0x0000) + case_respawn(0, 0x0001) + case_respawn(0, 0x0002) + case_respawn(0, 0x0003) + case_respawn(0, 0x0004) + case_respawn(0, 0x0005) + case(1, 0x000d) + case_respawn(1, 0x0007) + case_respawn(1, 0x0008) + case_respawn(1, 0x0009) + case_respawn(1, 0x000a) + case_respawn(1, 0x000b) + case_respawn(1, 0x000c) + case(2, 0x0013) + case_respawn(2, 0x000e) + case_respawn(2, 0x000f) + case_respawn(2, 0x0010) + case_respawn(2, 0x0011) + case_respawn(2, 0x0012) + case_respawn(2, 0x0014) + case(3, 0x001b) + case_respawn(3, 0x0015) + case_respawn(3, 0x0016) + case_respawn(3, 0x0017) + case_respawn(3, 0x0018) + case_respawn(3, 0x0019) + case_respawn(3, 0x001a) + hill(0x004c) + hill(0x008e) + hill(0x00aa) + hill(0x0043) endintro +}; -paths: - endpaths +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; -func1001_13d4: - cmd01b2_mponly 11 - set_function CHR_SELF, GFUNC_IDLE - endfunction - -func1000_13e0: +u8 func1000_1368[] = { cmd0185_mponly cmd0145_rebuild_groups cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -functions: - register_function func1000_13e0 0x1000 - register_function func1001_13d4 0x1001 - endfunctions +struct ailists functions[] = { + { func1000_1368, 0x1000 }, + { NULL, 0 }, +}; -.align 4 diff --git a/src/setup/mp_setupmp14.c b/src/setup/mp_setupmp14.c new file mode 100644 index 000000000..746b25ce0 --- /dev/null +++ b/src/setup/mp_setupmp14.c @@ -0,0 +1,47 @@ +// +// Stage ID 0x46 +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 unregistered_func1[] = { + cmd0185_mponly + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/asm/setup/mp_setupmp15.s b/src/setup/mp_setupmp15.c similarity index 72% rename from asm/setup/mp_setupmp15.s rename to src/setup/mp_setupmp15.c index a1113e2ce..cea9c8b15 100644 --- a/asm/setup/mp_setupmp15.s +++ b/src/setup/mp_setupmp15.c @@ -1,141 +1,161 @@ -# -# Grid (MP) -# +// +// Grid (MP) +// -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" +#include "../include/setup.h" -props: - weapon 0x0100, 0x0000, 0x00ac, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00b7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00b8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00ad, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00b9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ba, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00ae, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00bb, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00bc, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00af, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00bd, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00be, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00b0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00bf, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00c0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00b1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00c1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00c2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00b3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf6, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00c5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00c6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00b4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf7, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00c7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00c8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00b5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf8, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00c9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ca, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00b6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf9, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00cb, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x00cc, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - glass 0x0100, MODEL_WINDOW, 0x00d0, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x00d1, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x00d2, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x00d3, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x00d4, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x00d5, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x00d6, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x00d7, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x00d8, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x00d9, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_GLASS_FLOOR, 0x0000, 0x04000068, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_GLASS_FLOOR, 0x0001, 0x04000068, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_GLASS_FLOOR, 0x0002, 0x04000068, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_GLASS_FLOOR, 0x0003, 0x04000068, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_GLASS_FLOOR, 0x0004, 0x04000068, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_GLASS_FLOOR, 0x0005, 0x04000068, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_GLASS_FLOOR, 0x0006, 0x04000068, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_GLASS_FLOOR, 0x0007, 0x04000068, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_GLASS_FLOOR, 0x0008, 0x04000068, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - door 0x0100, MODEL_DOOR2A_G5, 0x0080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00040000, 0x00000020, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2A_G5, 0x0081, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00040000, 0x00000020, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2A_G5, 0x0082, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00040000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2A_G5, 0x0083, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00040000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2A_G5, 0x0084, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00040000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2A_G5, 0x0085, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00040000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x01, 1 - lift 0x0100, MODEL_MATRIX_LIFT, 0x00ce, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00ce, 0x00cf, 0xffffffff, 0x00000001, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2A_G5, 0x007c, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001200, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2A_G5, 0x007d, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2A_G5, 0x007e, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001200, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR2A_G5, 0x007f, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -4, -5, 0, 0 - link_objects -4, -6, 0, 0 - link_objects -4, -7, 0, 1 - link_objects -4, -8, 0, 1 +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + weapon(0x0100, 0x0000, 0x00ac, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00b7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00b8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00ad, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00b9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ba, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00ae, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00bb, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00bc, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00af, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00bd, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00be, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00b0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00bf, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00c0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00b1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00c1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00c2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00b3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf6, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00c5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00c6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00b4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf7, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00c7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00c8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00b5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf8, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00c9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00ca, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00b6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf9, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00cb, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x00cc, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + glass(0x0100, MODEL_WINDOW, 0x00d0, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x00d1, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x00d2, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x00d3, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x00d4, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x00d5, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x00d6, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x00d7, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x00d8, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x00d9, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_GLASS_FLOOR, 0x0000, 0x04000068, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_GLASS_FLOOR, 0x0001, 0x04000068, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_GLASS_FLOOR, 0x0002, 0x04000068, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_GLASS_FLOOR, 0x0003, 0x04000068, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_GLASS_FLOOR, 0x0004, 0x04000068, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_GLASS_FLOOR, 0x0005, 0x04000068, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_GLASS_FLOOR, 0x0006, 0x04000068, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_GLASS_FLOOR, 0x0007, 0x04000068, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_GLASS_FLOOR, 0x0008, 0x04000068, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + door(0x0100, MODEL_DOOR2A_G5, 0x0080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00040000, 0x00000020, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2A_G5, 0x0081, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00040000, 0x00000020, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2A_G5, 0x0082, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00040000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2A_G5, 0x0083, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00040000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2A_G5, 0x0084, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00040000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2A_G5, 0x0085, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00040000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x01, 1) + lift(0x0100, MODEL_MATRIX_LIFT, 0x00ce, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00ce, 0x00cf, 0xffffffff, 0x00000001, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2A_G5, 0x007c, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001200, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2A_G5, 0x007d, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2A_G5, 0x007e, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001200, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2A_G5, 0x007f, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-4, -5, 0, 0) + link_objects(-4, -6, 0, 0) + link_objects(-4, -7, 0, 1) + link_objects(-4, -8, 0, 1) endprops +}; -intro: - spawn 0x00a2 - spawn 0x00a3 - spawn 0x00a4 - spawn 0x00a5 - spawn 0x00a6 - spawn 0x00a7 - spawn 0x00a8 - spawn 0x00a9 - spawn 0x00aa - spawn 0x00ab - case 0, 0x0086 - case_respawn 0, 0x0087 - case_respawn 0, 0x0088 - case_respawn 0, 0x0089 - case_respawn 0, 0x008a - case_respawn 0, 0x008b - case_respawn 0, 0x008c - case 1, 0x0093 - case_respawn 1, 0x008d - case_respawn 1, 0x008e - case_respawn 1, 0x008f - case_respawn 1, 0x0090 - case_respawn 1, 0x0091 - case_respawn 1, 0x0092 - case 2, 0x009a - case_respawn 2, 0x0094 - case_respawn 2, 0x0095 - case_respawn 2, 0x0096 - case_respawn 2, 0x0097 - case_respawn 2, 0x0098 - case_respawn 2, 0x0099 - case 3, 0x00a1 - case_respawn 3, 0x009b - case_respawn 3, 0x009c - case_respawn 3, 0x009d - case_respawn 3, 0x009e - case_respawn 3, 0x009f - case_respawn 3, 0x00a0 - hill 0x0073 - hill 0x0013 - hill 0x006b - hill 0x0060 +u8 intro[] = { + spawn(0x00a2) + spawn(0x00a3) + spawn(0x00a4) + spawn(0x00a5) + spawn(0x00a6) + spawn(0x00a7) + spawn(0x00a8) + spawn(0x00a9) + spawn(0x00aa) + spawn(0x00ab) + case(0, 0x0086) + case_respawn(0, 0x0087) + case_respawn(0, 0x0088) + case_respawn(0, 0x0089) + case_respawn(0, 0x008a) + case_respawn(0, 0x008b) + case_respawn(0, 0x008c) + case(1, 0x0093) + case_respawn(1, 0x008d) + case_respawn(1, 0x008e) + case_respawn(1, 0x008f) + case_respawn(1, 0x0090) + case_respawn(1, 0x0091) + case_respawn(1, 0x0092) + case(2, 0x009a) + case_respawn(2, 0x0094) + case_respawn(2, 0x0095) + case_respawn(2, 0x0096) + case_respawn(2, 0x0097) + case_respawn(2, 0x0098) + case_respawn(2, 0x0099) + case(3, 0x00a1) + case_respawn(3, 0x009b) + case_respawn(3, 0x009c) + case_respawn(3, 0x009d) + case_respawn(3, 0x009e) + case_respawn(3, 0x009f) + case_respawn(3, 0x00a0) + hill(0x0073) + hill(0x0013) + hill(0x006b) + hill(0x0060) endintro +}; -paths: - endpaths +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; -func1001_start_lift: - activate_lift 1, 0x01 - set_function CHR_SELF, GFUNC_IDLE +u8 func1001_start_lift[] = { + activate_lift(1, 0x01) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1000_2400: +u8 func1000_2400[] = { cmd0185_mponly cmd0145_rebuild_groups cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -functions: - register_function func1000_2400 0x1000 - register_function func1001_start_lift 0x1001 - endfunctions +struct ailists functions[] = { + { func1000_2400, 0x1000 }, + { func1001_start_lift, 0x1001 }, + { NULL, 0 }, +}; -.align 4 diff --git a/src/setup/mp_setupmp16.c b/src/setup/mp_setupmp16.c new file mode 100644 index 000000000..e89647eca --- /dev/null +++ b/src/setup/mp_setupmp16.c @@ -0,0 +1,46 @@ +// +// Stage ID 0x48 +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 unregistered_func1[] = { + cmd0185_mponly + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setupmp17.c b/src/setup/mp_setupmp17.c new file mode 100644 index 000000000..875d5a2ff --- /dev/null +++ b/src/setup/mp_setupmp17.c @@ -0,0 +1,55 @@ +// +// Stage ID 0x49 +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 func1001_0038[] = { + cmd01b2_mponly(130) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1000_0044[] = { + cmd0185_mponly + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +struct ailists functions[] = { + { func1000_0044, 0x1000 }, + { func1001_0038, 0x1001 }, + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setupmp18.c b/src/setup/mp_setupmp18.c new file mode 100644 index 000000000..122039c76 --- /dev/null +++ b/src/setup/mp_setupmp18.c @@ -0,0 +1,48 @@ +// +// Stage ID 0x4a +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 func1000_0038[] = { + cmd0185_mponly + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +struct ailists functions[] = { + { func1000_0038, 0x1000 }, + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setupmp19.c b/src/setup/mp_setupmp19.c new file mode 100644 index 000000000..abbdfdb4b --- /dev/null +++ b/src/setup/mp_setupmp19.c @@ -0,0 +1,48 @@ +// +// Stage ID 0x4b +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 func1000_0038[] = { + cmd0185_mponly + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +struct ailists functions[] = { + { func1000_0038, 0x1000 }, + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setupmp2.c b/src/setup/mp_setupmp2.c new file mode 100644 index 000000000..e5dd0ac18 --- /dev/null +++ b/src/setup/mp_setupmp2.c @@ -0,0 +1,54 @@ +// +// Stage ID 0x3a +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + endintro +}; + +s32 path00[] = { + -1, +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 unregistered_func1[] = { + endfunction +}; + +u8 unregistered_func2[] = { + cmd0185_mponly + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setupmp20.c b/src/setup/mp_setupmp20.c new file mode 100644 index 000000000..d1058140d --- /dev/null +++ b/src/setup/mp_setupmp20.c @@ -0,0 +1,48 @@ +// +// Stage ID 0x4c +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 func1000_0038[] = { + cmd0185_mponly + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +struct ailists functions[] = { + { func1000_0038, 0x1000 }, + { NULL, 0 }, +}; + diff --git a/asm/setup/mp_setupmp3.s b/src/setup/mp_setupmp3.c similarity index 77% rename from asm/setup/mp_setupmp3.s rename to src/setup/mp_setupmp3.c index b3ef7f97e..5160bd4dc 100644 --- a/asm/setup/mp_setupmp3.s +++ b/src/setup/mp_setupmp3.c @@ -1,138 +1,158 @@ -# -# Area 52 (MP) -# +// +// Area 52 (MP) +// -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" +#include "../include/setup.h" -props: - weapon 0x0100, 0x0000, 0x0028, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0032, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0033, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0029, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0034, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0035, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x002a, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0036, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0037, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x002b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0038, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0039, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x002c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x003a, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x003b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x002d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x003c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x003d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x002e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf6, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x003e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x003f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x002f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf7, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0040, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0041, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0030, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf8, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0042, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0043, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0031, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf9, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0044, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0045, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0046, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0047, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0048, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0049, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x004a, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x004b, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x004c, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x004d, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x005a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x0000021c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x005b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x005c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x00000168, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x005d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x00000348, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x005e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x00000168, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x005f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x0060, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x0061, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x004f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0x00100004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x004e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0051, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0x00100004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0050, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0053, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0x00100004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0052, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0055, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0x00100004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0054, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0057, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0x00100004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0056, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0059, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0x00100004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0058, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + weapon(0x0100, 0x0000, 0x0028, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0032, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0033, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0029, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0034, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0035, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x002a, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0036, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0037, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x002b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0038, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0039, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x002c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x003a, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x003b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x002d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x003c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x003d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x002e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf6, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x003e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x003f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x002f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf7, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0040, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0041, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0030, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf8, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0042, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0043, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0031, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf9, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0044, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0045, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0046, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0047, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0048, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0049, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x004a, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x004b, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x004c, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x004d, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x005a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x0000021c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x005b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x005c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x00000168, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x005d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x00000348, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x005e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x00000168, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x005f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x0060, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x0061, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x004f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0x00100004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x004e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0051, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0x00100004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0050, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0053, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0x00100004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0052, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0055, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0x00100004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0054, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0057, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0x00100004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0056, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0059, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0x00100004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0058, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) endprops +}; -intro: - outfit OUTFIT_DEFAULT - spawn 0x001c - spawn 0x001d - spawn 0x001e - spawn 0x001f - spawn 0x0020 - spawn 0x0021 - spawn 0x0022 - spawn 0x0023 - spawn 0x0024 - spawn 0x0025 - spawn 0x0026 - spawn 0x0027 - case 0, 0x0006 - case_respawn 0, 0x0000 - case_respawn 0, 0x0001 - case_respawn 0, 0x0002 - case_respawn 0, 0x0003 - case_respawn 0, 0x0004 - case_respawn 0, 0x0005 - case 1, 0x000d - case_respawn 1, 0x0007 - case_respawn 1, 0x0008 - case_respawn 1, 0x0009 - case_respawn 1, 0x000a - case_respawn 1, 0x000b - case_respawn 1, 0x000c - case 2, 0x0013 - case_respawn 2, 0x000e - case_respawn 2, 0x000f - case_respawn 2, 0x0010 - case_respawn 2, 0x0011 - case_respawn 2, 0x0012 - case_respawn 2, 0x0014 - case 3, 0x001b - case_respawn 3, 0x0015 - case_respawn 3, 0x0016 - case_respawn 3, 0x0017 - case_respawn 3, 0x0018 - case_respawn 3, 0x0019 - case_respawn 3, 0x001a - hill 0x010d - hill 0x0106 - hill 0x00e4 - hill 0x00da - hill 0x011c +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + spawn(0x001c) + spawn(0x001d) + spawn(0x001e) + spawn(0x001f) + spawn(0x0020) + spawn(0x0021) + spawn(0x0022) + spawn(0x0023) + spawn(0x0024) + spawn(0x0025) + spawn(0x0026) + spawn(0x0027) + case(0, 0x0006) + case_respawn(0, 0x0000) + case_respawn(0, 0x0001) + case_respawn(0, 0x0002) + case_respawn(0, 0x0003) + case_respawn(0, 0x0004) + case_respawn(0, 0x0005) + case(1, 0x000d) + case_respawn(1, 0x0007) + case_respawn(1, 0x0008) + case_respawn(1, 0x0009) + case_respawn(1, 0x000a) + case_respawn(1, 0x000b) + case_respawn(1, 0x000c) + case(2, 0x0013) + case_respawn(2, 0x000e) + case_respawn(2, 0x000f) + case_respawn(2, 0x0010) + case_respawn(2, 0x0011) + case_respawn(2, 0x0012) + case_respawn(2, 0x0014) + case(3, 0x001b) + case_respawn(3, 0x0015) + case_respawn(3, 0x0016) + case_respawn(3, 0x0017) + case_respawn(3, 0x0018) + case_respawn(3, 0x0019) + case_respawn(3, 0x001a) + hill(0x010d) + hill(0x0106) + hill(0x00e4) + hill(0x00da) + hill(0x011c) endintro +}; -paths: - endpaths +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; -func1001_27e0: - cmd01b2_mponly 15 - set_function CHR_SELF, GFUNC_IDLE +u8 func1001_27e0[] = { + cmd01b2_mponly(15) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1000_27ec: +u8 func1000_27ec[] = { cmd0185_mponly cmd0145_rebuild_groups cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -functions: - register_function func1000_27ec 0x1000 - register_function func1001_27e0 0x1001 - endfunctions +struct ailists functions[] = { + { func1000_27ec, 0x1000 }, + { func1001_27e0, 0x1001 }, + { NULL, 0 }, +}; -.align 4 diff --git a/asm/setup/mp_setupmp4.s b/src/setup/mp_setupmp4.c similarity index 70% rename from asm/setup/mp_setupmp4.s rename to src/setup/mp_setupmp4.c index 57792351a..3830ee209 100644 --- a/asm/setup/mp_setupmp4.s +++ b/src/setup/mp_setupmp4.c @@ -1,112 +1,132 @@ -# -# Warehouse (MP) -# +// +// Warehouse (MP) +// -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" +#include "../include/setup.h" -props: - weapon 0x0100, 0x0000, 0x0167, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0171, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0172, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0168, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0173, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0174, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0169, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0175, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0176, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x016a, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0177, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0178, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - object 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0185, 0x000200e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - weapon 0x0100, 0x0000, 0x016b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0179, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x017a, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x016c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x017b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x017c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x016d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x017d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x017e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x016e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x017f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0180, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x016f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0181, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0182, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0170, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0183, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0184, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - hover_prop 0x0100, MODEL_A51_CRATE2, 0x0186, 0x31120101, 0x00304300, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x02010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - hover_prop 0x0100, MODEL_HOVERCRATE1, 0x0187, 0x31120101, 0x00304300, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x02010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - hover_prop 0x0100, MODEL_A51_CRATE2, 0x0188, 0x31120101, 0x00304300, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x02010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + weapon(0x0100, 0x0000, 0x0167, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0171, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0172, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0168, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0173, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0174, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0169, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0175, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0176, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x016a, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0177, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0178, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + stdobject(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0185, 0x000200e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + weapon(0x0100, 0x0000, 0x016b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0179, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x017a, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x016c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x017b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x017c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x016d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x017d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x017e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x016e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x017f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0180, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x016f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0181, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0182, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0170, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0183, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0184, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + hover_prop(0x0100, MODEL_A51_CRATE2, 0x0186, 0x31120101, 0x00304300, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x02010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + hover_prop(0x0100, MODEL_HOVERCRATE1, 0x0187, 0x31120101, 0x00304300, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x02010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + hover_prop(0x0100, MODEL_A51_CRATE2, 0x0188, 0x31120101, 0x00304300, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x02010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) endprops +}; -intro: - spawn 0x015b - spawn 0x015c - spawn 0x015d - spawn 0x015e - spawn 0x015f - spawn 0x0160 - spawn 0x0161 - spawn 0x0162 - spawn 0x0163 - spawn 0x0164 - spawn 0x0165 - spawn 0x0166 - case 0, 0x013f - case_respawn 0, 0x0140 - case_respawn 0, 0x0141 - case_respawn 0, 0x0142 - case_respawn 0, 0x0143 - case_respawn 0, 0x0144 - case_respawn 0, 0x0145 - case 1, 0x014c - case_respawn 1, 0x0146 - case_respawn 1, 0x0147 - case_respawn 1, 0x0148 - case_respawn 1, 0x0149 - case_respawn 1, 0x014a - case_respawn 1, 0x014b - case 2, 0x0153 - case_respawn 2, 0x014e - case_respawn 2, 0x014f - case_respawn 2, 0x0150 - case_respawn 2, 0x0151 - case_respawn 2, 0x0152 - case_respawn 2, 0x014d - case 3, 0x015a - case_respawn 3, 0x0154 - case_respawn 3, 0x0155 - case_respawn 3, 0x0156 - case_respawn 3, 0x0157 - case_respawn 3, 0x0158 - case_respawn 3, 0x0159 - hill 0x011c - hill 0x0087 - hill 0x006a - hill 0x00ec +u8 intro[] = { + spawn(0x015b) + spawn(0x015c) + spawn(0x015d) + spawn(0x015e) + spawn(0x015f) + spawn(0x0160) + spawn(0x0161) + spawn(0x0162) + spawn(0x0163) + spawn(0x0164) + spawn(0x0165) + spawn(0x0166) + case(0, 0x013f) + case_respawn(0, 0x0140) + case_respawn(0, 0x0141) + case_respawn(0, 0x0142) + case_respawn(0, 0x0143) + case_respawn(0, 0x0144) + case_respawn(0, 0x0145) + case(1, 0x014c) + case_respawn(1, 0x0146) + case_respawn(1, 0x0147) + case_respawn(1, 0x0148) + case_respawn(1, 0x0149) + case_respawn(1, 0x014a) + case_respawn(1, 0x014b) + case(2, 0x0153) + case_respawn(2, 0x014e) + case_respawn(2, 0x014f) + case_respawn(2, 0x0150) + case_respawn(2, 0x0151) + case_respawn(2, 0x0152) + case_respawn(2, 0x014d) + case(3, 0x015a) + case_respawn(3, 0x0154) + case_respawn(3, 0x0155) + case_respawn(3, 0x0156) + case_respawn(3, 0x0157) + case_respawn(3, 0x0158) + case_respawn(3, 0x0159) + hill(0x011c) + hill(0x0087) + hill(0x006a) + hill(0x00ec) endintro +}; -paths: - endpaths +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; -func1001_1590: - cmd01b2_mponly 22 - set_function CHR_SELF, GFUNC_IDLE +u8 func1001_1590[] = { + cmd01b2_mponly(22) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1000_159c: +u8 func1000_159c[] = { cmd0185_mponly cmd0145_rebuild_groups cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -functions: - register_function func1000_159c 0x1000 - register_function func1001_1590 0x1001 - endfunctions +struct ailists functions[] = { + { func1000_159c, 0x1000 }, + { func1001_1590, 0x1001 }, + { NULL, 0 }, +}; -.align 4 diff --git a/asm/setup/mp_setupmp5.s b/src/setup/mp_setupmp5.c similarity index 75% rename from asm/setup/mp_setupmp5.s rename to src/setup/mp_setupmp5.c index afacc38f9..76dcd3e9c 100644 --- a/asm/setup/mp_setupmp5.s +++ b/src/setup/mp_setupmp5.c @@ -1,122 +1,142 @@ -# -# Car Park (MP) -# +// +// Car Park (MP) +// -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" +#include "../include/setup.h" -props: - weapon 0x0100, 0x0000, 0x0116, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0120, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0121, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0117, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0122, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0123, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0118, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0124, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0125, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0119, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0126, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0127, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x011a, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0128, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0129, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x011b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x012a, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x012b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x011c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf6, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x012c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x012d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x011d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf7, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x012e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x012f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x011e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf8, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0130, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0131, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x011f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf9, 0x00ffffff, 0x00000000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0132, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0133, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - door 0x0100, MODEL_CH_SHUTTER1, 0x010a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x010b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x010c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x010d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x010e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x010f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x0110, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x0111, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x0112, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x0113, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x0114, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_CH_SHUTTER1, 0x0115, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + weapon(0x0100, 0x0000, 0x0116, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0120, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0121, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0117, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0122, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0123, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0118, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0124, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0125, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0119, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0126, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0127, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x011a, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0128, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0129, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x011b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x012a, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x012b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x011c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf6, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x012c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x012d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x011d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf7, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x012e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x012f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x011e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf8, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0130, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0131, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x011f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf9, 0x00ffffff, 0x00000000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0132, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, 0x0133, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + door(0x0100, MODEL_CH_SHUTTER1, 0x010a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x010b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x010c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x010d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x010e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x010f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x0110, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x0111, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x0112, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x0113, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x0114, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x0115, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, 0x00040004, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) endprops +}; -intro: - outfit OUTFIT_DEFAULT - spawn 0x001c - spawn 0x001d - spawn 0x001e - spawn 0x001f - spawn 0x0020 - spawn 0x0021 - spawn 0x0022 - spawn 0x0023 - spawn 0x0024 - spawn 0x0025 - spawn 0x0026 - spawn 0x0027 - case 0, 0x0006 - case_respawn 0, 0x0000 - case_respawn 0, 0x0001 - case_respawn 0, 0x0002 - case_respawn 0, 0x0003 - case_respawn 0, 0x0004 - case_respawn 0, 0x0005 - case 1, 0x000d - case_respawn 1, 0x0007 - case_respawn 1, 0x0008 - case_respawn 1, 0x0009 - case_respawn 1, 0x000a - case_respawn 1, 0x000b - case_respawn 1, 0x000c - case 2, 0x0014 - case_respawn 2, 0x000e - case_respawn 2, 0x000f - case_respawn 2, 0x0010 - case_respawn 2, 0x0011 - case_respawn 2, 0x0012 - case_respawn 2, 0x0013 - case 3, 0x001b - case_respawn 3, 0x0015 - case_respawn 3, 0x0016 - case_respawn 3, 0x0017 - case_respawn 3, 0x0018 - case_respawn 3, 0x0019 - case_respawn 3, 0x001a - hill 0x00c3 - hill 0x0075 - hill 0x00fa - hill 0x0089 - hill 0x0048 +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + spawn(0x001c) + spawn(0x001d) + spawn(0x001e) + spawn(0x001f) + spawn(0x0020) + spawn(0x0021) + spawn(0x0022) + spawn(0x0023) + spawn(0x0024) + spawn(0x0025) + spawn(0x0026) + spawn(0x0027) + case(0, 0x0006) + case_respawn(0, 0x0000) + case_respawn(0, 0x0001) + case_respawn(0, 0x0002) + case_respawn(0, 0x0003) + case_respawn(0, 0x0004) + case_respawn(0, 0x0005) + case(1, 0x000d) + case_respawn(1, 0x0007) + case_respawn(1, 0x0008) + case_respawn(1, 0x0009) + case_respawn(1, 0x000a) + case_respawn(1, 0x000b) + case_respawn(1, 0x000c) + case(2, 0x0014) + case_respawn(2, 0x000e) + case_respawn(2, 0x000f) + case_respawn(2, 0x0010) + case_respawn(2, 0x0011) + case_respawn(2, 0x0012) + case_respawn(2, 0x0013) + case(3, 0x001b) + case_respawn(3, 0x0015) + case_respawn(3, 0x0016) + case_respawn(3, 0x0017) + case_respawn(3, 0x0018) + case_respawn(3, 0x0019) + case_respawn(3, 0x001a) + hill(0x00c3) + hill(0x0075) + hill(0x00fa) + hill(0x0089) + hill(0x0048) endintro +}; -paths: - endpaths +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; -func1001_1dc0: - cmd01b2_mponly 8 - set_function CHR_SELF, GFUNC_IDLE +u8 func1001_1dc0[] = { + cmd01b2_mponly(8) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1000_1dcc: +u8 func1000_1dcc[] = { cmd0185_mponly cmd0145_rebuild_groups cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -functions: - register_function func1000_1dcc 0x1000 - register_function func1001_1dc0 0x1001 - endfunctions +struct ailists functions[] = { + { func1000_1dcc, 0x1000 }, + { func1001_1dc0, 0x1001 }, + { NULL, 0 }, +}; -.align 4 diff --git a/src/setup/mp_setupmp6.c b/src/setup/mp_setupmp6.c new file mode 100644 index 000000000..6a3871b7e --- /dev/null +++ b/src/setup/mp_setupmp6.c @@ -0,0 +1,46 @@ +// +// Stage ID 0x3e +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 unregistered_func1[] = { + cmd0185_mponly + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setupmp7.c b/src/setup/mp_setupmp7.c new file mode 100644 index 000000000..de600be6e --- /dev/null +++ b/src/setup/mp_setupmp7.c @@ -0,0 +1,48 @@ +// +// Stage ID 0x3f +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 func1000_0038[] = { + cmd0185_mponly + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +struct ailists functions[] = { + { func1000_0038, 0x1000 }, + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setupmp8.c b/src/setup/mp_setupmp8.c new file mode 100644 index 000000000..b49872edd --- /dev/null +++ b/src/setup/mp_setupmp8.c @@ -0,0 +1,48 @@ +// +// Stage ID 0x40 +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 func1000_0038[] = { + cmd0185_mponly + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +struct ailists functions[] = { + { func1000_0038, 0x1000 }, + { NULL, 0 }, +}; + diff --git a/asm/setup/mp_setupmp9.s b/src/setup/mp_setupmp9.c similarity index 75% rename from asm/setup/mp_setupmp9.s rename to src/setup/mp_setupmp9.c index 0f2ece159..88d109827 100644 --- a/asm/setup/mp_setupmp9.s +++ b/src/setup/mp_setupmp9.c @@ -1,117 +1,136 @@ -# -# Ruins (MP) -# +// +// Ruins (MP) +// -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" +#include "../include/setup.h" -props: - weapon 0x0100, 0x0000, 0x0000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x000c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x000d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x000e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x000f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0002, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0010, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0011, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0003, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0012, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0013, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0014, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0015, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0005, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0016, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0017, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0006, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf6, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0018, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0019, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0007, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf7, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x001a, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x001b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf8, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x001c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x001d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0009, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf9, 0x00ffffff, 0x00000000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x001e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x001f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0020, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0021, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0022, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0023, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - door 0x0100, MODEL_SK_DOOR1, 0x00b2, 0x10000000, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 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, 0x00b3, 0x10000000, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 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, 0x00b4, 0x10000000, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 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, 0x00b5, 0x10000000, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 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, 0x00b6, 0x10000000, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 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, 0x00b7, 0x10000000, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 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, 0x00b8, 0x10000000, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 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, 0x00b9, 0x10000000, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 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 +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + weapon(0x0100, 0x0000, 0x0000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x000c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x000d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x000e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x000f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0002, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0010, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0011, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0003, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0012, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0013, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0014, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0015, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0005, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0016, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0017, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0006, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf6, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0018, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0019, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0007, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf7, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x001a, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x001b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf8, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x001c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x001d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0009, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf9, 0x00ffffff, 0x00000000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x001e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x001f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0020, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0021, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0022, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0023, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + door(0x0100, MODEL_SK_DOOR1, 0x00b2, 0x10000000, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 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, 0x00b3, 0x10000000, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 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, 0x00b4, 0x10000000, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 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, 0x00b5, 0x10000000, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 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, 0x00b6, 0x10000000, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 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, 0x00b7, 0x10000000, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 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, 0x00b8, 0x10000000, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 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, 0x00b9, 0x10000000, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 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) endprops +}; -intro: - spawn 0x0040 - spawn 0x0041 - spawn 0x0042 - spawn 0x0043 - spawn 0x0044 - spawn 0x0045 - spawn 0x0046 - spawn 0x0047 - spawn 0x0048 - spawn 0x0049 - spawn 0x004a - spawn 0x004b - case 0, 0x0024 - case_respawn 0, 0x0025 - case_respawn 0, 0x0026 - case_respawn 0, 0x0027 - case_respawn 0, 0x0028 - case_respawn 0, 0x0029 - case_respawn 0, 0x002a - case 1, 0x0031 - case_respawn 1, 0x002b - case_respawn 1, 0x002c - case_respawn 1, 0x002d - case_respawn 1, 0x002e - case_respawn 1, 0x002f - case_respawn 1, 0x0030 - case 2, 0x0038 - case_respawn 2, 0x0032 - case_respawn 2, 0x0033 - case_respawn 2, 0x0034 - case_respawn 2, 0x0035 - case_respawn 2, 0x0036 - case_respawn 2, 0x0037 - case 3, 0x003f - case_respawn 3, 0x0039 - case_respawn 3, 0x003a - case_respawn 3, 0x003b - case_respawn 3, 0x003c - case_respawn 3, 0x003d - case_respawn 3, 0x003e - hill 0x009b - hill 0x00b0 - hill 0x0064 - hill 0x005f - hill 0x0053 - hill 0x0070 - hill 0x009b +u8 intro[] = { + spawn(0x0040) + spawn(0x0041) + spawn(0x0042) + spawn(0x0043) + spawn(0x0044) + spawn(0x0045) + spawn(0x0046) + spawn(0x0047) + spawn(0x0048) + spawn(0x0049) + spawn(0x004a) + spawn(0x004b) + case(0, 0x0024) + case_respawn(0, 0x0025) + case_respawn(0, 0x0026) + case_respawn(0, 0x0027) + case_respawn(0, 0x0028) + case_respawn(0, 0x0029) + case_respawn(0, 0x002a) + case(1, 0x0031) + case_respawn(1, 0x002b) + case_respawn(1, 0x002c) + case_respawn(1, 0x002d) + case_respawn(1, 0x002e) + case_respawn(1, 0x002f) + case_respawn(1, 0x0030) + case(2, 0x0038) + case_respawn(2, 0x0032) + case_respawn(2, 0x0033) + case_respawn(2, 0x0034) + case_respawn(2, 0x0035) + case_respawn(2, 0x0036) + case_respawn(2, 0x0037) + case(3, 0x003f) + case_respawn(3, 0x0039) + case_respawn(3, 0x003a) + case_respawn(3, 0x003b) + case_respawn(3, 0x003c) + case_respawn(3, 0x003d) + case_respawn(3, 0x003e) + hill(0x009b) + hill(0x00b0) + hill(0x0064) + hill(0x005f) + hill(0x0053) + hill(0x0070) + hill(0x009b) endintro +}; -paths: - endpaths +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; -func1000_1cf8: +u8 func1000_1cf8[] = { cmd0185_mponly cmd0145_rebuild_groups cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -functions: - register_function func1000_1cf8 0x1000 - endfunctions +struct ailists functions[] = { + { func1000_1cf8, 0x1000 }, + { NULL, 0 }, +}; -.align 4 diff --git a/asm/setup/mp_setupoat.s b/src/setup/mp_setupoat.c similarity index 73% rename from asm/setup/mp_setupoat.s rename to src/setup/mp_setupoat.c index f0a0fc936..0b7ef549a 100644 --- a/asm/setup/mp_setupoat.s +++ b/src/setup/mp_setupoat.c @@ -1,124 +1,145 @@ -# -# Skedar (MP) -# +// +// Skedar (MP) +// -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" +#include "../include/setup.h" -props: - weapon 0x0200, 0x0000, 0x00cd, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00dc, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00dd, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0200, 0x0000, 0x00ce, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00de, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00df, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0200, 0x0000, 0x00cf, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00e0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0133, 0x0000, 0x00d0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00e2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00e3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0133, 0x0000, 0x00d1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00e4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00e5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0133, 0x0000, 0x00d2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00e6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00e7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00d3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf6, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00e8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00e9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00d4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf7, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00ea, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00eb, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00d5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf8, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00ec, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00ed, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00d6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf9, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00ee, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00ef, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00d7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xfa, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00f0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00f1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00d8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xfb, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00f2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00f3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00d9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xfc, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00f4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00f5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00da, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xfd, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00f6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00f7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x00db, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xfe, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00f8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x00f9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + weapon(0x0200, 0x0000, 0x00cd, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00dc, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00dd, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0200, 0x0000, 0x00ce, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00de, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00df, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0200, 0x0000, 0x00cf, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00e0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0133, 0x0000, 0x00d0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00e2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00e3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0133, 0x0000, 0x00d1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00e4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00e5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0133, 0x0000, 0x00d2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00e6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00e7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00d3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf6, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00e8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00e9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00d4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf7, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00ea, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00eb, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00d5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf8, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00ec, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00ed, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00d6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf9, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00ee, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00ef, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00d7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xfa, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00f0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00f1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00d8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xfb, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00f2, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00f3, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00d9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xfc, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00f4, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00f5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00da, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xfd, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00f6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00f7, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x00db, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xfe, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00f8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x00f9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) endprops +}; -intro: - spawn 0x00a5 - spawn 0x00a6 - spawn 0x00a7 - spawn 0x00a8 - spawn 0x00a9 - spawn 0x00aa - spawn 0x00ab - spawn 0x00ac - spawn 0x00ad - spawn 0x00ae - spawn 0x00af - spawn 0x00b0 - case 0, 0x00b1 - case_respawn 0, 0x00b2 - case_respawn 0, 0x00b3 - case_respawn 0, 0x00b4 - case_respawn 0, 0x00b5 - case_respawn 0, 0x00b6 - case_respawn 0, 0x00b7 - case 1, 0x00b8 - case_respawn 1, 0x00b9 - case_respawn 1, 0x00ba - case_respawn 1, 0x00bb - case_respawn 1, 0x00bc - case_respawn 1, 0x00bd - case_respawn 1, 0x00be - case 2, 0x00bf - case_respawn 2, 0x00c0 - case_respawn 2, 0x00c1 - case_respawn 2, 0x00c2 - case_respawn 2, 0x00c3 - case_respawn 2, 0x00c4 - case_respawn 2, 0x00c5 - case 3, 0x00c6 - case_respawn 3, 0x00c7 - case_respawn 3, 0x00c8 - case_respawn 3, 0x00c9 - case_respawn 3, 0x00ca - case_respawn 3, 0x00cb - case_respawn 3, 0x00cc - hill 0x0093 - hill 0x00d5 - hill 0x008d - hill 0x00da - hill 0x0076 +u8 intro[] = { + spawn(0x00a5) + spawn(0x00a6) + spawn(0x00a7) + spawn(0x00a8) + spawn(0x00a9) + spawn(0x00aa) + spawn(0x00ab) + spawn(0x00ac) + spawn(0x00ad) + spawn(0x00ae) + spawn(0x00af) + spawn(0x00b0) + case(0, 0x00b1) + case_respawn(0, 0x00b2) + case_respawn(0, 0x00b3) + case_respawn(0, 0x00b4) + case_respawn(0, 0x00b5) + case_respawn(0, 0x00b6) + case_respawn(0, 0x00b7) + case(1, 0x00b8) + case_respawn(1, 0x00b9) + case_respawn(1, 0x00ba) + case_respawn(1, 0x00bb) + case_respawn(1, 0x00bc) + case_respawn(1, 0x00bd) + case_respawn(1, 0x00be) + case(2, 0x00bf) + case_respawn(2, 0x00c0) + case_respawn(2, 0x00c1) + case_respawn(2, 0x00c2) + case_respawn(2, 0x00c3) + case_respawn(2, 0x00c4) + case_respawn(2, 0x00c5) + case(3, 0x00c6) + case_respawn(3, 0x00c7) + case_respawn(3, 0x00c8) + case_respawn(3, 0x00c9) + case_respawn(3, 0x00ca) + case_respawn(3, 0x00cb) + case_respawn(3, 0x00cc) + hill(0x0093) + hill(0x00d5) + hill(0x008d) + hill(0x00da) + hill(0x0076) endintro +}; -path00: - endpath +s32 path00[] = { + -1, +}; -paths: - endpaths +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; -unregistered_func1: +u8 unregistered_func1[] = { endfunction +}; -func1000_1c08: +u8 func1000_1c08[] = { cmd0185_mponly cmd0145_rebuild_groups cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -functions: - register_function func1000_1c08 0x1000 - endfunctions +struct ailists functions[] = { + { func1000_1c08, 0x1000 }, + { NULL, 0 }, +}; -.align 4 diff --git a/src/setup/mp_setupold.c b/src/setup/mp_setupold.c new file mode 100644 index 000000000..9827345f3 --- /dev/null +++ b/src/setup/mp_setupold.c @@ -0,0 +1,39 @@ +// +// Stage ID 0x4e +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setuppam.c b/src/setup/mp_setuppam.c new file mode 100644 index 000000000..8d841f00b --- /dev/null +++ b/src/setup/mp_setuppam.c @@ -0,0 +1,48 @@ +// +// Deep Sea +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + intro_weapon(WEAPON_UNARMED, -1) + outfit(OUTFIT_DEFAULT) + endintro +}; + +s32 path00[] = { + -1, +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 func0000_004c[] = { + endfunction +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setuppete.c b/src/setup/mp_setuppete.c new file mode 100644 index 000000000..7b621a80f --- /dev/null +++ b/src/setup/mp_setuppete.c @@ -0,0 +1,63 @@ +// +// Chicago +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +char *text_stagename = "S T . P E T E R S B U R G\n"; +char *text_briefing1 = "use the stolen tank to chase the car containing natalya. you are up against a time limit.\n"; +char *text_briefing2 = "\n"; +char *text_briefing3 = "\n"; +char *text_briefing4 = "\n"; +char *text_objective1 = "\n\n\n"; +char *text_objective2 = "\n\n\n"; +char *text_objective3 = "\n"; + +u8 props[] = { + briefing(0, 0x0020) + briefing(1, 0x0024) + briefing(2, 0x0028) + briefing(3, 0x002c) + briefing(4, 0x0030) + + beginobjective(0, 0x0034, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) + endobjective + + beginobjective(1, 0x0038, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) + endobjective + + beginobjective(2, 0x003c, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) + endobjective + endprops +}; + +u8 intro[] = { + intro_weapon(WEAPON_PP9I, -1) + ammo(AMMOTYPE_PISTOL, 100) + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; diff --git a/asm/setup/mp_setupref.s b/src/setup/mp_setupref.c similarity index 64% rename from asm/setup/mp_setupref.s rename to src/setup/mp_setupref.c index 83fdb8baf..3c9d596ab 100644 --- a/asm/setup/mp_setupref.s +++ b/src/setup/mp_setupref.c @@ -1,122 +1,143 @@ -# -# Complex (MP) -# +// +// Complex (MP) +// -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" +#include "../include/setup.h" -props: - weapon 0x0200, 0x0000, 0x002f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x0039, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x003a, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0200, 0x0000, 0x0030, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x003b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x003c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0200, 0x0000, 0x0031, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x003d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x003e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0133, 0x0000, 0x0032, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x003f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x0040, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0133, 0x0000, 0x0033, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x0041, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x0042, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0133, 0x0000, 0x0034, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x0043, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x0044, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0035, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf6, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x0045, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x0046, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0036, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf7, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x0047, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x0048, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0037, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf8, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x0049, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x004a, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - weapon 0x0100, 0x0000, 0x0038, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf9, 0x00ffffff, 0x00000000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x004b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - ammocratemulti 0x0099, MODEL_MULTI_AMMO_CRATE, 0x004c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000 - object 0x0100, MODEL_A51_CRATE2, 0x004f, 0x00020101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0050, 0x00020101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0051, 0x00020101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x004d, 0x00020101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x004e, 0x00020101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + weapon(0x0200, 0x0000, 0x002f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf0, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x0039, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x003a, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0200, 0x0000, 0x0030, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf1, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x003b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x003c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0200, 0x0000, 0x0031, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf2, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x003d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x003e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0133, 0x0000, 0x0032, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf3, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x003f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x0040, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0133, 0x0000, 0x0033, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf4, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x0041, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x0042, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0133, 0x0000, 0x0034, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf5, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x0043, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x0044, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0035, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf6, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x0045, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x0046, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0036, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf7, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x0047, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x0048, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0037, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf8, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x0049, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x004a, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + weapon(0x0100, 0x0000, 0x0038, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xf9, 0x00ffffff, 0x00000000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x004b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, 0x004c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x004f, 0x00020101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0050, 0x00020101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0051, 0x00020101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x004d, 0x00020101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x004e, 0x00020101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) endprops +}; -intro: - spawn 0x001c - spawn 0x001d - spawn 0x001e - spawn 0x001f - spawn 0x0020 - spawn 0x0021 - spawn 0x0022 - spawn 0x0023 - spawn 0x0024 - spawn 0x0025 - spawn 0x0026 - spawn 0x0027 - spawn 0x0028 - spawn 0x0029 - spawn 0x002a - spawn 0x002b - spawn 0x002c - spawn 0x002d - spawn 0x002e - case 0, 0x0006 - case_respawn 0, 0x0000 - case_respawn 0, 0x0001 - case_respawn 0, 0x0002 - case_respawn 0, 0x0003 - case_respawn 0, 0x0004 - case_respawn 0, 0x0005 - case 1, 0x000d - case_respawn 1, 0x0007 - case_respawn 1, 0x0008 - case_respawn 1, 0x0009 - case_respawn 1, 0x000a - case_respawn 1, 0x000b - case_respawn 1, 0x000c - case 2, 0x0014 - case_respawn 2, 0x000e - case_respawn 2, 0x000f - case_respawn 2, 0x0010 - case_respawn 2, 0x0011 - case_respawn 2, 0x0012 - case_respawn 2, 0x0013 - case 3, 0x001b - case_respawn 3, 0x0015 - case_respawn 3, 0x0016 - case_respawn 3, 0x0017 - case_respawn 3, 0x0018 - case_respawn 3, 0x0019 - case_respawn 3, 0x001a - hill 0x0067 - hill 0x007b - hill 0x00d5 - hill 0x0092 - hill 0x008b - outfit OUTFIT_DEFAULT +u8 intro[] = { + spawn(0x001c) + spawn(0x001d) + spawn(0x001e) + spawn(0x001f) + spawn(0x0020) + spawn(0x0021) + spawn(0x0022) + spawn(0x0023) + spawn(0x0024) + spawn(0x0025) + spawn(0x0026) + spawn(0x0027) + spawn(0x0028) + spawn(0x0029) + spawn(0x002a) + spawn(0x002b) + spawn(0x002c) + spawn(0x002d) + spawn(0x002e) + case(0, 0x0006) + case_respawn(0, 0x0000) + case_respawn(0, 0x0001) + case_respawn(0, 0x0002) + case_respawn(0, 0x0003) + case_respawn(0, 0x0004) + case_respawn(0, 0x0005) + case(1, 0x000d) + case_respawn(1, 0x0007) + case_respawn(1, 0x0008) + case_respawn(1, 0x0009) + case_respawn(1, 0x000a) + case_respawn(1, 0x000b) + case_respawn(1, 0x000c) + case(2, 0x0014) + case_respawn(2, 0x000e) + case_respawn(2, 0x000f) + case_respawn(2, 0x0010) + case_respawn(2, 0x0011) + case_respawn(2, 0x0012) + case_respawn(2, 0x0013) + case(3, 0x001b) + case_respawn(3, 0x0015) + case_respawn(3, 0x0016) + case_respawn(3, 0x0017) + case_respawn(3, 0x0018) + case_respawn(3, 0x0019) + case_respawn(3, 0x001a) + hill(0x0067) + hill(0x007b) + hill(0x00d5) + hill(0x0092) + hill(0x008b) + outfit(OUTFIT_DEFAULT) endintro +}; -path00: - endpath +s32 path00[] = { + -1, +}; -paths: - endpaths +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; -unregistered_func1: +u8 unregistered_func1[] = { endfunction +}; -func1000_1598: +u8 func1000_1598[] = { cmd0185_mponly cmd0145_rebuild_groups cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -functions: - register_function func1000_1598 0x1000 - endfunctions +struct ailists functions[] = { + { func1000_1598, 0x1000 }, + { NULL, 0 }, +}; -.align 4 diff --git a/src/setup/mp_setuprit.c b/src/setup/mp_setuprit.c new file mode 100644 index 000000000..11ae70f9f --- /dev/null +++ b/src/setup/mp_setuprit.c @@ -0,0 +1,48 @@ +// +// Air Force One +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + intro_weapon(WEAPON_UNARMED, -1) + outfit(OUTFIT_DEFAULT) + endintro +}; + +s32 path00[] = { + -1, +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 func0000_004c[] = { + endfunction +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setuprun.c b/src/setup/mp_setuprun.c new file mode 100644 index 000000000..81476b4fc --- /dev/null +++ b/src/setup/mp_setuprun.c @@ -0,0 +1,52 @@ +// +// Stage ID 0x23 +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 unregistered_func1[] = { + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 unregistered_func2[] = { + cmd0185_mponly + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setupsev.c b/src/setup/mp_setupsev.c new file mode 100644 index 000000000..7d66f1999 --- /dev/null +++ b/src/setup/mp_setupsev.c @@ -0,0 +1,39 @@ +// +// Maian SOS +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setupsevb.c b/src/setup/mp_setupsevb.c new file mode 100644 index 000000000..77dd2ef0e --- /dev/null +++ b/src/setup/mp_setupsevb.c @@ -0,0 +1,39 @@ +// +// Retaking the Institute +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setupsevx.c b/src/setup/mp_setupsevx.c new file mode 100644 index 000000000..8beebeccf --- /dev/null +++ b/src/setup/mp_setupsevx.c @@ -0,0 +1,38 @@ +// +// Stage IDs 0x24 and 0x2b +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setupsho.c b/src/setup/mp_setupsho.c new file mode 100644 index 000000000..ac2f573f3 --- /dev/null +++ b/src/setup/mp_setupsho.c @@ -0,0 +1,38 @@ +// +// Skedar Ruins +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + endintro +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + diff --git a/src/setup/mp_setupsilo.c b/src/setup/mp_setupsilo.c new file mode 100644 index 000000000..1f451f133 --- /dev/null +++ b/src/setup/mp_setupsilo.c @@ -0,0 +1,39 @@ +// +// Stage ID 0x14 +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setupstat.c b/src/setup/mp_setupstat.c new file mode 100644 index 000000000..e3fc956f5 --- /dev/null +++ b/src/setup/mp_setupstat.c @@ -0,0 +1,38 @@ +// +// WAR! +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setuptra.c b/src/setup/mp_setuptra.c new file mode 100644 index 000000000..fce91f1a3 --- /dev/null +++ b/src/setup/mp_setuptra.c @@ -0,0 +1,38 @@ +// +// Escape +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setupuff.c b/src/setup/mp_setupuff.c new file mode 100644 index 000000000..e649c7766 --- /dev/null +++ b/src/setup/mp_setupuff.c @@ -0,0 +1,46 @@ +// +// Stage ID 0x4d +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + endintro +}; + +s32 path00[] = { + -1, +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 func0000_0034[] = { + endfunction +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/mp_setupwax.c b/src/setup/mp_setupwax.c new file mode 100644 index 000000000..eb2c27553 --- /dev/null +++ b/src/setup/mp_setupwax.c @@ -0,0 +1,46 @@ +// +// Mr. Blonde's Revenge +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + endintro +}; + +s32 path00[] = { + -1, +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 func0000_0034[] = { + endfunction +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setupame.c b/src/setup/setupame.c new file mode 100644 index 000000000..b81728597 --- /dev/null +++ b/src/setup/setupame.c @@ -0,0 +1,4098 @@ +// +// Defection +// + +#include "../include/setup.h" + +// Characters +#define CHR_CASS 0x24 +#define CHR_SECRETARY 0x25 +#define CHR_PROGRAMMER 0x26 + +// Objects +#define OBJ_NECKLACE 0x00 +#define OBJ_SECURITYHUB 0x03 +#define OBJ_EXTCOMMSHUB 0x04 +#define OBJ_PC 0x0c +#define OBJ_DOORSWITCH 0x0d +#define OBJ_OFFICEDOOR1 0x0e +#define OBJ_OFFICEDOOR2 0x0f +#define OBJ_LIGHTSWITCH 0x14 +#define OBJ_JUMPSHIP1 0x17 +#define OBJ_ROPE 0x18 +#define OBJ_BANNER1 0x19 +#define OBJ_BANNER2 0x1a +#define OBJ_JUMPSHIP2 0x1b +#define OBJ_HOVERTAXI1 0x1c +#define OBJ_HOVERTAXI2 0x1e +#define OBJ_HOVERCOP1 0x1f +#define OBJ_HOVERCOP2 0x20 +#define OBJ_HOVERCAR1 0x21 +#define OBJ_HOVERCAR2 0x22 +#define OBJ_HOVERMOTO1 0x23 +#define OBJ_HOVERMOTO2 0x24 +#define OBJ_HOVERTRUCK1 0x25 +#define OBJ_HOVERTRUCK2 0x26 +#define OBJ_HOVERCAB1 0x27 +#define OBJ_HOVERCAB2 0x28 +#define OBJ_HOVERCOP3 0x29 +#define OBJ_HOVERCAR3 0x2a +#define OBJ_HOVERMOTO3 0x2b +#define OBJ_HOVERCAB3 0x2c +#define OBJ_HOVERTRUCK3 0x2d +#define OBJ_LABLIFTDOOR1 0x2e +#define OBJ_LABLIFTDOOR2 0x2f +#define OBJ_POLICECAR 0x30 +#define OBJ_ECMMINE_JOANNA 0x31 +#define OBJ_DATAUPLINK_JOANNA 0x32 +#define OBJ_SECRETDOOR 0x33 +#define OBJ_ECMMINE_VELVET 0x3e +#define OBJ_DATAUPLINK_VELVET 0x3f +#define OBJ_LAPTOPGUNDOOR 0x40 +#define OBJ_LAPTOPGUN 0x43 +#define OBJ_LIFT1 0x4e +#define OBJ_LIFT2 0x4f +#define OBJ_CAMERA1 0x50 +#define OBJ_CAMERA2 0x51 +#define OBJ_CAMERA3 0x52 +#define OBJ_CAMERA4 0x53 +#define OBJ_CAMERA5 0x54 +#define OBJ_CAMERA6 0x55 +#define OBJ_LIFT1DOOR1 0x56 +#define OBJ_LIFT1DOOR2 0x57 +#define OBJ_LIFT1DOOR3 0x58 +#define OBJ_LIFT1DOOR4 0x59 +#define OBJ_LIFT2DOOR1 0x5a +#define OBJ_LIFT2DOOR2 0x5b +#define OBJ_LIFT2DOOR3 0x5c +#define OBJ_LIFT2DOOR4 0x5d +#define OBJ_FALCONSIL1 0x61 +#define OBJ_FALCONSIL2 0x62 +#define OBJ_PCMONITOR 0x63 + +// Stage flags +#define STAGEFLAG_TALKED_TO_PROGRAMMER 0x00000001 +#define STAGEFLAG_SECRETARY_SAW_VELVET 0x00000002 +#define STAGEFLAG_STOP_INTRO 0x00000004 +#define STAGEFLAG_SECURITY_DISABLED 0x00000008 +#define STAGEFLAG_TRIGGER_INTRO 0x00000010 +#define STAGEFLAG_SECURITYHUB_COMPLETE 0x00000100 +#define STAGEFLAG_EXTCOMMSHUB_COMPLETE 0x00000200 +#define STAGEFLAG_SECURITYHUB_MINES_WASTED 0x00000400 +#define STAGEFLAG_EXTCOMMSHUB_MINES_WASTED 0x00000800 +#define STAGEFLAG_LIGHTS_OFF 0x00001000 +#define STAGEFLAG_CIVILIANS_KILLED 0x00002000 +#define STAGEFLAG_OFFICE_DOOR_UNLOCKED 0x00004000 +#define STAGEFLAG_PROGRAMMER_DEAD 0x00010000 +#define STAGEFLAG_PROGRAMMER_WALKING 0x00020000 +#define STAGEFLAG_DELETED_WITHOUT_DOWNLOAD 0x00040000 +#define STAGEFLAG_PROGRAMMER_LOGGED_IN 0x00080000 +#define STAGEFLAG_PROGRAMMER_RAN_TO_GUARD 0x00100000 +#define STAGEFLAG_PERSONALITY_DELETED 0x00200000 +#define STAGEFLAG_PROGRAMMER_INJURED 0x00400000 +#define STAGEFLAG_DOWNLOAD_COMPLETE 0x00800000 +#define STAGEFLAG_LAB_LIFT_LOCATED 0x02000000 +#define STAGEFLAG_PC_DESTROYED 0x04000000 +#define STAGEFLAG_SECURITYHUB_DESTROYED 0x08000000 +#define STAGEFLAG_EXTCOMMSHUB_DESTROYED 0x10000000 +#define STAGEFLAG_DOORSWITCH_DESTROYED 0x20000000 +#define STAGEFLAG_SECETARY_SAW_JO_OR_VELVET 0x40000000 +#define STAGEFLAG_LAB_ELEVATOR_CLOSED 0x80000000 + +// Functions +#define FUNC_INIT_HOVERCAR 0x0404 +#define FUNC_CASS 0x040f +#define FUNC_INIT_CASS 0x0410 +#define FUNC_SECRETARY 0x0411 +#define FUNC_INIT_SECRETARY 0x0412 +#define FUNC_PROGRAMMER 0x0414 +#define FUNC_OUTRO 0x0416 +#define FUNC_INIT_DD_GUARD 0x0417 +#define FUNC_INIT_SHOCK_GUARD 0x0418 +#define FUNC_INTRO_0419 0x0419 +#define FUNC_INTRO_041A 0x041a +#define FUNC_INTRO_041B 0x041b +#define FUNC_INTRO_041C 0x041c +#define FUNC_INTRO_041E 0x041e +#define FUNC_INTRO_041F 0x041f +#define FUNC_INTRO_041D 0x041d +#define FUNC_INTRO_0420 0x0420 +#define FUNC_INTRO_0421 0x0421 +#define FUNC_INTRO 0x0422 +#define FUNC_INTRO_0423 0x0423 +#define FUNC_INTRO_0424 0x0424 +#define FUNC_INTRO_0425 0x0425 +#define FUNC_INTRO_0426 0x0426 +#define FUNC_INTRO_0427 0x0427 +#define FUNC_INTRO_0428 0x0428 +#define FUNC_INTRO_0429 0x0429 +#define FUNC_INTRO_042A 0x042a +#define FUNC_INTRO_042B 0x042b +#define FUNC_INTRO_042C 0x042c +#define FUNC_INTRO_042D 0x042d +#define FUNC_SURRENDERING_GUARD 0x042f +#define FUNC_INIT_FALCON_GUARD 0x0430 + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + briefing(0, 0x0201) + briefing(1, 0x0200) + briefing(2, 0x0202) + briefing(3, 0x0203) + + beginobjective(0, 0x0210, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Disable internal security hub" + complete_flags(STAGEFLAG_SECURITYHUB_COMPLETE) + fail_flags(STAGEFLAG_SECURITYHUB_MINES_WASTED) + fail_flags(STAGEFLAG_SECURITYHUB_DESTROYED) + endobjective + + beginobjective(1, 0x0211, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Obtain keycode necklace" + require_object_collected(OBJ_NECKLACE) + fail_flags(STAGEFLAG_DOORSWITCH_DESTROYED) + fail_flags(STAGEFLAG_CIVILIANS_KILLED) + endobjective + + beginobjective(2, 0x0212, (DIFFBIT_PA | DIFFBIT_PD)) // "Download project files" + complete_flags(STAGEFLAG_DOWNLOAD_COMPLETE) + fail_flags(STAGEFLAG_PROGRAMMER_DEAD) + fail_flags(STAGEFLAG_DELETED_WITHOUT_DOWNLOAD) + fail_flags(STAGEFLAG_PC_DESTROYED) + endobjective + + beginobjective(3, 0x0213, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Disable external comms hub" + complete_flags(STAGEFLAG_EXTCOMMSHUB_COMPLETE) + fail_flags(STAGEFLAG_EXTCOMMSHUB_MINES_WASTED) + fail_flags(STAGEFLAG_EXTCOMMSHUB_DESTROYED) + endobjective + + beginobjective(4, 0x0214, DIFFBIT_A) // "Gain entrance to laboratory" + complete_flags(STAGEFLAG_LAB_LIFT_LOCATED) + fail_flags(STAGEFLAG_CIVILIANS_KILLED) + endobjective + + beginobjective(5, 0x0214, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Gain entrance to laboratory" + complete_flags(STAGEFLAG_LAB_LIFT_LOCATED) + endobjective + + tag(0x3d, 1) + vent_fan(0x0100, MODEL_DD_FANROOF, 0x0095, 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_DD_FANROOF, 0x0096, 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_DD_FANROOF, 0x0097, 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_DD_FANROOF, 0x0098, 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_DD_FANWALL, 0x0099, 0x000204e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000222, 0x00000000, 0x00000002, 0x01000000) + tag(0x2e, 1) + door(0x0100, MODEL_DOOR4A_G5, 0x022b, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001200, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR4B_G5, 0x022c, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x2f, -1) + door(0x0100, MODEL_DD_DECODOOR, 0x0226, 0x10000400, 0x080000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000020, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DECODOOR, 0x0226, 0x10000400, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DECODOOR, 0x0227, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x0229, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x022a, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x33, 1) + door(0x0100, MODEL_DD_SECRETDOOR, 0x0228, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x02140000, 0x00000020, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_SECRETDOOR, 0x00bc, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x02140000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00a0, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00a1, 0x10000400, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00a2, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00a3, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00a4, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00a5, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00a6, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00a7, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00b2, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00b3, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00a8, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00a9, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00aa, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00ab, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00ac, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00ad, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00ae, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00b1, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x0e, 2) + tag(0x0f, 2) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00af, 0x10000000, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x00000005, 0x00000001, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00b0, 0x30000000, 0x30000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x00000005, 0x00000001, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_SERVICEDOOR, 0x00b4, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_SERVICEDOOR, 0x00b5, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_SERVICEDOOR, 0x00b6, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_SERVICEDOOR, 0x00b7, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x40, 1) + door(0x0100, MODEL_DD_SERVICEDOOR, 0x00bb, 0x10000400, 0x30000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_WINDDOOR, 0x00b8, 0x14000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_WINDDOOR, 0x00b9, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_WINDDOOR, 0x00ba, 0x94000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x56, 6) + tag(0x57, 6) + tag(0x58, 6) + tag(0x59, 6) + tag(0x4e, 1) + lift(0x0100, MODEL_DD_LIFTR, 0x0256, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0256, 0x012f, 0x012e0130, 0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x0224, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x009c, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x009b, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x009a, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-4, -5, 0, 0) + link_objects(-4, -6, 0, 1) + link_objects(-4, -7, 0, 2) + link_objects(-4, -8, 0, 3) + tag(0x5a, 6) + tag(0x5b, 6) + tag(0x5c, 6) + tag(0x5d, 6) + tag(0x4f, 1) + lift(0x0100, MODEL_DD_LIFTR, 0x012d, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012d, 0x012c, 0x012b0255, 0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x009d, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x009e, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x009f, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x0225, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-4, -5, 0, 0) + link_objects(-4, -6, 0, 1) + link_objects(-4, -7, 0, 2) + link_objects(-4, -8, 0, 3) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00bd, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00be, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00bf, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00c0, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00c1, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00c2, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00c3, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00c4, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00c5, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00c6, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00c7, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00c8, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00ca, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00cb, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00cc, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00cd, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00ce, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00cf, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x0235, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x0236, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x0237, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x0238, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x0239, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x023a, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x011b, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x011c, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00df, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e0, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e1, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e2, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e3, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e4, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e5, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e6, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e7, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0123, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0124, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0125, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0126, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0127, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0128, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0129, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x012a, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e8, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e9, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00ea, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00eb, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00ec, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00ed, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00ee, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00ef, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f0, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f1, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f2, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f3, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f4, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f5, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f6, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f7, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f8, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f9, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00fa, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00fb, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00fc, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00fd, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00fe, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00ff, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0100, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0101, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0102, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0103, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0105, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0106, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0107, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0108, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0109, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x010a, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x010b, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x010c, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x010d, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x010e, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x010f, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0110, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0111, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0112, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0113, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0114, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0104, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0117, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0118, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0119, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x011a, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x0248, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x0249, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x024a, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x024b, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x024c, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x024d, 0x04000a62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x024e, 0x04000a62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x024f, 0x04000a62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x0250, 0x04000a62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW_FOYER, 0x0251, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW_FOYER, 0x0252, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + stdobject(0x0100, MODEL_DD_REDSOFA, 0x00d3, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDSOFA, 0x00d4, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDARM, 0x00d5, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDARM, 0x00d2, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x37, 1) + stdobject(0x0100, MODEL_DD_REDARM, 0x00d7, 0x000205e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDARM, 0x00d8, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x38, 1) + stdobject(0x0100, MODEL_DD_REDARM, 0x00d9, 0x000205e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDSOFA, 0x00d6, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x00da, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDSOFA, 0x0253, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDARM, 0x0254, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x3b, 1) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01a4, 0x000205e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01a3, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + singlemonitor(0x0100, MODEL_PC1, 0x01a2, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff23) + tag(0x3c, 1) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01a5, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01a6, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + singlemonitor(0x0100, MODEL_PC1, 0x01a7, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff23) + tag(0x3a, 1) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01a8, 0x000205e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01a9, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + singlemonitor(0x0100, MODEL_PC1, 0x01aa, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff20) + tag(0x39, 1) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01ab, 0x000205e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01ac, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + singlemonitor(0x0100, MODEL_PC1, 0x01ad, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff21) + tag(0x5e, 1) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01b0, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01af, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + singlemonitor(0x0100, MODEL_PC1, 0x01ae, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff23) + stdobject(0x0100, MODEL_DD_DESK, 0x01b1, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01ba, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01bb, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x63, 1) + singlemonitor(0x0100, MODEL_PC1, 0x01bc, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff03) + tag(0x0d, 1) + stdobject(0x0100, MODEL_LIGHTSWITCH2, 0x013e, 0x00000001, 0x00000001, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01b3, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01b4, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + singlemonitor(0x0100, MODEL_PC1, 0x01b5, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff08) + stdobject(0x0100, MODEL_DD_DESK, 0x01b2, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x0c, 1) + singlemonitor(0x0100, MODEL_PC1, 0x01b6, 0x000004e1, 0x00000001, 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, 0xffffff03) + stdobject(0x0100, MODEL_DD_REDSOFA, 0x00db, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x36, 1) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01b7, 0x000205e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01b8, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + singlemonitor(0x0100, MODEL_PC1, 0x01b9, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff20) + tag(0x35, 1) + stdobject(0x0100, MODEL_DD_REDARM, 0x00dc, 0x000205e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDARM, 0x00dd, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x022d, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x022e, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0232, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x0231, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + singlemonitor(0x0100, MODEL_PC1, 0x0230, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff23) + singlemonitor(0x0100, MODEL_PC1, 0x0233, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff23) + singlemonitor(0x0100, MODEL_PC1, 0x0234, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff03) + chr(0x00000200, 0x06, 0x0011, BODY_DD_GUARD, HEAD_RANDOM, 0x040a, 0x001d, -1, 1000, 9, 0x80804608, 0x00008080, 0x02, 0x01, -1, 3, 0x02001400) + weapon(0x0100, MODEL_CHRCMP150, 0x0006, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x05, 0x01c0, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_DD_GUARD, 0x001e, -1, 1000, 100, 0x88a04608, 0x00000000, 0x02, 0x01, -1, 0, 0x02001400) + weapon(0x0100, MODEL_CHRCMP150, 0x0005, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x08, 0x0028, BODY_DD_GUARD, HEAD_RANDOM, 0x040b, -1, -1, 500, 100, 0x8808c200, 0x00000000, 0x02, 0x02, -1, 0, 0x02001400) + weapon(0x0100, MODEL_CHRCMP150, 0x0008, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0d, 0x006f, BODY_DD_GUARD, HEAD_RANDOM, 0x040c, -1, -1, 100, 100, 0x8808c000, 0x00000000, 0x02, 0x02, -1, 0, 0x02001400) + weapon(0x0100, MODEL_CHRCMP150, 0x000d, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x07, 0x0058, BODY_DD_GUARD, HEAD_RANDOM, 0x0407, -1, -1, 100, 100, 0xc0082000, 0x02000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0007, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0a, 0x0057, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_DD_GUARD, -1, -1, 100, 100, 0xa0882000, 0x02010000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000a, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0c, 0x0060, BODY_DD_GUARD, HEAD_RANDOM, 0x0408, -1, -1, 100, 100, 0xc0082000, 0x02000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x00, 0x007d, BODY_DD_GUARD, HEAD_RANDOM, 0x0405, -1, -1, 100, 100, 0xcc080000, 0x02000000, 0x02, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0000, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0b, 0x008e, BODY_DD_GUARD, HEAD_RANDOM, 0x0406, -1, -1, 100, 100, 0xc8080000, 0x02000000, 0x02, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x09, 0x0081, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_DD_GUARD, -1, -1, 100, 100, 0xa8880000, 0x02010000, 0x02, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0009, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x01, 0x021a, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 1000, 9, 0x8008a100, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x02, 0x021b, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 1000, 9, 0x8008a100, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0002, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0e, 0x01f6, BODY_DDSHOCK, HEAD_DDSHOCK, 0x040d, -1, -1, 1000, 100, 0x8008a100, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x12, 0x0221, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 1000, 100, 0x80282300, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0012, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0f, 0x021e, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 500, 100, 0xa008a000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x10, 0x021f, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 500, 100, 0xa0082000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0010, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x11, 0x0220, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 500, 100, 0xa0082000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0011, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x13, 0x0222, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 500, 100, 0xa0082000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0013, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x03, 0x021c, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 1000, 100, 0x80002100, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0003, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x04, 0x021d, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 1000, 100, 0x80002100, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0004, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x14, 0x020f, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 500, 100, 0xa0002000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x15, 0x020e, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 500, 100, 0xa0002000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0015, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x16, 0x0210, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 500, 100, 0xa0002000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00004200, 0x17, 0x01c6, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_DD_GUARD, -1, -1, 2000, 100, 0xc0002400, 0x00000100, 0x02, 0x09, -1, 0, 0x00010000) + weapon(0x0100, MODEL_CHRCMP150, 0x0017, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00004000, 0x18, 0x01c7, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_DD_GUARD, -1, -1, 1000, 100, 0xc0002000, 0x00000100, 0x02, 0x0a, 0x35, 0, 0x00030000) + weapon(0x0100, MODEL_CHRCMP150, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00004000, 0x19, 0x01c8, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_DD_GUARD, -1, -1, 1000, 100, 0xc0002400, 0x00000100, 0x02, 0x0a, 0x36, 0, 0x00020000) + weapon(0x0100, MODEL_CHRCMP150, 0x0019, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00004200, 0x1a, 0x01c9, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_DD_GUARD, -1, -1, 1000, 100, 0xc0002400, 0x00000100, 0x02, 0x0b, -1, 0, 0x00010000) + weapon(0x0100, MODEL_CHRCMP150, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00004000, 0x1b, 0x01ca, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_DD_GUARD, -1, -1, 1000, 100, 0xc0002000, 0x00000100, 0x02, 0x0c, 0x37, 0, 0x00030000) + weapon(0x0100, MODEL_CHRCMP150, 0x001b, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00004000, 0x1c, 0x01cb, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_DD_GUARD, -1, -1, 1000, 100, 0xc0002000, 0x00000100, 0x02, 0x0c, 0x38, 0, 0x00030000) + weapon(0x0100, MODEL_CHRCMP150, 0x001c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00004200, 0x1d, 0x01cc, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_DD_GUARD, -1, -1, 1000, 100, 0xc0002000, 0x00000100, 0x02, 0x0c, -1, 0, 0x00010000) + weapon(0x0100, MODEL_CHRCMP150, 0x001d, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00004000, 0x1e, 0x01ce, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_DD_GUARD, -1, -1, 1000, 100, 0xc8000000, 0x00000100, 0x02, 0x0d, 0x39, 0, 0x00020000) + weapon(0x0100, MODEL_CHRCMP150, 0x001e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00004000, 0x1f, 0x01cf, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_DD_GUARD, -1, -1, 1000, 100, 0xc8000000, 0x00000100, 0x02, 0x0e, 0x3a, 0, 0x00020000) + weapon(0x0100, MODEL_CHRCMP150, 0x001f, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00004000, 0x20, 0x01d0, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_DD_GUARD, -1, -1, 1000, 100, 0xc8080000, 0x00000100, 0x02, 0x0f, 0x3b, 0, 0x00020000) + weapon(0x0100, MODEL_CHRCMP150, 0x0020, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + + chr(0x00004000, 0x21, 0x01d1, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_FALCON_GUARD, -1, -1, 1000, 100, 0xc008a000, 0x00000100, 0x02, 0x0f, 0x3c, 0, 0x00010000) + weapon(0x0100, MODEL_CHRFALCON2SIL, 0x0021, 0x00424000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SILENCER, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRFALCON2SIL, 0x0021, 0x10424000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SILENCER, 0x00ffffff, 0x00000000) + link_collectibles(-1, -2) + tag(0x61, -3) + tag(0x62, -3) + + chr(0x00010400, CHR_CASS, 0x01c2, BODY_CASSANDRA, HEAD_CASSANDRA, FUNC_INIT_CASS, -1, -1, 1000, 100, 0x0000c400, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + chr(0x00010400, CHR_SECRETARY, 0x01c3, BODY_NEGOTIATOR, HEAD_SECRETARY, GFUNC_IDLE, -1, -1, 1000, 100, 0x0000c400, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + chr(0x00010480, CHR_PROGRAMMER, 0x007a, BODY_OFFICEWORKER, HEAD_RANDOM, FUNC_PROGRAMMER, -1, -1, 50, 100, 0x00002000, 0x00000000, 0x02, 0x0f, -1, 0, 0x00000000) + tag(0x1f, 1) + hover_vehicle(0x004c, MODEL_DD_HOVCOP, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x20, 1) + hover_vehicle(0x004c, MODEL_DD_HOVCOP, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x21, 1) + hover_vehicle(0x004c, MODEL_DD_HOVCAR, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x22, 1) + hover_vehicle(0x004c, MODEL_DD_HOVCAR, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x23, 1) + hover_vehicle(0x004c, MODEL_DD_HOVMOTO, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x24, 1) + hover_vehicle(0x004c, MODEL_DD_HOVMOTO, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x25, 1) + hover_vehicle(0x004c, MODEL_DD_HOVTRUCK, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x26, 1) + hover_vehicle(0x004c, MODEL_DD_HOVTRUCK, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x27, 1) + hover_vehicle(0x004c, MODEL_DD_HOVCAB, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x28, 1) + hover_vehicle(0x004c, MODEL_DD_HOVCAB, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + link_scenery(1, 0, 2) + door(0x0100, MODEL_DD_AC_UNEXP, 0x019f, 0x13500d00, 0x20304300, 0x04000000, 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) + stdobject(0x0100, MODEL_DD_AC_EXP, 0x01a1, 0x031204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + link_scenery(1, 0, 2) + door(0x0100, MODEL_DD_ACBOT_UNEXP, 0x019e, 0x13500d00, 0x20304300, 0x04000000, 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) + stdobject(0x0100, MODEL_DD_ACBOT_EXP, 0x01a0, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0140, 0x00020101, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0141, 0x00020101, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0142, 0x00020101, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0143, 0x00020101, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + + tag(0x31, 1) + weapon(0x0180, MODEL_CHRECMMINE, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_ECMMINE, 0x00ffffff, 0x00000000) + rename_object(-1, 0x0035, 0x023a, 0x023b, 0x023c, 0x023d, 0x023e, 0x0000, 0x0000) // "Obtain ECM Mines." + + tag(0x32, 1) + weapon(0x0180, MODEL_CHRDATATHIEF, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DATAUPLINK, 0x00ffffff, 0x00000000) + rename_object(-1, 0x0036, 0x023f, 0x0240, 0x0241, 0x0242, 0x0243, 0x0000, 0x0000) // "Obtain Data Uplink." + + tag(0x3e, 1) + weapon(0x0180, MODEL_CHRECMMINE, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_ECMMINE, 0x00ffffff, 0x00000000) + rename_object(-1, 0x0035, 0x023a, 0x023b, 0x023c, 0x023d, 0x023e, 0x0000, 0x0000) // "Obtain ECM Mines." + + tag(0x3f, 1) + weapon(0x0180, MODEL_CHRDATATHIEF, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DATAUPLINK, 0x00ffffff, 0x00000000) + rename_object(-1, 0x0036, 0x023f, 0x0240, 0x0241, 0x0242, 0x0243, 0x0000, 0x0000) // "Obtain Data Uplink." + + tag(0x00, 1) + key(0x0100, MODEL_CHRCHAIN, CHR_CASS, 0x01244000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000020) + rename_object(-1, 0x0050, 0x020b, 0x020c, 0x020d, 0x020e, 0x020f, 0x0000, 0x0000) // "Obtain De Vries' necklace." + + stdobject(0x0100, MODEL_DD_STONEDESK, 0x0134, 0x000205e1, 0x00204000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + singlemonitor(0x0100, MODEL_PC1, 0x0132, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff21) + tag(0x50, 6) + tag(0x51, 6) + tag(0x52, 6) + tag(0x53, 6) + tag(0x54, 6) + tag(0x55, 6) + camera(0x00c0, MODEL_CCTV_PD, 0x0136, 0x00000002, 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x00110000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000238e, 0x00000000, 0x00000000, 0x0000001e, 0x00000000, 0x000002bc, 0x00000000) + camera(0x00c0, MODEL_CCTV_PD, 0x0137, 0x00000002, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0x00000000, 0x0000001e, 0x00000000, 0x000002bc, 0x00000000) + camera(0x00c0, MODEL_CCTV_PD, 0x0138, 0x00000002, 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x00190000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000031c7, 0x00000000, 0x00000000, 0x0000001e, 0x00000000, 0x000002bc, 0x00000000) + camera(0x00c0, MODEL_CCTV_PD, 0x0139, 0x00000002, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x001d0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001555, 0x00000000, 0x00000000, 0x0000001e, 0x00000000, 0x000003e8, 0x00000000) + camera(0x00c0, MODEL_CCTV_PD, 0x013a, 0x00000002, 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x00670000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x00000000, 0x00000000, 0x0000001e, 0x00000000, 0x000002bc, 0x00000000) + camera(0x00c0, MODEL_CCTV_PD, 0x013b, 0x00000002, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0x00000000, 0x0000001e, 0x00000000, 0x000002bc, 0x00000000) + camera2(0x0000, 0xfffd05c6, 0xfff25662, 0x000013f6, 0x005a0000, 0x00063f8f, 0x00000219) + tag(0x09, -1) + camera2(0x0000, 0xffff51d2, 0xfffd0422, 0x00000c58, 0x00060000, 0x0005f5c2, 0x00000219) + tag(0x15, -1) + camera2(0x0000, 0xffff67da, 0xfffd8eec, 0xfffe7c44, 0x0004a147, 0x0005f851, 0x00000219) + tag(0x16, -1) + tag(0x04, 1) + multimonitor(0x0099, MODEL_COMHUB, 0x025c, 0x00000002, 0x00000001, 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(0x03, 1) + multimonitor(0x0099, MODEL_COMHUB, 0x013c, 0x00000002, 0x00000001, 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(0x14, 1) + stdobject(0x0100, MODEL_LIGHTSWITCH, 0x013d, 0x10000002, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x10, 1) + multimonitor(0x0099, MODEL_PD_CONSOLE, 0x0258, 0x000001a1, 0x00000000, 0x00000000, 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, 0x08030000) + tag(0x11, 1) + multimonitor(0x0099, MODEL_PD_CONSOLE, 0x0259, 0x000001a1, 0x00000000, 0x00000000, 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, 0x03220000) + tag(0x12, 1) + multimonitor(0x0099, MODEL_PD_CONSOLE, 0x025a, 0x000001a1, 0x00000000, 0x00000000, 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, 0x23030000) + tag(0x13, 1) + multimonitor(0x0099, MODEL_PD_CONSOLE, 0x025b, 0x000001a1, 0x00000000, 0x00000000, 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, 0x03210000) + tag(0x19, 2) + tag(0x1a, 2) + stdobject(0x0100, MODEL_DD_BANNER, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_BANNER, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x17, 1) + stdobject(0x0100, MODEL_DDJUMPSHIP, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x1b, 1) + stdobject(0x0024, MODEL_DDJUMPSHIP, 0xffff, 0x00020001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x18, 1) + stdobject(0x0100, MODEL_ROPE, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x1c, 1) + stdobject(0x0051, MODEL_TAXICAB, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x1e, 1) + stdobject(0x0024, MODEL_TAXICAB, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x1d, 1) + stdobject(0x0051, MODEL_POLICECAR, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x30, 1) + stdobject(0x0024, MODEL_POLICECAR, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x29, 1) + stdobject(0x0019, MODEL_DD_HOVCOP, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x2a, 1) + stdobject(0x0019, MODEL_DD_HOVCAR, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x2b, 1) + stdobject(0x0019, MODEL_DD_HOVMOTO, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x2c, 1) + stdobject(0x0019, MODEL_DD_HOVCAB, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x2d, 1) + stdobject(0x0019, MODEL_DD_HOVTRUCK, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x00de, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0121, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0122, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x011f, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0120, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tag(0x41, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x000a, 0x00004001, 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, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x025f, 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(0x43, 1) + weapon(0x0100, MODEL_CHRPCGUN, 0x01d2, 0x00000008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000) + tag(0x44, 1) + weapon(0x0100, MODEL_CHRFALCON2, 0x01d5, 0x00400008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SILENCER, 0x00ffffff, 0x00000000) + tag(0x45, 1) + weapon(0x0100, MODEL_CHRFALCON2, 0x01d4, 0x00400008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SILENCER, 0x00ffffff, 0x00000000) + tag(0x46, 1) + ammocrate(0x0019, MODEL_MULTI_AMMO_CRATE, 0x01d6, 0x004000e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_PISTOL) + tag(0x47, 1) + ammocrate(0x0019, MODEL_MULTI_AMMO_CRATE, 0x01d7, 0x00400001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_PISTOL) + tag(0x48, 1) + ammocrate(0x0019, MODEL_MULTI_AMMO_CRATE, 0x01d8, 0x00400001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_PISTOL) + tag(0x49, 1) + ammocrate(0x0019, MODEL_MULTI_AMMO_CRATE, 0x01d9, 0x00400001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_PISTOL) + tag(0x4a, 1) + ammocrate(0x0100, MODEL_CHRFALCON2, 0x01da, 0x00400001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_PISTOL) + tag(0x4a, 1) + ammocrate(0x0100, MODEL_CHRFALCON2, 0x01da, 0x00400001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_PISTOL) + tag(0x4b, 1) + ammocrate(0x0019, MODEL_MULTI_AMMO_CRATE, 0x01db, 0x00400001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_PISTOL) + tag(0x4c, 1) + weapon(0x0100, MODEL_CHRCMP150, 0x025d, 0x00400008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + tag(0x4d, 1) + weapon(0x0100, MODEL_CHRCMP150, 0x025e, 0x00400008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + endprops +}; + +u8 intro[] = { + intro_weapon(WEAPON_FALCON2_SILENCER, -1) + ammo(AMMOTYPE_PISTOL, 80) + ammo(AMMOTYPE_ECM_MINE, 2) + outfit(OUTFIT_DEFAULT) + spawn(0x01d3) + endintro +}; + +s32 path00[] = { + 0x0144, + 0x0145, + -1, +}; + +s32 path01[] = { + 0x0146, + 0x0147, + 0x0148, + -1, +}; + +s32 path02[] = { + 0x0149, + 0x014a, + 0x014b, + 0x014c, + 0x014d, + 0x014e, + -1, +}; + +s32 path03[] = { + 0x0152, + 0x0151, + 0x0150, + 0x014f, + -1, +}; + +s32 path04[] = { + 0x0154, + 0x0157, + 0x0156, + 0x0153, + 0x0155, + -1, +}; + +s32 path05[] = { + 0x0159, + 0x015a, + 0x015d, + 0x015b, + 0x015c, + 0x0158, + -1, +}; + +s32 path06[] = { + 0x015e, + 0x015f, + 0x0160, + 0x0161, + 0x0162, + 0x0163, + -1, +}; + +s32 path07[] = { + 0x0167, + 0x0166, + 0x0165, + 0x0168, + 0x0169, + 0x0164, + -1, +}; + +s32 path08[] = { + 0x016a, + 0x016b, + 0x016c, + 0x016d, + -1, +}; + +s32 path09[] = { + 0x016e, + 0x016f, + 0x0170, + 0x0171, + 0x0172, + 0x0173, + -1, +}; + +s32 path10[] = { + 0x0174, + 0x0175, + 0x0176, + 0x0177, + -1, +}; + +s32 path11[] = { + 0x0178, + 0x0179, + 0x017a, + 0x017b, + 0x017c, + 0x017d, + 0x017e, + 0x017f, + -1, +}; + +s32 path12[] = { + 0x0180, + 0x0181, + 0x0182, + -1, +}; + +s32 path13[] = { + 0x0183, + 0x0184, + 0x0185, + -1, +}; + +s32 path14[] = { + 0x0186, + 0x0191, + -1, +}; + +s32 path15[] = { + 0x0187, + 0x0190, + -1, +}; + +s32 path16[] = { + 0x0188, + 0x018f, + -1, +}; + +s32 path17[] = { + 0x0189, + 0x018e, + -1, +}; + +s32 path18[] = { + 0x018c, + 0x018b, + -1, +}; + +s32 path19[] = { + 0x018d, + 0x018a, + -1, +}; + +s32 path20[] = { + 0x0192, + 0x019d, + -1, +}; + +s32 path21[] = { + 0x0193, + 0x019c, + -1, +}; + +s32 path22[] = { + 0x0194, + 0x019b, + -1, +}; + +s32 path23[] = { + 0x0195, + 0x019a, + -1, +}; + +s32 path24[] = { + 0x0197, + 0x0198, + -1, +}; + +s32 path25[] = { + 0x0196, + 0x0199, + -1, +}; + +s32 path26[] = { + 0x007d, + 0x007c, + 0x0077, + 0x0076, + 0x008d, + 0x008c, + 0x008b, + 0x0088, + 0x008b, + 0x008c, + -1, +}; + +s32 path27[] = { + 0x008e, + 0x008d, + 0x008c, + 0x008b, + 0x0088, + -1, +}; + +s32 path30[] = { + 0x000c, + 0x000b, + 0x000f, + 0x0010, + 0x0013, + 0x0011, + 0x0012, + 0x0011, + 0x0010, + 0x000f, + 0x000b, + -1, +}; + +s32 path32[] = { + 0x0028, + 0x0029, + 0x002f, + 0x0030, + 0x002b, + 0x002a, + 0x002d, + 0x002c, + 0x002e, + 0x0031, + 0x0032, + 0x003b, + 0x003a, + 0x0039, + -1, +}; + +s32 path33[] = { + 0x0032, + 0x003b, + 0x003a, + 0x0039, + 0x0074, + 0x006e, + 0x006d, + 0x0072, + 0x0073, + 0x0070, + 0x0071, + 0x006f, + -1, +}; + +s32 path34[] = { + 0x01f6, + 0x01f5, + 0x01f4, + 0x01f3, + 0x01f2, + 0x01f0, + 0x01ef, + 0x01ee, + 0x01ec, + 0x01e8, + 0x01e6, + 0x01e5, + 0x01dd, + 0x01e4, + 0x01e3, + 0x01e2, + 0x01e1, + -1, +}; + +s32 path35[] = { + 0x007c, + 0x0078, + 0x0077, + 0x0076, + 0x008e, + 0x008d, + 0x008c, + 0x008b, + 0x008a, + 0x0089, + 0x0088, + 0x0090, + 0x0075, + 0x006f, + 0x0071, + 0x0070, + 0x0073, + 0x0066, + 0x0058, + 0x0059, + 0x005a, + 0x0067, + 0x0068, + 0x005b, + 0x005c, + 0x005d, + 0x005e, + 0x0061, + -1, +}; + +s32 path31[] = { + 0x0011, + 0x0013, + 0x0014, + 0x0015, + 0x0016, + 0x0017, + -1, +}; + +s32 path28[] = { + 0x0058, + 0x0067, + 0x0068, + 0x005b, + 0x005d, + -1, +}; + +s32 path29[] = { + 0x0060, + 0x005f, + 0x0056, + 0x0055, + 0x0051, + 0x0052, + 0x0053, + -1, +}; + +/** + * @unused + */ +u8 func0401_do_some_animation[] = { + // Do some animation + restart_timer + animation(0x0066, 0, 1, 0x0410, CHR_SELF, 2) + + beginloop(0x08) + if_timer_gt(0, /*goto*/ 0x2c) + endloop(0x08) + + label(0x2c) + animation(0x0066, 1, -1, 0x0410, CHR_SELF, 2) + + beginloop(0x85) + endloop(0x85) + + // Unreachable + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * @unregistered + */ +u8 unregistered_function[] = { + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * @unused + */ +u8 func0402_guard_with_chrflag[] = { + set_return_function(CHR_SELF, 0x0402) + set_self_flag_bank3(CHRFLAG3_00000200) + set_function(CHR_SELF, GFUNC_UNALERTED_0001) + endfunction +}; + +/** + * @unused + */ +u8 func0403_shielded_guard[] = { + set_shield(200) + set_self_flag_bank3(CHRFLAG3_00000200) + set_function(CHR_SELF, GFUNC_CHOOSE_TARGET_CHR) + endfunction +}; + +u8 func0404_init_hovercar[] = { + dprint 'h','o','v','\n',0, + begin_hovercar_path(0) + set_vehicle_speed(0x0c00, 120) + + beginloop(0x04) + reloop(0x04) + + // Unreachable + label(0x08) + set_vehicle_speed(0x0600, 120) + reloop(0x04) + + label(0x09) + set_vehicle_speed(0x0700, 120) + reloop(0x04) + + label(0x0a) + set_vehicle_speed(0x0800, 120) + reloop(0x04) + + label(0x0b) + set_vehicle_speed(0x0900, 120) + reloop(0x04) + + label(0x0c) + set_vehicle_speed(0x0a00, 120) + reloop(0x04) + + label(0x0d) + set_vehicle_speed(0x0b00, 120) + reloop(0x04) + + label(0x0e) + set_vehicle_speed(0x0d00, 120) + endloop(0x04) + + endfunction +}; + +#define do_path(path) \ + assign_path(path) \ + start_path \ + set_function(CHR_SELF, GFUNC_UNALERTED_0004) \ + endfunction \ +}; + + + +u8 func0405_start_path26[] = { + do_path(26) + +u8 func0406_start_path27[] = { + do_path(27) + +u8 func0407_start_path28[] = { + do_path(28) + +u8 func0408_start_path29[] = { + do_path(29) + +u8 func0409_start_path30[] = { + do_path(30) + +u8 func040a_start_path31[] = { + set_chr_dodge_rating(2, 0x14) + set_unarmeddodgerating(0) + set_accuracy(0) + set_reaction_speed(0) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + set_return_function(CHR_SELF, 0x040a) + assign_path(31) + start_path + set_function(CHR_SELF, GFUNC_UNALERTED_0004) + endfunction +}; + +u8 func040b_start_path32[] = { + set_chr_dodge_rating(2, 0x14) + set_unarmeddodgerating(0) + set_accuracy(0) + set_reaction_speed(0) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + assign_path(32) + start_path + set_function(CHR_SELF, GFUNC_UNALERTED_0004) + endfunction +}; + +u8 func040c_start_path33[] = { + set_chr_dodge_rating(2, 0x14) + set_unarmeddodgerating(0) + set_accuracy(0) + set_reaction_speed(0) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + assign_path(33) + start_path + set_function(CHR_SELF, GFUNC_UNALERTED_0004) + endfunction +}; + +u8 func040d_start_path34[] = { + set_chr_dodge_rating(2, 0x14) + set_unarmeddodgerating(0) + set_accuracy(10) + set_reaction_speed(0) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + assign_path(34) + start_path + set_function(CHR_SELF, GFUNC_UNALERTED_0004) + endfunction +}; + +u8 func040e_start_path35[] = { + assign_path(35) + start_path + set_function(CHR_SELF, GFUNC_UNALERTED_0004) + endfunction +}; + +u8 func0410_init_cass[] = { + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, FUNC_CASS) + endfunction +}; + +u8 func040f_cass[] = { + set_onshot_function(GFUNC_IDLE) + if_chr_dying(CHR_CASS, /*goto*/ 0x06) + if_chr_unloaded(CHR_CASS, /*goto*/ 0x06) + goto_next(0x2c) + + // Dying + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2c) + animation(ANIM_TALKING_00A0, 0, 193, 0x1810, CHR_SELF, 2) + + // Wait for player to enter room + beginloop(0x59) + set_target_chr(CHR_JOANNA) + if_chr_sees_player(/*goto*/ 0x5a) + set_target_chr(CHR_VELVET) + if_chr_sees_player(/*goto*/ 0x5a) + set_target_chr(CHR_JOANNA) + if_stage_flag_eq(STAGEFLAG_SECETARY_SAW_JO_OR_VELVET, TRUE, /*goto*/ 0xbe) + endloop(0x59) + + label(0xbe) + if_stage_flag_eq(STAGEFLAG_SECRETARY_SAW_VELVET, TRUE, /*goto*/ 0xbf) + set_target_chr(CHR_JOANNA) + goto_next(0x5a) + + label(0xbf) + set_target_chr(CHR_VELVET) + goto_next(0x5a) + + // Face target chr (Jo or Velvet) + label(0x5a) + stop_chr + yield + unset_stage_flag(STAGEFLAG_SECETARY_SAW_JO_OR_VELVET) + try_face_entity(0x0200, 0x0000, /*goto*/ 0x5b) + + beginloop(0x5b) + if_chr_stopped(/*goto*/ 0x5c) + endloop(0x5b) + + label(0x5c) + speak(TARGET_CHR, 0x0215, 0x0af4, CHANNEL_6, COLOR_04_ORANGE) // "Who are you and what are you doing here?" + restart_timer + animation(ANIM_TALKING_0098, 0, 193, 0x1810, CHR_SELF, 2) + + beginloop(0x5d) + if_sound_finished(CHANNEL_6, /*goto*/ 0x5e) + endloop(0x5d) + + // Walk backwards for 4 seconds + label(0x5e) + stop_chr + animation(ANIM_WALK_BACKWARDS, -1, -1, 0x1010, CHR_SELF, 2) + restart_timer + + beginloop(0x5f) + if_timer_gt(240, /*goto*/ 0x06) + endloop(0x5f) + + label(0x06) + stop_chr + + // Face target again + label(0x06) + restart_timer + try_face_entity(0x0200, 0x0000, /*goto*/ 0x64) + + beginloop(0x64) + if_angle_to_target_chr_lt(10, /*goto*/ 0x65) + if_timer_gt(90, /*goto*/ 0x65) + endloop(0x64) + + label(0x65) + restart_timer + if_chr_sees_player(/*goto*/ 0x2c) + if_chr_in_room(TARGET_CHR, 0x00, 0x005b, /*goto*/ 0x2c) + if_chr_in_room(TARGET_CHR, 0x00, 0x005c, /*goto*/ 0x2c) + if_chr_in_room(TARGET_CHR, 0x00, 0x005d, /*goto*/ 0x2c) + if_chr_in_room(TARGET_CHR, 0x00, 0x005e, /*goto*/ 0x2c) + if_chr_in_room(TARGET_CHR, 0x00, 0x005f, /*goto*/ 0x2c) + if_chr_in_room(TARGET_CHR, 0x00, 0x0060, /*goto*/ 0x2c) + if_chr_in_room(TARGET_CHR, 0x00, 0x0061, /*goto*/ 0x2c) + if_chr_in_room(TARGET_CHR, 0x00, 0x0062, /*goto*/ 0x2c) + if_chr_in_room(TARGET_CHR, 0x00, 0x0064, /*goto*/ 0x2c) + goto_next(0x66) + + label(0x2c) + speak(TARGET_CHR, 0x0217, 0x0af5, CHANNEL_6, COLOR_04_ORANGE) // "You won't shoot me, foolish child!" + animation(ANIM_TALKING_00A0, 0, 193, 0x1810, CHR_SELF, 2) + + beginloop(0x66) + if_sound_finished(CHANNEL_6, /*goto*/ 0x67) + endloop(0x66) + + label(0x67) + if_chr_sees_player(/*goto*/ 0x2c) + if_chr_in_room(TARGET_CHR, 0x00, 0x005b, /*goto*/ 0x2c) + if_chr_in_room(TARGET_CHR, 0x00, 0x005c, /*goto*/ 0x2c) + if_chr_in_room(TARGET_CHR, 0x00, 0x005d, /*goto*/ 0x2c) + if_chr_in_room(TARGET_CHR, 0x00, 0x005e, /*goto*/ 0x2c) + if_chr_in_room(TARGET_CHR, 0x00, 0x005f, /*goto*/ 0x2c) + if_chr_in_room(TARGET_CHR, 0x00, 0x0060, /*goto*/ 0x2c) + if_chr_in_room(TARGET_CHR, 0x00, 0x0061, /*goto*/ 0x2c) + if_chr_in_room(TARGET_CHR, 0x00, 0x0062, /*goto*/ 0x2c) + if_chr_in_room(TARGET_CHR, 0x00, 0x0064, /*goto*/ 0x2c) + goto_next(0x68) + + label(0x2c) + animation(ANIM_TALKING_00A3, 0, 193, 0x1810, CHR_SELF, 2) + speak(TARGET_CHR, 0x0218, 0x0af6, CHANNEL_6, COLOR_04_ORANGE) // "Don't you know who I am?" + + beginloop(0x68) + if_sound_finished(CHANNEL_6, /*goto*/ 0x69) + endloop(0x68) + + label(0x69) + walk_to_pad(0x004d) + + beginloop(0x60) + if_chr_distance_to_pad_lt(CHR_SELF, 70, 0x004d, /*goto*/ 0x06) + endloop(0x60) + + label(0x06) + walk_to_pad(0x004e) + + beginloop(0x61) + if_chr_distance_to_pad_lt(CHR_SELF, 70, 0x004e, /*goto*/ 0x06) + endloop(0x61) + + label(0x06) + walk_to_pad(0x0041) + + beginloop(0x62) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x62) + + label(0x06) + restart_timer + try_face_entity(0x0008, 0x0042, /*goto*/ 0xb8) + + beginloop(0xb8) + if_timer_gt(60, /*goto*/ 0x63) + endloop(0xb8) + + label(0x63) + if_chr_sees_player(/*goto*/ 0x2c) + if_chr_in_room(TARGET_CHR, 0x00, 0x005b, /*goto*/ 0x2c) + if_chr_in_room(TARGET_CHR, 0x00, 0x005c, /*goto*/ 0x2c) + if_chr_in_room(TARGET_CHR, 0x00, 0x005d, /*goto*/ 0x2c) + if_chr_in_room(TARGET_CHR, 0x00, 0x005e, /*goto*/ 0x2c) + if_chr_in_room(TARGET_CHR, 0x00, 0x005f, /*goto*/ 0x2c) + if_chr_in_room(TARGET_CHR, 0x00, 0x0060, /*goto*/ 0x2c) + if_chr_in_room(TARGET_CHR, 0x00, 0x0061, /*goto*/ 0x2c) + if_chr_in_room(TARGET_CHR, 0x00, 0x0062, /*goto*/ 0x2c) + if_chr_in_room(TARGET_CHR, 0x00, 0x0064, /*goto*/ 0x2c) + goto_next(0x06) + + label(0x2c) + speak(TARGET_CHR, 0x0219, 0x0af7, CHANNEL_6, COLOR_04_ORANGE) // "Let's see how you deal with security." + label(0x06) + animation(ANIM_PUSH_BUTTON, 0, 193, 0x1010, CHR_SELF, 2) + + beginloop(0x6a) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x6a) + + label(0x06) + activate_alarm + + label(0x6b) + stop_chr + yield + try_face_entity(0x0200, 0x0000, /*goto*/ 0x6c) + + beginloop(0x6c) + call_rng + if_rand_lt(250, /*goto*/ 0x06) + stop_chr + try_face_entity(0x0200, 0x0000, /*goto*/ 0x2c) + label(0x2c) + call_rng + if_chr_distance_gt(500, /*goto*/ 0x06) + if_chr_in_view(/*goto*/ 0x6d) + label(0x06) + endloop(0x6c) + + label(0x6d) + restart_timer + say_quip(TARGET_CHR, 0x00, 0xff, 0x00, 0xff, BANK_1, 0x01, 0x04) // "How dare you disturb me","You will regret this intrusion girl","If I were you I'd leave, now" + animation(ANIM_TALKING_00A3, 0, 193, 0x1810, CHR_SELF, 2) + + beginloop(0x6e) + if_timer_gt(100, /*goto*/ 0x6f) + endloop(0x6e) + + label(0x6f) + restart_timer + + beginloop(0x70) + if_timer_gt(300, /*goto*/ 0x71) + endloop(0x70) + + label(0x71) + goto_first(0x6b) + + endfunction +}; + +u8 func0412_init_secretary[] = { + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, FUNC_SECRETARY) + endfunction +}; + +u8 func0411_secretary[] = { + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x06) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + set_chr_flag_bank2(CHR_SECRETARY, CHRFLAG2_00100000) + chr_move_to_pad(CHR_SECRETARY, 0x01c3, 0x00, /*goto*/ 0x2c) + dprint 'D','E','T','E','C','T',' ','4',0, + label(0x2c) + stop_chr + label(0x06) + set_onshot_function(GFUNC_IDLE) + if_chr_dying(CHR_SECRETARY, /*goto*/ 0x06) + if_chr_unloaded(CHR_SECRETARY, /*goto*/ 0x06) + goto_next(0x2c) + + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2c) + animation(0x00a1, 0, 193, 0x1810, CHR_SELF, 2) + + beginloop(0x72) + set_target_chr(CHR_JOANNA) + if_chr_sees_player(/*goto*/ 0x73) + set_target_chr(CHR_VELVET) + if_chr_sees_player(/*goto*/ 0x74) + set_target_chr(CHR_JOANNA) + endloop(0x72) + + label(0x74) + set_stage_flag(STAGEFLAG_SECRETARY_SAW_VELVET) + label(0x73) + stop_chr + restart_timer + set_stage_flag(STAGEFLAG_SECETARY_SAW_JO_OR_VELVET) + + beginloop(0x7a) + if_timer_gt(20, /*goto*/ 0x7b) + endloop(0x7a) + + label(0x7b) + try_face_entity(0x0200, 0x0000, /*goto*/ 0x7c) + + beginloop(0x7c) + if_timer_lt(80, /*goto*/ 0x2c) + if_sound_finished(CHANNEL_6, /*goto*/ 0x7d) + label(0x2c) + endloop(0x7c) + + label(0x7d) + restart_timer + if_chr_weapon_equipped(TARGET_CHR, WEAPON_NONE, /*goto*/ 0x2c) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x2c) + speak(TARGET_CHR, 0x0216, 0x1aed, CHANNEL_5, COLOR_07_RED) // "Look out! She's got a gun." + label(0x2c) + animation(ANIM_SURRENDER_002E, 0, 193, 0x1810, CHR_SELF, 2) + + beginloop(0x75) + if_timer_gt(60, /*goto*/ 0x76) + endloop(0x75) + + label(0x76) + set_action(ACTION_RUN_AWAY, FALSE) + jog_to_pad(0x0047) + + beginloop(0x77) + if_chr_stopped(/*goto*/ 0x78) + endloop(0x77) + + label(0x78) + animation(ANIM_COWER_01F5, -1, -1, 0x5014, CHR_SELF, 2) + + beginloop(0x79) + if_chr_distance_gt(500, /*goto*/ 0x06) + if_chr_in_view(/*goto*/ 0x7e) + label(0x06) + endloop(0x79) + + label(0x7e) + restart_timer + animation(ANIM_COWER_01F5, -1, -1, 0x100a, CHR_SELF, 2) + yield + goto_next(0x81) + + // Unreachable + try_face_entity(0x0200, 0x0000, /*goto*/ 0x7f) + + beginloop(0x7f) + if_angle_to_target_chr_lt(10, /*goto*/ 0x81) + if_timer_gt(120, /*goto*/ 0x81) + endloop(0x7f) + + label(0x81) + restart_timer + say_quip(TARGET_CHR, 0x01, 0xff, 0x00, 0xff, BANK_1, 0x02, 0x07) // "Please don't kill me","Don't shoot!" + animation(ANIM_SURRENDER_002E, 0, -1, 0x1810, CHR_SELF, 2) + + beginloop(0x82) + if_timer_gt(180, /*goto*/ 0x83) + endloop(0x82) + + label(0x83) + animation(ANIM_COWER_0229, -1, -1, 0x1014, CHR_SELF, 2) + + beginloop(0x84) + call_rng + if_rand_gt(254, /*goto*/ 0x06) + endloop(0x84) + + label(0x06) + goto_first(0x78) + + endfunction +}; + +u8 func0414_programmer[] = { +#define LABEL_JO_SPEAK 0x9c +#define LABEL_RUN_TO_GUARD 0xa5 +#define LABEL_NEAR_LAPTOPGUN_ROOM 0xa8 +#define LABEL_LOG_ON 0xaa +#define LABEL_PC_BROKEN 0xc5 + + // PA only + if_difficulty_gt(DIFF_SA, /*goto*/ 0x2c) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2c) + set_reaction_speed(100) + set_onshot_function(FUNC_PROGRAMMER) + set_chr_flag_bank3(CHR_PROGRAMMER, CHRFLAG3_00000080) + 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(0x2c) + + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2c) + if_num_times_shot_lt(1, /*goto*/ 0x06) + set_stage_flag(STAGEFLAG_PROGRAMMER_INJURED) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_NONE, /*goto*/ 0x2c) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x2c) + if_sound_finished(CHANNEL_3, /*goto*/ 0x90) + goto_next(0x2c) + + label(0x90) + speak(TARGET_CHR, 0x0235, 0x12fe, CHANNEL_3, COLOR_03_RED) // "Don't shoot, don't shoot!" + label(0x2c) + restart_timer + + beginloop(0xab) + if_chr_stopped(/*goto*/ LABEL_JO_SPEAK) + endloop(0xab) + + // Hasn't been shot + label(0x06) + set_chr_alliance(CHR_SELF, ALLIANCE_ENEMY) + stop_chr + + // Wait until Jo or Velvet near his office + beginloop(0x91) + set_target_chr(CHR_JOANNA) + if_chr_distance_to_pad_lt2(TARGET_CHR, 0x0050, 1240, /*goto*/ 0x06) + set_target_chr(CHR_VELVET) + if_chr_distance_to_pad_lt2(TARGET_CHR, 0x0050, 1240, /*goto*/ 0x06) + endloop(0x91) + + // Phone ringing + label(0x06) + play_sound_from_object2(CHANNEL_4, OBJ_PCMONITOR, 0x8109, 0x0f, 0x02) + + // Wait until Jo or Velvet is close to his door + beginloop(0x92) + set_target_chr(CHR_JOANNA) + if_chr_distance_to_pad_lt2(TARGET_CHR, 0x0014, 1240, /*goto*/ 0x06) + set_target_chr(CHR_VELVET) + if_chr_distance_to_pad_lt2(TARGET_CHR, 0x0014, 1240, /*goto*/ 0x06) + endloop(0x92) + + label(0x06) + restart_timer + + beginloop(0x8e) + if_timer_gt(40, /*goto*/ 0x2c) + endloop(0x8e) + + label(0x2c) + mute_channel(CHANNEL_4) // stop ringing + restart_timer + + beginloop(0x8f) + if_timer_gt(90, /*goto*/ 0x2c) + endloop(0x8f) + + // The timer in the following is dialogue is used to measure the gap between + // speaks. + label(0x2c) + restart_timer + speak(TARGET_CHR, 0x0244, 0x8104, CHANNEL_3, COLOR_03_RED) // "Yes, yes, I agree. Personality is expendable in th..." + restart_timer + animation(ANIM_TALKING_00A0, 0, 193, 0x1010, CHR_SELF, 2) + + beginloop(0x08) + pause_timer + if_sound_finished(CHANNEL_3, /*goto*/ 0x06) + reloop(0x08) + + label(0x06) + resume_timer + if_timer_gt(30, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + yield + yield + yield + speak(TARGET_CHR, 0x0245, 0x8105, CHANNEL_3, COLOR_03_RED) // "No, I can start the process from my office termina..." + restart_timer + + beginloop(0x0e) + pause_timer + if_sound_finished(CHANNEL_3, /*goto*/ 0x06) + reloop(0x0e) + + label(0x06) + resume_timer + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x0e) + + label(0x06) + speak(TARGET_CHR, 0x0246, 0x8106, CHANNEL_3, COLOR_03_RED) // "I'll begin at once. Goodbye." + + beginloop(0x0f) + if_sound_finished(CHANNEL_3, /*goto*/ 0x06) + endloop(0x0f) + + label(0x06) + stop_chr + walk_to_pad(0x0062) + restart_timer + + beginloop(0x09) + if_timer_gt(30, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + set_stage_flag(STAGEFLAG_PROGRAMMER_WALKING) + label(0x06) + + label(0x99) + walk_to_pad(0x0062) + + // While walking, check for anything that might cause him to detect Jo. + + // @bug The condition to jump to log on should be a distance check rather + // than chr stopped. If the programmer's pathing has failed then he will + // have stopped without being near the PC. This bug is repeated several + // times in this function but only documented here. + beginloop(0x93) + if_target_chr_in_sight(/*goto*/ 0x96) + if_near_miss(/*goto*/ 0x96) + if_shot_near_chr(0x00, /*goto*/ 0x96) + if_saw_death(0x00, /*goto*/ 0x96) + if_hears_gunfire(/*goto*/ 0x96) + if_stage_flag_eq(STAGEFLAG_PROGRAMMER_RAN_TO_GUARD, TRUE, /*goto*/ 0x2c) + if_dying(/*goto*/ 0x96) + label(0x2c) + if_chr_stopped(/*goto*/ LABEL_LOG_ON) + endloop(0x93) + + // Detected Jo + label(0x96) + restart_timer + set_alertness(255) + restart_timer + try_face_entity(0x0200, 0x0000, /*goto*/ 0x9a) + + beginloop(0x9a) + if_angle_to_target_chr_lt(10, /*goto*/ 0x06) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x9a) + + label(0x06) + if_stage_flag_eq(STAGEFLAG_TALKED_TO_PROGRAMMER, TRUE, /*goto*/ 0x06) + speak(TARGET_CHR, 0x0224, 0x1300, CHANNEL_3, COLOR_03_RED) // "HELP - Intruder!" + animation(ANIM_SURRENDER_002E, 0, 193, 0x1810, CHR_SELF, 2) + + beginloop(0xa3) + if_sound_finished(CHANNEL_3, /*goto*/ 0x06) + endloop(0xa3) + + label(0x06) + if_chr_in_room(CHR_PROGRAMMER, 0x00, 0x007d, /*goto*/ LABEL_NEAR_LAPTOPGUN_ROOM) + if_chr_in_room(CHR_PROGRAMMER, 0x00, 0x007e, /*goto*/ LABEL_NEAR_LAPTOPGUN_ROOM) + if_chr_in_room(CHR_PROGRAMMER, 0x00, 0x007f, /*goto*/ LABEL_NEAR_LAPTOPGUN_ROOM) + if_stage_flag_eq(STAGEFLAG_PROGRAMMER_INJURED, TRUE, /*goto*/ LABEL_JO_SPEAK) + + label(0xa2) + if_chr_sees_player(/*goto*/ 0x06) + goto_next(0x2c) + + // Can see Jo, and not injured or near Laptop Gun room + label(0x06) + if_stage_flag_eq(STAGEFLAG_PROGRAMMER_RAN_TO_GUARD, TRUE, /*goto*/ 0x06) + + label(0x2c) + speak(TARGET_CHR, 0x024f, 0x8107, CHANNEL_3, COLOR_03_RED) // "Security... Help me!" + goto_next(0xa1) + + label(0x06) + speak(TARGET_CHR, 0x0226, 0x8108, CHANNEL_3, COLOR_03_RED) // "HELP, HELP!" + label(0xa1) + restart_timer + set_stage_flag(STAGEFLAG_PROGRAMMER_RAN_TO_GUARD) + try_target_chr_in_same_group(/*goto*/ LABEL_RUN_TO_GUARD) + unset_object_flag_bank1(OBJ_LAPTOPGUNDOOR, OBJECTFLAG1_20000000) + jog_to_pad(0x0086) + + beginloop(0x97) + if_timer_lt(240, /*goto*/ 0x06) + if_chr_sees_player(/*goto*/ 0x2c) + goto_next(0x06) + label(0x2c) + if_chr_distance_lt(300, /*goto*/ LABEL_JO_SPEAK) + label(0x06) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x97) + + label(0x06) + set_stage_flag(STAGEFLAG_PROGRAMMER_INJURED) + restart_timer + unlock_door(OBJ_LAPTOPGUNDOOR, 0x02) + animation(ANIM_COWER_01F5, 0, -1, 0x5010, CHR_SELF, 2) + + beginloop(0x0d) + if_timer_gt(300, /*goto*/ 0xb5) + if_chr_distance_gt(300, /*goto*/ 0x2c) + if_chr_sees_player(/*goto*/ 0x06) + goto_next(0x2c) + label(0x06) + if_player_looking_at_something_maybe(0x28, 0x01, 0x00, /*goto*/ LABEL_JO_SPEAK) + label(0x2c) + endloop(0x0d) + + label(0xb5) + goto_first(0x99) + + label(LABEL_RUN_TO_GUARD) + try_run_to_chr(FOLLOW_CHR, /*goto*/ 0xa6) + + beginloop(0xa6) + if_detected_chr(FOLLOW_CHR, /*goto*/ 0xa7) + if_timer_lt(120, /*goto*/ 0x06) + if_chr_sees_player(/*goto*/ LABEL_JO_SPEAK) + goto_next(0x06) + if_chr_distance_lt(300, /*goto*/ LABEL_JO_SPEAK) + label(0x06) + if_chr_stopped(/*goto*/ 0xa7) + endloop(0xa6) + + label(0xa7) + speak(TARGET_CHR, 0x0226, 0x8108, CHANNEL_3, COLOR_03_RED) // "HELP, HELP!" + set_group_alertness(100) + endloop(0x99) + + label(LABEL_JO_SPEAK) + restart_timer + if_stage_flag_eq(STAGEFLAG_TALKED_TO_PROGRAMMER, TRUE, /*goto*/ 0x2c) + speak(TARGET_CHR, 0x0248, 0x7322, CHANNEL_3, COLOR_09_BLUE) // "I've got a password problem, and you're the man to..." + goto_next(0x06) + label(0x2c) + speak(TARGET_CHR, 0x0247, 0x7323, CHANNEL_3, COLOR_09_BLUE) // "Move it!" + label(0x06) + set_stage_flag(STAGEFLAG_TALKED_TO_PROGRAMMER) + try_face_entity(0x0200, 0x0000, /*goto*/ 0x9b) + + beginloop(0x9b) + if_stage_flag_eq(STAGEFLAG_TALKED_TO_PROGRAMMER, TRUE, /*goto*/ 0x06) + if_angle_to_target_chr_lt(10, /*goto*/ 0x06) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x9b) + + label(0x06) + animation(ANIM_SURRENDER_002E, 0, 193, 0x1010, CHR_SELF, 2) + + beginloop(0x10) + if_sound_finished(CHANNEL_3, /*goto*/ 0x06) + endloop(0x10) + + label(0x06) + if_stage_flag_eq(STAGEFLAG_TALKED_TO_PROGRAMMER, TRUE, /*goto*/ 0x2c) + speak(TARGET_CHR, 0x0223, 0x12ff, CHANNEL_5, COLOR_03_RED) // "I'll do what you want!" + set_stage_flag(STAGEFLAG_TALKED_TO_PROGRAMMER) + goto_next(0x06) + label(0x2c) + speak(TARGET_CHR, 0x0249, 0x12fe, CHANNEL_5, COLOR_03_RED) // "Don't shoot, don't shoot!" + label(0x06) + animation(ANIM_DONT_SHOOT, 0, -1, 0x1010, CHR_SELF, 2) + + beginloop(0x9f) + if_sound_finished(CHANNEL_5, /*goto*/ 0x9d) + endloop(0x9f) + + label(0x9d) + walk_to_pad(0x0062) + + beginloop(0x9e) + if_chr_stopped(/*goto*/ LABEL_LOG_ON) + if_stage_flag_eq(STAGEFLAG_PROGRAMMER_INJURED, TRUE, /*goto*/ 0x06) + if_chr_distance_lt(500, /*goto*/ 0x06) + if_player_looking_at_something_maybe(0x28, 0x01, 0x00, /*goto*/ 0x06) + if_chr_in_room(CHR_PROGRAMMER, 0x00, 0x007d, /*goto*/ 0x06) + if_chr_in_room(CHR_PROGRAMMER, 0x00, 0x007e, /*goto*/ 0x06) + if_chr_in_room(CHR_PROGRAMMER, 0x00, 0x007f, /*goto*/ 0x06) + goto_next(0xa0) + label(0x06) + endloop(0x9e) + + label(0xa0) + goto_first(0xa2) + + label(LABEL_NEAR_LAPTOPGUN_ROOM) + stop_chr + speak(TARGET_CHR, 0x0227, 0x12ff, CHANNEL_3, COLOR_03_RED) // "I'll do what you want..." + restart_timer + label(0x06) + walk_to_pad(0x0062) + + beginloop(0xa9) + if_chr_stopped(/*goto*/ LABEL_LOG_ON) + endloop(0xa9) + + label(LABEL_LOG_ON) + restart_timer + if_stage_flag_eq(STAGEFLAG_PC_DESTROYED, TRUE, /*goto*/ LABEL_PC_BROKEN) + if_detected_chr(TARGET_CHR, /*goto*/ 0x2c) + speak(TARGET_CHR, 0x0228, 0x1301, CHANNEL_3, COLOR_03_RED) // "Logging on now..." + goto_next(0x06) + label(0x2c) + speak(TARGET_CHR, 0x026d, 0x1304, CHANNEL_3, COLOR_03_RED) // "I...I'm logging on now." + label(0x06) + animation(ANIM_STANDING_TYPE_ONE_HAND, 0, 193, 0x1810, CHR_SELF, 2) + speak(TARGET_CHR, -1, 0x8116, -1, COLOR_00_GREEN) + + beginloop(0xae) + if_stage_flag_eq(STAGEFLAG_PC_DESTROYED, TRUE, /*goto*/ LABEL_PC_BROKEN) + if_timer_gt(360, /*goto*/ 0x06) + endloop(0xae) + + label(0x06) + if_stage_flag_eq(STAGEFLAG_PC_DESTROYED, TRUE, /*goto*/ LABEL_PC_BROKEN) + animation(ANIM_PUSH_BUTTON, 0, 193, 0x1810, CHR_SELF, 2) + set_stage_flag(STAGEFLAG_PROGRAMMER_LOGGED_IN) + if_detected_chr(TARGET_CHR, /*goto*/ 0x2c) + speak(TARGET_CHR, 0x0229, 0x1302, CHANNEL_3, COLOR_03_RED) // "Okay, I'm in..." + goto_next(0x06) + label(0x2c) + speak(TARGET_CHR, 0x026c, 0x1305, CHANNEL_3, COLOR_03_RED) // "Right, I'm in..." + label(0x06) + speak(TARGET_CHR, -1, 0x8117, -1, COLOR_00_GREEN) + + beginloop(0xaf) + if_stage_flag_eq(STAGEFLAG_PC_DESTROYED, TRUE, /*goto*/ LABEL_PC_BROKEN) + if_chr_dying(CHR_SELF, /*goto*/ 0xb1) + if_timer_gt(1040, /*goto*/ 0x06) + endloop(0xaf) + + label(0x06) + if_stage_flag_eq(STAGEFLAG_PC_DESTROYED, TRUE, /*goto*/ LABEL_PC_BROKEN) + set_stage_flag(STAGEFLAG_PERSONALITY_DELETED) + set_chr_health(CHR_SELF, 1) + animation(ANIM_TALKING_003D, 0, 193, 0x1810, CHR_SELF, 2) + speak(TARGET_CHR, 0x022a, 0x1303, CHANNEL_3, COLOR_03_RED) // "Goodbye, Dr. Caroll." + if_stage_flag_eq(STAGEFLAG_DOWNLOAD_COMPLETE, TRUE, /*goto*/ 0x2c) + set_stage_flag(STAGEFLAG_DELETED_WITHOUT_DOWNLOAD) + label(0x2c) + speak(TARGET_CHR, -1, 0x8118, -1, COLOR_00_GREEN) + + beginloop(0xb0) + endloop(0xb0) + + label(0xb1) + set_function(CHR_SELF, GFUNC_IDLE) + + label(LABEL_PC_BROKEN) + set_self_flag_bankx(CHRFLAG0_CANT_ALERT_GROUP, BANK_0) + speak(TARGET_CHR, 0x0262, 0x1289, CHANNEL_3, COLOR_03_RED) // "You vandal, you've broken it!" + do_special_animation(-1) + + beginloop(0xc6) + if_sound_finished(CHANNEL_3, /*goto*/ 0x06) + endloop(0xc6) + + label(0x06) + set_return_function(CHR_SELF, GFUNC_ALERTED) + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +/** + * This function appears to be pointless considering you have control during the + * conversation anyway. Perhaps at one point during development there was a + * cutscene for the phone conversation? + */ +u8 func1005_give_control[] = { + beginloop(0x52) + if_stage_flag_eq(STAGEFLAG_PROGRAMMER_WALKING, TRUE, /*goto*/ 0x06) + endloop(0x52) + + label(0x06) + label(0x2c) + yield + grant_control(CHR_JOANNA) + grant_control(CHR_VELVET) + yield + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * @unused + */ +u8 func0415_set_idle[] = { + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * @unused + */ +u8 func0413_c318[] = { + set_accuracy(10) + try_draw_weapon(MODEL_CHRCMP150, WEAPON_CMP150, 0x00000000, /*goto*/ 0x06) + label(0x06) + set_chr_alliance(CHR_SELF, ALLIANCE_ENEMY) + set_group(0x09) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + set_self_flag_bankx(CHRFLAG0_00008000, BANK_0) + set_alertness(255) + set_self_flag_bank3(CHRFLAG3_00000200) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_UNALERTED_0001) + endfunction +}; + +u8 func100e_check_ecm_mines[] = { + yield + yield + yield + yield + yield + yield + yield + if_difficulty_lt(DIFF_SA, /*goto*/ 0x06) + give_object_to_chr(OBJ_ECMMINE_JOANNA, CHR_JOANNA) + give_object_to_chr(OBJ_ECMMINE_VELVET, CHR_VELVET) + label(0x06) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x00) + give_object_to_chr(OBJ_DATAUPLINK_JOANNA, CHR_JOANNA) + give_object_to_chr(OBJ_DATAUPLINK_VELVET, CHR_VELVET) + + beginloop(0x00) + if_stage_flag_eq(STAGEFLAG_SECURITYHUB_COMPLETE, TRUE, /*goto*/ 0x06) + if_stage_flag_eq(STAGEFLAG_SECURITYHUB_MINES_WASTED, TRUE, /*goto*/ 0x2c) + if_weapon_thrown_on_object(WEAPON_ECMMINE, OBJ_SECURITYHUB, /*goto*/ 0x08) + label(0x06) + if_stage_flag_eq(STAGEFLAG_EXTCOMMSHUB_COMPLETE, TRUE, /*goto*/ 0x06) + if_stage_flag_eq(STAGEFLAG_EXTCOMMSHUB_MINES_WASTED, TRUE, /*goto*/ 0x2c) + if_weapon_thrown_on_object(WEAPON_ECMMINE, OBJ_EXTCOMMSHUB, /*goto*/ 0x0a) + label(0x06) + if_timer_gt(0, /*goto*/ 0x06) + if_weapon_thrown(WEAPON_ECMMINE, /*goto*/ 0x0b) + label(0x2c) + reloop(0x00) + + label(0x06) + if_timer_gt(240, /*goto*/ 0x53) + reloop(0x00) + + label(0x08) + reset_timer + message(CHR_JOANNA, 0x021d) // "ECM Mine placed correctly." + yield + mute_channel(CHANNEL_0) + assign_sound(0x8113, CHANNEL_0) + control_sound_from_object(CHANNEL_0, OBJ_SECURITYHUB, TRUE) + message(CHR_JOANNA, 0x024c) // "Internal security system temporarily disabled." + set_stage_flag(STAGEFLAG_SECURITYHUB_COMPLETE) + reloop(0x00) + + label(0x0a) + reset_timer + message(CHR_JOANNA, 0x021d) // "ECM Mine placed correctly." + yield + mute_channel(CHANNEL_1) + assign_sound(0x8113, CHANNEL_1) + control_sound_from_object(CHANNEL_1, OBJ_EXTCOMMSHUB, TRUE) + message(CHR_JOANNA, 0x024d) // "External communications hub disabled." + set_stage_flag(STAGEFLAG_EXTCOMMSHUB_COMPLETE) + reloop(0x00) + + label(0x0b) + restart_timer + reloop(0x00) + + // Check ECM mines wasted + label(0x53) + reset_timer + if_stage_flag_eq(STAGEFLAG_SECURITYHUB_COMPLETE, TRUE, /*goto*/ 0x88) + if_stage_flag_eq(STAGEFLAG_EXTCOMMSHUB_COMPLETE, TRUE, /*goto*/ 0x89) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0xbe) + if_ammo_quantity_lt(CHR_JOANNA, AMMOTYPE_ECM_MINE, 1, /*goto*/ 0xbe) + if_ammo_quantity_lt(CHR_JOANNA, AMMOTYPE_ECM_MINE, 2, /*goto*/ 0xbf) + reloop(0x00) + + label(0xbe) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0xc0) + if_ammo_quantity_lt(CHR_VELVET, AMMOTYPE_ECM_MINE, 2, /*goto*/ 0xc0) + reloop(0x00) + + label(0xbf) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0xc0) + if_ammo_quantity_lt(CHR_VELVET, AMMOTYPE_ECM_MINE, 1, /*goto*/ 0xc0) + reloop(0x00) + + label(0xc0) + goto_next(0x8d) + + // Security hub is complete + label(0x88) + if_stage_flag_eq(STAGEFLAG_EXTCOMMSHUB_COMPLETE, TRUE, /*goto*/ 0x8a) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0xbe) + if_ammo_quantity_lt(CHR_JOANNA, AMMOTYPE_ECM_MINE, 1, /*goto*/ 0xbe) + reloop(0x00) + + label(0xbe) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0xbf) + if_ammo_quantity_lt(CHR_VELVET, AMMOTYPE_ECM_MINE, 1, /*goto*/ 0xbf) + reloop(0x00) + + label(0xbf) + goto_next(0x8b) + + // Comms hub is complete + label(0x89) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0xbe) + if_ammo_quantity_lt(CHR_JOANNA, AMMOTYPE_ECM_MINE, 1, /*goto*/ 0xbe) + reloop(0x00) + + label(0xbe) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0xbf) + if_ammo_quantity_lt(CHR_VELVET, AMMOTYPE_ECM_MINE, 1, /*goto*/ 0xbf) + reloop(0x00) + + // Mines wasted with security hub remaining + label(0xbf) + goto_next(0x06) + label(0x06) + set_stage_flag(STAGEFLAG_SECURITYHUB_MINES_WASTED) + goto_next(0x8c) + + // Mines wasted with comms hub remaining + label(0x8b) + set_stage_flag(STAGEFLAG_EXTCOMMSHUB_MINES_WASTED) + + label(0x8c) + message(CHR_JOANNA, 0x021c) // "Badly placed ECM Mine." + reloop(0x00) + + // Mines wasted with both hubs remaining + label(0x8d) + message(CHR_JOANNA, 0x021c) // "Badly placed ECM Mine." + message(CHR_JOANNA, 0x0220) // "CANNOT complete all objectives." + set_stage_flag(STAGEFLAG_SECURITYHUB_MINES_WASTED) + set_stage_flag(STAGEFLAG_EXTCOMMSHUB_MINES_WASTED) + reloop(0x00) + + // Both hubs are complete + label(0x8a) + endloop(0x00) + + beginloop(0x06) + endloop(0x06) + + endfunction +}; + +u8 func1004_check_lab_lift_located[] = { + beginloop(0x52) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_LABLIFTDOOR1, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, OBJ_LABLIFTDOOR2, /*goto*/ 0x2c) + if_chr_in_room(CHR_P1P2, 0x00, 0x002b, /*goto*/ 0x2c) + reloop(0x52) + + label(0x2c) + if_stage_flag_eq(STAGEFLAG_LAB_LIFT_LOCATED, TRUE, /*goto*/ 0x2c) + message(CHR_P1P2, 0x024e) // "Laboratory lift located." + set_stage_flag(STAGEFLAG_LAB_LIFT_LOCATED) + label(0x2c) + yield + if_all_objectives_complete(/*goto*/ 0x2c) + endloop(0x52) + + label(0x2c) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x2c) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x2c) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x2c) + goto_next(0x06) + + label(0x2c) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x2c) + if_chr_dying(CHR_VELVET, /*goto*/ 0x2c) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x2c) + goto_next(0x06) + + label(0x2c) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x06) + set_invincible(CHR_JOANNA) + set_function(CHR_SELF, FUNC_OUTRO) + endfunction +}; + +u8 func1006_check_programmer_dead[] = { + if_difficulty_lt(DIFF_PA, /*goto*/ 0x06) + + beginloop(0x04) + if_chr_dying(CHR_PROGRAMMER, /*goto*/ 0x2c) + if_chr_unloaded(CHR_PROGRAMMER, /*goto*/ 0x2c) + endloop(0x04) + + label(0x2c) + if_stage_flag_eq(STAGEFLAG_PROGRAMMER_LOGGED_IN, TRUE, /*goto*/ 0x06) + message(CHR_JOANNA, 0x0239) // "Critical mission personnel killed." + set_stage_flag(STAGEFLAG_PROGRAMMER_DEAD) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) + + // Unreachable + label(0xac) + yield + goto_first(0x06) + + endfunction +}; + +u8 func1007_uplinking[] = { + beginloop(0x04) + if_chr_activated_object(CHR_JOANNA, OBJ_PC, /*goto*/ 0xbe) + if_chr_activated_object(CHR_VELVET, OBJ_PC, /*goto*/ 0xbf) + reloop(0x04) + + label(0xbe) + set_target_chr(CHR_JOANNA) + goto_next(0xc0) + + label(0xbf) + set_target_chr(CHR_VELVET) + goto_next(0xc0) + + label(0xc0) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_DATAUPLINK, /*goto*/ 0x2c) + message(TARGET_CHR, 0x0231) // "Unable to download - Data Uplink needed." + call_rng + if_rand_lt(60, /*goto*/ 0x0d) + if_rand_lt(120, /*goto*/ 0x0e) + if_rand_lt(180, /*goto*/ 0x0f) + + label(0x0c) + speak(TARGET_CHR, -1, 0x8116, -1, COLOR_00_GREEN) + goto_next(0x06) + + label(0x0d) + speak(TARGET_CHR, -1, 0x8117, -1, COLOR_00_GREEN) + goto_next(0x06) + + label(0x0e) + speak(TARGET_CHR, -1, 0x8118, -1, COLOR_00_GREEN) + goto_next(0x06) + + label(0x0f) + speak(TARGET_CHR, -1, 0x8118, -1, COLOR_00_GREEN) + + label(0x06) + restart_timer + + beginloop(0x10) + if_timer_gt(120, /*goto*/ 0x06) + goto_first(0x10) + + label(0x06) + reloop(0x04) + + label(0x2c) + if_stage_flag_eq(STAGEFLAG_PROGRAMMER_LOGGED_IN, TRUE, /*goto*/ 0xae) + restart_timer + message(TARGET_CHR, 0x022e) // "ACCESS DENIED - password needed." + assign_sound(0x01c0, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_PC, FALSE) + + beginloop(0xaf) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0xaf) + + label(0x06) + mute_channel(CHANNEL_7) + goto_first(0x04) + + label(0xae) + message(TARGET_CHR, 0x022c) // "File download initiated." + assign_sound(0x01bf, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_PC, TRUE) + restart_timer + + // @bug: Missing check for player still having uplink equipped + beginloop(0xac) + if_chr_distance_to_pad_gt(TARGET_CHR, 250, 0x01b6, /*goto*/ 0x2c) + if_stage_flag_eq(STAGEFLAG_DELETED_WITHOUT_DOWNLOAD, TRUE, /*goto*/ 0x12) + if_timer_gt(300, /*goto*/ 0xad) + endloop(0xac) + + label(0xad) + mute_channel(CHANNEL_7) + assign_sound(0x01c1, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_PC, TRUE) + message(TARGET_CHR, 0x022d) // "File download completed." + yield + set_stage_flag(STAGEFLAG_DOWNLOAD_COMPLETE) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2c) + message(TARGET_CHR, 0x024a) // "Datalink broken - connection terminated." + mute_channel(CHANNEL_7) + assign_sound(0x01c0, CHANNEL_6) + play_sound_from_object(CHANNEL_6, OBJ_PC, 0x012c, 0x0190) + restart_timer + + beginloop(0x11) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x11) + + label(0x06) + mute_channel(CHANNEL_6) + reloop(0x04) + + label(0x12) + message(TARGET_CHR, 0x024b) // "Datalink error - incomplete file download." + mute_channel(CHANNEL_7) + assign_sound(0x01c0, CHANNEL_6) + play_sound_from_object(CHANNEL_6, OBJ_PC, 0x012c, 0x0190) + restart_timer + + beginloop(0x13) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x13) + + label(0x06) + mute_channel(CHANNEL_6) + endloop(0x04) + + endfunction +}; + +u8 func1008_doorswitch[] = { + if_difficulty_gt(DIFF_SA, /*goto*/ 0x04) + + // A and SA + unlock_door(OBJ_OFFICEDOOR1, 0x01) + unlock_door(OBJ_OFFICEDOOR2, 0x01) + unset_object_flag_bank1(OBJ_OFFICEDOOR1, OBJECTFLAG1_20000000) + unset_object_flag_bank1(OBJ_OFFICEDOOR2, OBJECTFLAG1_20000000) + set_stage_flag(STAGEFLAG_OFFICE_DOOR_UNLOCKED) + set_function(CHR_SELF, GFUNC_IDLE) + + // PA + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_DOORSWITCH, /*goto*/ 0x2c) + label(0x06) + endloop(0x04) + + label(0x2c) + play_sound(0x00ba, -1) + message(CHR_P1P2, 0x022f) // "Door unlocked." + set_stage_flag(STAGEFLAG_OFFICE_DOOR_UNLOCKED) + unlock_door(OBJ_OFFICEDOOR1, 0x01) + unlock_door(OBJ_OFFICEDOOR2, 0x01) + unset_object_flag_bank1(OBJ_OFFICEDOOR1, OBJECTFLAG1_20000000) + unset_object_flag_bank1(OBJ_OFFICEDOOR2, OBJECTFLAG1_20000000) + yield + restart_timer + + beginloop(0x08) + if_timer_gt(45, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + assign_sound(0x043b, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_OFFICEDOOR1, TRUE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1009_check_civilians_killed[] = { + beginloop(0x04) + if_chr_dying(CHR_SECRETARY, /*goto*/ 0x2c) + if_chr_dying(CHR_CASS, /*goto*/ 0x09) + label(0x06) + endloop(0x04) + + label(0x2c) + message(CHR_JOANNA, 0x0237) // "Unacceptable civilian casualties." + set_stage_flag(STAGEFLAG_CIVILIANS_KILLED) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x09) + message(CHR_JOANNA, 0x0239) // "Critical mission personnel killed." + set_stage_flag(STAGEFLAG_CIVILIANS_KILLED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Wait for alarm while security is disabled, then set a flag on a CMP guard. + */ +u8 func100a_alarm_guard[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_SECURITY_DISABLED, FALSE, /*goto*/ 0x06) + if_alarm_active(/*goto*/ 0x2c) + label(0x06) + reloop(0x04) + + label(0x2c) + set_chr_flag_bankx(0x09, CHRFLAG0_00002000, BANK_0) + goto_next(0xb3) + + // Unreachable + label(0xac) + deactivate_alarm + reloop(0x04) + + label(0xb3) + label(0xb2) + endloop(0x04) + + endfunction +}; + +u8 func100b_lightswitch[] = { + beginloop(0x04) + if_chr_activated_object(CHR_F3, OBJ_LIGHTSWITCH, /*goto*/ 0x2c) + reloop(0x04) + + label(0x2c) + play_sound(0x00ba, -1) + if_stage_flag_eq(STAGEFLAG_LIGHTS_OFF, TRUE, /*goto*/ 0x06) + + // Turning lights off + set_stage_flag(STAGEFLAG_LIGHTS_OFF) + set_lights_state(0x0044, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x0039, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x003c, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x003d, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x003e, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x003b, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x0042, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x003f, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x003a, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x0041, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x0040, 0x07, 0x00, 0x00, 0x00) + reloop(0x04) + + // Turning lights on + label(0x06) + unset_stage_flag(STAGEFLAG_LIGHTS_OFF) + set_lights_state(0x0044, 0x06, 0x00, 0x00, 0x00) + set_lights_state(0x0039, 0x06, 0x00, 0x00, 0x00) + set_lights_state(0x003c, 0x06, 0x00, 0x00, 0x00) + set_lights_state(0x003d, 0x06, 0x00, 0x00, 0x00) + set_lights_state(0x003e, 0x06, 0x00, 0x00, 0x00) + set_lights_state(0x003b, 0x06, 0x00, 0x00, 0x00) + set_lights_state(0x0042, 0x06, 0x00, 0x00, 0x00) + set_lights_state(0x003f, 0x06, 0x00, 0x00, 0x00) + set_lights_state(0x003a, 0x06, 0x00, 0x00, 0x00) + set_lights_state(0x0041, 0x06, 0x00, 0x00, 0x00) + set_lights_state(0x0040, 0x06, 0x00, 0x00, 0x00) + endloop(0x04) + + endfunction +}; + +u8 func100c_noop2[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_PERSONALITY_DELETED, TRUE, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100d_check_objects_destroyed[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x0d) + + // SA and PA + beginloop(0x04) + // Check security hub + if_stage_flag_eq(STAGEFLAG_SECURITYHUB_DESTROYED, TRUE, /*goto*/ 0x2c) + if_object_in_good_condition(OBJ_SECURITYHUB, /*goto*/ 0x2c) + set_stage_flag(STAGEFLAG_SECURITYHUB_DESTROYED) + mute_channel(CHANNEL_0) + message(CHR_JOANNA, 0x0236) // "Critical mission object destroyed." + + // PA only - check door switch + label(0x2c) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2c) + if_stage_flag_eq(STAGEFLAG_OFFICE_DOOR_UNLOCKED, TRUE, /*goto*/ 0x2c) + if_stage_flag_eq(STAGEFLAG_DOORSWITCH_DESTROYED, TRUE, /*goto*/ 0x2c) + if_object_in_good_condition(OBJ_DOORSWITCH, /*goto*/ 0x2c) + set_stage_flag(STAGEFLAG_DOORSWITCH_DESTROYED) + message(CHR_JOANNA, 0x0236) // "Critical mission object destroyed." + + // PA only - check PC + label(0x2c) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2c) + if_objective_complete(2, /*goto*/ 0x2c) + if_stage_flag_eq(STAGEFLAG_PC_DESTROYED, TRUE, /*goto*/ 0x2c) + if_objective_failed(2, /*goto*/ 0x2c) + if_object_in_good_condition(OBJ_PC, /*goto*/ 0x2c) + set_stage_flag(STAGEFLAG_PC_DESTROYED) + message(CHR_JOANNA, 0x0236) // "Critical mission object destroyed." + + // Check comms hub + label(0x2c) + if_stage_flag_eq(STAGEFLAG_EXTCOMMSHUB_DESTROYED, TRUE, /*goto*/ 0x2c) + if_object_in_good_condition(OBJ_EXTCOMMSHUB, /*goto*/ 0x2c) + set_stage_flag(STAGEFLAG_EXTCOMMSHUB_DESTROYED) + mute_channel(CHANNEL_1) + message(CHR_JOANNA, 0x0236) // "Critical mission object destroyed." + label(0x2c) + endloop(0x04) + + // Agent + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1002_objectives_failed_msg[] = { + yield + set_chr_flag_bank3(CHR_CASS, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_SECRETARY, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_PROGRAMMER, CHRFLAG3_04000000) + set_function(CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG) + endfunction +}; + +#define wait_for_camera_finished \ + beginloop(0x08) \ + if_camera_animating(/*goto*/ 0x2c) \ + goto_next(0x06) \ + label(0x2c) \ + if_controller_button_pressed(/*goto*/ 0x06) \ + endloop(0x08) + + + +u8 func041b_intro_041b[] = { + if_controller_button_pressed(/*goto*/ 0x36) + camera_movement(0x00c9) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + show_object(OBJ_JUMPSHIP2) + set_object_flag_bank2(OBJ_JUMPSHIP2, OBJECTFLAG2_00000010) + object_do_animation(0x00ca, OBJ_JUMPSHIP2, 0x04ff, 0xff) + show_object(OBJ_POLICECAR) + set_object_flag_bank2(OBJ_POLICECAR, OBJECTFLAG2_00000010) + object_do_animation(0x0122, OBJ_POLICECAR, 0x04ff, 0xff) + show_object(OBJ_HOVERCOP3) + set_object_flag_bank2(OBJ_HOVERCOP3, OBJECTFLAG2_00000010) + object_do_animation(0x0123, OBJ_HOVERCOP3, 0x04ff, 0xff) + show_object(OBJ_HOVERCAR3) + set_object_flag_bank2(OBJ_HOVERCAR3, OBJECTFLAG2_00000010) + object_do_animation(0x0124, OBJ_HOVERCAR3, 0x04ff, 0xff) + show_object(OBJ_HOVERMOTO3) + set_object_flag_bank2(OBJ_HOVERMOTO3, OBJECTFLAG2_00000010) + object_do_animation(0x0125, OBJ_HOVERMOTO3, 0x04ff, 0xff) + show_object(OBJ_HOVERCAB3) + set_object_flag_bank2(OBJ_HOVERCAB3, OBJECTFLAG2_00000010) + object_do_animation(0x0126, OBJ_HOVERCAB3, 0x04ff, 0xff) + fade_to_color(0x000000ff, 0) + fade_to_color(0x00000000, 90) + set_cutscene_weapon(CHR_JOANNA, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_JOANNA, WEAPON_FALCON2_SILENCER, WEAPON_NONE) + + wait_for_camera_finished + + label(0x06) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + hide_object(OBJ_JUMPSHIP2) + hide_object(OBJ_POLICECAR) + hide_object(OBJ_HOVERCOP3) + hide_object(OBJ_HOVERCAR3) + hide_object(OBJ_HOVERMOTO3) + hide_object(OBJ_HOVERCAB3) + label(0x36) + return + endfunction +}; + +u8 func041a_intro_041a[] = { + if_controller_button_pressed(/*goto*/ 0x36) + camera_movement(0x00c7) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + show_object(OBJ_JUMPSHIP2) + set_object_flag_bank2(OBJ_JUMPSHIP2, OBJECTFLAG2_00000010) + object_do_animation(0x00c8, OBJ_JUMPSHIP2, 0x04ff, 0xff) + show_object(OBJ_HOVERTAXI2) + set_object_flag_bank2(OBJ_HOVERTAXI2, OBJECTFLAG2_00000010) + object_do_animation(0x011c, OBJ_HOVERTAXI2, 0x04ff, 0xff) + show_object(OBJ_HOVERCOP3) + set_object_flag_bank2(OBJ_HOVERCOP3, OBJECTFLAG2_00000010) + object_do_animation(0x011d, OBJ_HOVERCOP3, 0x04ff, 0xff) + show_object(OBJ_HOVERCAR3) + set_object_flag_bank2(OBJ_HOVERCAR3, OBJECTFLAG2_00000010) + object_do_animation(0x011e, OBJ_HOVERCAR3, 0x04ff, 0xff) + show_object(OBJ_HOVERMOTO3) + set_object_flag_bank2(OBJ_HOVERMOTO3, OBJECTFLAG2_00000010) + object_do_animation(0x011f, OBJ_HOVERMOTO3, 0x04ff, 0xff) + show_object(OBJ_HOVERCAB3) + set_object_flag_bank2(OBJ_HOVERCAB3, OBJECTFLAG2_00000010) + object_do_animation(0x0120, OBJ_HOVERCAB3, 0x04ff, 0xff) + show_object(OBJ_HOVERTRUCK3) + set_object_flag_bank2(OBJ_HOVERTRUCK3, OBJECTFLAG2_00000010) + object_do_animation(0x0121, OBJ_HOVERTRUCK3, 0x04ff, 0xff) + + wait_for_camera_finished + + label(0x06) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + hide_object(OBJ_JUMPSHIP2) + hide_object(OBJ_HOVERTAXI2) + hide_object(OBJ_HOVERCOP3) + hide_object(OBJ_HOVERCAR3) + hide_object(OBJ_HOVERMOTO3) + hide_object(OBJ_HOVERCAB3) + hide_object(OBJ_HOVERTRUCK3) + label(0x36) + return + endfunction +}; + +u8 func0419_intro_0419[] = { + if_controller_button_pressed(/*goto*/ 0x36) + camera_movement(0x00c5) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + show_object(OBJ_JUMPSHIP2) + set_object_flag_bank2(OBJ_JUMPSHIP2, OBJECTFLAG2_00000010) + object_do_animation(0x00c6, OBJ_JUMPSHIP2, 0x04ff, 0xff) + show_object(OBJ_HOVERTAXI1) + set_object_flag_bank2(OBJ_HOVERTAXI1, OBJECTFLAG2_00000010) + object_do_animation(0x0119, OBJ_HOVERTAXI1, 0x04ff, 0xff) + show_object(OBJ_HOVERCOP3) + set_object_flag_bank2(OBJ_HOVERCOP3, OBJECTFLAG2_00000010) + object_do_animation(0x011a, OBJ_HOVERCOP3, 0x04ff, 0xff) + show_object(OBJ_HOVERCAR3) + set_object_flag_bank2(OBJ_HOVERCAR3, OBJECTFLAG2_00000010) + object_do_animation(0x011b, OBJ_HOVERCAR3, 0x04ff, 0xff) + + wait_for_camera_finished + + label(0x06) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + hide_object(OBJ_JUMPSHIP2) + hide_object(OBJ_HOVERTAXI1) + hide_object(OBJ_HOVERCOP3) + hide_object(OBJ_HOVERCAR3) + label(0x36) + return + endfunction +}; + +u8 func041c_intro_041c[] = { + if_controller_button_pressed(/*goto*/ 0x36) + camera_movement(0x00cb) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + show_object(OBJ_JUMPSHIP2) + set_object_flag_bank2(OBJ_JUMPSHIP2, OBJECTFLAG2_00000010) + object_do_animation(0x00cc, OBJ_JUMPSHIP2, 0x04ff, 0xff) + show_object(OBJ_HOVERTAXI1) + set_object_flag_bank2(OBJ_HOVERTAXI1, OBJECTFLAG2_00000010) + object_do_animation(0x0127, OBJ_HOVERTAXI1, 0x04ff, 0xff) + + // Invalid object + show_object(0x1d) + set_object_flag_bank2(0x1d, OBJECTFLAG2_00000010) + object_do_animation(0x0128, 0x1d, 0x04ff, 0xff) + + show_object(OBJ_HOVERCOP3) + set_object_flag_bank2(OBJ_HOVERCOP3, OBJECTFLAG2_00000010) + object_do_animation(0x0129, OBJ_HOVERCOP3, 0x04ff, 0xff) + show_object(OBJ_HOVERCAR3) + set_object_flag_bank2(OBJ_HOVERCAR3, OBJECTFLAG2_00000010) + object_do_animation(0x012a, OBJ_HOVERCAR3, 0x04ff, 0xff) + show_object(OBJ_HOVERMOTO3) + set_object_flag_bank2(OBJ_HOVERMOTO3, OBJECTFLAG2_00000010) + object_do_animation(0x012b, OBJ_HOVERMOTO3, 0x04ff, 0xff) + + wait_for_camera_finished + + label(0x06) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + hide_object(OBJ_JUMPSHIP2) + hide_object(OBJ_HOVERTAXI1) + hide_object(0x1d) + hide_object(OBJ_HOVERCOP3) + hide_object(OBJ_HOVERCAR3) + hide_object(OBJ_HOVERMOTO3) + label(0x36) + return + endfunction +}; + +/** + * Part of the intro cutscene. + */ +u8 func041d_intro_041d[] = { + if_controller_button_pressed(/*goto*/ 0x36) + camera_movement(0x00cd) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + show_object(OBJ_JUMPSHIP2) + set_object_flag_bank2(OBJ_JUMPSHIP2, OBJECTFLAG2_00000010) + object_do_animation(0x00ce, OBJ_JUMPSHIP2, 0x01ff, 0xff) + show_object(OBJ_HOVERTAXI1) + set_object_flag_bank2(OBJ_HOVERTAXI1, OBJECTFLAG2_00000010) + object_do_animation(0x012c, OBJ_HOVERTAXI1, 0x04ff, 0xff) + show_object(0x1d) + set_object_flag_bank2(0x1d, OBJECTFLAG2_00000010) + object_do_animation(0x012d, 0x1d, 0x04ff, 0xff) + + wait_for_camera_finished + + label(0x06) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + hide_object(OBJ_JUMPSHIP2) + hide_object(OBJ_HOVERTAXI1) + hide_object(0x1d) + label(0x36) + return + endfunction +}; + +/** + * @unregistered + */ +u8 unregistered_function2[] = { + set_return_function(CHR_SELF, GFUNC_END_CINEMA) + set_function(CHR_SELF, FUNC_INTRO_041B) + endfunction +}; + +/** + * @unregistered + */ +u8 unregistered_function3[] = { + set_return_function(CHR_SELF, GFUNC_END_CINEMA) + set_function(CHR_SELF, FUNC_INTRO_041A) + endfunction +}; + +/** + * @unregistered + */ +u8 unregistered_function4[] = { + set_return_function(CHR_SELF, GFUNC_END_CINEMA) + set_function(CHR_SELF, FUNC_INTRO_0419) + endfunction +}; + +/** + * @unregistered + */ +u8 unregistered_function5[] = { + set_return_function(CHR_SELF, GFUNC_END_CINEMA) + set_function(CHR_SELF, FUNC_INTRO_041C) + endfunction +}; + +/** + * @unregistered + */ +u8 unregistered_function6[] = { + set_return_function(CHR_SELF, GFUNC_END_CINEMA) + set_function(CHR_SELF, FUNC_INTRO_041D) + endfunction +}; + +/** + * This is the most ridiculous way of doing an intro cutscene. This is how all + * the functions call each other: + * + * func0422_intro calls 041b with return to 041e + * 041e calls 041a with return to 041f + * 041f calls 0419 with return to 0420 + * 0420 calls 041c with return to 0421 + * 0421 calls 041d with return to 0428 + * 0428 does stuff then sets 0424 + * 0424 does stuff then sets 0425 + * 0425 does stuff then sets 0423 + * 0423 does stuff then sets 0426 + * 0426 does stuff then sets 0429 + * 0429 does stuff then sets 0427 + * 0427 does stuff then sets 042a + * 042a does stuff then sets 042b + * 042b does stuff then sets 042c + * 042c just sets 042d + * 042d finishes intro + */ +u8 func0422_intro[] = { + set_sfx_track(MUSIC_DEFECTION_INTRO_SFX) + + // No yield in this loop! + label(0x07) + cmd01dd_if_something(0x10, /*goto*/ 0x2c) + set_lighting(0x0000, 0x0b, 0x00) + goto_first(0x07) + + label(0x2c) + yield + set_stage_flag(STAGEFLAG_TRIGGER_INTRO) + yield + set_music_track(MUSIC_DEFECTION_INTRO) + + label(0x08) + cmd01dd_if_something(0x01, /*goto*/ 0x2c) + set_lighting(0x0000, 0x0b, 0x00) + goto_first(0x08) + + label(0x2c) + set_return_function(CHR_SELF, FUNC_INTRO_041E) + set_function(CHR_SELF, FUNC_INTRO_041B) + endfunction +}; + +u8 func041e_intro_041e[] = { + set_return_function(CHR_SELF, FUNC_INTRO_041F) + set_function(CHR_SELF, FUNC_INTRO_041A) + endfunction +}; + +u8 func041f_intro_041f[] = { + set_return_function(CHR_SELF, FUNC_INTRO_0420) + set_function(CHR_SELF, FUNC_INTRO_0419) + endfunction +}; + +u8 func0420_intro_0420[] = { + set_return_function(CHR_SELF, FUNC_INTRO_0421) + set_function(CHR_SELF, FUNC_INTRO_041C) + endfunction +}; + +u8 func0421_intro_0421[] = { + set_return_function(CHR_SELF, 0x0428) + set_function(CHR_SELF, FUNC_INTRO_041D) + endfunction +}; + +u8 func0422_intro_0423[] = { + if_controller_button_pressed(/*goto*/ 0x36) + camera_movement(0x00ee) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + show_object(OBJ_JUMPSHIP1) + set_object_flag_bank2(OBJ_JUMPSHIP1, OBJECTFLAG2_00000010) + object_do_animation(0x00ef, OBJ_JUMPSHIP1, 0x04ff, 0xff) + set_tinted_glass_enabled(TRUE) + + wait_for_camera_finished + + label(0x06) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + hide_object(OBJ_JUMPSHIP1) + set_tinted_glass_enabled(FALSE) + label(0x36) + set_function(CHR_SELF, FUNC_INTRO_0426) + endfunction +}; + +u8 func0422_intro_0424[] = { + if_controller_button_pressed(/*goto*/ 0x36) + camera_movement(0x00fc) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + show_object(OBJ_JUMPSHIP1) + set_object_flag_bank2(OBJ_JUMPSHIP1, OBJECTFLAG2_00000010) + object_do_animation(0x00fd, OBJ_JUMPSHIP1, 0x04ff, 0xff) + set_chr_flag_bank3(CHR_CASS, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_SECRETARY, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_SECRETARY, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_SECRETARY, CHRFLAG2_00020000) + animation(0x00fe, -1, -1, 0x0600, CHR_SECRETARY, 4) + + wait_for_camera_finished + + label(0x06) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + hide_object(OBJ_JUMPSHIP1) + unset_chr_flag_bank3(CHR_CASS, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_SECRETARY, CHRFLAG3_UNPLAYABLE) + label(0x36) + set_function(CHR_SELF, FUNC_INTRO_0425) + endfunction +}; + +u8 func0422_intro_0425[] = { + if_controller_button_pressed(/*goto*/ 0x36) + camera_movement(0x00ff) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + show_object(OBJ_JUMPSHIP1) + set_object_flag_bank2(OBJ_JUMPSHIP1, OBJECTFLAG2_00000010) + object_do_animation(0x0100, OBJ_JUMPSHIP1, 0x04ff, 0xff) + object_do_animation(0x0102, OBJ_BANNER1, 0x04ff, 0xff) + object_do_animation(0x0117, OBJ_BANNER2, 0x04ff, 0xff) + + wait_for_camera_finished + + label(0x06) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + hide_object(OBJ_JUMPSHIP1) + hide_object(OBJ_BANNER1) + hide_object(OBJ_BANNER2) + label(0x36) + set_function(CHR_SELF, FUNC_INTRO_0423) + endfunction +}; + +u8 func0422_intro_0426[] = { + if_controller_button_pressed(/*goto*/ 0x36) + camera_movement(0x012e) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + show_object(OBJ_JUMPSHIP1) + set_object_flag_bank2(OBJ_JUMPSHIP1, OBJECTFLAG2_00000010) + object_do_animation(0x012f, OBJ_JUMPSHIP1, 0x04ff, 0xff) + show_object(OBJ_BANNER1) + set_object_flag_bank2(OBJ_BANNER1, OBJECTFLAG2_00000010) + object_do_animation(0x0131, OBJ_BANNER1, 0x04ff, 0xff) + show_object(OBJ_BANNER2) + set_object_flag_bank2(OBJ_BANNER1, OBJECTFLAG2_00000010) + object_do_animation(0x0132, OBJ_BANNER2, 0x04ff, 0xff) + + wait_for_camera_finished + + label(0x06) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + hide_object(OBJ_JUMPSHIP1) + hide_object(OBJ_BANNER1) + hide_object(OBJ_BANNER2) + label(0x36) + set_function(CHR_SELF, FUNC_INTRO_0429) + endfunction +}; + +u8 func0422_intro_0427[] = { + if_controller_button_pressed(/*goto*/ 0x36) + camera_movement(0x0133) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + show_object(OBJ_JUMPSHIP1) + set_object_flag_bank2(OBJ_JUMPSHIP1, OBJECTFLAG2_00000010) + object_do_animation(0x0134, OBJ_JUMPSHIP1, 0x04ff, 0xff) + show_object(OBJ_ROPE) + set_object_flag_bank2(OBJ_ROPE, OBJECTFLAG2_00000010) + object_do_animation(0x0135, OBJ_ROPE, 0x04ff, 0xff) + show_object(OBJ_BANNER1) + set_object_flag_bank2(OBJ_BANNER1, OBJECTFLAG2_00000010) + object_do_animation(0x0136, OBJ_BANNER1, 0x04ff, 0xff) + show_object(OBJ_BANNER2) + set_object_flag_bank2(OBJ_BANNER1, OBJECTFLAG2_00000010) + object_do_animation(0x0137, OBJ_BANNER2, 0x04ff, 0xff) + + wait_for_camera_finished + + label(0x06) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + hide_object(OBJ_JUMPSHIP1) + hide_object(OBJ_ROPE) + hide_object(OBJ_BANNER1) + hide_object(OBJ_BANNER2) + label(0x36) + set_function(CHR_SELF, FUNC_INTRO_042A) + endfunction +}; + +u8 func0422_intro_0428[] = { + if_controller_button_pressed(/*goto*/ 0x36) + camera_movement(0x0103) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + show_object(OBJ_JUMPSHIP1) + set_object_flag_bank2(OBJ_JUMPSHIP1, OBJECTFLAG2_00000010) + object_do_animation(0x0104, OBJ_JUMPSHIP1, 0x04ff, 0xff) + set_object_flag_bank1(OBJ_HOVERCOP1, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank1(OBJ_HOVERCOP2, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank1(OBJ_HOVERCAR1, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank1(OBJ_HOVERCAR2, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank1(OBJ_HOVERMOTO1, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank1(OBJ_HOVERMOTO2, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank1(OBJ_HOVERTRUCK1, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank1(OBJ_HOVERTRUCK2, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank1(OBJ_HOVERCAB1, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank1(OBJ_HOVERCAB2, OBJECTFLAG1_INVISIBLE) + + wait_for_camera_finished + + label(0x06) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + hide_object(OBJ_JUMPSHIP1) + unset_object_flag_bank1(OBJ_HOVERCOP1, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank1(OBJ_HOVERCOP2, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank1(OBJ_HOVERCAR1, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank1(OBJ_HOVERCAR2, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank1(OBJ_HOVERMOTO1, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank1(OBJ_HOVERMOTO2, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank1(OBJ_HOVERTRUCK1, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank1(OBJ_HOVERTRUCK2, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank1(OBJ_HOVERCAB1, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank1(OBJ_HOVERCAB2, OBJECTFLAG1_INVISIBLE) + label(0x36) + set_function(CHR_SELF, FUNC_INTRO_0424) + endfunction +}; + +u8 func0422_intro_0429[] = { + if_controller_button_pressed(/*goto*/ 0x36) + camera_movement(0x0105) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + show_object(OBJ_JUMPSHIP1) + set_object_flag_bank2(OBJ_JUMPSHIP1, OBJECTFLAG2_00000010) + object_do_animation(0x0106, OBJ_JUMPSHIP1, 0x04ff, 0xff) + set_tinted_glass_enabled(TRUE) + + wait_for_camera_finished + + label(0x06) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + hide_object(OBJ_JUMPSHIP1) + set_tinted_glass_enabled(FALSE) + label(0x36) + set_function(CHR_SELF, FUNC_INTRO_0427) + endfunction +}; + +u8 func0422_intro_042a[] = { + if_controller_button_pressed(/*goto*/ 0x36) + camera_movement(0x0107) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + show_object(OBJ_JUMPSHIP1) + set_object_flag_bank2(OBJ_JUMPSHIP1, OBJECTFLAG2_00000010) + object_do_animation(0x0108, OBJ_JUMPSHIP1, 0x04ff, 0xff) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x0109, -1, -1, 0x0600, CHR_JOANNA, 4) + set_chr_hud_visible(CHR_JOANNA, TRUE) + show_object(OBJ_ROPE) + set_object_flag_bank2(OBJ_ROPE, OBJECTFLAG2_00000010) + object_do_animation(0x010a, OBJ_ROPE, 0x04ff, 0xff) + + wait_for_camera_finished + + label(0x06) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + hide_object(OBJ_JUMPSHIP1) + hide_object(OBJ_ROPE) + label(0x36) + set_function(CHR_SELF, FUNC_INTRO_042B) + endfunction +}; + +u8 func0422_intro_042b[] = { + if_controller_button_pressed(/*goto*/ 0x36) + camera_movement(0x010b) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + show_object(OBJ_JUMPSHIP1) + set_object_flag_bank2(OBJ_JUMPSHIP1, OBJECTFLAG2_00000010) + object_do_animation(0x010c, OBJ_JUMPSHIP1, 0x04ff, 0xff) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x010d, -1, -1, 0x0600, CHR_JOANNA, 4) + set_chr_hud_visible(CHR_JOANNA, TRUE) + show_object(OBJ_ROPE) + set_object_flag_bank2(OBJ_ROPE, OBJECTFLAG2_00000010) + object_do_animation(0x010e, OBJ_ROPE, 0x04ff, 0xff) + show_object(OBJ_BANNER1) + set_object_flag_bank2(OBJ_BANNER1, OBJECTFLAG2_00000010) + object_do_animation(0x010f, OBJ_BANNER1, 0x04ff, 0xff) + show_object(OBJ_BANNER2) + set_object_flag_bank2(OBJ_BANNER1, OBJECTFLAG2_00000010) + object_do_animation(0x0118, OBJ_BANNER2, 0x04ff, 0xff) + + wait_for_camera_finished + + label(0x06) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + hide_object(OBJ_JUMPSHIP1) + hide_object(OBJ_ROPE) + hide_object(OBJ_BANNER1) + hide_object(OBJ_BANNER2) + label(0x36) + set_function(CHR_SELF, FUNC_INTRO_042C) + endfunction +}; + +u8 func0422_intro_042c[] = { + set_function(CHR_SELF, FUNC_INTRO_042D) + endfunction +}; + +u8 func0422_intro_042d[] = { + camera_movement(0x0155) + cmd0175(60) + if_controller_button_pressed(/*goto*/ 0x36) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x0156, -1, -1, 0x0600, CHR_JOANNA, 4) + set_chr_hud_visible(CHR_JOANNA, FALSE) + + wait_for_camera_finished + + label(0x06) + label(0x36) + show_object(OBJ_BANNER1) + show_object(OBJ_BANNER2) + set_object_flag_bank2(OBJ_BANNER1, OBJECTFLAG2_00000010) + object_do_animation(0x0161, OBJ_BANNER1, 0x08ff, 0xff) + + // @bug: Copy/paste error - should be banner 2 + set_object_flag_bank2(OBJ_BANNER1, OBJECTFLAG2_00000010) + object_do_animation(0x0162, OBJ_BANNER2, 0x08ff, 0xff) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x0156, -2, -1, 0x0600, CHR_JOANNA, 2) + set_chr_hud_visible(CHR_JOANNA, FALSE) + mute_channel(CHANNEL_7) + mute_channel(CHANNEL_6) + mute_channel(CHANNEL_5) + set_function(CHR_SECRETARY, FUNC_INIT_SECRETARY) + enter_firstperson + set_stage_flag(STAGEFLAG_STOP_INTRO) + restart_timer + + beginloop(0x09) + if_timer_gt(90, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + restart_default_music + reset_ambience + set_eeprom_flag(EEPROMFLAG_CI_TOUR_DONE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0416_outro_from_menu[] = { + set_function(CHR_SELF, FUNC_OUTRO) + endfunction +}; + +u8 func0416_outro[] = { + camera_movement(0x00f2) + set_music_track(MUSIC_DEFECTION_OUTRO) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0xf1, CHRFLAG3_HIDDEN) + set_function(CHR_P1P2, GFUNC_IDLE) + set_chr_flag_bank3(CHR_P1P2, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_P1P2, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_P1P2, CHRFLAG2_00020000) + animation(0x00f3, -1, -1, 0x0600, CHR_P1P2, 4) + restart_timer + unset_stage_flag(STAGEFLAG_LAB_ELEVATOR_CLOSED) + open_door2(OBJ_LABLIFTDOOR1) + open_door2(OBJ_LABLIFTDOOR2) + restart_timer + set_cutscene_weapon(CHR_P1P2, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_P1P2, WEAPON_FALCON2_SILENCER, WEAPON_NONE) + show_nonessential_chrs(FALSE) + + beginloop(0xb6) + if_controller_button_pressed(/*goto*/ 0xbd) + if_timer_gt(40, /*goto*/ 0x06) + endloop(0xb6) + + label(0x06) + play_sound(0x0165, CHANNEL_10) + + beginloop(0xb7) + if_controller_button_pressed(/*goto*/ 0xbd) + if_timer_gt(110, /*goto*/ 0x06) + endloop(0xb7) + + label(0x06) + play_sound(0x0167, CHANNEL_10) + + beginloop(0xb8) + if_controller_button_pressed(/*goto*/ 0xbd) + if_timer_gt(123, /*goto*/ 0x06) + endloop(0xb8) + + label(0x06) + play_sound(0x01dc, CHANNEL_10) + + beginloop(0xb9) + if_controller_button_pressed(/*goto*/ 0xbd) + if_timer_gt(215, /*goto*/ 0x06) + endloop(0xb9) + + label(0x06) + play_sound(0x01d8, CHANNEL_10) + + beginloop(0xba) + if_controller_button_pressed(/*goto*/ 0xbd) + if_timer_gt(245, /*goto*/ 0x06) + endloop(0xba) + + label(0x06) + play_sound(0x01da, CHANNEL_10) + + beginloop(0xbb) + if_controller_button_pressed(/*goto*/ 0xbd) + if_timer_gt(250, /*goto*/ 0x06) + endloop(0xbb) + + label(0x06) + play_sound(0x80f6, CHANNEL_10) + + beginloop(0xbc) + if_controller_button_pressed(/*goto*/ 0xbd) + if_timer_gt(285, /*goto*/ 0x06) + endloop(0xbc) + + label(0x06) + play_sound(0x01db, CHANNEL_10) + + beginloop(0x08) + if_camera_animating(/*goto*/ 0x2c) + goto_next(0xbd) + + label(0x2c) + if_controller_button_pressed(/*goto*/ 0xbd) + if_stage_flag_eq(STAGEFLAG_LAB_ELEVATOR_CLOSED, TRUE, /*goto*/ 0x2c) + if_timer_lt(336, /*goto*/ 0x2c) + close_door(OBJ_LABLIFTDOOR1) + close_door(OBJ_LABLIFTDOOR2) + set_stage_flag(STAGEFLAG_LAB_ELEVATOR_CLOSED) + label(0x2c) + endloop(0x08) + + label(0xbd) + mute_channel(CHANNEL_10) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1000_rebuild_groups[] = { + set_function(CHR_SELF, GFUNC_REBUILD_GROUPS) + endfunction +}; + +u8 func1401_setup_counterop[] = { + noop016c + yield + set_chr_alliance(CHR_COUNTEROP, ALLIANCE_ENEMY) + set_function(CHR_SELF, GFUNC_REBUILD_GROUPS) + endfunction +}; + +u8 func100f_check_necklace_collected[] = { + beginloop(0x04) + if_chr_has_object(CHR_JOANNA, OBJ_NECKLACE, /*goto*/ 0x2c) + if_chr_has_object(CHR_VELVET, OBJ_NECKLACE, /*goto*/ 0x2c) + endloop(0x04) + + label(0x2c) + remove_cass_necklace(CHR_CASS) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1003_start_intro[] = { + set_function(CHR_SELF, FUNC_INTRO) + endfunction +}; + +u8 func1010_start_hub_humms[] = { + yield + play_sound_from_object2(CHANNEL_0, OBJ_SECURITYHUB, 0x8111, 0x0f, 0x02) + yield + play_sound_from_object2(CHANNEL_1, OBJ_EXTCOMMSHUB, 0x8111, 0x0f, 0x02) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1011_check_hubs_activated[] = { + beginloop(0x04) + if_chr_activated_object(CHR_F3, OBJ_SECURITYHUB, /*goto*/ 0x08) + if_chr_activated_object(CHR_F3, OBJ_EXTCOMMSHUB, /*goto*/ 0x0a) + reloop(0x04) + + label(0x08) + message(CHR_JOANNA, 0x0250) // "ECM Mine needed to disable security hub." + restart_timer + + beginloop(0x09) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x09) + + label(0x0a) + message(CHR_JOANNA, 0x0251) // "ECM Mine needed to disable comms hub." + restart_timer + + beginloop(0x0b) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x0b) + + label(0x06) + endloop(0x04) + + endfunction +}; + +u8 func1012_trigger_x_music[] = { + // Wait until arriving at bottom floor + beginloop(0x04) + if_camera_animating(/*goto*/ 0x2c) + if_chr_y(CHR_JOANNA, -8000, OPERATOR_LESS_THAN, /*goto*/ 0x06) + if_chr_y(CHR_VELVET, -8000, OPERATOR_LESS_THAN, /*goto*/ 0x06) + label(0x2c) + endloop(0x04) + + // This stage flag check seems a bit weird, but it makes sense if Rare were + // testing the outro in isolation of the rest of the stage. They obviously + // didn't want the X music playing during the outro while testing. Note that + // the flag is only set during the outro cutscene, not during gameplay. + label(0x06) + if_stage_flag_eq(STAGEFLAG_LAB_ELEVATOR_CLOSED, TRUE, /*goto*/ 0x2c) + play_x_music(CHANNEL_10, 60) + label(0x2c) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +#define init_guard(accuracy, health) \ + set_chr_dodge_rating(2, 0x14) \ + set_unarmeddodgerating(0) \ + set_accuracy(accuracy) \ + set_reaction_speed(0) \ + set_chr_health(CHR_SELF, health) \ + set_armor(0) \ + set_recovery_speed(0) \ + set_shield(0) + + + +u8 func0417_init_dd_guard[] = { + init_guard(0, 40) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func0418_init_shock_guard[] = { + if_difficulty_gt(DIFF_A, /*goto*/ 0x2c) + + // Agent + init_guard(10, 40) + set_function(CHR_SELF, GFUNC_UNALERTED) + + // SA and PA + label(0x2c) + init_guard(20, 40) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func0430_init_falcon_guard[] = { + if_difficulty_gt(DIFF_A, /*goto*/ 0x2c) + + // Agent + init_guard(20, 40) + set_function(CHR_SELF, GFUNC_UNALERTED) + + // SA and PA + label(0x2c) + init_guard(30, 60) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func1013_msg_commshubnearby[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x0d) + + beginloop(0x04) + if_chr_y(CHR_JOANNA, -770, OPERATOR_LESS_THAN, /*goto*/ 0x2c) + reloop(0x04) + + label(0x2c) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0039, /*goto*/ 0x2c) + endloop(0x04) + + label(0x2c) + speak(CHR_JOANNA, 0x025d, 0x8170, CHANNEL_6, COLOR_09_BLUE) // "We're getting a positive reading - the internal co..." + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1014_msg_officefloor[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x0d) + + beginloop(0x04) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0054, /*goto*/ 0x2c) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0064, /*goto*/ 0x0d) + endloop(0x04) + + label(0x2c) + speak(CHR_JOANNA, 0x025e, 0x8171, CHANNEL_6, COLOR_09_BLUE) // "You're on the same floor as Cassandra's office." + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1015_msg_securityroom[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x0d) + + beginloop(0x04) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0025, /*goto*/ 0x2c) + endloop(0x04) + + label(0x2c) + speak(CHR_JOANNA, 0x025f, 0x73a2, CHANNEL_6, COLOR_09_BLUE) // "The other hub has got to be in the Security Room." + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1016_msg_basementelevator[] = { + beginloop(0x04) + if_chr_in_room(CHR_JOANNA, 0x00, 0x002c, /*goto*/ 0x2c) + endloop(0x04) + + label(0x2c) + speak(CHR_JOANNA, 0x0260, 0x8172, CHANNEL_6, COLOR_09_BLUE) // "The basement elevator must be around there somewhe..." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1017_unlock_basement_door[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2c) + set_function(CHR_SELF, GFUNC_IDLE) + + // Agent only - unlock basement door (SA and PA requires necklace) + label(0x2c) + unlock_door(OBJ_SECRETDOOR, 0x20) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Rare used stage flags to trigger the intro cutscene to restart. + */ +u8 func0422_intro_speaking[] = { + label(0xbe) + if_stage_flag_eq(STAGEFLAG_TRIGGER_INTRO, TRUE, /*goto*/ 0xbf) + yield + goto_first(0xbe) + + label(0xbf) + unset_stage_flag(STAGEFLAG_TRIGGER_INTRO) + restart_timer + + beginloop(0xb6) + if_stage_flag_eq(STAGEFLAG_STOP_INTRO, TRUE, /*goto*/ 0x06) + if_timer_gt(700, /*goto*/ 0x2c) + endloop(0xb6) + + label(0x2c) + speak(CHR_JOANNA, 0x0264, 0x73e4, CHANNEL_6, COLOR_09_BLUE) // "Why the big hurry?" + + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_STOP_INTRO, TRUE, /*goto*/ 0x06) + if_sound_finished(CHANNEL_6, /*goto*/ 0x2c) + endloop(0x08) + + label(0x2c) + speak(CHR_JOANNA, 0x0265, 0x73e5, CHANNEL_6, COLOR_06_WHITE) // "If Dr. Caroll is not extracted tonight, dataDyne w..." + + beginloop(0x09) + if_stage_flag_eq(STAGEFLAG_STOP_INTRO, TRUE, /*goto*/ 0x06) + if_sound_finished(CHANNEL_6, /*goto*/ 0x2c) + endloop(0x09) + + label(0x2c) + speak(CHR_JOANNA, 0x0266, 0x73e6, CHANNEL_6, COLOR_09_BLUE) // "Are they all expendable?" + + beginloop(0x0a) + if_stage_flag_eq(STAGEFLAG_STOP_INTRO, TRUE, /*goto*/ 0x06) + if_sound_finished(CHANNEL_6, /*goto*/ 0x2c) + endloop(0x0a) + + label(0x2c) + speak(CHR_JOANNA, 0x0267, 0x73e7, CHANNEL_6, COLOR_06_WHITE) // "Don't joke! You have to be careful, Joanna. Code k..." + + beginloop(0x0b) + if_stage_flag_eq(STAGEFLAG_STOP_INTRO, TRUE, /*goto*/ 0x06) + if_sound_finished(CHANNEL_6, /*goto*/ 0x2c) + endloop(0x0b) + + label(0x2c) + speak(CHR_JOANNA, 0x0268, 0x73e8, CHANNEL_6, COLOR_09_BLUE) // "What's the target location?" + + beginloop(0x0c) + if_stage_flag_eq(STAGEFLAG_STOP_INTRO, TRUE, /*goto*/ 0x06) + if_sound_finished(CHANNEL_6, /*goto*/ 0x2c) + endloop(0x0c) + + label(0x2c) + speak(CHR_JOANNA, 0x0269, 0x73e9, CHANNEL_6, COLOR_06_WHITE) // "Work your way down the building to the ground leve..." + + beginloop(0x0d) + if_stage_flag_eq(STAGEFLAG_STOP_INTRO, TRUE, /*goto*/ 0x06) + if_sound_finished(CHANNEL_6, /*goto*/ 0x2c) + endloop(0x0d) + + label(0x2c) + speak(CHR_JOANNA, 0x026a, 0x73ea, CHANNEL_6, COLOR_09_BLUE) // "How will I recognize him?" + + beginloop(0x0e) + if_stage_flag_eq(STAGEFLAG_STOP_INTRO, TRUE, /*goto*/ 0x06) + if_sound_finished(CHANNEL_6, /*goto*/ 0x2c) + endloop(0x0e) + + label(0x2c) + speak(CHR_JOANNA, 0x026b, 0x73eb, CHANNEL_6, COLOR_06_WHITE) // "We don't have an image record, and we can't find a..." + + beginloop(0x0f) + if_stage_flag_eq(STAGEFLAG_STOP_INTRO, TRUE, /*goto*/ 0x06) + if_sound_finished(CHANNEL_6, /*goto*/ 0x2c) + endloop(0x0f) + + label(0x2c) + label(0x06) + mute_channel(CHANNEL_6) + goto_first(0xbe) + + endfunction +}; + +/** + * Hide guards, then unhide then once you pass below -2000. This is likely the + * first staircase between the light switch room and Cass's office floor. + */ +u8 func1019_toggle_guards[] = { + label(0x2c) + hide_chr(0x01) + hide_chr(0x02) + hide_chr(0x0e) + hide_chr(0x12) + hide_chr(0x0f) + hide_chr(0x10) + hide_chr(0x11) + hide_chr(0x13) + hide_chr(0x03) + hide_chr(0x04) + hide_chr(0x14) + hide_chr(0x15) + hide_chr(0x16) + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_y(CHR_P1P2, -2000, OPERATOR_LESS_THAN, /*goto*/ 0x2c) + endloop(0x04) + + label(0x2c) + show_chr(0x01) + yield + show_chr(0x02) + yield + show_chr(0x0e) + yield + show_chr(0x12) + yield + show_chr(0x0f) + yield + show_chr(0x10) + yield + show_chr(0x11) + yield + show_chr(0x13) + yield + show_chr(0x03) + yield + show_chr(0x04) + yield + show_chr(0x14) + yield + show_chr(0x15) + yield + show_chr(0x16) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101a_noop[] = { + yield + yield + yield + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func141c_start_lifts[] = { + activate_lift(2, OBJ_LIFT1) + activate_lift(1, OBJ_LIFT2) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101d_disable_cameras[] = { + // Check security hub objective + beginloop(0xc4) + if_objective_complete(0, /*goto*/ 0x2c) + endloop(0xc4) + + label(0x2c) + set_object_flag_bank0(OBJ_CAMERA1, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(OBJ_CAMERA2, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(OBJ_CAMERA3, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(OBJ_CAMERA4, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(OBJ_CAMERA5, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(OBJ_CAMERA6, OBJECTFLAG0_DEACTIVATED) + set_stage_flag(STAGEFLAG_SECURITY_DISABLED) + restart_timer + + // @bug: If you disable the security (bottom floor), then activate the alarm + // before the 2 minute timer expires (eg. by getting Cass to activate it), + // then the first camera is never reactivated. The if_alarm_active check + // should go to 0x2c instead. + beginloop(0x08) + if_alarm_active(/*goto*/ 0x06) + if_timer_gt(7200, /*goto*/ 0x2c) + endloop(0x08) + + // 2 minutes elapsed + label(0x2c) + if_object_in_good_condition(OBJ_CAMERA1, /*goto*/ 0x2c) + goto_next(0x06) + label(0x2c) + unset_object_flag_bank0(OBJ_CAMERA1, OBJECTFLAG0_DEACTIVATED) + + label(0x06) + if_object_in_good_condition(OBJ_CAMERA2, /*goto*/ 0x2c) + goto_next(0x06) + label(0x2c) + unset_object_flag_bank0(OBJ_CAMERA2, OBJECTFLAG0_DEACTIVATED) + + label(0x06) + if_object_in_good_condition(OBJ_CAMERA3, /*goto*/ 0x2c) + goto_next(0x06) + label(0x2c) + unset_object_flag_bank0(OBJ_CAMERA3, OBJECTFLAG0_DEACTIVATED) + + label(0x06) + if_object_in_good_condition(OBJ_CAMERA4, /*goto*/ 0x2c) + goto_next(0x06) + label(0x2c) + unset_object_flag_bank0(OBJ_CAMERA4, OBJECTFLAG0_DEACTIVATED) + + label(0x06) + if_object_in_good_condition(OBJ_CAMERA5, /*goto*/ 0x2c) + goto_next(0x06) + label(0x2c) + unset_object_flag_bank0(OBJ_CAMERA5, OBJECTFLAG0_DEACTIVATED) + + label(0x06) + if_object_in_good_condition(OBJ_CAMERA6, /*goto*/ 0x2c) + goto_next(0x06) + label(0x2c) + unset_object_flag_bank0(OBJ_CAMERA6, OBJECTFLAG0_DEACTIVATED) + + label(0x06) + message(CHR_JOANNA, 0x0261) // "Security system is now back online." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * @unregistered + */ +u8 unregistered_function7[] = { + message(CHR_JOANNA, 0x0263) // "2023 AD, 2214 Hours Lucerne Tower - dataDyne HQ" + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101e_lift_door_sounds[] = { + beginloop(0xc4) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_LIFT1DOOR1, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, OBJ_LIFT1DOOR2, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, OBJ_LIFT1DOOR3, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, OBJ_LIFT1DOOR4, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, OBJ_LIFT2DOOR1, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, OBJ_LIFT2DOOR2, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, OBJ_LIFT2DOOR3, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, OBJ_LIFT2DOOR4, /*goto*/ 0x2c) + reloop(0xc4) + + label(0x2c) + play_sound(0x81b0, -1) + restart_timer + + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + endloop(0xc4) + + endfunction +}; + +/** + * @unused + */ +u8 func042e_init_surrendering_guard[] = { + label(0xc4) + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, FUNC_SURRENDERING_GUARD) + endfunction +}; + +/** + * @unused + */ +u8 func042f_surrendering_guard[] = { + // Wait for player detection + beginloop(0xc4) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x2c) + if_enemy_distance_lt_and_los(500, /*goto*/ 0x2c) + if_near_miss(/*goto*/ 0x2c) + if_shot_near_chr(0x00, /*goto*/ 0x2c) + endloop(0xc4) + + // Be surprised + label(0x2c) + say_quip(CHR_JOANNA, 0x12, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "What the?!","Who the?!" + animation(ANIM_SURPRISED_0202, 0, -1, 0x0010, CHR_SELF, 2) + + // Wait 1 second + beginloop(0x08) + dprint 'S','4',0, + if_timer_gt(60, /*goto*/ 0x2c) + endloop(0x08) + + label(0x2c) + try_target_chr_in_same_group(/*goto*/ 0x54) + goto_next(0x55) + + label(0x54) + try_run_to_chr(FOLLOW_CHR, /*goto*/ 0x56) + + beginloop(0x56) + if_chr_distance_gt(300, /*goto*/ 0x06) + if_chr_in_view(/*goto*/ 0x28) + label(0x06) + if_chr_death_animation_finished(FOLLOW_CHR, /*goto*/ 0x55) + if_chr_unloaded(FOLLOW_CHR, /*goto*/ 0x55) + if_detected_chr(FOLLOW_CHR, /*goto*/ 0x57) + if_chr_stopped(/*goto*/ 0x57) + endloop(0x56) + + // Warn + label(0x57) + dprint 'W','A','R','N',' ','F','R','I','E','N','D','S','\n',0, + say_quip(CHR_JOANNA, 0x10, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00) // "Intruder alert!","We've got trouble","We've got problems" + set_group_alertness(100) + + // No chr in same group, or follow through from above + // Wait until player in range and then surrender. + beginloop(0x55) + if_chr_distance_gt(300, /*goto*/ 0x06) + if_chr_in_view(/*goto*/ 0x28) + label(0x06) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0x58) + endloop(0x55) + + label(0x58) + restart_timer + retreat(0x02, 0x02) + + beginloop(0x0a) + if_chr_distance_gt(300, /*goto*/ 0x06) + if_chr_in_view(/*goto*/ 0x28) + label(0x06) + if_timer_gt(600, /*goto*/ 0x2c) + endloop(0x0a) + + label(0x2c) + stop_chr + goto_first(0x55) + + // Surrender + label(0x28) + surrender + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101f_setup_rtracker[] = { + yield + set_object_flag_bank2(OBJ_FALCONSIL1, OBJECTFLAG2_RTRACKED_BLUE) + set_object_flag_bank2(OBJ_FALCONSIL2, OBJECTFLAG2_RTRACKED_BLUE) + set_object_flag_bank2(OBJ_LAPTOPGUN, OBJECTFLAG2_RTRACKED_BLUE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1420_setup_portals[] = { + yield + set_portal_flag(0x008e, 0x08) + set_portal_flag(0x008f, 0x08) + set_portal_flag(0x0084, 0x08) + set_portal_flag(0x0090, 0x08) + set_portal_flag(0x0091, 0x08) + set_portal_flag(0x0093, 0x08) + set_portal_flag(0x0096, 0x08) + set_portal_flag(0x0095, 0x08) + set_portal_flag(0x0099, 0x08) + set_portal_flag(0x00b6, 0x08) + set_portal_flag(0x00bf, 0x08) + set_portal_flag(0x00be, 0x08) + set_portal_flag(0x00c0, 0x08) + set_portal_flag(0x00c2, 0x08) + set_portal_flag(0x00c4, 0x08) + set_portal_flag(0x00c8, 0x08) + set_portal_flag(0x00c7, 0x08) + set_portal_flag(0x00c9, 0x08) + set_portal_flag(0x00cd, 0x08) + set_portal_flag(0x00ce, 0x08) + set_portal_flag(0x00d2, 0x08) + set_portal_flag(0x00e0, 0x08) + set_portal_flag(0x00dc, 0x08) + set_portal_flag(0x00de, 0x08) + set_portal_flag(0x00e3, 0x08) + set_portal_flag(0x00e5, 0x08) + set_portal_flag(0x00e7, 0x08) + set_portal_flag(0x00fb, 0x08) + set_portal_flag(0x00fa, 0x08) + set_portal_flag(0x00fc, 0x08) + set_portal_flag(0x00ff, 0x08) + set_portal_flag(0x0100, 0x08) + set_portal_flag(0x0103, 0x08) + set_portal_flag(0x0102, 0x08) + set_portal_flag(0x0104, 0x08) + set_portal_flag(0x0109, 0x08) + set_portal_flag(0x010c, 0x08) + set_portal_flag(0x0119, 0x08) + set_portal_flag(0x0112, 0x08) + set_portal_flag(0x0117, 0x08) + set_portal_flag(0x0120, 0x08) + set_portal_flag(0x011e, 0x08) + set_portal_flag(0x011c, 0x08) + set_portal_flag(0x0108, 0x08) + set_portal_flag(0x006f, 0x08) + set_portal_flag(0x007d, 0x08) + set_portal_flag(0x0080, 0x08) + set_portal_flag(0x0081, 0x08) + set_portal_flag(0x0075, 0x08) + set_portal_flag(0x0078, 0x08) + set_portal_flag(0x0079, 0x08) + set_portal_flag(0x0006, 0x08) + set_portal_flag(0x0004, 0x08) + set_portal_flag(0x0008, 0x08) + set_portal_flag(0x000a, 0x08) + set_portal_flag(0x0001, 0x08) + set_portal_flag(0x0005, 0x08) + set_portal_flag(0x0000, 0x08) + set_portal_flag(0x0003, 0x08) + set_portal_flag(0x0007, 0x08) + set_portal_flag(0x0013, 0x08) + set_portal_flag(0x0009, 0x08) + set_portal_flag(0x00b1, 0x08) + set_portal_flag(0x00ef, 0x08) + set_portal_flag(0x00ee, 0x08) + set_portal_flag(0x0121, 0x08) + set_portal_flag(0x00e8, 0x08) + set_portal_flag(0x00e9, 0x08) + set_portal_flag(0x00ea, 0x08) + set_portal_flag(0x00ec, 0x08) + set_portal_flag(0x00eb, 0x08) + set_portal_flag(0x00ed, 0x08) + set_portal_flag(0x009d, 0x08) + set_portal_flag(0x00af, 0x08) + set_portal_flag(0x00a1, 0x08) + set_portal_flag(0x005a, 0x08) + set_portal_flag(0x005c, 0x08) + set_portal_flag(0x005d, 0x08) + set_portal_flag(0x0060, 0x08) + set_portal_flag(0x0034, 0x08) + set_portal_flag(0x0030, 0x08) + set_portal_flag(0x002e, 0x08) + set_portal_flag(0x002b, 0x08) + set_portal_flag(0x0028, 0x08) + set_portal_flag(0x0025, 0x08) + set_portal_flag(0x0036, 0x08) + set_portal_flag(0x0038, 0x08) + set_portal_flag(0x004f, 0x08) + set_portal_flag(0x0051, 0x08) + set_portal_flag(0x0052, 0x08) + set_portal_flag(0x0057, 0x08) + set_portal_flag(0x0058, 0x08) + set_portal_flag(0x0031, 0x08) + set_portal_flag(0x002f, 0x08) + set_portal_flag(0x0023, 0x08) + set_portal_flag(0x00a6, 0x08) + set_portal_flag(0x00a3, 0x08) + set_portal_flag(0x00a2, 0x08) + set_portal_flag(0x00a4, 0x08) + set_portal_flag(0x0087, 0x08) + set_portal_flag(0x00b9, 0x08) + set_portal_flag(0x00b4, 0x08) + set_portal_flag(0x00b2, 0x08) + set_portal_flag(0x00b3, 0x08) + set_portal_flag(0x00bd, 0x08) + set_portal_flag(0x00f4, 0x08) + set_portal_flag(0x00f2, 0x08) + set_portal_flag(0x00f0, 0x08) + set_portal_flag(0x00f8, 0x08) + set_portal_flag(0x00f1, 0x08) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1421_setup_lighting[] = { + yield + set_lighting(0x0000, 0x00, 0x01) + set_lighting(0x0000, 0x01, 0x00) + set_lighting(0x0000, 0x02, 0x00) + set_lighting(0x0000, 0x03, 0x00) + set_lighting(0x0000, 0x04, 0x00) + set_lighting(0x0002, 0x05, 0x01) + set_lighting(0x0002, 0x06, 0x01) + set_lighting(0x0003, 0x05, 0x01) + set_lighting(0x0003, 0x06, 0x01) + set_lighting(0x0004, 0x05, 0x01) + set_lighting(0x0004, 0x06, 0x01) + set_lighting(0x0005, 0x06, 0x01) + set_lighting(0x0006, 0x06, 0x01) + set_lighting(0x0007, 0x06, 0x01) + set_lighting(0x0008, 0x06, 0x01) + set_lighting(0x0009, 0x06, 0x01) + set_lighting(0x000a, 0x06, 0x01) + set_lighting(0x000b, 0x06, 0x01) + set_lighting(0x000c, 0x06, 0x01) + set_lighting(0x000d, 0x06, 0x01) + set_lighting(0x000e, 0x06, 0x01) + set_lighting(0x000f, 0x06, 0x01) + set_lighting(0x0010, 0x06, 0x01) + set_lighting(0x0011, 0x06, 0x01) + set_lighting(0x0012, 0x06, 0x01) + set_lighting(0x0013, 0x06, 0x01) + set_lighting(0x0014, 0x06, 0x01) + set_lighting(0x003a, 0x05, 0x01) + set_lighting(0x00a2, 0x06, 0x01) + set_lighting(0x00a4, 0x06, 0x01) + set_lighting(0x00a5, 0x06, 0x01) + set_lighting(0x00a7, 0x06, 0x01) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 unregistered_function8[] = { + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +struct ailists functions[] = { + { func0401_do_some_animation, 0x0401 }, + { func0402_guard_with_chrflag, 0x0402 }, + { func0403_shielded_guard, 0x0403 }, + { func0404_init_hovercar, 0x0404 }, + { func0405_start_path26, 0x0405 }, + { func0406_start_path27, 0x0406 }, + { func0407_start_path28, 0x0407 }, + { func0408_start_path29, 0x0408 }, + { func0409_start_path30, 0x0409 }, + { func040a_start_path31, 0x040a }, + { func040b_start_path32, 0x040b }, + { func040c_start_path33, 0x040c }, + { func040d_start_path34, 0x040d }, + { func040e_start_path35, 0x040e }, + { func040f_cass, 0x040f }, + { func0410_init_cass, 0x0410 }, + { func0411_secretary, 0x0411 }, + { func0412_init_secretary, 0x0412 }, + { func0413_c318, 0x0413 }, + { func0414_programmer, 0x0414 }, + { func0415_set_idle, 0x0415 }, + { func0419_intro_0419, 0x0419 }, + { func041a_intro_041a, 0x041a }, + { func041b_intro_041b, 0x041b }, + { func041c_intro_041c, 0x041c }, + { func041d_intro_041d, 0x041d }, + { func041e_intro_041e, 0x041e }, + { func041f_intro_041f, 0x041f }, + { func0420_intro_0420, 0x0420 }, + { func0421_intro_0421, 0x0421 }, + { func0422_intro, 0x0422 }, + { func0422_intro_0423, 0x0423 }, + { func0422_intro_0424, 0x0424 }, + { func0422_intro_0425, 0x0425 }, + { func0422_intro_0426, 0x0426 }, + { func0422_intro_0427, 0x0427 }, + { func0422_intro_0428, 0x0428 }, + { func0422_intro_0429, 0x0429 }, + { func0422_intro_042a, 0x042a }, + { func0422_intro_042b, 0x042b }, + { func0422_intro_042c, 0x042c }, + { func0422_intro_042d, 0x042d }, + { func042e_init_surrendering_guard, 0x042e }, + { func042f_surrendering_guard, 0x042f }, + { func0430_init_falcon_guard, 0x0430 }, + { func0416_outro, 0x0416 }, + { func0417_init_dd_guard, 0x0417 }, + { func0418_init_shock_guard, 0x0418 }, + { func1000_rebuild_groups, 0x1000 }, + { func1401_setup_counterop, 0x1401 }, + { func1002_objectives_failed_msg, 0x1002 }, + { func1003_start_intro, 0x1003 }, + { func1004_check_lab_lift_located, 0x1004 }, + { func1005_give_control, 0x1005 }, + { func1006_check_programmer_dead, 0x1006 }, + { func1007_uplinking, 0x1007 }, + { func1008_doorswitch, 0x1008 }, + { func1009_check_civilians_killed, 0x1009 }, + { func100a_alarm_guard, 0x100a }, + { func100b_lightswitch, 0x100b }, + { func100c_noop2, 0x100c }, + { func100d_check_objects_destroyed, 0x100d }, + { func100e_check_ecm_mines, 0x100e }, + { func100f_check_necklace_collected, 0x100f }, + { func1010_start_hub_humms, 0x1010 }, + { func1011_check_hubs_activated, 0x1011 }, + { func1012_trigger_x_music, 0x1012 }, + { func1013_msg_commshubnearby, 0x1013 }, + { func1014_msg_officefloor, 0x1014 }, + { func1015_msg_securityroom, 0x1015 }, + { func1016_msg_basementelevator, 0x1016 }, + { func1017_unlock_basement_door, 0x1017 }, + { func0422_intro_speaking, 0x1418 }, + { func1019_toggle_guards, 0x1019 }, + { func101a_noop, 0x101a }, + { func141c_start_lifts, 0x141c }, + { func101d_disable_cameras, 0x101d }, + { func101e_lift_door_sounds, 0x101e }, + { func101f_setup_rtracker, 0x101f }, + { func1420_setup_portals, 0x1420 }, + { func1421_setup_lighting, 0x1421 }, + { func0422_intro, 0x0c00 }, + { func0416_outro_from_menu, 0x0c01 }, + { NULL, 0 }, +}; + +struct aipaths paths[] = { + { path00, 0, 0 }, + { path01, 1, 2 }, + { path02, 2, 2 }, + { path03, 3, 2 }, + { path04, 4, 2 }, + { path05, 5, 2 }, + { path06, 6, 2 }, + { path07, 7, 2 }, + { path08, 8, 2 }, + { path09, 9, 2 }, + { path10, 10, 2 }, + { path11, 11, 2 }, + { path12, 12, 2 }, + { path13, 13, 2 }, + { path14, 14, 2 }, + { path15, 15, 2 }, + { path16, 16, 2 }, + { path17, 17, 2 }, + { path18, 18, 2 }, + { path19, 19, 2 }, + { path20, 20, 2 }, + { path21, 21, 2 }, + { path22, 22, 2 }, + { path23, 23, 2 }, + { path24, 24, 2 }, + { path25, 25, 2 }, + { path26, 26, 1 }, + { path27, 27, 0 }, + { path28, 28, 0 }, + { path29, 29, 0 }, + { path30, 30, 1 }, + { path31, 31, 0 }, + { path32, 32, 0 }, + { path33, 33, 0 }, + { path34, 34, 1 }, + { path35, 35, 0 }, + { NULL, 0, 0 }, +}; + diff --git a/src/setup/setuparch.c b/src/setup/setuparch.c new file mode 100644 index 000000000..408011c8e --- /dev/null +++ b/src/setup/setuparch.c @@ -0,0 +1,39 @@ +// +// Stage ID 0x18 +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setuparec.c b/src/setup/setuparec.c new file mode 100644 index 000000000..e260f2b2c --- /dev/null +++ b/src/setup/setuparec.c @@ -0,0 +1,49 @@ +// +// Ravine (MP) +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + lift(0x0100, MODEL_RAVINELIFT, 0x00bc, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00bc, 0x00bb, 0x00baffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + endprops +}; + +u8 unregistered_func1[] = { + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 unregistered_func2[] = { + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 intro[] = { + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setupark.c b/src/setup/setupark.c new file mode 100644 index 000000000..445752a20 --- /dev/null +++ b/src/setup/setupark.c @@ -0,0 +1,3201 @@ +// +// Extraction +// + +#include "../include/setup.h" + +// Characters +#define CHR_DRCAROLL 0x00 +#define CHR_RLSHOCK 0x0e +#define CHR_TECH1 0x0f +#define CHR_TECH2 0x10 +#define CHR_TOPGUARD1 0x11 +#define CHR_TOPGUARD2 0x12 +#define CHR_TOPGUARD3 0x13 +#define CHR_TOPGUARD4 0x14 +#define CHR_TOPGUARD5 0x15 +#define CHR_CASS 0x1c +#define CHR_MRBLONDE 0x1d +#define CHR_INTRO_GUARD 0x1e +#define CHR_OUTRO_GUARD1 0x1f +#define CHR_OUTRO_GUARD2 0x20 +#define CHR_SPECIAL_SHOCK 0x22 // guy who appears if foyer completed perfectly + +// Objects +#define OBJ_TOPROOMDOOR 0x05 +#define OBJ_LIGHTSWITCH 0x0a +#define OBJ_HOVERCOPTER 0x0b +#define OBJ_NIGHTVISION 0x0e +#define OBJ_JUMPSHIP 0x10 +#define OBJ_ROCKETAMMO1 0x14 +#define OBJ_ROCKETAMMO2 0x15 +#define OBJ_GRENADE 0x1a +#define OBJ_DRAGON 0x1b +#define OBJ_DY357 0x1c +#define OBJ_ROCKETLAUNCHER 0x1f + +// Stage flags +#define STAGEFLAG_ELEVATOR_PC_DESTROYED 0x00000001 +#define STAGEFLAG_TRIGGER_CANTLEAVEANY_MSG 0x00000002 +#define STAGEFLAG_TOP_BODYGUARDS_DEAD 0x00000004 +#define STAGEFLAG_ACCESSED_FOYER_ELEVATOR 0x00000100 +#define STAGEFLAG_ELEVATOR_UNLOCKED 0x00000200 +#define STAGEFLAG_HOVERCOPTER_DESTROYED 0x00000400 +#define STAGEFLAG_OBJECTIVE_BODYGUARDS_DEAD 0x00000800 +#define STAGEFLAG_REACHED_HELIPAD 0x00001000 +#define STAGEFLAG_FOYER_LIGHTS_RESTORED 0x00002000 +#define STAGEFLAG_DRCAROLL_DEAD 0x00004000 +#define STAGEFLAG_DRCAROLL_ATTACKED 0x00008000 +#define STAGEFLAG_DRCAROLL_DAMAGED 0x00010000 +#define STAGEFLAG_TECHS_RUNNING 0x00020000 +#define STAGEFLAG_CHOPPER_GO_TO_ROOF 0x00040000 +#define STAGEFLAG_ENTERING_TOP_ROOM 0x00080000 +#define STAGEFLAG_TOP_GUARDS_ATTACKING 0x00200000 +#define STAGEFLAG_TOP_LIGHTS_OFF 0x00400000 +#define STAGEFLAG_00800000 0x00800000 // unset in intro, not used elsewhere +#define STAGEFLAG_HOVERCOPTER_ON_ROOF 0x01000000 +#define STAGEFLAG_CASS_SHIELD_DAMAGED 0x02000000 +#define STAGEFLAG_FOYER_LIGHTS_OFF 0x04000000 +#define STAGEFLAG_SAID_SURRENDER_OR_DIE 0x10000000 +#define STAGEFLAG_SAID_GIVE_UP 0x20000000 +#define STAGEFLAG_SAID_FINAL_WARNING 0x40000000 +#define STAGEFLAG_TECHS_FINISHED 0x80000000 + +// Functions +#define FUNC_DRCAROLL_FOLLOWING 0x0401 +#define FUNC_INIT_DRCAROLL 0x0404 +#define FUNC_GENERAL_COMBAT 0x0406 +#define FUNC_CASS_OUTRO 0x0407 +#define FUNC_HOVERCOPTER 0x0408 +#define FUNC_INIT_TECH1 0x040b +#define FUNC_INIT_TECH2 0x040c +#define FUNC_CASS 0x040d +#define FUNC_TOP_GUARD 0x040f +#define FUNC_INIT_TOP_GUARD 0x0410 +#define FUNC_TOP_GUARD_BLINDED 0x0411 +#define FUNC_OUTRO 0x0412 +#define FUNC_DEFEND_PAD 0x0413 +#define FUNC_INIT_SHOCK 0x0414 + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + briefing(0, 0x0601) + briefing(1, 0x0600) + briefing(2, 0x0602) + briefing(3, 0x0603) + + beginobjective(0, 0x0609, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Access foyer elevator" + complete_flags(STAGEFLAG_ACCESSED_FOYER_ELEVATOR) + endobjective + + beginobjective(1, 0x060a, (DIFFBIT_PA | DIFFBIT_PD)) // "Reactivate office elevator" + complete_flags(STAGEFLAG_ELEVATOR_UNLOCKED) + fail_flags(STAGEFLAG_ELEVATOR_PC_DESTROYED) + endobjective + + beginobjective(2, 0x060b, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Destroy dataDyne hovercopter" + complete_flags(STAGEFLAG_HOVERCOPTER_DESTROYED) + endobjective + + beginobjective(3, 0x060c, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Defeat Cassandra's bodyguards" + complete_flags(STAGEFLAG_OBJECTIVE_BODYGUARDS_DEAD) + endobjective + + beginobjective(4, 0x060d, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Rendezvous at helipad" + complete_flags(STAGEFLAG_REACHED_HELIPAD) + fail_flags(STAGEFLAG_DRCAROLL_DEAD) + endobjective + + vent_fan(0x0100, MODEL_DD_FANROOF, 0x0087, 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_DD_FANROOF, 0x0088, 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_DD_FANROOF, 0x0089, 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_DD_FANROOF, 0x008a, 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_DD_FANWALL, 0x008b, 0x000204e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000222, 0x00000000, 0x00000002, 0x01000000) + tag(0x0b, 1) + armed_vehicle(0x004c, MODEL_DD_HOVERCOPTER, 0x0190, 0x20000008, 0x00000110, 0x00008000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, FUNC_HOVERCOPTER, 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) + tag(0x10, 1) + stdobject(0x0100, MODEL_DDJUMPSHIP, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x0c, 2) + tag(0x0d, 2) + door(0x0100, MODEL_DOOR4A_G5, 0x0224, 0x00000400, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001200, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR4B_G5, 0x0223, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DECODOOR, 0x021e, 0x10000400, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DECODOOR, 0x021f, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x0221, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x0222, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_SECRETDOOR, 0x0220, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x02140000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_SECRETDOOR, 0x00ae, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x02140000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x0092, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x0093, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x0094, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x0095, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x0096, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x0097, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x0098, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x0099, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00a4, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00a5, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x009a, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x009b, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x009c, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x009d, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x009e, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x009f, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00a0, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00a3, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00a1, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x00000005, 0x00000040, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00a2, 0x30000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x00000005, 0x00000040, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_SERVICEDOOR, 0x00a6, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_SERVICEDOOR, 0x00a7, 0x10000400, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x11, 1) + door(0x0100, MODEL_DD_SERVICEDOOR, 0x00a8, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x04, 1) + door(0x0100, MODEL_DD_SERVICEDOOR, 0x00a9, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_SERVICEDOOR, 0x00ad, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x05, 1) + door(0x0100, MODEL_DD_WINDDOOR, 0x00aa, 0x34000000, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_WINDDOOR, 0x00ab, 0x94000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_WINDDOOR, 0x00ac, 0x94000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x20, 6) + tag(0x21, 6) + tag(0x22, 6) + tag(0x23, 6) + tag(0x1d, 1) + lift(0x0100, MODEL_DD_LIFTR, 0x011d, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x011d, 0x0259, 0xffffffff, 0x00000001, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x008c, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x008d, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000002, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x008e, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000002, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x021c, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-4, -5, 0, 0) + link_objects(-2, -6, 0, 1) + tag(0x24, 8) + tag(0x25, 8) + tag(0x26, 8) + tag(0x27, 8) + tag(0x02, 4) + tag(0x03, 4) + tag(0x1e, 1) + lift(0x0100, MODEL_DD_LIFTR, 0x011e, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x011e, 0x0120, 0xffffffff, 0x00000001, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x008f, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000001, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x0090, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000001, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x0091, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000002, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x021d, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000002, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-4, -5, 0, 0) + link_objects(-4, -6, 0, 1) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00af, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00b0, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00b1, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00b2, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00b3, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00b4, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00b5, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00b6, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00b7, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00b8, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00b9, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00ba, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00bc, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00bd, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00be, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00bf, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00c0, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00c1, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x023a, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x023b, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x023c, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x023d, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x023e, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x023f, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x010f, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0110, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x024d, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x024e, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x024f, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x0250, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x0251, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x0252, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x0253, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x0254, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x0255, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW_FOYER, 0x024b, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW_FOYER, 0x024c, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00d2, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00d3, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00d4, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00d5, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00d6, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00d7, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00d8, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00d9, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00da, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00db, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00dc, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00dd, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00de, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00df, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e0, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e1, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e2, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e3, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e4, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e5, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e6, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e7, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e8, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e9, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00ea, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00eb, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00ec, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00ed, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00ee, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00ef, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f0, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f1, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f2, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f3, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f4, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f6, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f5, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f7, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f8, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f9, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00fa, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00fb, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00fc, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00fd, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00fe, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00ff, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0100, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0101, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0102, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0103, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0104, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0105, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0106, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0107, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x010b, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x010c, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x010d, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x010e, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + stdobject(0x0100, MODEL_DD_REDSOFA, 0x00c4, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDARM, 0x00c5, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDARM, 0x00c2, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDARM, 0x00c7, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDARM, 0x00c8, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDARM, 0x00c9, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDSOFA, 0x00c6, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x00ca, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDSOFA, 0x0256, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDARM, 0x0257, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01a0, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x019f, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x01, 1) + singlemonitor(0x0100, MODEL_PC1, 0x019e, 0x000004e1, 0x00000001, 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, 0xffffff03) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01a1, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01a2, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + singlemonitor(0x0100, MODEL_PC1, 0x01a3, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff03) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01a4, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01a5, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + singlemonitor(0x0100, MODEL_PC1, 0x01a6, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff03) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01a7, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01a8, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + singlemonitor(0x0100, MODEL_PC1, 0x01a9, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff03) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01ac, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01ab, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + singlemonitor(0x0100, MODEL_PC1, 0x01aa, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff03) + stdobject(0x0100, MODEL_DD_DESK, 0x01ad, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_LIGHTSWITCH2, 0x012e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01af, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + singlemonitor(0x0100, MODEL_PC1, 0x01b1, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_PC1, 0x01b2, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff03) + stdobject(0x0100, MODEL_DD_REDSOFA, 0x00cb, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01b3, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01b4, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + singlemonitor(0x0100, MODEL_PC1, 0x01b5, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff03) + stdobject(0x0100, MODEL_DD_REDARM, 0x00cc, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDARM, 0x00cd, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0225, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x0226, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x0228, 0x000005e8, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + singlemonitor(0x0100, MODEL_PC1, 0x022a, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_PC1, 0x022b, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff03) + stdobject(0x0100, MODEL_BLASTSHIELD, 0x0232, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BLASTSHIELD, 0x0233, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BLASTSHIELD, 0x0234, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BLASTSHIELD, 0x0235, 0x000005e8, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BLASTSHIELD, 0x0236, 0x000005e8, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BLASTSHIELD, 0x0237, 0x000005e8, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BLASTSHIELD, 0x0238, 0x000005e8, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BLASTSHIELD, 0x0239, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BLASTSHIELD, 0x01ce, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BLASTSHIELD, 0x01cf, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00e6, MODEL_BLASTSHIELD, 0x01d0, 0x000005e8, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BLASTSHIELD, 0x01d1, 0x000005e8, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x022f, 0x000005e8, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_QUADPOD, 0x01b6, 0x000005e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x1f, 1) + weapon(0x0100, MODEL_CHRDYROCKET, 0x01c4, 0x40420101, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_ROCKETLAUNCHER, 0x00ffffff, 0x00000000) + camera2(0x0000, 0xffff9931, 0xfffea6ce, 0x00003a3e, 0x00410000, 0x00000000, 0x0000001b) + tag(0x06, -1) + camera2(0x0000, 0xffffba1e, 0xfffeba56, 0xffff7356, 0x01560000, 0x00000000, 0x0000001b) + tag(0x07, -1) + camera2(0x0000, 0xffff5d8a, 0xfffeba56, 0x00000924, 0x01499eb8, 0x00000000, 0x0000001b) + tag(0x08, -1) + camera2(0x0000, 0xffff85c6, 0xffff3b3e, 0xffff6672, 0xfffcdbc7, 0x00000000, 0x000001cc) + tag(0x09, -1) + tag(0x0e, 1) + stdobject(0x0100, MODEL_CHRNIGHTSIGHT, 0xffff, 0x012405e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + rename_object(-1, 0x2d, 0x061b, 0x061c, 0x061d, 0x061e, 0x061f, 0x0000, 0x0000) // "Obtain Night Vision." + tag(0x17, 1) + stdobject(0x0100, MODEL_CHRNIGHTSIGHT, 0xffff, 0x012405e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + rename_object(-1, 0x2d, 0x061b, 0x061c, 0x061d, 0x061e, 0x061f, 0x0000, 0x0000) // "Obtain Night Vision." + chr(0x00000400, 0x00, 0x0210, BODY_DRCARROLL, HEAD_RANDOM, FUNC_INIT_DRCAROLL, -1, -1, 1000, 100, 0x00000000, 0x00000000, 0x10, 0x00, -1, 0, 0x00000000) + chr(0x00000200, 0x01, 0x0215, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK, -1, -1, 1000, 7, 0x00014400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x02, 0x021b, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK, -1, -1, 1000, 7, 0x00014400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x03, 0x0214, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK, -1, -1, 1000, 8, 0x00014400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0003, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x04, 0x0213, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK, -1, -1, 1000, 9, 0x00014400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0004, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x05, 0x0216, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK, -1, -1, 1000, 8, 0x00012400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0005, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRDY357, 0x0005, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357MAGNUM, 0x00ffffff, 0x00000000) + tag(0x1c, -1) + chr(0x00000200, 0x06, 0x0211, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK, -1, -1, 1000, 8, 0x00014400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0006, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x07, 0x0212, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK, -1, -1, 1000, 8, 0x00014400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0007, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x08, 0x0217, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK, -1, -1, 1000, 8, 0x00014400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0008, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x09, 0x0218, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK, -1, -1, 1000, 9, 0x00012400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0a, 0x0219, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK, -1, -1, 1000, 9, 0x80012400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0b, 0x01be, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK, -1, -1, 1000, 100, 0x80004400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0c, 0x01bf, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK, -1, -1, 1000, 100, 0x80004400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0d, 0x01c0, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK, -1, -1, 1000, 100, 0x80004400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x0e, 0x01c1, BODY_DDSHOCK, HEAD_DDSHOCK, GFUNC_IDLE, -1, -1, 50, 100, 0x8000a000, 0x00000000, 0x80, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00010400, 0x0f, 0x01c2, BODY_OFFICEWORKER, HEAD_RANDOM, FUNC_INIT_TECH1, -1, -1, 50, 9, 0x00004400, 0x00000000, 0x80, 0x07, -1, 0, 0x00000000) + chr(0x00010400, 0x10, 0x01c3, BODY_OFFICEWORKER, HEAD_RANDOM, FUNC_INIT_TECH2, -1, -1, 50, 9, 0x00004400, 0x00000000, 0x80, 0x07, -1, 0, 0x00000000) + chr(0x00000401, 0x11, 0x01c5, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_TOP_GUARD, -1, -1, 1000, 100, 0x80004400, 0x00000000, 0x80, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x0011, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) + chr(0x00000401, 0x12, 0x01c6, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_TOP_GUARD, -1, -1, 1000, 100, 0x80004400, 0x00000000, 0x80, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x0012, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) + chr(0x00000401, 0x13, 0x01c7, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_TOP_GUARD, -1, -1, 1000, 100, 0x80004400, 0x00000000, 0x80, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x0013, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) + chr(0x00000401, 0x14, 0x01c8, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_TOP_GUARD, -1, -1, 1000, 100, 0x80004400, 0x00000000, 0x80, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) + chr(0x00000401, 0x15, 0x01cc, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_TOP_GUARD, -1, -1, 1000, 100, 0x80002400, 0x00000000, 0x80, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x0015, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) + chr(0x00010400, 0x1c, 0x01c9, BODY_CASSANDRA, HEAD_CASSANDRA, FUNC_CASS, -1, -1, 1000, 100, 0x00004400, 0x00000000, 0x80, 0x01, -1, 0, 0x00000000) + chr(0x00000400, 0x1d, 0x0206, BODY_MRBLONDE, HEAD_MRBLONDE, GFUNC_INVINCIBLE_AND_IDLE, -1, -1, 1000, 100, 0x00004400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + chr(0x00000400, 0x1e, 0x0204, BODY_DDSHOCK, HEAD_DARLING, GFUNC_INVINCIBLE_AND_IDLE, -1, -1, 1000, 100, 0x00000000, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000) + chr(0x00000400, 0x1f, 0x0207, BODY_FEM_GUARD, HEAD_RANDOM, GFUNC_INVINCIBLE_AND_IDLE, -1, -1, 1000, 100, 0x00004400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x001f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) + chr(0x00000400, 0x20, 0x0203, BODY_FEM_GUARD, HEAD_RANDOM, GFUNC_INVINCIBLE_AND_IDLE, -1, -1, 1000, 100, 0x00002400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x0020, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x16, 0x0070, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_DEFEND_PAD, 0x006a, -1, 1000, 100, 0x80004400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x17, 0x0081, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_DEFEND_PAD, 0x006a, -1, 1000, 100, 0x80004400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x0017, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x18, 0x0071, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_GENERAL_COMBAT, 0x006a, -1, 1000, 100, 0x80004400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x19, 0x0048, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_GENERAL_COMBAT, 0x006a, -1, 1000, 100, 0x80004400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x0019, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1a, 0x0047, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_DEFEND_PAD, 0x0044, -1, 1000, 100, 0x80004400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1b, 0x004a, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_DEFEND_PAD, 0x0044, -1, 1000, 100, 0x80004400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x001b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x22, 0x007e, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK, -1, -1, 1000, 9, 0x80012400, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0022, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + key(0x0080, MODEL_KEYCARD, 0x0022, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000040) + rename_object(-1, 0x4c, 0x0637, 0x0638, 0x0639, 0x063a, 0x063b, 0x0000, 0x0000) // "Obtain alpha key card." + link_scenery(1, 0, 2) + door(0x0100, MODEL_DD_AC_UNEXP, 0x019b, 0x13520d00, 0x20304300, 0x04000000, 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) + stdobject(0x0100, MODEL_DD_AC_EXP, 0x019d, 0x031204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + link_scenery(1, 0, 2) + door(0x0100, MODEL_DD_ACBOT_UNEXP, 0x019a, 0x13500d00, 0x20304300, 0x04000000, 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) + stdobject(0x0100, MODEL_DD_ACBOT_EXP, 0x019c, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0130, 0x00020101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0131, 0x00020101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0132, 0x00020101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0133, 0x00020101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_STONEDESK, 0x0124, 0x000205e1, 0x00204000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + multimonitor(0x0099, MODEL_COMHUB, 0x012c, 0x00000002, 0x00000000, 0x00000000, 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(0x0a, 1) + stdobject(0x0100, MODEL_LIGHTSWITCH, 0x012d, 0x00000002, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0111, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0112, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0113, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0114, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0119, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x011a, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0117, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0118, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00ce, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00cf, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00d0, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00d1, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tag(0x18, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x0078, 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(0x19, 1) + tag(0x1a, 1) + weapon(0x0100, MODEL_CHRGRENADE, 0x01d2, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_GRENADE, 0x00ffffff, 0x00000000) + tag(0x1b, 1) + weapon(0x0100, MODEL_CHRDRAGON, 0x01d3, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + tag(0x14, 1) + weapon(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0204, 0x00000101, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_ROCKETLAUNCHER, 0x00ffffff, 0x00000000) + tag(0x15, 1) + weapon(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0207, 0x00000101, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_ROCKETLAUNCHER, 0x00ffffff, 0x00000000) + endprops +}; + +u8 intro[] = { + intro_weapon(WEAPON_FALCON2_SCOPE, -1) + ammo(AMMOTYPE_PISTOL, 50) + ammo(AMMOTYPE_RIFLE, 160) + ammo(AMMOTYPE_MAGNUM, 2) + ammo(AMMOTYPE_ROCKET, 1) + outfit(OUTFIT_DEFAULT) + spawn(0x025a) + endintro +}; + +s32 path00[] = { + 0x018f, + 0x018e, + 0x0191, + 0x0190, + -1, +}; + +s32 path01[] = { + 0x0192, + 0x0193, + 0x0194, + 0x0195, + -1, +}; + +s32 path02[] = { + 0x0196, + 0x0197, + 0x0198, + 0x0199, + -1, +}; + +struct aipaths paths[] = { + { path00, 0, 0 }, + { path01, 1, 0 }, + { path02, 2, 0 }, + { NULL, 0, 0 }, +}; + +/** + * @unused + */ +u8 func0403_stop_and_idle[] = { + stop_chr + + beginloop(0x00) + endloop(0x00) + + endfunction +}; + +u8 func0404_init_drcaroll[] = { + set_self_flag_bank3(CHRFLAG3_01000000) + set_shield(100) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0402_start_drcaroll[] = { + stop_chr + set_function(CHR_SELF, FUNC_DRCAROLL_FOLLOWING) + endfunction +}; + +u8 func0401_drcaroll_following[] = { + set_onshot_function(FUNC_DRCAROLL_FOLLOWING) + set_self_flag_bank3(CHRFLAG3_00040000) + stop_chr + set_target_chr(CHR_JOANNA) + try_run_to_target_chr_with_hand_up(/*goto*/ 0x00) + label(0x00) + yield + set_target_chr(CHR_JOANNA) + if_chr_dying(CHR_SELF, /*goto*/ 0x00) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x00) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x00) + goto_next(0x20) + + label(0x00) + set_onshot_function(GFUNC_IDLE) + restart_timer + + beginloop(0x0b) + if_timer_gt(15, /*goto*/ 0x00) + endloop(0x0b) + + label(0x00) + say_quip(TARGET_CHR, 0x06, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + set_target_chr(CHR_JOANNA) + set_shield(100) + set_chr_health(CHR_SELF, 100) + label(0x20) + dprint 'b','4',' ','s','h','i','e','l','d',' ','c','h','e','c','k','\n',0, + try_unset_chr_flag_bank3_02000000(CHR_SELF, /*goto*/ 0x00) + goto_next(0x02) + + label(0x00) + restart_timer + say_quip(TARGET_CHR, 0x04, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00) + + beginloop(0x0d) + if_num_times_shot_lt(1, /*goto*/ 0x00) + if_timer_lt(20, /*goto*/ 0x00) + label(0x00) + if_chr_stopped(/*goto*/ 0x02) + endloop(0x0d) + + label(0x02) + stop_chr + restart_timer + + beginloop(0x03) + if_chr_y(TARGET_CHR, -1910, OPERATOR_LESS_THAN, /*goto*/ 0x20) + label(0x20) + dprint 't','a','r','g','e','t','\n',0, + if_chr_sees_player(/*goto*/ 0x00) + goto_next(0x04) + + label(0x00) + if_timer_gt(1250, /*goto*/ 0x20) + if_chr_distance_gt(200, /*goto*/ 0x04) + endloop(0x03) + + label(0x20) + call_rng + if_rand_lt(64, /*goto*/ 0x20) + say_quip(TARGET_CHR, 0x02, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00) + goto_first(0x02) + + label(0x20) + say_quip(TARGET_CHR, 0x03, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00) + goto_first(0x02) + + label(0x00) + say_quip(TARGET_CHR, 0x07, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00) + goto_first(0x02) + + label(0x04) + restart_timer + if_chr_y(CHR_DRCAROLL, -2100, OPERATOR_LESS_THAN, /*goto*/ 0x20) + try_run_to_target_chr(/*goto*/ 0x05) + label(0x20) + if_chr_distance_lt(200, /*goto*/ 0x20) + try_run_to_target_chr(/*goto*/ 0x05) + label(0x20) + try_run_to_target_chr_with_hand_up(/*goto*/ 0x05) + + beginloop(0x05) + if_chr_in_room(TARGET_CHR, 0x00, 0x0094, /*goto*/ 0x00) + goto_next(0x20) + + label(0x00) + label(0x20) + label(0x00) + if_chr_distance_lt(200, /*goto*/ 0x06) + if_chr_stopped(/*goto*/ 0x06) + if_timer_gt(360, /*goto*/ 0x20) + endloop(0x05) + + label(0x20) + say_quip(TARGET_CHR, 0x03, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00) + goto_first(0x04) + + label(0x00) + say_quip(TARGET_CHR, 0x07, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00) + goto_first(0x04) + + label(0x06) + goto_first(0x02) + + label(0x07) + try_run_to_target_chr(/*goto*/ 0x08) + + beginloop(0x08) + endloop(0x08) + + label(0x09) + goto_first(0x02) + + // Unreachable + // Attempts to teleport Dr Caroll up the elevator shaft from foyer + label(0x5c) + dprint 'D','R',' ','C','H','A','N','G','E','L','I','S','T','\n',0, + if_chr_death_animation_finished(CHR_DRCAROLL, /*goto*/ 0x20) + if_chr_dying(CHR_DRCAROLL, /*goto*/ 0x20) + if_chr_unloaded(CHR_DRCAROLL, /*goto*/ 0x20) + chr_move_to_pad(CHR_DRCAROLL, 0x0079, 0x00, /*goto*/ 0x00) + dprint 'T','E','L','E','P','O','R','T',' ','F','A','I','L','\n',0, + label(0x00) + goto_first(0x02) + + label(0x20) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Waiting at the door to the top room while you clear it out. + */ +u8 func0405_drcaroll_waiting[] = { + if_chr_dying(CHR_DRCAROLL, /*goto*/ 0x20) + if_chr_death_animation_finished(CHR_DRCAROLL, /*goto*/ 0x20) + if_chr_unloaded(CHR_DRCAROLL, /*goto*/ 0x20) + goto_next(0x00) + + label(0x20) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x00) + dprint 'D','R',' ','C','H','A','N','G','E','L','I','S','T','\n',0, + set_chr_flag_bank2(CHR_DRCAROLL, CHRFLAG2_00100000) + chr_move_to_pad(CHR_DRCAROLL, 0x01ca, 0x00, /*goto*/ 0x00) + dprint 'M','O','V','E',' ','F','A','I','L','\n',0, + label(0x00) + stop_chr + + beginloop(0x1f) + if_stage_flag_eq(STAGEFLAG_TOP_BODYGUARDS_DEAD, TRUE, /*goto*/ 0x00) + endloop(0x1f) + + label(0x00) + set_function(CHR_SELF, FUNC_DRCAROLL_FOLLOWING) + endfunction +}; + +u8 func100c_foyer_lights_timer[] = { + beginloop(0x1f) + if_stage_flag_eq(STAGEFLAG_FOYER_LIGHTS_OFF, TRUE, /*goto*/ 0x20) + endloop(0x1f) + + label(0x20) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2e) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2f) + + // PA + set_countdown_timer(60) + start_countdown_timer + show_countdown_timer + goto_next(0x0e) + + // Agent + label(0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + + // Unreachable + set_countdown_timer(60) + start_countdown_timer + show_countdown_timer + goto_next(0x0e) + + // SA + label(0x2f) + set_countdown_timer(90) + start_countdown_timer + show_countdown_timer + + beginloop(0x0e) + if_countdown_timer_lt(1, /*goto*/ 0x0f) + endloop(0x0e) + + label(0x0f) + set_stage_flag(STAGEFLAG_FOYER_LIGHTS_RESTORED) + hide_countdown_timer + stop_countdown_timer + set_lights_state(0x0019, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x001a, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x001b, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x001c, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x001d, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x001e, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x001f, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0020, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0021, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0017, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0018, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0016, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0022, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0023, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0024, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0025, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0026, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0027, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0028, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0029, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x002a, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x002b, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x002c, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x002d, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x002e, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x002f, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0030, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0031, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0032, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0033, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0034, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0035, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0036, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0015, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x000f, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x000e, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0010, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0011, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0012, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0013, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0014, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x000d, 0x01, 0x64, 0x00, 0x00) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0410_init_top_guard[] = { + set_onshot_function(FUNC_TOP_GUARD) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x20) + + // SA and PA + set_chr_dodge_rating(2, 0x0a) + set_accuracy(80) + set_reaction_speed(10) + set_chr_health(CHR_SELF, 10) + set_armor(40) + set_recovery_speed(0) + set_shield(0) + goto_next(0x00) + + // Agent + label(0x20) + set_chr_dodge_rating(2, 0x0a) + set_accuracy(12) + set_reaction_speed(10) + set_chr_health(CHR_SELF, 10) + set_armor(40) + set_recovery_speed(0) + set_shield(0) + + label(0x00) + beginloop(0x8d) + if_stage_flag_eq(STAGEFLAG_ENTERING_TOP_ROOM, TRUE, /*goto*/ 0x20) + endloop(0x8d) + + label(0x20) + set_function(CHR_SELF, FUNC_TOP_GUARD) + endfunction +}; + +u8 func040f_top_guard[] = { + if_just_injured(CHR_SELF, /*goto*/ 0x20) + goto_next(0x00) + + label(0x20) + set_stage_flag(STAGEFLAG_CASS_SHIELD_DAMAGED) + + beginloop(0x21) + if_chr_stopped(/*goto*/ 0x00) + endloop(0x21) + + label(0x00) + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x1f) + + beginloop(0x1f) + if_chr_distance_lt(200, /*goto*/ 0x20) + if_stage_flag_eq(STAGEFLAG_CASS_SHIELD_DAMAGED, TRUE, /*goto*/ 0x00) + if_stage_flag_eq(STAGEFLAG_TOP_GUARDS_ATTACKING, TRUE, /*goto*/ 0x00) + set_target_chr(FOLLOW_CHR) + endloop(0x1f) + + label(0x00) + set_function(CHR_SELF, FUNC_GENERAL_COMBAT) + + label(0x20) + set_stage_flag(STAGEFLAG_CASS_SHIELD_DAMAGED) + set_function(CHR_SELF, FUNC_GENERAL_COMBAT) + endfunction +}; + +u8 func0411_top_guard_blinded[] = { + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x20) + if_chr_dying(CHR_SELF, /*goto*/ 0x20) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x20) + goto_next(0x00) + + label(0x20) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x00) + animation(ANIM_BLINDED, 0, -1, 0x1010, CHR_SELF, 2) + say_quip(CHR_JOANNA, 0x11, 0x64, 0x02, 0xff, BANK_1, 0x00, 0x00) + + beginloop(0x1f) + if_chr_stopped(/*goto*/ 0x00) + endloop(0x1f) + + label(0x00) + set_function(CHR_SELF, FUNC_GENERAL_COMBAT) + endfunction +}; + +u8 func0406_general_combat[] = { + set_self_flag_bank3(CHRFLAG3_00000040) + set_onshot_function(FUNC_GENERAL_COMBAT) + if_has_gun(CHR_SELF, /*goto*/ 0x20) + + // No gun + set_onshot_function(GFUNC_ALERTED) + set_function(CHR_SELF, GFUNC_ALERTED) + + // Has gun + label(0x20) + if_chr_dying(CHR_SELF, /*goto*/ 0x00) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x00) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x00) + goto_next(0x20) + + // Dying - wait a few frames then say quip + label(0x00) + set_onshot_function(GFUNC_IDLE) + restart_timer + + beginloop(0x0b) + if_timer_gt(15, /*goto*/ 0x00) + endloop(0x0b) + + label(0x00) + say_quip(CHR_JOANNA, 0x19, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive with gun + label(0x20) + if_just_injured(CHR_SELF, /*goto*/ 0x00) + goto_next(0x21) + + // Just got injured + label(0x00) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_PSYCHOSISED) + restart_timer + + beginloop(0x0c) + if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x00) + if_num_times_shot_lt(1, /*goto*/ 0x00) + if_timer_lt(20, /*goto*/ 0x00) + say_quip(CHR_JOANNA, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00) + say_quip(CHR_JOANNA, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00) + set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0) + label(0x00) + if_chr_stopped(/*goto*/ 0x21) + endloop(0x0c) + + // Not injured, or injury recovery finished + label(0x21) + set_self_flag_bank3(CHRFLAG3_00000040) + + label(0x14) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x00) + label(0x20) + try_chr_kneel_and_shoot_thing(0x0220, 0x0000, /*goto*/ 0x10) + label(0x00) + kneel + + beginloop(0x10) + if_stage_flag_eq(STAGEFLAG_FOYER_LIGHTS_RESTORED, TRUE, /*goto*/ 0x00) + goto_next(0x20) + + // Lights restored + label(0x00) + set_view_distance(100) + + label(0x20) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_stage_flag_eq(STAGEFLAG_FOYER_LIGHTS_RESTORED, TRUE, /*goto*/ 0x00) + if_target_chr_in_sight(/*goto*/ 0x15) + goto_next(0x20) + + label(0x00) + if_chr_sees_player(/*goto*/ 0x15) + label(0x20) + if_near_miss(/*goto*/ 0x18) + if_stage_flag_eq(STAGEFLAG_FOYER_LIGHTS_RESTORED, TRUE, /*goto*/ 0x00) + if_enemy_distance_lt_and_los(500, /*goto*/ 0x20) + goto_next(0x5e) + + label(0x00) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x20) + goto_next(0x5e) + + label(0x20) + if_chr_lost_track_of_target_maybe(/*goto*/ 0x5e) + goto_next(0x15) + + label(0x5e) + set_target_chr(CHR_P1P2) + reloop(0x10) + + label(0x00) + if_target_chr_in_sight(/*goto*/ 0x15) + if_stage_flag_eq(STAGEFLAG_FOYER_LIGHTS_RESTORED, TRUE, /*goto*/ 0x00) + if_enemy_distance_lt_and_los(500, /*goto*/ 0x20) + goto_next(0x5e) + + label(0x00) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x20) + goto_next(0x5e) + + label(0x20) + if_chr_lost_track_of_target_maybe(/*goto*/ 0x5e) + goto_next(0x15) + + label(0x5e) + set_target_chr(CHR_P1P2) + endloop(0x10) + + label(0x15) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_PSYCHOSISED) + if_self_flag_bankx_eq(CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x2a) + if_chr_distance_lt(250, /*goto*/ 0x29) + if_self_flag_bankx_eq(CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x20) + set_self_flag_bankx(CHRFLAG0_00000004, BANK_0) + if_stage_flag_eq(STAGEFLAG_FOYER_LIGHTS_RESTORED, TRUE, /*goto*/ 0x00) + say_quip(CHR_JOANNA, 0x1b, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00) + goto_next(0x20) + + label(0x00) + say_quip(CHR_JOANNA, 0x0b, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00) + label(0x20) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x17) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x12) + goto_next(0x13) + + beginloop(0x12) + if_chr_stopped(/*goto*/ 0x13) + endloop(0x12) + + label(0x13) + if_chr_injured_target(CHR_SELF, /*goto*/ 0x20) + say_quip(CHR_JOANNA, 0x16, 0x19, 0x03, 0x00, BANK_0, 0x00, 0x00) + say_quip(CHR_JOANNA, 0x17, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00) + goto_next(0x00) + + label(0x20) + say_quip(CHR_JOANNA, 0x15, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00) + say_quip(CHR_JOANNA, 0x15, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00) + label(0x00) + goto_first(0x14) + + label(0x18) + restart_timer + if_self_flag_bankx_eq(CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x1c) + set_self_flag_bankx(CHRFLAG0_00000004, BANK_0) + if_stage_flag_eq(STAGEFLAG_FOYER_LIGHTS_RESTORED, TRUE, /*goto*/ 0x1c) + say_quip(CHR_JOANNA, 0x12, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) + + beginloop(0x1c) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + call_rng + if_target_chr_in_sight(/*goto*/ 0x19) + if_timer_gt(60, /*goto*/ 0x1e) + if_rand_lt(4, /*goto*/ 0x1e) + endloop(0x1c) + + label(0x1e) + if_chr_sees_player(/*goto*/ 0x19) + goto_first(0x14) + + label(0x19) + goto_first(0x15) + + label(0x1a) + restart_timer + + beginloop(0x1b) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0x19) + if_timer_gt(300, /*goto*/ 0x00) + endloop(0x1b) + + label(0x00) + goto_first(0x14) + + label(0x19) + goto_first(0x15) + + label(0x17) + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x16) + label(0x16) + say_quip(CHR_JOANNA, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x00) + goto_next(0x20) + label(0x00) + goto_first(0x12) + + label(0x20) + goto_first(0x13) + + label(0x29) + try_run_to_target_chr_with_hand_up(/*goto*/ 0x20) + label(0x20) + dprint 'U','N',' ','E','N','T','R','Y','\n',0, + set_return_function(CHR_SELF, FUNC_GENERAL_COMBAT) + set_function(CHR_SELF, GFUNC_HAND_COMBAT) + + label(0x2a) + label(0x20) + if_chr_lost_track_of_target_maybe(/*goto*/ 0x20) + 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) + label(0x20) + set_onshot_function(GFUNC_ALERTED) + set_return_function(CHR_SELF, GFUNC_ALERTED) + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +u8 func0408_hovercopter[] = { + set_target_chr(CHR_JOANNA) + cmd0143 + move_object_to_pad(OBJ_HOVERCOPTER, 0x0199) + begin_hovercar_path(0x02) + restart_timer + set_chr_health(CHR_SELF, 42320) + + beginloop(0x1f) + if_timer_gt(120, /*goto*/ 0x42) + endloop(0x1f) + + label(0x42) + yield + if_chr_y(TARGET_CHR, -1850, OPERATOR_LESS_THAN, /*goto*/ 0x52) + if_chr_y(TARGET_CHR, -1200, OPERATOR_LESS_THAN, /*goto*/ 0x53) + goto_next(0x54) + + // Low combat (lowest floor) + label(0x21) + begin_hovercar_path(0x00) + + beginloop(0x22) + dprint 'L','O','W','\n',0, + if_chr_y(TARGET_CHR, -1850, OPERATOR_LESS_THAN, /*goto*/ 0x00) + if_chr_y(TARGET_CHR, -1200, OPERATOR_LESS_THAN, /*goto*/ 0x53) + if_stage_flag_eq(STAGEFLAG_CHOPPER_GO_TO_ROOF, FALSE, /*goto*/ 0x00) + goto_next(0x54) + + label(0x00) + set_target_chr(CHR_JOANNA) + if_chr_sees_player(/*goto*/ 0x43) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x20) + set_target_chr(CHR_VELVET) + if_chr_sees_player(/*goto*/ 0x43) + set_target_chr(CHR_JOANNA) + label(0x20) + endloop(0x22) + + // Mid combat (second floor and Cass's office floor) + label(0x23) + begin_hovercar_path(0x01) + + beginloop(0x24) + dprint 'M','I','D','\n',0, + if_chr_y(TARGET_CHR, -1850, OPERATOR_LESS_THAN, /*goto*/ 0x52) + dprint 'M','I','D','0','\n',0, + if_chr_y(TARGET_CHR, -1200, OPERATOR_LESS_THAN, /*goto*/ 0x00) + dprint 'M','I','D','1','\n',0, + if_stage_flag_eq(STAGEFLAG_CHOPPER_GO_TO_ROOF, FALSE, /*goto*/ 0x00) + dprint 'M','I','D','2','\n',0, + goto_next(0x54) + + label(0x00) + dprint 'M','I','D','3','\n',0, + set_target_chr(CHR_JOANNA) + if_chr_sees_player(/*goto*/ 0x48) + dprint 'N','O','T','V','I','S','\n',0, + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x20) + set_target_chr(CHR_VELVET) + + // @bug: This should go to 0x48. Instead it goes to the low code path, + // which doesn't appear to have any side effects except that the + // hovercopter will say the low line ("surrender or die") on the mid + // level if Velvet is the first player it sees. + if_chr_sees_player(/*goto*/ 0x43) + set_target_chr(CHR_JOANNA) + label(0x20) + endloop(0x24) + + // High combat (roof) + label(0x25) + begin_hovercar_path(0x02) + + beginloop(0x26) + set_target_chr(CHR_JOANNA) + dprint 'T','O','P','\n',0, + if_chr_y(TARGET_CHR, -1850, OPERATOR_LESS_THAN, /*goto*/ 0x52) + if_chr_y(TARGET_CHR, -1200, OPERATOR_LESS_THAN, /*goto*/ 0x53) + set_target_chr(CHR_JOANNA) + if_chr_sees_player(/*goto*/ 0x4d) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x20) + set_target_chr(CHR_VELVET) + if_chr_sees_player(/*goto*/ 0x4d) + label(0x20) + set_target_chr(CHR_JOANNA) + label(0x00) + endloop(0x26) + + // Change to high + label(0x54) + dprint 'C','H','A','N','G','E',' ','T','O',' ','H','I','G','H','\n',0, + label(0x27) + yield + goto_next(0x00) + label(0x00) + if_chr_sees_player(/*goto*/ 0x20) + move_object_to_pad(OBJ_HOVERCOPTER, 0x0199) + label(0x20) + goto_first(0x25) + + // Change to low + label(0x52) + dprint 'C','H','A','N','G','E',' ','T','O',' ','L','O','W','\n',0, + if_chr_sees_player(/*goto*/ 0x20) + move_object_to_pad(OBJ_HOVERCOPTER, 0x0190) + label(0x20) + goto_first(0x21) + + // Change to mid + label(0x53) + dprint 'C','H','A','N','G','E',' ','T','O',' ','M','I','D','\n',0, + if_chr_sees_player(/*goto*/ 0x20) + move_object_to_pad(OBJ_HOVERCOPTER, 0x0195) + label(0x20) + goto_first(0x23) + + // Low shooting + label(0x43) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x44) + goto_first(0x22) + + label(0x44) + yield + if_chr_sees_player(/*goto*/ 0x47) + restart_timer + + beginloop(0x45) + if_timer_gt(480, /*goto*/ 0x46) + if_chr_sees_player(/*goto*/ 0x47) + endloop(0x45) + + label(0x46) + stop_chr + goto_first(0x22) + + label(0x47) + if_stage_flag_eq(STAGEFLAG_SAID_SURRENDER_OR_DIE, TRUE, /*goto*/ 0x20) + play_sound(0x7b0b, -1) + set_stage_flag(STAGEFLAG_SAID_SURRENDER_OR_DIE) + label(0x20) + goto_first(0x44) + + // Mid shooting + label(0x48) + dprint 'S','H','O','O','T',' ','M','I','D','\n',0, + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x49) + goto_first(0x24) + + label(0x49) + yield + if_chr_sees_player(/*goto*/ 0x4c) + restart_timer + + beginloop(0x4a) + if_timer_gt(180, /*goto*/ 0x4b) + if_chr_sees_player(/*goto*/ 0x4c) + endloop(0x4a) + + label(0x4b) + stop_chr + goto_first(0x24) + + label(0x4c) + if_stage_flag_eq(STAGEFLAG_SAID_GIVE_UP, TRUE, /*goto*/ 0x20) + play_sound(0x7b0d, -1) + set_stage_flag(STAGEFLAG_SAID_GIVE_UP) + label(0x20) + goto_first(0x49) + + // High shooting (roof) + label(0x4d) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x00) + label(0x00) + set_stage_flag(STAGEFLAG_HOVERCOPTER_ON_ROOF) + if_stage_flag_eq(STAGEFLAG_SAID_FINAL_WARNING, TRUE, /*goto*/ 0x20) + play_sound(0x7b0c, -1) + set_stage_flag(STAGEFLAG_SAID_FINAL_WARNING) + label(0x20) + stop_chr + restart_timer + + beginloop(0x29) + if_timer_gt(180, /*goto*/ 0x00) + endloop(0x29) + + label(0x00) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x00) + goto_first(0x26) + + label(0x00) + restart_timer + label(0x4e) + yield + if_chr_sees_player(/*goto*/ 0x51) + restart_timer + + beginloop(0x4f) + if_timer_gt(480, /*goto*/ 0x50) + if_chr_sees_player(/*goto*/ 0x51) + endloop(0x4f) + + label(0x50) + stop_chr + goto_first(0x26) + + label(0x51) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x20) + if_timer_gt(500, /*goto*/ 0x27) + label(0x20) + goto_first(0x4e) + + label(0x27) + restart_timer + hovercopter_fire_rocket(0) // left side + goto_first(0x4e) + + // Unreachable - the hovercopter only fires rockets from the left side + label(0x28) + restart_timer + hovercopter_fire_rocket(1) // right side + goto_first(0x4e) + + endfunction +}; + +u8 func1002_check_accessed_foyer_elevator[] = { + beginloop(0x21) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_y(TARGET_CHR, -8155, OPERATOR_LESS_THAN, /*goto*/ 0x20) + if_chr_distance_to_pad_lt(TARGET_CHR, 300, 0x021a, /*goto*/ 0x00) + label(0x20) + goto_first(0x21) + + label(0x00) + set_stage_flag(STAGEFLAG_ACCESSED_FOYER_ELEVATOR) + message(TARGET_CHR, 0x0621) // "Foyer elevator accessed." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1003_check_end_level[] = { + beginloop(0x21) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_distance_to_pad_lt(CHR_P1P2, 200, 0x0002, /*goto*/ 0x00) + reloop(0x21) + + label(0x00) + if_chr_y(CHR_P1P2, 30, OPERATOR_LESS_THAN, /*goto*/ 0x20) + goto_next(0x00) + label(0x20) + reloop(0x21) + + label(0x00) + set_stage_flag(STAGEFLAG_REACHED_HELIPAD) + yield + if_all_objectives_complete(/*goto*/ 0x20) + endloop(0x21) + + label(0x20) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x20) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x20) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x20) + goto_next(0x00) + + label(0x20) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x20) + if_chr_dying(CHR_VELVET, /*goto*/ 0x20) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x20) + goto_next(0x00) + + label(0x20) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x00) + set_invincible(CHR_JOANNA) + set_function(CHR_SELF, FUNC_OUTRO) + endfunction +}; + +u8 func1004_elevator_unlocking[] = { + yield + if_difficulty_gt(DIFF_SA, /*goto*/ 0x1f) + unlock_door(0x02, 0x01) + unlock_door(0x03, 0x01) + set_function(CHR_SELF, GFUNC_IDLE) + + beginloop(0x1f) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_activated_object(TARGET_CHR, 0x01, /*goto*/ 0x20) + if_object_in_good_condition(0x01, /*goto*/ 0x00) + goto_next(0x28) + label(0x00) + endloop(0x1f) + + // Computer destroyed + label(0x28) + if_stage_flag_eq(STAGEFLAG_ELEVATOR_UNLOCKED, TRUE, /*goto*/ 0x00) + set_stage_flag(STAGEFLAG_ELEVATOR_PC_DESTROYED) + message(CHR_JOANNA, 0x062d) // "Critical mission object destroyed." + label(0x00) + set_function(CHR_SELF, GFUNC_IDLE) + + // Computer activated + label(0x20) + message(TARGET_CHR, 0x060e) // "Accessing elevator controls..." + assign_sound(0x8116, CHANNEL_6) + control_sound_from_object(CHANNEL_6, 0x01, TRUE) + restart_timer + + beginloop(0x22) + if_timer_gt(15, /*goto*/ 0x00) + endloop(0x22) + + label(0x00) + mute_channel(CHANNEL_6) + + beginloop(0x23) + if_timer_gt(40, /*goto*/ 0x00) + endloop(0x23) + + label(0x00) + + beginloop(0x24) + if_timer_gt(60, /*goto*/ 0x00) + endloop(0x24) + + label(0x00) + + beginloop(0x25) + if_timer_gt(80, /*goto*/ 0x00) + endloop(0x25) + + label(0x00) + restart_timer + + beginloop(0x21) + if_timer_gt(120, /*goto*/ 0x00) + endloop(0x21) + + label(0x00) + play_sound(0x81b0, -1) + unlock_door(0x02, 0x01) + unlock_door(0x03, 0x01) + message(TARGET_CHR, 0x0622) // "Office elevator door has been unlocked." + set_stage_flag(STAGEFLAG_ELEVATOR_UNLOCKED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1005_check_bodyguards_dead[] = { + #define if_alive_goto_00(chr, goto) \ + if_chr_death_animation_finished(chr, goto) \ + if_chr_dying(chr, goto) \ + if_chr_unloaded(chr, goto) \ + goto_next(0x00) \ + label(goto) + + + + beginloop(0x1f) + if_alive_goto_00(CHR_TOPGUARD5, 0x21) + if_alive_goto_00(CHR_TOPGUARD4, 0x22) + if_alive_goto_00(CHR_TOPGUARD3, 0x23) + if_alive_goto_00(CHR_TOPGUARD2, 0x24) + if_alive_goto_00(CHR_TOPGUARD1, 0x20) + + set_stage_flag(STAGEFLAG_TOP_BODYGUARDS_DEAD) + unlock_door(OBJ_TOPROOMDOOR, 0x02) + unset_object_flag_bank1(OBJ_TOPROOMDOOR, OBJECTFLAG1_20000000) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x26) + + if_alive_goto_00(0x16, 0x20) + if_alive_goto_00(0x17, 0x20) + if_alive_goto_00(0x18, 0x20) + if_alive_goto_00(0x19, 0x20) + if_alive_goto_00(0x1a, 0x20) + + if_chr_death_animation_finished(0x1b, /*goto*/ 0x20) + if_chr_dying(0x1b, /*goto*/ 0x20) + if_chr_unloaded(0x1b, /*goto*/ 0x20) + goto_next(0x00) + + label(0x00) + endloop(0x1f) + + label(0x20) + label(0x26) + message(CHR_JOANNA, 0x0624) // "Cassandra's bodyguards have been defeated." + set_stage_flag(STAGEFLAG_OBJECTIVE_BODYGUARDS_DEAD) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1006_check_hovercopter_destroyed[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x26) + + beginloop(0x1f) + if_object_in_good_condition(OBJ_HOVERCOPTER, /*goto*/ 0x00) + message(CHR_JOANNA, 0x0623) // "DataDyne Hovercopter eliminated." + set_stage_flag(STAGEFLAG_HOVERCOPTER_DESTROYED) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x00) + endloop(0x1f) + + label(0x26) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100e_drcaroll_warnings[] = { + beginloop(0x1f) + if_chr_death_animation_finished(CHR_DRCAROLL, /*goto*/ 0x21) + if_chr_dying(CHR_DRCAROLL, /*goto*/ 0x21) + if_chr_unloaded(CHR_DRCAROLL, /*goto*/ 0x21) + if_stage_flag_eq(STAGEFLAG_DRCAROLL_ATTACKED, TRUE, /*goto*/ 0x00) + if_chr_shield_lt(CHR_DRCAROLL, 100, /*goto*/ 0x30) + + // Attacked message already shown + label(0x00) + if_stage_flag_eq(STAGEFLAG_DRCAROLL_DAMAGED, TRUE, /*goto*/ 0x00) + if_just_injured(CHR_DRCAROLL, /*goto*/ 0x31) + + label(0x00) + if_chr_death_animation_finished(CHR_DRCAROLL, /*goto*/ 0x00) + if_chr_dying(CHR_DRCAROLL, /*goto*/ 0x00) + if_chr_unloaded(CHR_DRCAROLL, /*goto*/ 0x00) + reloop(0x1f) + + // Dead + label(0x21) + label(0x00) + message(CHR_JOANNA, 0x0610) // "Dr. Caroll has been killed!" + set_stage_flag(STAGEFLAG_DRCAROLL_DEAD) + set_function(CHR_SELF, GFUNC_IDLE) + + // Shield under 100 + label(0x30) + message(CHR_JOANNA, 0x0611) // "Dr. Caroll is under attack!" + set_stage_flag(STAGEFLAG_DRCAROLL_ATTACKED) + reloop(0x1f) + + label(0x31) + message(CHR_JOANNA, 0x0612) // "Dr. Caroll has been damaged!" + set_stage_flag(STAGEFLAG_DRCAROLL_DAMAGED) + endloop(0x1f) + + endfunction +}; + +u8 func1007_noop[] = { + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1008_trigger_hovercopter_roof[] = { + // Wait until techs running, then wait 7 seconds, then set flag that allows + // the hovercopter to go to the roof. + beginloop(0x1f) + if_timer_gt(420, /*goto*/ 0x21) + if_timer_gt(0, /*goto*/ 0x20) + if_stage_flag_eq(STAGEFLAG_TECHS_RUNNING, TRUE, /*goto*/ 0x00) + label(0x20) + reloop(0x1f) + + label(0x00) + restart_timer + endloop(0x1f) + + label(0x21) + set_stage_flag(STAGEFLAG_CHOPPER_GO_TO_ROOF) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1009_init_top_room[] = { + set_chr_flag_bank3(CHR_TOPGUARD1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_TOPGUARD2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_TOPGUARD3, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_TOPGUARD4, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_TOPGUARD5, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_CASS, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + + beginloop(0x1f) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0039, /*goto*/ 0x00) + if_chr_activated_object(CHR_P1P2, OBJ_TOPROOMDOOR, /*goto*/ 0x00) + endloop(0x1f) + + label(0x00) + set_object_flag_bank0(OBJ_TOPROOMDOOR, OBJECTFLAG0_02000000) + set_chr_target_chr(CHR_CASS, CHR_P1P2) + set_chr_target_chr(CHR_TOPGUARD1, CHR_P1P2) + set_chr_target_chr(CHR_TOPGUARD2, CHR_P1P2) + set_chr_target_chr(CHR_TOPGUARD3, CHR_P1P2) + set_chr_target_chr(CHR_TOPGUARD4, CHR_P1P2) + set_chr_target_chr(CHR_TOPGUARD5, CHR_P1P2) + unset_chr_flag_bank3(CHR_TOPGUARD1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(CHR_TOPGUARD2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(CHR_TOPGUARD3, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(CHR_TOPGUARD4, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(CHR_TOPGUARD5, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_alliance(CHR_CASS, ALLIANCE_ENEMY) + set_chr_alliance(CHR_TOPGUARD1, ALLIANCE_ENEMY) + set_chr_alliance(CHR_TOPGUARD2, ALLIANCE_ENEMY) + set_chr_alliance(CHR_TOPGUARD3, ALLIANCE_ENEMY) + set_chr_alliance(CHR_TOPGUARD4, ALLIANCE_ENEMY) + set_chr_alliance(CHR_TOPGUARD5, ALLIANCE_ENEMY) + set_stage_flag(STAGEFLAG_ENTERING_TOP_ROOM) + restart_timer + + beginloop(0x21) + if_timer_gt(60, /*goto*/ 0x00) + endloop(0x21) + + label(0x00) + beginloop(0x21) + if_chr_shield_lt(CHR_CASS, 100, /*goto*/ 0x20) + endloop(0x21) + + label(0x20) + set_stage_flag(STAGEFLAG_CASS_SHIELD_DAMAGED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040b_init_tech1[] = { + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, 0x0409) + endfunction +}; + +u8 func0409_tech_conversation[] = { + set_onshot_function(GFUNC_IDLE) + + beginloop(0x01) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_activated_object(TARGET_CHR, 0x11, /*goto*/ 0x00) + if_door_state(0x11, DOORSTATE_OPEN, /*goto*/ 0x00) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x33) + dprint 'T','E','C','H',' ','1',' ','L','O','O','P','\n',0, + set_chr_flag_bank3(CHR_TECH1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_TECH2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_RLSHOCK, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + endloop(0x01) + + // Player activated door or door is fully open + label(0x00) + set_follow_chr(TARGET_CHR) + set_chr_alliance(CHR_TECH1, ALLIANCE_ENEMY) + set_chr_alliance(CHR_TECH2, ALLIANCE_ENEMY) + set_chr_alliance(CHR_RLSHOCK, ALLIANCE_ENEMY) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + unset_chr_flag_bank3(CHR_TECH1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(CHR_TECH2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(CHR_RLSHOCK, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(CHR_RLSHOCK, GFUNC_UNALERTED) + restart_timer + animation(0x0204, -1, -1, 0x0214, 0x10, 2) + + beginloop(0x28) + if_shot_near_chr(0x00, /*goto*/ 0x33) + if_saw_death(0x00, /*goto*/ 0x33) + if_timer_gt(30, /*goto*/ 0x20) + endloop(0x28) + + label(0x20) + dprint 'T','E','C','H',' ','2',' ','L','O','O','P','\n',0, + animation(ANIM_TALKING_00A0, 0, -1, 0x1014, CHR_SELF, 2) + speak(FOLLOW_CHR, 0x0625, 0x811d, CHANNEL_7, COLOR_06_WHITE) // "That's not how it goes." + restart_timer + + beginloop(0x21) + if_shot_near_chr(0x00, /*goto*/ 0x33) + if_saw_death(0x00, /*goto*/ 0x33) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x33) + if_target_chr_in_sight(/*goto*/ 0x33) + pause_timer + if_sound_finished(CHANNEL_7, /*goto*/ 0x20) + reloop(0x21) + + label(0x20) + resume_timer + if_timer_gt(20, /*goto*/ 0x20) + goto_first(0x21) + + label(0x20) + animation(ANIM_TWO_GUN_HOLD, 0, -1, 0x1014, CHR_SELF, 2) + animation(ANIM_TALKING_00A0, -1, -1, 0x0214, 0x10, 2) + speak(FOLLOW_CHR, 0x0626, 0x8120, CHANNEL_7, COLOR_08_RED) // "Yes, it is." + + beginloop(0x22) + if_shot_near_chr(0x00, /*goto*/ 0x33) + if_saw_death(0x00, /*goto*/ 0x33) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x33) + if_target_chr_in_sight(/*goto*/ 0x33) + pause_timer + if_sound_finished(CHANNEL_7, /*goto*/ 0x20) + reloop(0x22) + + label(0x20) + resume_timer + if_timer_gt(40, /*goto*/ 0x20) + endloop(0x22) + + label(0x20) + animation(ANIM_TALKING_00A0, 0, -1, 0x1014, CHR_SELF, 2) + animation(0x0205, -1, -1, 0x0214, 0x10, 2) + speak(FOLLOW_CHR, 0x0627, 0x811e, CHANNEL_7, COLOR_06_WHITE) // "Give it to me - you're doing it wrong." + + beginloop(0x23) + if_shot_near_chr(0x00, /*goto*/ 0x33) + if_saw_death(0x00, /*goto*/ 0x33) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x33) + if_target_chr_in_sight(/*goto*/ 0x33) + pause_timer + if_sound_finished(CHANNEL_7, /*goto*/ 0x20) + reloop(0x23) + + label(0x20) + resume_timer + if_timer_gt(60, /*goto*/ 0x20) + endloop(0x23) + + label(0x20) + animation(ANIM_TWO_GUN_HOLD, 0, -1, 0x1014, CHR_SELF, 2) + animation(ANIM_TALKING_00A0, -1, -1, 0x0214, 0x10, 2) + speak(FOLLOW_CHR, 0x0628, 0x8121, CHANNEL_7, COLOR_08_RED) // "Stop annoying me." + + beginloop(0x24) + if_shot_near_chr(0x00, /*goto*/ 0x33) + if_saw_death(0x00, /*goto*/ 0x33) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x33) + if_target_chr_in_sight(/*goto*/ 0x33) + pause_timer + if_sound_finished(CHANNEL_7, /*goto*/ 0x20) + reloop(0x24) + + label(0x20) + resume_timer + if_timer_gt(80, /*goto*/ 0x20) + endloop(0x24) + + label(0x20) + animation(ANIM_TWO_GUN_HOLD, 0, -1, 0x1014, CHR_SELF, 2) + animation(ANIM_TALKING_00A0, -1, -1, 0x0214, CHR_RLSHOCK, 2) + animation(0x0206, -1, -1, 0x0214, 0x10, 2) + speak(FOLLOW_CHR, 0x0629, 0x8123, CHANNEL_7, COLOR_09_BLUE) // "Will you just hurry up!" + + beginloop(0x25) + if_shot_near_chr(0x00, /*goto*/ 0x33) + if_saw_death(0x00, /*goto*/ 0x33) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x33) + if_target_chr_in_sight(/*goto*/ 0x33) + pause_timer + if_sound_finished(CHANNEL_7, /*goto*/ 0x20) + reloop(0x25) + + label(0x20) + resume_timer + if_timer_gt(100, /*goto*/ 0x20) + endloop(0x25) + + label(0x20) + set_stage_flag(STAGEFLAG_TECHS_FINISHED) + stop_chr + + beginloop(0x26) + if_shot_near_chr(0x00, /*goto*/ 0x33) + if_saw_death(0x00, /*goto*/ 0x33) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x33) + if_chr_sees_player(/*goto*/ 0x20) + endloop(0x26) + + label(0x20) + label(0x33) + dprint 'C','H','O','P','P','E','R',' ','C','A','N',' ','G','O','\n',0, + if_stage_flag_eq(STAGEFLAG_TECHS_RUNNING, TRUE, /*goto*/ 0x00) + set_stage_flag(STAGEFLAG_TECHS_RUNNING) + label(0x00) + set_group_alertness(100) + open_door(0x04) + restart_timer + speak(TARGET_CHR, 0x062a, 0x811f, CHANNEL_7, COLOR_06_WHITE) // "Oh, no...too late." + animation(ANIM_SURRENDER_002E, 0, 193, 0x1810, CHR_SELF, 2) + + beginloop(0x34) + if_timer_gt(60, /*goto*/ 0x35) + endloop(0x34) + + label(0x35) + jog_to_pad(0x01cd) + + beginloop(0x36) + if_chr_stopped(/*goto*/ 0x37) + endloop(0x36) + + label(0x37) + restart_timer + surrender + set_function(CHR_SELF, GFUNC_IDLE) + + // Unreachable + animation(ANIM_COWER_0229, -1, -1, 0x1010, CHR_SELF, 2) + + beginloop(0x38) + if_chr_idle(/*goto*/ 0x5e) + goto_next(0x20) + + label(0x5e) + reloop(0x38) + + label(0x20) + restart_timer + endloop(0x38) + + label(0x00) + remove_chr(CHR_SELF) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040d_cass_necklace[] = { + remove_cass_necklace(CHR_CASS) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040c_init_tech2[] = { + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, 0x040a) + endfunction +}; + +u8 func040a_tech2[] = { + set_onshot_function(GFUNC_IDLE) + stop_chr + + beginloop(0x1f) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_stage_flag_eq(STAGEFLAG_TECHS_FINISHED, TRUE, /*goto*/ 0x20) + if_target_chr_in_sight(/*goto*/ 0x33) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x33) + endloop(0x1f) + + label(0x20) + stop_chr + + beginloop(0x21) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0x00) + reloop(0x21) + + label(0x00) + label(0x33) + dprint 'C','H','O','P','P','E','R',' ','C','A','N',' ','G','O','\n',0, + if_stage_flag_eq(STAGEFLAG_TECHS_RUNNING, TRUE, /*goto*/ 0x00) + set_stage_flag(STAGEFLAG_TECHS_RUNNING) + label(0x00) + set_group_alertness(100) + open_door(0x04) + yield + restart_timer + animation(0x0205, 0, -1, 0x180a, CHR_SELF, 2) + + // @bug: Duplicate label. I suspect the goto first 0x21 below is + // supposed to go here. The only possible side effect is the tech may + // restart his animation repeatedly. + label(0x21) + yield + if_sound_finished(CHANNEL_7, /*goto*/ 0x20) + endloop(0x21) + + label(0x20) + animation(ANIM_SURRENDER_002E, 0, -1, 0x180a, CHR_SELF, 2) + speak(TARGET_CHR, 0x062b, 0x8122, CHANNEL_7, COLOR_08_RED) // "She's here..." + + beginloop(0x22) + if_sound_finished(CHANNEL_7, /*goto*/ 0x35) + endloop(0x22) + + label(0x35) + jog_to_pad(0x002a) + + beginloop(0x36) + if_chr_stopped(/*goto*/ 0x37) + endloop(0x36) + + label(0x37) + restart_timer + surrender + set_function(CHR_SELF, GFUNC_IDLE) + + // Unreachable + animation(ANIM_COWER_0229, -1, -1, 0x1010, CHR_SELF, 2) + + beginloop(0x38) + if_chr_idle(/*goto*/ 0x5e) + goto_next(0x20) + + label(0x5e) + reloop(0x38) + + label(0x20) + restart_timer + endloop(0x38) + + label(0x00) + remove_chr(CHR_SELF) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040d_cass[] = { + set_shield(100) + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_CASS, CHRFLAG3_UNEXPLODABLE) + set_target_chr(CHR_P1P2) + + beginloop(0x3b) + if_stage_flag_eq(STAGEFLAG_ENTERING_TOP_ROOM, TRUE, /*goto*/ 0x3a) + endloop(0x3b) + + label(0x3a) + open_door(OBJ_TOPROOMDOOR) + set_target_chr(FOLLOW_CHR) + if_num_human_players_lt(2, /*goto*/ 0x20) + goto_next(0x89) + + // 1 player - do force walk (enter room) + label(0x20) + revoke_control(CHR_JOANNA, 0) + force_walk(CHR_JOANNA, 0x0019, 0x2837, 0x002e) + + beginloop(0x23) + open_door(OBJ_TOPROOMDOOR) + if_force_walk_finished(CHR_JOANNA, /*goto*/ 0x24) + endloop(0x23) + + // Second force walk (turn to face Cass) + label(0x24) + force_walk(CHR_JOANNA, 0x0018, 0x0041, 0x4100) + open_door(OBJ_TOPROOMDOOR) + + beginloop(0x25) + if_force_walk_finished(CHR_JOANNA, /*goto*/ 0x26) + endloop(0x25) + + label(0x26) + unset_object_flag_bank0(OBJ_TOPROOMDOOR, OBJECTFLAG0_02000000) + grant_control(CHR_JOANNA) + close_door(OBJ_TOPROOMDOOR) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0045, /*goto*/ 0x20) + lock_door(OBJ_TOPROOMDOOR, 0x02) + + // 2 players, or force walk failed + label(0x20) + if_chr_death_animation_finished(CHR_DRCAROLL, /*goto*/ 0x20) + if_chr_dying(CHR_DRCAROLL, /*goto*/ 0x20) + if_chr_unloaded(CHR_DRCAROLL, /*goto*/ 0x20) + set_function(CHR_DRCAROLL, 0x0405) + label(0x20) + goto_next(0x00) + + label(0x89) + unset_object_flag_bank0(OBJ_TOPROOMDOOR, OBJECTFLAG0_02000000) + restart_timer + + beginloop(0x8a) + if_stage_flag_eq(STAGEFLAG_CASS_SHIELD_DAMAGED, TRUE, /*goto*/ 0x5b) + if_timer_gt(120, /*goto*/ 0x00) + endloop(0x8a) + + label(0x00) + restart_timer + speak(TARGET_CHR, 0x0620, 0x80ff, CHANNEL_6, COLOR_04_ORANGE) // "We meet again, girl!" + animation(ANIM_TALKING_00A0, 0, 193, 0x1010, CHR_SELF, 2) + + beginloop(0x27) + if_stage_flag_eq(STAGEFLAG_CASS_SHIELD_DAMAGED, TRUE, /*goto*/ 0x5b) + if_sound_finished(CHANNEL_6, /*goto*/ 0x00) + endloop(0x27) + + label(0x00) + restart_timer + speak(TARGET_CHR, 0x0614, 0x80fe, CHANNEL_6, COLOR_04_ORANGE) // "You've become quite an annoyance..." + animation(ANIM_TALKING_00A3, 0, 193, 0x1014, CHR_SELF, 2) + + beginloop(0x28) + if_stage_flag_eq(STAGEFLAG_CASS_SHIELD_DAMAGED, TRUE, /*goto*/ 0x5b) + if_timer_gt(300, /*goto*/ 0x00) + endloop(0x28) + + label(0x5b) + restart_timer + + beginloop(0x29) + if_timer_gt(60, /*goto*/ 0x20) + endloop(0x29) + + label(0x20) + speak(TARGET_CHR, 0x062c, 0x8101, CHANNEL_6, COLOR_04_ORANGE) // "Get her!" + animation(ANIM_TALKING_00A3, 0, 193, 0x1010, CHR_SELF, 2) + goto_next(0x20) + + label(0x00) + restart_timer + speak(TARGET_CHR, 0x0615, 0x8100, CHANNEL_6, COLOR_04_ORANGE) // "Good night, Ms. Dark." + animation(ANIM_TALKING_00A0, 0, 193, 0x1010, CHR_SELF, 2) + + beginloop(0x2a) + if_timer_gt(150, /*goto*/ 0x20) + endloop(0x2a) + + label(0x20) + set_lights_state(0x0044, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x0039, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x003c, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x003d, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x003e, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x003b, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x0042, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x003f, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x003a, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x0041, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x0040, 0x07, 0x00, 0x00, 0x00) + set_stage_flag(STAGEFLAG_TOP_LIGHTS_OFF) + set_stage_flag(STAGEFLAG_TOP_GUARDS_ATTACKING) + walk_to_pad(0x000f) + restart_timer + + beginloop(0x2b) + if_timer_gt(60, /*goto*/ 0x00) + endloop(0x2b) + + label(0x00) + play_sound(0x8102, CHANNEL_7) + + beginloop(0x2c) + if_timer_gt(120, /*goto*/ 0x00) + endloop(0x2c) + + label(0x00) + play_x_music(CHANNEL_10, 60) + + beginloop(0x3f) + if_timer_gt(180, /*goto*/ 0x00) + endloop(0x3f) + + label(0x00) + set_stage_flag(STAGEFLAG_TRIGGER_CANTLEAVEANY_MSG) + label(0x3d) + label(0x00) + label(0x00) + set_stage_flag(STAGEFLAG_TOP_GUARDS_ATTACKING) + + // Wait until Jo not in top room + beginloop(0x2c) + if_chr_in_room(CHR_SELF, 0x00, 0x003a, /*goto*/ 0x20) + if_chr_in_room(CHR_SELF, 0x00, 0x003b, /*goto*/ 0x20) + goto_next(0x00) + + label(0x20) + reloop(0x2c) + + // And not in sight + label(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_within_units_of_sight(30, /*goto*/ 0x20) + set_target_chr(CHR_COUNTEROP) + if_within_units_of_sight(30, /*goto*/ 0x20) + goto_next(0x2d) + + label(0x20) + endloop(0x2c) + + label(0x2d) + set_chr_flag_bank2(CHR_CASS, CHRFLAG2_00100000) + remove_cass_necklace(CHR_CASS) + chr_move_to_pad(CHR_CASS, 0x0205, 0x00, /*goto*/ 0x00) + dprint 'M','O','V','E',' ','F','A','I','L','\n',0, + label(0x00) + dprint 'M','O','V','E',' ','G','O','O','D','\n',0, + try_face_entity(0x0200, 0x0000, /*goto*/ 0x20) + label(0x20) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101f_unlock_top_door[] = { + beginloop(0x1f) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x003b, /*goto*/ 0x20) + endloop(0x1f) + + label(0x20) + unlock_door(OBJ_TOPROOMDOOR, 0x02) + unset_object_flag_bank1(OBJ_TOPROOMDOOR, OBJECTFLAG1_20000000) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * @unused + */ +u8 func040e_noop2[] = { + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100a_lightswitch[] = { + beginloop(0x1f) + if_chr_activated_object(CHR_F3, OBJ_LIGHTSWITCH, /*goto*/ 0x20) + reloop(0x1f) + + label(0x20) + play_sound(0x00ba, -1) + if_stage_flag_eq(STAGEFLAG_TOP_LIGHTS_OFF, TRUE, /*goto*/ 0x00) + set_lights_state(0x0044, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x0039, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x003c, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x003d, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x003e, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x003b, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x0042, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x003f, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x003a, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x0041, 0x07, 0x00, 0x00, 0x00) + set_lights_state(0x0040, 0x07, 0x00, 0x00, 0x00) + set_stage_flag(STAGEFLAG_TOP_LIGHTS_OFF) + reloop(0x1f) + + label(0x00) + unset_stage_flag(STAGEFLAG_TOP_LIGHTS_OFF) + set_lights_state(0x0044, 0x06, 0x00, 0x00, 0x00) + set_lights_state(0x0039, 0x06, 0x00, 0x00, 0x00) + set_lights_state(0x003c, 0x06, 0x00, 0x00, 0x00) + set_lights_state(0x003d, 0x06, 0x00, 0x00, 0x00) + set_lights_state(0x003e, 0x06, 0x00, 0x00, 0x00) + set_lights_state(0x003b, 0x06, 0x00, 0x00, 0x00) + set_lights_state(0x0042, 0x06, 0x00, 0x00, 0x00) + set_lights_state(0x003f, 0x06, 0x00, 0x00, 0x00) + set_lights_state(0x003a, 0x06, 0x00, 0x00, 0x00) + set_lights_state(0x0041, 0x06, 0x00, 0x00, 0x00) + set_lights_state(0x0040, 0x06, 0x00, 0x00, 0x00) + endloop(0x1f) + + endfunction +}; + +u8 func100b_check_top_lights_on[] = { + beginloop(0x1f) + if_stage_flag_eq(STAGEFLAG_TOP_GUARDS_ATTACKING, TRUE, /*goto*/ 0x00) + endloop(0x1f) + + label(0x00) + if_stage_flag_eq(STAGEFLAG_TOP_LIGHTS_OFF, TRUE, /*goto*/ 0x00) + goto_next(0x20) + + label(0x00) + endloop(0x1f) + + label(0x20) + set_stage_flag(STAGEFLAG_CASS_SHIELD_DAMAGED) + set_function(CHR_TOPGUARD1, FUNC_TOP_GUARD_BLINDED) + set_function(CHR_TOPGUARD2, FUNC_TOP_GUARD_BLINDED) + set_function(CHR_TOPGUARD3, FUNC_TOP_GUARD_BLINDED) + set_function(CHR_TOPGUARD4, FUNC_TOP_GUARD_BLINDED) + set_function(CHR_TOPGUARD5, FUNC_TOP_GUARD_BLINDED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100c_foyer_lights[] = { + restart_timer + beginloop(0x21) + if_stage_flag_eq(STAGEFLAG_FOYER_LIGHTS_OFF, TRUE, /*goto*/ 0x00) + if_timer_gt(980, /*goto*/ 0x00) + endloop(0x21) + + label(0x00) + set_lights_state(0x0019, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x001a, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x001b, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x001c, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x001d, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x001e, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x001f, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x0020, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x0021, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x0017, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x0018, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x0016, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x0022, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x0023, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x0024, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x0025, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x0026, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x0027, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x0028, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x0029, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x002a, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x002b, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x002c, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x002d, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x002e, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x002f, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x0030, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x0031, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x0032, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x0033, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x0034, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x0035, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x0036, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x0015, 0x03, 0x64, 0x02, 0x78) + set_lights_state(0x000f, 0x03, 0x64, 0x02, 0xf0) + set_lights_state(0x000e, 0x03, 0x64, 0x02, 0xf0) + set_lights_state(0x0010, 0x03, 0x64, 0x02, 0xf0) + set_lights_state(0x0011, 0x03, 0x64, 0x02, 0xf0) + set_lights_state(0x0012, 0x03, 0x64, 0x02, 0xf0) + set_lights_state(0x0013, 0x03, 0x64, 0x02, 0xf0) + set_lights_state(0x0014, 0x03, 0x64, 0x02, 0xf0) + set_lights_state(0x000d, 0x03, 0x64, 0x02, 0xf0) + restart_timer + + beginloop(0x22) + if_timer_gt(240, /*goto*/ 0x00) + endloop(0x22) + + label(0x00) + set_lights_state(0x0019, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x001a, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x001b, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x001c, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x001d, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x001e, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x001f, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x0020, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x0021, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x0017, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x0018, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x0016, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x0022, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x0023, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x0024, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x0025, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x0026, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x0027, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x0028, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x0029, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x002a, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x002b, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x002c, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x002d, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x002e, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x002f, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x0030, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x0031, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x0032, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x0033, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x0034, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x0035, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x0036, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x0015, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x000f, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x000e, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x0010, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x0011, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x0012, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x0013, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x0014, 0x01, 0x02, 0x00, 0x00) + set_lights_state(0x000d, 0x01, 0x02, 0x00, 0x00) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1400_setup_counterop[] = { + yield + set_chr_alliance(CHR_COUNTEROP, ALLIANCE_ENEMY) + give_object_to_chr(OBJ_NIGHTVISION, CHR_JOANNA) + give_object_to_chr(OBJ_NIGHTVISION, CHR_VELVET) + set_function(CHR_SELF, GFUNC_REBUILD_GROUPS) + endfunction +}; + +u8 func100d_intro[] = { + set_music_track(MUSIC_EXTRACTION_INTRO) + camera_movement(0x0138) + cmd0175(60) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x0139, -1, -1, 0x0600, CHR_JOANNA, 4) + set_chr_flag_bank3(0x00, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(0x00, CHRFLAG2_00020000) + animation(0x013d, -1, -1, 0x0600, CHR_DRCAROLL, 4) + set_chr_flag_bank3(CHR_INTRO_GUARD, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_INTRO_GUARD, CHRFLAG2_00020000) + animation(0x013a, -1, -1, 0x0600, CHR_INTRO_GUARD, 4) + unset_stage_flag(STAGEFLAG_00800000) + restart_timer + fade_to_color(0x000000ff, 0) + fade_to_color(0x00000000, 110) + yield + set_cutscene_weapon(CHR_JOANNA, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_JOANNA, WEAPON_FALCON2_SCOPE, WEAPON_NONE) + if_controller_button_pressed(/*goto*/ 0x00) + + #define wait_until(time, loopid) \ + beginloop(loopid) \ + if_controller_button_pressed(/*goto*/ 0x5d) \ + if_timer_gt(time, /*goto*/ 0x00) \ + endloop(loopid) \ + label(0x00) + + + + wait_until(20, 0x61) + open_door(0x0c) + + wait_until(120, 0x60) + play_sound(0x0161, -1) + + wait_until(350, 0x62) + play_sound(0x042f, -1) + + wait_until(450, 0x63) + play_sound(0x0427, -1) + + wait_until(540, 0x64) + speak(CHR_JOANNA, 0x063c, 0x7bf3, CHANNEL_7, COLOR_06_WHITE) // "Sound the alarm - she's here!" + + wait_until(640, 0x65) + speak(CHR_JOANNA, 0x063d, 0x73f4, CHANNEL_7, COLOR_09_BLUE) // "Lights out!" + + wait_until(690, 0x66) + play_sound(0x0428, -1) + + wait_until(720, 0x67) + play_sound(0x0250, 10) + + wait_until(850, 0x68) + play_sound(0x0430, -1) + + wait_until(880, 0x69) + play_sound(0x0429, -1) + + wait_until(890, 0x6a) + close_door(0x0c) + + wait_until(1000, 0x6b) + speak(CHR_JOANNA, 0x063e, 0x73f5, CHANNEL_7, COLOR_09_BLUE) // "What the...?" + + beginloop(0x21) + if_camera_animating(/*goto*/ 0x20) + goto_next(0x5d) + + label(0x20) + endloop(0x21) + + label(0x5d) + set_stage_flag(STAGEFLAG_FOYER_LIGHTS_OFF) + mute_channel(CHANNEL_10) + mute_channel(CHANNEL_7) + + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x0139, -2, -1, 0x0600, CHR_JOANNA, 2) + + unset_chr_flag_bank3(CHR_DRCAROLL, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_DRCAROLL, CHRFLAG2_00020000) + animation(0x013d, -2, -1, 0x0600, CHR_DRCAROLL, 2) + + unset_chr_flag_bank3(CHR_INTRO_GUARD, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank3(CHR_INTRO_GUARD, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank2(CHR_INTRO_GUARD, CHRFLAG2_00020000) + set_chr_flag_bank3(CHR_INTRO_GUARD, CHRFLAG3_00010000) + animation(0x013a, -2, -1, 0x0600, CHR_INTRO_GUARD, 2) + + restart_default_music + reset_ambience + enter_firstperson + yield + animation(0x020c, -1, -1, 0x0600, CHR_INTRO_GUARD, 2) + set_function(CHR_DRCAROLL, 0x0402) + yield + kill(CHR_INTRO_GUARD) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0412_outro[] = { + set_music_track(MUSIC_EXTRACTION_OUTRO) + set_sfx_track(MUSIC_EXTRACTION_OUTRO_SFX) + camera_movement(0x0157) + set_object_flag_bank1(OBJ_HOVERCOPTER, OBJECTFLAG1_INVISIBLE) + hide_object(OBJ_HOVERCOPTER) + set_function(CHR_P1P2, GFUNC_IDLE) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0xf1, CHRFLAG3_HIDDEN) + dprint 'c','u','t',' ','s','c','e','n','e',' ','2',0, + set_chr_flag_bank3(CHR_P1P2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_CASS, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + remove_cass_necklace(CHR_CASS) + set_chr_flag_bank3(CHR_MRBLONDE, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_OUTRO_GUARD1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_OUTRO_GUARD2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_DRCAROLL, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + + set_function(CHR_DRCAROLL, GFUNC_IDLE) + set_chr_flag_bank3(CHR_DRCAROLL, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_DRCAROLL, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_DRCAROLL, CHRFLAG2_00020000) + animation(0x015d, -1, -1, 0x0600, CHR_DRCAROLL, 4) + + set_function(CHR_CASS, FUNC_CASS_OUTRO) + set_chr_flag_bank3(CHR_CASS, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_CASS, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_CASS, CHRFLAG2_00020000) + animation(0x0159, -1, -1, 0x0600, CHR_CASS, 4) + + set_function(CHR_MRBLONDE, GFUNC_IDLE) + set_chr_flag_bank3(CHR_MRBLONDE, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_MRBLONDE, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_MRBLONDE, CHRFLAG2_00020000) + animation(0x015a, -1, -1, 0x0600, CHR_MRBLONDE, 4) + + set_function(CHR_OUTRO_GUARD1, GFUNC_IDLE) + set_chr_flag_bank3(CHR_OUTRO_GUARD1, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_OUTRO_GUARD1, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_OUTRO_GUARD1, CHRFLAG2_00020000) + animation(0x015b, -1, -1, 0x0600, CHR_OUTRO_GUARD1, 4) + + set_function(CHR_OUTRO_GUARD2, GFUNC_IDLE) + set_chr_flag_bank3(CHR_OUTRO_GUARD2, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_OUTRO_GUARD2, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_OUTRO_GUARD2, CHRFLAG2_00020000) + animation(0x015c, -1, -1, 0x0600, CHR_OUTRO_GUARD2, 4) + + show_object(OBJ_JUMPSHIP) + set_object_flag_bank2(OBJ_JUMPSHIP, OBJECTFLAG2_00000010) + set_object_flag_bank1(OBJ_JUMPSHIP, OBJECTFLAG1_04000000) + object_do_animation(0x015e, OBJ_JUMPSHIP, 0x04ff, 0xff) + set_function(CHR_P1P2, GFUNC_IDLE) + set_chr_flag_bank3(CHR_P1P2, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_P1P2, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_P1P2, CHRFLAG2_00020000) + animation(0x0158, -1, -1, 0x0600, CHR_P1P2, 4) + show_nonessential_chrs(FALSE) + restart_timer + set_cutscene_weapon(CHR_P1P2, -1, -1) + yield + set_cutscene_weapon(CHR_P1P2, -1, WEAPON_FALCON2_SCOPE) + + #define outro_wait_until(time, loopid) \ + beginloop(loopid) \ + if_controller_button_pressed(/*goto*/ 0x5d) \ + if_timer_gt(time, /*goto*/ 0x00) \ + endloop(loopid) \ + label(0x00) + + + + outro_wait_until(0, 0x5f) + outro_wait_until(20, 0x5f) + outro_wait_until(47, 0x7e) + outro_wait_until(90, 0x7f) + + outro_wait_until(120, 0x60) + speak(CHR_P1P2, 0x063f, 0x73f6, CHANNEL_7, COLOR_04_ORANGE) // "Going somewhere?" + + outro_wait_until(188, 0x61) + play_sound(0x01d9, -1) + + outro_wait_until(350, 0x62) + speak(CHR_P1P2, 0x0640, 0x73f7, CHANNEL_7, COLOR_09_BLUE) // "Something I can do for you, old woman?" + + outro_wait_until(500, 0x63) + speak(CHR_P1P2, 0x0641, 0x73f8, CHANNEL_7, COLOR_04_ORANGE) // "Return our sapient immediately! You don't know wha..." + + outro_wait_until(720, 0x64) + play_sound(0x0424, -1) + + outro_wait_until(740, 0x65) + speak(CHR_P1P2, 0x0642, 0x73f9, CHANNEL_7, COLOR_09_BLUE) // "Yes I do. I'm leaving." + + outro_wait_until(858, 0x73) + + outro_wait_until(980, 0x66) + speak(CHR_P1P2, 0x0643, 0x73fa, CHANNEL_7, COLOR_04_ORANGE) // "One more chance! Give it back, and you could come ..." + + outro_wait_until(990, 0x68) + play_sound(0x804f, -1) + + outro_wait_until(1220, 0x69) + + outro_wait_until(1240, 0x6a) + + outro_wait_until(1348, 0x6b) + play_sound(0x80c8, -1) + + outro_wait_until(1380, 0x80) + play_sound(0x80c9, -1) + + outro_wait_until(1400, 0x81) + set_chr_shooting_in_cutscene(CHR_OUTRO_GUARD1, TRUE) + + yield + yield + set_chr_shooting_in_cutscene(CHR_OUTRO_GUARD1, FALSE) + + outro_wait_until(1420, 0x82) + set_chr_shooting_in_cutscene(CHR_OUTRO_GUARD2, TRUE) + + yield + yield + set_chr_shooting_in_cutscene(CHR_OUTRO_GUARD2, FALSE) + + outro_wait_until(1425, 0x6c) + speak(CHR_P1P2, 0x0644, 0x73fb, CHANNEL_7, COLOR_09_BLUE) // "Sorry! Gotta shoot." + + outro_wait_until(1447, 0x6d) + play_sound(0x80ca, -1) + + outro_wait_until(1486, 0x83) + play_sound(0x80cb, -1) + + outro_wait_until(1505, 0x6e) + play_sound(0x8055, CHANNEL_10) + + outro_wait_until(1520, 0x6f) + play_sound(0x8055, CHANNEL_10) + + outro_wait_until(1526, 0x70) + set_chr_shooting_in_cutscene(CHR_JOANNA, TRUE) + + yield + yield + set_chr_shooting_in_cutscene(CHR_JOANNA, FALSE) + + outro_wait_until(1538, 0x84) + set_chr_shooting_in_cutscene(CHR_JOANNA, TRUE) + + yield + yield + set_chr_shooting_in_cutscene(CHR_JOANNA, FALSE) + + outro_wait_until(1554, 0x71) + play_sound(0x000d, CHANNEL_10) + + outro_wait_until(1600, 0x74) + play_sound(0x000e, CHANNEL_10) + + outro_wait_until(1734, 0x72) + play_sound(0x808d, CHANNEL_10) + + outro_wait_until(1890, 0x75) + play_sound(0x0425, -1) + + outro_wait_until(1940, 0x77) + speak(CHR_P1P2, 0x0645, 0x73fc, CHANNEL_7, COLOR_03_RED) // "You must get the sapient back. We cannot proceed w..." + + outro_wait_until(1944, 0x76) + play_sound(0x80c4, -1) + + outro_wait_until(1970, 0x85) + play_sound(0x80c5, -1) + + outro_wait_until(2008, 0x86) + play_sound(0x80c6, -1) + + outro_wait_until(2190, 0x78) + speak(CHR_P1P2, 0x0646, 0x73fd, CHANNEL_7, COLOR_04_ORANGE) // "I know that!" + + outro_wait_until(2300, 0x79) + play_sound(0x80c7, -1) + + outro_wait_until(2317, 0x87) + play_sound(0x042e, -1) + + outro_wait_until(2324, 0x88) + play_sound(0x80c4, -1) + + outro_wait_until(2340, 0x7a) + play_sound(0x80c7, -1) + + outro_wait_until(2344, 0x7b) + + outro_wait_until(2393, 0x7c) + speak(CHR_P1P2, 0x0647, 0x73fe, CHANNEL_7, COLOR_04_ORANGE) // "I also know who to talk to... Mr. Carrington." + + outro_wait_until(2497, 0x7d) + + beginloop(0x21) + if_camera_animating(/*goto*/ 0x20) + goto_next(0x5d) + label(0x20) + if_controller_button_pressed(/*goto*/ 0x5d) + endloop(0x21) + + label(0x5d) + hide_object(OBJ_JUMPSHIP) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0413_defend_pad[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(12) + set_reaction_speed(10) + set_chr_health(CHR_SELF, 10) + set_armor(40) + set_recovery_speed(0) + set_shield(0) + set_onshot_function(FUNC_GENERAL_COMBAT) + + beginloop(0x1f) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0x21) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x21) + if_distance_to_pad_gt2(200, TARGET_PAD, /*goto*/ 0x22) + endloop(0x1f) + + label(0x21) + set_function(CHR_SELF, FUNC_GENERAL_COMBAT) + + label(0x22) + go_to_target_pad(SPEED_RUN) + + beginloop(0x23) + if_chr_stopped(/*goto*/ 0x00) + if_chr_sees_player(/*goto*/ 0x00) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x00) + endloop(0x23) + + label(0x00) + set_function(CHR_SELF, FUNC_GENERAL_COMBAT) + endfunction +}; + +u8 func100f_move_rocket_ammo[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x00) + set_function(CHR_SELF, GFUNC_IDLE) + + // Agent only + label(0x00) + move_object_to_pad(OBJ_ROCKETAMMO1, 0x000f) + move_object_to_pad(OBJ_ROCKETAMMO2, 0x000d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040d_cass_outro[] = { + set_shield(0) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1001_objectives_failed_msg[] = { + yield + set_chr_flag_bank3(CHR_TECH1, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_TECH2, CHRFLAG3_04000000) + set_function(CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG) + endfunction +}; + +u8 func0414_init_shock[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(12) + set_reaction_speed(10) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(10) + set_shield(0) + set_function(CHR_SELF, FUNC_GENERAL_COMBAT) + endfunction +}; + +/** + * @unused + */ +u8 func0415_init_10hp[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(12) + set_reaction_speed(10) + set_chr_health(CHR_SELF, 10) + set_armor(40) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, FUNC_GENERAL_COMBAT) + endfunction +}; + +u8 func1012_msg_lockeddown[] = { + beginloop(0x1f) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0023, /*goto*/ 0x20) + endloop(0x1f) + + label(0x20) + speak(CHR_JOANNA, 0x0633, 0x8176, CHANNEL_6, COLOR_09_BLUE) // "They've locked down the ground floor - get to the ..." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1013_msg_thatcopter[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x26) + + beginloop(0x1f) + if_stage_flag_eq(STAGEFLAG_SAID_SURRENDER_OR_DIE, TRUE, /*goto*/ 0x20) + endloop(0x1f) + + label(0x20) + restart_timer + + beginloop(0x21) + if_timer_gt(300, /*goto*/ 0x20) + endloop(0x21) + + label(0x20) + speak(CHR_JOANNA, 0x0634, 0x8177, CHANNEL_6, COLOR_09_BLUE) // "That copter needs to be taken out, or the jumpship..." + + label(0x26) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1014_msg_cantleaveany[] = { + beginloop(0x1f) + if_stage_flag_eq(STAGEFLAG_TRIGGER_CANTLEAVEANY_MSG, TRUE, /*goto*/ 0x20) + endloop(0x1f) + + label(0x20) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x26) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x26) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x26) + restart_timer + + beginloop(0x21) + if_timer_gt(120, /*goto*/ 0x20) + endloop(0x21) + + label(0x20) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x26) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x26) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x26) + speak(CHR_JOANNA, 0x0635, 0x73aa, CHANNEL_6, COLOR_09_BLUE) // "I can't leave any bodyguards standing." + + label(0x26) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x27) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x27) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x27) + + beginloop(0x5f) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x27) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x27) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x27) + if_sound_finished(CHANNEL_6, /*goto*/ 0x20) + endloop(0x5f) + + label(0x20) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x27) + mute_channel(CHANNEL_6) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1015_msg_jumpshipwaiting[] = { + beginloop(0x1f) + if_objective_failed(0, /*goto*/ 0x00) + if_objective_failed(1, /*goto*/ 0x00) + if_objective_failed(2, /*goto*/ 0x00) + if_objective_failed(3, /*goto*/ 0x00) + if_objective_failed(4, /*goto*/ 0x00) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0002, /*goto*/ 0x20) + endloop(0x1f) + + label(0x20) + speak(CHR_JOANNA, 0x0636, 0x8178, CHANNEL_6, COLOR_09_BLUE) // "Don't keep the jumpship waiting - get back to the ..." + + label(0x00) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1016_msg_make_foyer_guards_alerted[] = { + beginloop(0x1f) + if_stage_flag_eq(STAGEFLAG_ACCESSED_FOYER_ELEVATOR, TRUE, /*goto*/ 0x20) + endloop(0x1f) + + #define if_alive_set_alerted(chr) \ + if_chr_death_animation_finished(chr, /*goto*/ 0x20) \ + if_chr_dying(chr, /*goto*/ 0x20) \ + if_chr_unloaded(chr, /*goto*/ 0x20) \ + set_function(chr, GFUNC_ALERTED) \ + increase_chr_alertness(100, chr) \ + label(0x20) + + + + label(0x20) + if_alive_set_alerted(0x01) + if_alive_set_alerted(0x02) + if_alive_set_alerted(0x03) + if_alive_set_alerted(0x04) + if_alive_set_alerted(0x05) + if_alive_set_alerted(0x06) + if_alive_set_alerted(0x07) + if_alive_set_alerted(0x08) + if_alive_set_alerted(0x09) + if_alive_set_alerted(0x0a) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1017_remove_special_shock[] = { + beginloop(0x1f) + if_stage_flag_eq(STAGEFLAG_DRCAROLL_ATTACKED, TRUE, /*goto*/ 0x00) + if_stage_flag_eq(STAGEFLAG_FOYER_LIGHTS_RESTORED, TRUE, /*goto*/ 0x00) + + if_chr_death_animation_finished(0x01, /*goto*/ 0x20) + if_chr_dying(0x01, /*goto*/ 0x20) + if_chr_unloaded(0x01, /*goto*/ 0x20) + reloop(0x1f) + label(0x20) + + if_chr_death_animation_finished(0x02, /*goto*/ 0x20) + if_chr_dying(0x02, /*goto*/ 0x20) + if_chr_unloaded(0x02, /*goto*/ 0x20) + reloop(0x1f) + label(0x20) + + if_chr_death_animation_finished(0x03, /*goto*/ 0x20) + if_chr_dying(0x03, /*goto*/ 0x20) + if_chr_unloaded(0x03, /*goto*/ 0x20) + reloop(0x1f) + label(0x20) + + if_chr_death_animation_finished(0x04, /*goto*/ 0x20) + if_chr_dying(0x04, /*goto*/ 0x20) + if_chr_unloaded(0x04, /*goto*/ 0x20) + reloop(0x1f) + label(0x20) + + if_chr_death_animation_finished(0x05, /*goto*/ 0x20) + if_chr_dying(0x05, /*goto*/ 0x20) + if_chr_unloaded(0x05, /*goto*/ 0x20) + reloop(0x1f) + label(0x20) + + if_chr_death_animation_finished(0x06, /*goto*/ 0x20) + if_chr_dying(0x06, /*goto*/ 0x20) + if_chr_unloaded(0x06, /*goto*/ 0x20) + reloop(0x1f) + label(0x20) + + if_chr_death_animation_finished(0x07, /*goto*/ 0x20) + if_chr_dying(0x07, /*goto*/ 0x20) + if_chr_unloaded(0x07, /*goto*/ 0x20) + reloop(0x1f) + label(0x20) + + if_chr_death_animation_finished(0x08, /*goto*/ 0x20) + if_chr_dying(0x08, /*goto*/ 0x20) + if_chr_unloaded(0x08, /*goto*/ 0x20) + reloop(0x1f) + label(0x20) + + if_chr_death_animation_finished(0x09, /*goto*/ 0x20) + if_chr_dying(0x09, /*goto*/ 0x20) + if_chr_unloaded(0x09, /*goto*/ 0x20) + reloop(0x1f) + label(0x20) + + if_chr_death_animation_finished(0x0a, /*goto*/ 0x20) + if_chr_dying(0x0a, /*goto*/ 0x20) + if_chr_unloaded(0x0a, /*goto*/ 0x20) + endloop(0x1f) + + label(0x20) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x00) + remove_chr(CHR_SPECIAL_SHOCK) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1018_give_magnum[] = { + beginloop(0x1f) + if_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_PSYCHOSISED, /*goto*/ 0x00) + endloop(0x1f) + + // This seems wrong. The magnum is actually given to the special shock... + label(0x00) + give_object_to_chr(OBJ_DY357, CHR_MRBLONDE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1419_start_lifts[] = { + activate_lift(2, 0x1d) + activate_lift(1, 0x1e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101a_set_rocketlauncher_flag[] = { + yield + if_difficulty_lt(DIFF_SA, /*goto*/ 0x20) + + // SA and PA + set_object_flag_bank1(OBJ_ROCKETLAUNCHER, OBJECTFLAG1_20000000) + + label(0x20) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101b_lift_door_sounds[] = { + beginloop(0x8d) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, 0x23, /*goto*/ 0x20) + if_chr_activated_object(CHR_P1P2, 0x27, /*goto*/ 0x5e) + if_chr_activated_object(CHR_P1P2, 0x20, /*goto*/ 0x20) + if_chr_activated_object(CHR_P1P2, 0x24, /*goto*/ 0x25) + if_chr_activated_object(CHR_P1P2, 0x21, /*goto*/ 0x5e) + if_chr_activated_object(CHR_P1P2, 0x25, /*goto*/ 0x26) + if_chr_activated_object(CHR_P1P2, 0x22, /*goto*/ 0x5e) + if_chr_activated_object(CHR_P1P2, 0x26, /*goto*/ 0x5e) + reloop(0x8d) + + label(0x25) + if_door_locked(0x24, 0x01, /*goto*/ 0x5e) + goto_next(0x20) + + label(0x26) + if_door_locked(0x25, 0x01, /*goto*/ 0x5e) + goto_next(0x20) + + label(0x20) + play_sound(0x81b0, -1) + goto_next(0x00) + + label(0x5e) + play_sound(0x05dd, -1) + label(0x00) + restart_timer + + beginloop(0x21) + if_timer_gt(120, /*goto*/ 0x00) + endloop(0x21) + + label(0x00) + endloop(0x8d) + + endfunction +}; + +u8 func141c_setup_portals[] = { + yield + set_portal_flag(0x008e, 0x08) + set_portal_flag(0x008f, 0x08) + set_portal_flag(0x0084, 0x08) + set_portal_flag(0x0090, 0x08) + set_portal_flag(0x0091, 0x08) + set_portal_flag(0x0093, 0x08) + set_portal_flag(0x0096, 0x08) + set_portal_flag(0x0095, 0x08) + set_portal_flag(0x0099, 0x08) + set_portal_flag(0x00b6, 0x08) + set_portal_flag(0x00bf, 0x08) + set_portal_flag(0x00be, 0x08) + set_portal_flag(0x00c0, 0x08) + set_portal_flag(0x00c2, 0x08) + set_portal_flag(0x00c4, 0x08) + set_portal_flag(0x00c8, 0x08) + set_portal_flag(0x00c7, 0x08) + set_portal_flag(0x00c9, 0x08) + set_portal_flag(0x00cd, 0x08) + set_portal_flag(0x00ce, 0x08) + set_portal_flag(0x00d2, 0x08) + set_portal_flag(0x00e0, 0x08) + set_portal_flag(0x00dc, 0x08) + set_portal_flag(0x00de, 0x08) + set_portal_flag(0x00e3, 0x08) + set_portal_flag(0x00e5, 0x08) + set_portal_flag(0x00e7, 0x08) + set_portal_flag(0x00fb, 0x08) + set_portal_flag(0x00fa, 0x08) + set_portal_flag(0x00fc, 0x08) + set_portal_flag(0x00ff, 0x08) + set_portal_flag(0x0100, 0x08) + set_portal_flag(0x0103, 0x08) + set_portal_flag(0x0102, 0x08) + set_portal_flag(0x0104, 0x08) + set_portal_flag(0x0109, 0x08) + set_portal_flag(0x010c, 0x08) + set_portal_flag(0x0119, 0x08) + set_portal_flag(0x0112, 0x08) + set_portal_flag(0x0117, 0x08) + set_portal_flag(0x0120, 0x08) + set_portal_flag(0x011e, 0x08) + set_portal_flag(0x011c, 0x08) + set_portal_flag(0x0108, 0x08) + set_portal_flag(0x006f, 0x08) + set_portal_flag(0x007d, 0x08) + set_portal_flag(0x0080, 0x08) + set_portal_flag(0x0081, 0x08) + set_portal_flag(0x0075, 0x08) + set_portal_flag(0x0078, 0x08) + set_portal_flag(0x0079, 0x08) + set_portal_flag(0x0006, 0x08) + set_portal_flag(0x0004, 0x08) + set_portal_flag(0x0008, 0x08) + set_portal_flag(0x000a, 0x08) + set_portal_flag(0x0001, 0x08) + set_portal_flag(0x0005, 0x08) + set_portal_flag(0x0000, 0x08) + set_portal_flag(0x0003, 0x08) + set_portal_flag(0x0007, 0x08) + set_portal_flag(0x0013, 0x08) + set_portal_flag(0x0009, 0x08) + set_portal_flag(0x00b1, 0x08) + set_portal_flag(0x00ef, 0x08) + set_portal_flag(0x00ee, 0x08) + set_portal_flag(0x0121, 0x08) + set_portal_flag(0x00e8, 0x08) + set_portal_flag(0x00e9, 0x08) + set_portal_flag(0x00ea, 0x08) + set_portal_flag(0x00ec, 0x08) + set_portal_flag(0x00eb, 0x08) + set_portal_flag(0x00ed, 0x08) + set_portal_flag(0x009d, 0x08) + set_portal_flag(0x00af, 0x08) + set_portal_flag(0x00a1, 0x08) + set_portal_flag(0x005a, 0x08) + set_portal_flag(0x005c, 0x08) + set_portal_flag(0x005d, 0x08) + set_portal_flag(0x0060, 0x08) + set_portal_flag(0x0034, 0x08) + set_portal_flag(0x0030, 0x08) + set_portal_flag(0x002e, 0x08) + set_portal_flag(0x002b, 0x08) + set_portal_flag(0x0028, 0x08) + set_portal_flag(0x0025, 0x08) + set_portal_flag(0x0036, 0x08) + set_portal_flag(0x0038, 0x08) + set_portal_flag(0x004f, 0x08) + set_portal_flag(0x0051, 0x08) + set_portal_flag(0x0052, 0x08) + set_portal_flag(0x0057, 0x08) + set_portal_flag(0x0058, 0x08) + set_portal_flag(0x0031, 0x08) + set_portal_flag(0x002f, 0x08) + set_portal_flag(0x0023, 0x08) + set_portal_flag(0x00a6, 0x08) + set_portal_flag(0x00a3, 0x08) + set_portal_flag(0x00a2, 0x08) + set_portal_flag(0x00a4, 0x08) + set_portal_flag(0x0087, 0x08) + set_portal_flag(0x00b9, 0x08) + set_portal_flag(0x00b4, 0x08) + set_portal_flag(0x00b2, 0x08) + set_portal_flag(0x00b3, 0x08) + set_portal_flag(0x00bd, 0x08) + set_portal_flag(0x00f4, 0x08) + set_portal_flag(0x00f2, 0x08) + set_portal_flag(0x00f0, 0x08) + set_portal_flag(0x00f8, 0x08) + set_portal_flag(0x00f1, 0x08) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func141e_setup_lighting[] = { + yield + set_lighting(0x0000, 0x00, 0x00) + set_lighting(0x0000, 0x01, 0x00) + set_lighting(0x0000, 0x02, 0x01) + set_lighting(0x0000, 0x03, 0x00) + set_lighting(0x0000, 0x04, 0x00) + set_lighting(0x0002, 0x05, 0x01) + set_lighting(0x0002, 0x06, 0x01) + set_lighting(0x0003, 0x05, 0x01) + set_lighting(0x0003, 0x06, 0x01) + set_lighting(0x0004, 0x05, 0x01) + set_lighting(0x0004, 0x06, 0x01) + set_lighting(0x0005, 0x06, 0x01) + set_lighting(0x0006, 0x06, 0x01) + set_lighting(0x0007, 0x06, 0x01) + set_lighting(0x0008, 0x06, 0x01) + set_lighting(0x0009, 0x06, 0x01) + set_lighting(0x000a, 0x06, 0x01) + set_lighting(0x000b, 0x06, 0x01) + set_lighting(0x000c, 0x06, 0x01) + set_lighting(0x000d, 0x06, 0x01) + set_lighting(0x000e, 0x06, 0x01) + set_lighting(0x000f, 0x06, 0x01) + set_lighting(0x0010, 0x06, 0x01) + set_lighting(0x0011, 0x06, 0x01) + set_lighting(0x0012, 0x06, 0x01) + set_lighting(0x0013, 0x06, 0x01) + set_lighting(0x0014, 0x06, 0x01) + set_lighting(0x003a, 0x05, 0x01) + set_lighting(0x00a2, 0x06, 0x01) + set_lighting(0x00a4, 0x06, 0x01) + set_lighting(0x00a5, 0x06, 0x01) + set_lighting(0x00a7, 0x06, 0x01) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101d_setup_rtracker[] = { + yield + set_object_flag_bank2(OBJ_GRENADE, OBJECTFLAG2_RTRACKED_BLUE) + set_object_flag_bank2(OBJ_DRAGON, OBJECTFLAG2_RTRACKED_BLUE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +struct ailists functions[] = { + { func0401_drcaroll_following, 0x0401 }, + { func0402_start_drcaroll, 0x0402 }, + { func0403_stop_and_idle, 0x0403 }, + { func0404_init_drcaroll, 0x0404 }, + { func0409_tech_conversation, 0x0409 }, + { func040a_tech2, 0x040a }, + { func040b_init_tech1, 0x040b }, + { func040c_init_tech2, 0x040c }, + { func040d_cass, 0x040d }, + { func040e_noop2, 0x040e }, + { func0405_drcaroll_waiting, 0x0405 }, + { func0411_top_guard_blinded, 0x0411 }, + { func0412_outro, 0x0412 }, + { func0414_init_shock, 0x0414 }, + { func0415_init_10hp, 0x0415 }, + { func1400_setup_counterop, 0x1400 }, + { func1001_objectives_failed_msg, 0x1001 }, + { func1002_check_accessed_foyer_elevator, 0x1002 }, + { func1003_check_end_level, 0x1003 }, + { func1004_elevator_unlocking, 0x1004 }, + { func1005_check_bodyguards_dead, 0x1005 }, + { func1006_check_hovercopter_destroyed, 0x1006 }, + { func1007_noop, 0x1007 }, + { func1008_trigger_hovercopter_roof, 0x1008 }, + { func1009_init_top_room, 0x1009 }, + { func100a_lightswitch, 0x100a }, + { func100b_check_top_lights_on, 0x100b }, + { func100c_foyer_lights, 0x100c }, + { func100d_intro, 0x100d }, + { func100e_drcaroll_warnings, 0x100e }, + { func100f_move_rocket_ammo, 0x100f }, + { func100c_foyer_lights_timer, 0x1010 }, + { func040d_cass_necklace, 0x1011 }, + { func1012_msg_lockeddown, 0x1012 }, + { func1013_msg_thatcopter, 0x1013 }, + { func1014_msg_cantleaveany, 0x1014 }, + { func1015_msg_jumpshipwaiting, 0x1015 }, + { func1016_msg_make_foyer_guards_alerted, 0x1016 }, + { func1017_remove_special_shock, 0x1017 }, + { func1018_give_magnum, 0x1018 }, + { func1419_start_lifts, 0x1419 }, + { func101a_set_rocketlauncher_flag, 0x101a }, + { func101b_lift_door_sounds, 0x101b }, + { func141c_setup_portals, 0x141c }, + { func101d_setup_rtracker, 0x101d }, + { func141e_setup_lighting, 0x141e }, + { func101f_unlock_top_door, 0x101f }, + { func040d_cass_outro, 0x0407 }, + { func0406_general_combat, 0x0406 }, + { func040f_top_guard, 0x040f }, + { func0410_init_top_guard, 0x0410 }, + { func0413_defend_pad, 0x0413 }, + { func0408_hovercopter, 0x0408 }, + { func100d_intro, 0x0c00 }, + { func0412_outro, 0x0c01 }, + { NULL, 0 }, +}; + diff --git a/src/setup/setupash.c b/src/setup/setupash.c new file mode 100644 index 000000000..a8b3fab36 --- /dev/null +++ b/src/setup/setupash.c @@ -0,0 +1,46 @@ +// +// Stage ID 0x2e +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + endintro +}; + +s32 path00[] = { + -1, +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 func0000_0034[] = { + endfunction +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setupate.c b/src/setup/setupate.c new file mode 100644 index 000000000..6ac63b614 --- /dev/null +++ b/src/setup/setupate.c @@ -0,0 +1,587 @@ +// +// Duel +// + +#include "../include/setup.h" + +// Characters +#define CHR_GUARD 0x00 +#define CHR_JONATHAN 0x01 +#define CHR_TRENT 0x02 + +// Stage flags +#define STAGEFLAG_GUARD_DEAD 0x00000100 +#define STAGEFLAG_JONATHAN_DEAD 0x00000200 +#define STAGEFLAG_TRENT_DEAD 0x00000400 +#define STAGEFLAG_SA_WALK_TRIGGER 0x00000800 +#define STAGEFLAG_PA_WALK_TRIGGER 0x00001000 + +// Functions +#define FUNC_MOVE_TO_PAD 0x0401 +#define FUNC_GUARD_COMBAT 0x0402 +#define FUNC_JON_COMBAT 0x0403 +#define FUNC_TRENT_COMBAT 0x0404 +#define FUNC_GUARD_INIT 0x0405 +#define FUNC_JON_INIT 0x0406 +#define FUNC_TRENT_INIT 0x0407 + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + briefing(0, 0x5e01) + briefing(1, 0x5e00) + briefing(2, 0x5e02) + briefing(3, 0x5e03) + + beginobjective(0, 0x5e04, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Defeat dataDyne guard" + complete_flags(STAGEFLAG_GUARD_DEAD) + endobjective + + beginobjective(1, 0x5e05, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Defeat Jonathan Dark" + complete_flags(STAGEFLAG_JONATHAN_DEAD) + endobjective + + beginobjective(2, 0x5e06, (DIFFBIT_PA | DIFFBIT_PD)) // "Defeat Trent Easton" + complete_flags(STAGEFLAG_TRENT_DEAD) + endobjective + + chr(0x00000200, 0x00, 0x0279, BODY_DDSHOCK, HEAD_RANDOM, FUNC_GUARD_INIT, -1, -1, 100, 100, 0x4c080800, 0x02000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRFALCON2, CHR_GUARD, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SCOPE, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x01, 0x0023, BODY_CISOLDIER, HEAD_JONATHAN, FUNC_JON_INIT, -1, -1, 100, 100, 0x4c080800, 0x02000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDY357, CHR_JONATHAN, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357MAGNUM, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x02, 0x0024, BODY_TRENT, HEAD_TRENT, FUNC_TRENT_INIT, -1, -1, 100, 100, 0x4c080800, 0x02000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDY357TRENT, CHR_TRENT, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357LX, 0x00ffffff, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x0158, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x0159, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + spawn(0x027a) + intro_weapon(WEAPON_FALCON2_SCOPE, -1) + ammo(AMMOTYPE_PISTOL, 8) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 func1000_counterop_setup[] = { + yield + set_chr_alliance(CHR_COUNTEROP, ALLIANCE_ENEMY) + set_function(CHR_SELF, GFUNC_REBUILD_GROUPS) + endfunction +}; + +u8 func1001_objectives_failed[] = { + yield + set_function(CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG) + endfunction +}; + +u8 func1002_first_walk[] = { + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + camera_movement(0x0488) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + display_text(0x00, COLOR_02_WHITE, 0x5e07) // "THE DUEL" + animation(ANIM_RELOAD, -1, -1, 0x0600, CHR_GUARD, 2) + label(0x2d) + message(CHR_JOANNA, 0x5e0c) // "Opponent skill level: AGENT" + + // Wait for camera to stop animating + restart_timer + + beginloop(0x08) + if_camera_animating(/*goto*/ 0x2d) + goto_next(0x06) + label(0x2d) + endloop(0x08) + + // Start walking + label(0x06) + remove_displayed_text + revoke_control(CHR_JOANNA, 0) + enter_firstperson + force_walk(CHR_JOANNA, 0x0275, 0x2805, 0x0064) + chr_move_to_pad(CHR_GUARD, 0x0274, 0x01, /*goto*/ 0x0b) + + // Wait for walk to finish + beginloop(0x0b) + if_force_walk_finished(CHR_JOANNA, /*goto*/ 0x0c) + endloop(0x0b) + + label(0x0c) + grant_control(CHR_JOANNA) + set_function(CHR_GUARD, FUNC_GUARD_COMBAT) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1007_second_walk[] = { + // Wait until SA walk trigger + beginloop(0x58) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x2d) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x2d) + if_stage_flag_eq(STAGEFLAG_SA_WALK_TRIGGER, TRUE, /*goto*/ 0x06) + endloop(0x58) + + // Begin cutscene + label(0x2d) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x06) + revoke_control(CHR_JOANNA, 0) + camera_movement(0x0488) + + // Place chrs + label(0x8f) + set_function(CHR_P1P2, FUNC_MOVE_TO_PAD) + chr_move_to_pad(CHR_JONATHAN, 0x0279, 0x01, /*goto*/ 0x2d) + yield + goto_first(0x8f) + + label(0x2d) + unset_chr_flag_bank3(CHR_JONATHAN, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_JONATHAN, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(CHR_JONATHAN, CHRFLAG3_UNEXPLODABLE) + yield + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(ANIM_GRAB_CROTCH, -1, -1, 0x0600, CHR_JONATHAN, 2) + + label(0x2d) + message(CHR_JOANNA, 0x5e0d) // "Opponent skill level: SPECIAL AGENT" + restart_timer + + beginloop(0x08) + if_camera_animating(/*goto*/ 0x2d) + goto_next(0x06) + label(0x2d) + endloop(0x08) + + // Start force walk + label(0x06) + label(0x2d) + remove_displayed_text + revoke_control(CHR_JOANNA, 0) + enter_firstperson + yield + force_walk(CHR_JOANNA, 0x0275, 0x2805, 0x0064) + + // Place Jon + call_rng + if_rand_lt(128, /*goto*/ 0x8f) + chr_move_to_pad(CHR_JONATHAN, 0x0271, 0x01, /*goto*/ 0x0b) + label(0x8f) + chr_move_to_pad(CHR_JONATHAN, 0x0270, 0x01, /*goto*/ 0x0b) + + // Wait for force walk to finish + beginloop(0x0b) + if_force_walk_finished(CHR_JOANNA, /*goto*/ 0x0c) + endloop(0x0b) + + // Give control back to Jo + label(0x0c) + grant_control(CHR_JOANNA) + set_function(CHR_JONATHAN, FUNC_JON_COMBAT) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0401_move_to_pad[] = { + chr_move_to_pad(CHR_SELF, 0x027a, 0x01, /*goto*/ 0x06) + label(0x06) + yield + stop_chr + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1008_third_walk[] = { + // Wait for flag or Jo dying + beginloop(0x58) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x2d) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x2d) + if_stage_flag_eq(STAGEFLAG_PA_WALK_TRIGGER, TRUE, /*goto*/ 0x06) + endloop(0x58) + + // Jo dead + label(0x2d) + set_function(CHR_SELF, GFUNC_IDLE) + + // Do cutscene + label(0x06) + revoke_control(CHR_JOANNA, 0) + camera_movement(0x0488) + + label(0x8f) + set_function(CHR_P1P2, FUNC_MOVE_TO_PAD) + chr_move_to_pad(CHR_TRENT, 0x0279, 0x01, /*goto*/ 0x2d) + yield + goto_first(0x8f) + + label(0x2d) + unset_chr_flag_bank3(CHR_TRENT, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_TRENT, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(CHR_TRENT, CHRFLAG3_UNEXPLODABLE) + yield + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(ANIM_HEAD_ROLL, -1, -1, 0x0600, CHR_TRENT, 2) + label(0x2d) + message(CHR_JOANNA, 0x5e0e) // "Opponent skill level: PERFECT AGENT" + + // Wait for cutscene to finish + restart_timer + + beginloop(0x08) + if_camera_animating(/*goto*/ 0x2d) + goto_next(0x06) + label(0x2d) + endloop(0x08) + + // Begin force walk + label(0x06) + remove_displayed_text + revoke_control(CHR_JOANNA, 0) + enter_firstperson + force_walk(CHR_JOANNA, 0x0275, 0x2805, 0x0064) + chr_move_to_pad(CHR_TRENT, 0x0272, 0x01, /*goto*/ 0x0b) + + beginloop(0x0b) + if_force_walk_finished(CHR_JOANNA, /*goto*/ 0x0c) + endloop(0x0b) + + label(0x0c) + set_function(CHR_TRENT, FUNC_TRENT_COMBAT) + grant_control(CHR_JOANNA) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1004_revoke_control[] = { + yield + revoke_control(CHR_JOANNA, 0) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1005_main[] = { + // Wait until guard dead + beginloop(0x04) + if_chr_death_animation_finished(CHR_GUARD, /*goto*/ 0x2d) + if_chr_dying(CHR_GUARD, /*goto*/ 0x2d) + if_chr_unloaded(CHR_GUARD, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + message(CHR_JOANNA, 0x5e09) // "Well done! You were too quick for him!" + set_stage_flag(STAGEFLAG_GUARD_DEAD) + restart_timer + + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x2d) + endloop(0x08) + + // If Agent, return + label(0x2d) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2d) + goto_next(0x06) + + label(0x2d) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x06) + set_stage_flag(STAGEFLAG_SA_WALK_TRIGGER) + + // Wait until Jonathan dead + beginloop(0x09) + if_chr_death_animation_finished(CHR_JONATHAN, /*goto*/ 0x2d) + if_chr_dying(CHR_JONATHAN, /*goto*/ 0x2d) + if_chr_unloaded(CHR_JONATHAN, /*goto*/ 0x2d) + endloop(0x09) + + label(0x2d) + message(CHR_JOANNA, 0x5e0a) // "Well done! You were too quick for him!" + set_stage_flag(STAGEFLAG_JONATHAN_DEAD) + restart_timer + + beginloop(0x0b) + if_timer_gt(120, /*goto*/ 0x2d) + endloop(0x0b) + + // If Special Agent, return + label(0x2d) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2d) + goto_next(0x06) + + label(0x2d) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x06) + set_stage_flag(STAGEFLAG_PA_WALK_TRIGGER) + + // Wait until Trent dead + beginloop(0x0c) + if_chr_death_animation_finished(CHR_TRENT, /*goto*/ 0x2d) + if_chr_dying(CHR_TRENT, /*goto*/ 0x2d) + if_chr_unloaded(CHR_TRENT, /*goto*/ 0x2d) + endloop(0x0c) + + label(0x2d) + message(CHR_JOANNA, 0x5e0b) // "Well done! You were too quick for him!" + set_stage_flag(STAGEFLAG_TRENT_DEAD) + restart_timer + + beginloop(0x0d) + if_timer_gt(120, /*goto*/ 0x2d) + endloop(0x0d) + + label(0x2d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1003_init_audio[] = { + restart_default_music + reset_ambience + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1006_check_objectives_complete[] = { + // Wait for all objectives complete + beginloop(0x04) + if_all_objectives_complete(/*goto*/ 0x2d) + endloop(0x04) + + // Wait 3 seconds + label(0x2d) + restart_timer + + beginloop(0x08) + if_timer_gt(180, /*goto*/ 0x2d) + endloop(0x08) + + // End level + label(0x2d) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0402_guard_combat[] = { + set_onshot_function(FUNC_GUARD_COMBAT) + if_just_injured(CHR_SELF, /*goto*/ 0x03) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_00008000) + + // Wait 2 seconds or for guard to come into view + restart_timer + + beginloop(0x04) + if_timer_gt(120, /*goto*/ 0x06) + if_chr_in_view(/*goto*/ 0x2d) + endloop(0x04) + + // Guard has come into view. Jump sideways. + label(0x2d) + try_jump_sideways(/*goto*/ 0x08) + + beginloop(0x08) + if_chr_distance_lt(250, /*goto*/ 0x0e) + if_chr_stopped(/*goto*/ 0x03) + endloop(0x08) + + // Guard has been shot, or finished jump + beginloop(0x03) + if_chr_distance_lt(250, /*goto*/ 0x0e) + if_chr_sees_player(/*goto*/ 0x06) + reloop(0x03) + + // 2 seconds have passed without seeing guard, or guard has been shot + label(0x06) + if_chr_dying(TARGET_CHR, /*goto*/ 0x2e) + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x2d) + label(0x2d) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x0c) + + beginloop(0x0c) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x0c) + + // Finished shooting + label(0x06) + endloop(0x03) + + // Dying + label(0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + + // Hand combat + label(0x0e) + set_return_function(CHR_SELF, FUNC_TRENT_COMBAT) + set_function(CHR_SELF, GFUNC_HAND_COMBAT) + endfunction +}; + +u8 func0403_jon_combat[] = { + set_onshot_function(FUNC_JON_COMBAT) + if_just_injured(CHR_SELF, /*goto*/ 0x58) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_00008000) + restart_timer + + beginloop(0x04) + if_timer_gt(240, /*goto*/ 0x58) + if_within_units_of_sight(30, /*goto*/ 0x58) + endloop(0x04) + + label(0x58) + try_run_to_target_chr(/*goto*/ 0x08) + + beginloop(0x08) + if_chr_distance_lt(250, /*goto*/ 0x0e) + if_in_disarm_range(/*goto*/ 0x06) + reloop(0x08) + + label(0x06) + try_chr_kneel_and_shoot_thing(0x0220, 0x0000, /*goto*/ 0x2d) + label(0x2d) + try_roll_and_shoot(/*goto*/ 0x0c) + try_chr_kneel_and_shoot_thing(0x0200, 0x0000, /*goto*/ 0x0c) + + beginloop(0x0c) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x0c) + + label(0x06) + endloop(0x58) + + label(0x0e) + set_return_function(CHR_SELF, FUNC_JON_COMBAT) + set_function(CHR_SELF, GFUNC_HAND_COMBAT) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0404_trent_combat[] = { + set_onshot_function(FUNC_TRENT_COMBAT) + if_just_injured(CHR_SELF, /*goto*/ 0x03) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_00008000) + restart_timer + + beginloop(0x04) + if_timer_gt(120, /*goto*/ 0x03) + if_chr_in_view(/*goto*/ 0x03) + endloop(0x04) + + // Wait until player in sight or in close range + beginloop(0x03) + if_chr_distance_lt(250, /*goto*/ 0x0e) + if_chr_sees_player(/*goto*/ 0x06) + reloop(0x03) + + // Attack + label(0x06) + if_chr_dying(TARGET_CHR, /*goto*/ 0x2e) + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x2d) + label(0x2d) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x0c) + + beginloop(0x0c) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x0c) + + label(0x06) + endloop(0x03) + + // Hand combat + label(0x0e) + set_return_function(CHR_SELF, FUNC_TRENT_COMBAT) + set_function(CHR_SELF, GFUNC_HAND_COMBAT) + label(0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0405_guard_init[] = { + set_self_flag_bank3(CHRFLAG3_NOAUTOAIM) + set_accuracy(200) + set_reaction_speed(50) + set_chr_health(CHR_SELF, 20) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0406_jon_init[] = { + set_self_flag_bank3(CHRFLAG3_NOAUTOAIM) + set_accuracy(200) + 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_HIDDEN) + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_UNEXPLODABLE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0407_trent_init[] = { + set_self_flag_bank3(CHRFLAG3_NOAUTOAIM) + set_accuracy(200) + 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_HIDDEN) + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_UNEXPLODABLE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +struct ailists functions[] = { + { func1000_counterop_setup, 0x1000 }, + { func1001_objectives_failed, 0x1001 }, + { func1002_first_walk, 0x1002 }, + { func1003_init_audio, 0x1003 }, + { func1004_revoke_control, 0x1004 }, + { func1005_main, 0x1005 }, + { func1006_check_objectives_complete, 0x1006 }, + { func1007_second_walk, 0x1007 }, + { func1008_third_walk, 0x1008 }, + { func0401_move_to_pad, 0x0401 }, + { func0402_guard_combat, 0x0402 }, + { func0403_jon_combat, 0x0403 }, + { func0404_trent_combat, 0x0404 }, + { func0405_guard_init, 0x0405 }, + { func0406_jon_init, 0x0406 }, + { func0407_trent_init, 0x0407 }, + { NULL, 0 }, +}; + diff --git a/src/setup/setupazt.c b/src/setup/setupazt.c new file mode 100644 index 000000000..e69d230c9 --- /dev/null +++ b/src/setup/setupazt.c @@ -0,0 +1,2106 @@ +// +// Crash Site +// + +#include "../include/setup.h" + +// Characters +#define CHR_ELVIS 0x00 +#define CHR_TRENT 0x02 +#define CHR_MRBLONDE 0x03 +#define CHR_SKEDAR 0x04 +#define CHR_PRESIDENT 0x05 +#define CHR_PRESIDENT_OUTRO 0x06 +#define CHR_PRES_CLONE 0x08 +#define CHR_ROBOT1 0x26 +#define CHR_ROBOT2 0x27 +#define CHR_ROBOT3 0x28 +#define CHR_ROBOT4 0x29 +#define CHR_ELVIS_OUTRO 0x38 + +// Objects +#define OBJ_CRATE 0x00 +#define OBJ_ESCAPEPOD 0x01 +#define OBJ_MEDICALSCANNER 0x02 +#define OBJ_SKEDAR_SHUTTLE 0x03 +#define OBJ_PROXYMINE 0x08 +#define OBJ_HOVERBIKE 0x09 + +// Stage flags +#define STAGEFLAG_BEACON_ACTIVATED 0x00000100 +#define STAGEFLAG_ESCAPEPOD_DESTROYED 0x00000200 +#define STAGEFLAG_SKEDAR_SHUTTLE_DESTROYED 0x00000400 +#define STAGEFLAG_PRESIDENT_DEAD 0x00000800 +#define STAGEFLAG_PRESIDENT_RESCUED 0x00001000 +#define STAGEFLAG_CLONE_DEAD 0x00002000 +#define STAGEFLAG_TRIGGER_PRESIDENT_RUNNING 0x00004000 +#define STAGEFLAG_TRENT_RUNNING 0x00008000 +#define STAGEFLAG_ELVIS_GAVE_PROXYMINE 0x00010000 +#define STAGEFLAG_OUTRO_STARTED 0x00020000 + +// Functions +#define FUNC_OUTRO 0x0402 +#define FUNC_INIT_ELVIS 0x0403 +#define FUNC_ELVIS 0x0404 +#define FUNC_INIT_STRIPES 0x0406 +#define FUNC_INIT_BLONDE 0x0407 +#define FUNC_SPAWNER 0x0414 +#define FUNC_SPAWNED_GUARD 0x0416 +#define FUNC_INIT_ROBOT 0x0417 +#define FUNC_ROBOT 0x0418 +#define FUNC_INIT_PRESIDENT 0x041b +#define FUNC_PRESIDENT_WAITING 0x041c +#define FUNC_PRESIDENT_RUNNING 0x041d +#define FUNC_TRENT_WAITING 0x041e +#define FUNC_TRENT_SHOOTING 0x041f +#define FUNC_TRENT_RUNNING 0x0420 +#define FUNC_STARTING_AREA_GUARD 0x0421 +#define FUNC_HIDE 0x0422 + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + briefing(0, 0x0a01) + briefing(1, 0x0a00) + briefing(2, 0x0a02) + briefing(3, 0x0a03) + + beginobjective(0, 0x0a05, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Retrieve Presidential medical scanner" + require_object_collected(OBJ_MEDICALSCANNER) + endobjective + + beginobjective(1, 0x0a06, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Activate distress beacon" + complete_flags(STAGEFLAG_BEACON_ACTIVATED) + fail_flags(STAGEFLAG_ESCAPEPOD_DESTROYED) + endobjective + + beginobjective(2, 0x0a07, (DIFFBIT_PA | DIFFBIT_PD)) // "Shut down enemy jamming device" + complete_flags(STAGEFLAG_SKEDAR_SHUTTLE_DESTROYED) + endobjective + + beginobjective(3, 0x0a08, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Retire Presidential clone" + complete_flags(STAGEFLAG_CLONE_DEAD) + endobjective + + beginobjective(4, 0x0a09, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Locate and rescue President" + complete_flags(STAGEFLAG_PRESIDENT_RESCUED) + fail_flags(STAGEFLAG_PRESIDENT_DEAD) + endobjective + + tag(0x09, 1) + hoverbike(0x0100, MODEL_HOVBIKE, 0x0000, 0x05120101, 0x00304300, 0x02000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x01010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + chr(0x00010400, 0x00, 0x0106, BODY_THEKING, HEAD_ELVIS, FUNC_INIT_ELVIS, -1, -1, 1000, 200, 0x00002000, 0x00300000, 0x10, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAIANPISTOL, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PHOENIX, 0x00ffffff, 0x00000000) + chr(0x00010400, 0x38, 0x011f, BODY_THEKING, HEAD_ELVIS, FUNC_HIDE, -1, -1, 1000, 200, 0x00002000, 0x00300000, 0x80, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAIANPISTOL, 0x0038, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PHOENIX, 0x00ffffff, 0x00000000) + chr(0x00010400, 0x06, 0x0110, BODY_PRESIDENT, HEAD_PRESIDENT, FUNC_HIDE, -1, -1, 1000, 200, 0x00002000, 0x00300000, 0x80, 0x01, -1, 0, 0x00000000) + chr(0x00000400, 0x02, 0x010e, BODY_TRENT, HEAD_TRENT, FUNC_HIDE, -1, -1, 1000, 200, 0x80002000, 0x00300000, 0x80, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDY357TRENT, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357LX, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x09, 0x005a, BODY_STRIPES, HEAD_RANDOM, 0x0408, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0a, 0x0059, BODY_STRIPES, HEAD_RANDOM, 0x0408, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x000a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0b, 0x0058, BODY_MRBLONDE, HEAD_MRBLONDE, 0x0408, -1, -1, 100, 13, 0xc0082000, 0x00000040, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSNIPERRIFLE, 0x000b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0c, 0x00d1, BODY_STRIPES, HEAD_RANDOM, 0x0409, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0d, 0x00d4, BODY_STRIPES, HEAD_RANDOM, 0x0409, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0e, 0x00d5, BODY_MRBLONDE, HEAD_MRBLONDE, 0x0409, -1, -1, 100, 13, 0xc0082000, 0x00000040, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSNIPERRIFLE, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x13, 0x004c, BODY_STRIPES, HEAD_RANDOM, 0x040a, -1, -1, 100, 13, 0xe0082000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0013, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x14, 0x005f, BODY_STRIPES, HEAD_RANDOM, 0x040b, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x15, 0x004d, BODY_STRIPES, HEAD_RANDOM, 0x040c, -1, -1, 100, 13, 0xe0082000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0015, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x16, 0x0055, BODY_STRIPES, HEAD_RANDOM, 0x040d, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x17, 0x0081, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 100, 13, 0xe0082000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0017, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x18, 0x0079, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x19, 0x007b, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 100, 13, 0xe0082000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0019, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1a, 0x007c, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1b, 0x016b, BODY_STRIPES, HEAD_RANDOM, 0x040e, -1, -1, 100, 13, 0xe0082000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x001b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1c, 0x016c, BODY_STRIPES, HEAD_RANDOM, 0x040f, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x001c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1d, 0x0048, BODY_STRIPES, HEAD_RANDOM, 0x0410, -1, -1, 100, 13, 0xe0082000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x001d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1e, 0x017e, BODY_STRIPES, HEAD_RANDOM, 0x0411, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x001e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1f, 0x0177, BODY_STRIPES, HEAD_RANDOM, 0x0412, -1, -1, 100, 13, 0xe0082000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x001f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x20, 0x0189, BODY_STRIPES, HEAD_RANDOM, 0x0413, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0020, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x26, 0x01bb, BODY_CHICROB, 0x00, FUNC_INIT_ROBOT, -1, -1, 1000, 50, 0x00080000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000) + chr(0x00000000, 0x27, 0x01bc, BODY_CHICROB, 0x00, FUNC_INIT_ROBOT, -1, -1, 1000, 50, 0x00080000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000) + chr(0x00000000, 0x28, 0x01bd, BODY_CHICROB, 0x00, FUNC_INIT_ROBOT, -1, -1, 1000, 50, 0x00080000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000) + chr(0x00000000, 0x29, 0x01be, BODY_CHICROB, 0x00, FUNC_INIT_ROBOT, -1, -1, 1000, 50, 0x00080000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000) + chr(0x00000400, 0x01, 0x01b5, BODY_TRENT, HEAD_TRENT, FUNC_TRENT_WAITING, -1, -1, 1000, 200, 0x80002000, 0x00300000, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDY357TRENT, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357LX, 0x00ffffff, 0x00000000) + chr(0x00018400, 0x05, 0x01b6, BODY_PRESIDENT, HEAD_PRESIDENT, FUNC_INIT_PRESIDENT, -1, -1, 1000, 200, 0x00002000, 0x00300000, 0x10, 0x01, -1, 0, 0x00000000) + chr(0x00008400, 0x08, 0x0086, BODY_PRESIDENT_CLONE2, HEAD_PRESIDENT, 0x041a, -1, -1, 1000, 20, 0x00002000, 0x00300000, 0x02, 0x09, -1, 0, 0x02001400) + chr(0x00000200, 0x2a, 0x0088, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_INIT_BLONDE, -1, -1, 1000, 100, 0x80004608, 0x00008080, 0x02, 0x09, -1, 0, 0x02001400) + weapon(0x0100, MODEL_CHRAVENGER, 0x002a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x2b, 0x0087, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_INIT_BLONDE, -1, -1, 1000, 100, 0x80004608, 0x00008080, 0x02, 0x09, -1, 0, 0x02001400) + weapon(0x0100, MODEL_CHRAVENGER, 0x002b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x2c, 0x0085, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_INIT_BLONDE, -1, -1, 1000, 100, 0x80004608, 0x00008080, 0x02, 0x09, -1, 0, 0x02001400) + weapon(0x0100, MODEL_CHRAVENGER, 0x002c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x2d, 0x019e, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_INIT_BLONDE, -1, -1, 1000, 100, 0x80004608, 0x00008080, 0x02, 0x0a, -1, 0, 0x02001400) + weapon(0x0100, MODEL_CHRAVENGER, 0x002d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x2e, 0x018e, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_INIT_BLONDE, -1, -1, 1000, 100, 0x80004608, 0x00008080, 0x02, 0x0a, -1, 0, 0x02001400) + weapon(0x0100, MODEL_CHRAVENGER, 0x002e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x2f, 0x01a7, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_INIT_BLONDE, -1, -1, 1000, 100, 0x80004608, 0x00008080, 0x02, 0x0a, -1, 0, 0x02001400) + weapon(0x0100, MODEL_CHRAVENGER, 0x002f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x30, 0x002d, BODY_STRIPES, HEAD_RANDOM, FUNC_SPAWNER, -1, -1, 100, 13, 0xe0082000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0030, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x31, 0x0029, BODY_STRIPES, HEAD_RANDOM, FUNC_SPAWNER, -1, -1, 100, 13, 0xe0082000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0031, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x32, 0x009a, BODY_STRIPES, HEAD_RANDOM, FUNC_STARTING_AREA_GUARD, -1, -1, 100, 13, 0xc0082000, 0x10000000, 0x02, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0032, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x33, 0x009b, BODY_STRIPES, HEAD_RANDOM, FUNC_STARTING_AREA_GUARD, -1, -1, 100, 13, 0xc0082000, 0x10000000, 0x02, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0033, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x34, 0x01b7, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_STARTING_AREA_GUARD, -1, -1, 100, 13, 0xc0082000, 0x10000000, 0x02, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSNIPERRIFLE, 0x0034, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x35, 0x0004, BODY_STRIPES, HEAD_RANDOM, FUNC_STARTING_AREA_GUARD, -1, -1, 100, 13, 0x80082000, 0x10000000, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0035, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x36, 0x01b9, BODY_STRIPES, HEAD_RANDOM, FUNC_STARTING_AREA_GUARD, -1, -1, 100, 13, 0x80082101, 0x10000000, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0036, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x37, 0x0012, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_STARTING_AREA_GUARD, -1, -1, 100, 13, 0x80082000, 0x10000000, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSNIPERRIFLE, 0x0037, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x03, 0x0121, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_HIDE, -1, -1, 1000, 200, 0x00002000, 0x00300000, 0x02, 0x01, -1, 0, 0x00000000) + chr(0x00004000, 0x04, 0x012f, BODY_SKEDAR, 0x00, FUNC_HIDE, -1, -1, 1000, 200, 0x00002000, 0x00300000, 0x02, 0x01, -1, 0, 0x00000000) + tag(0x00, 1) + stdobject(0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x01, 1) + stdobject(0x0100, MODEL_PRESCAPSULE, 0x01d8, 0x000001e1, 0x00000101, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00002ee0, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x03, 1) + stdobject(0x0100, MODEL_SK_SHUTTLE, 0xffff, 0x000001e1, 0x00002100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000030d4, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x02, 1) + weapon(0x0180, MODEL_CHRBRIEFCASE, 0x000c, 0x00000001, 0x00000001, 0x00400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PRESIDENTSCANNER, 0x00ffffff, 0x00000000) + autogun(0x0100, MODEL_GROUNDGUN, 0x0043, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000fa0, 0x00000000, 0x00000000, 0x0fff0000, 0x003d0000, 0x00000000, 0x00020000, 0xfffe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000016c, 0x001e0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + autogun(0x0100, MODEL_GROUNDGUN, 0x003b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000fa0, 0x00000000, 0x00000000, 0x0fff0000, 0x00380000, 0x00000000, 0x00020000, 0xfffe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000016c, 0x001e0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x06, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x0106, 0x00000001, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000) + tag(0x07, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x0090, 0x00000001, 0x000000c0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000) + tag(0x08, 1) + weapon(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0106, 0x00120001, 0x00080001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PROXIMITYMINE, 0x00ffffff, 0x00000000) + pad_effect(PADEFFECT_SPARKS, 0x000001db) + pad_effect(PADEFFECT_SMOKE, 0x000001dc) + pad_effect(PADEFFECT_SPARKS, 0x000001dd) + pad_effect(PADEFFECT_SPARKS, 0x000001de) + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_SNOW) + intro_weapon(WEAPON_FALCON2_SCOPE, -1) + ammo(AMMOTYPE_PISTOL, 50) + ammo(AMMOTYPE_RIFLE, 100) + intro_weapon(WEAPON_REMOTEMINE, -1) + ammo(AMMOTYPE_REMOTE_MINE, 3) + intro_weapon(WEAPON_NIGHTVISION, -1) + intro_weapon(WEAPON_HORIZONSCANNER, -1) + spawn(0x00b8) + endintro +}; + +s32 path00[] = { + 0x0059, + 0x0096, + 0x0095, + 0x0094, + 0x00be, + 0x00bd, + 0x009e, + -1, +}; + +s32 path01[] = { + 0x00d1, + 0x00d2, + 0x00d3, + 0x00b1, + 0x00cd, + 0x00a6, + 0x00b3, + 0x00c3, + -1, +}; + +s32 path02[] = { + 0x004c, + 0x0057, + 0x005e, + 0x005d, + 0x005b, + 0x005f, + -1, +}; + +s32 path03[] = { + 0x005f, + 0x005b, + 0x005c, + 0x005d, + 0x0066, + 0x005d, + 0x005c, + 0x005b, + -1, +}; + +s32 path04[] = { + 0x004d, + 0x0051, + 0x0050, + 0x0053, + 0x0054, + 0x0056, + 0x006e, + -1, +}; + +s32 path05[] = { + 0x0055, + 0x0052, + 0x0054, + 0x0056, + 0x006e, + -1, +}; + +s32 path06[] = { + 0x0030, + 0x002f, + 0x0167, + 0x0166, + 0x0165, + 0x0164, + 0x016a, + 0x0169, + 0x016b, + -1, +}; + +s32 path07[] = { + 0x016c, + 0x016d, + 0x016e, + 0x016f, + 0x0170, + 0x0171, + 0x0172, + 0x0173, + -1, +}; + +s32 path08[] = { + 0x0048, + 0x0049, + 0x004a, + 0x0182, + 0x0183, + 0x0180, + 0x0181, + -1, +}; + +s32 path09[] = { + 0x017e, + 0x017f, + 0x017b, + 0x017c, + 0x017d, + 0x0034, + -1, +}; + +s32 path10[] = { + 0x0177, + 0x0175, + 0x0176, + 0x0189, + -1, +}; + +s32 path11[] = { + 0x0189, + 0x0188, + 0x0187, + 0x0186, + 0x0185, + 0x0184, + -1, +}; + +s32 path12[] = { + 0x0106, + 0x0107, + 0x00f6, + 0x0104, + -1, +}; + +struct aipaths paths[] = { + { path00, 0, 0 }, + { path01, 1, 0 }, + { path02, 2, 0 }, + { path03, 3, 0 }, + { path04, 4, 0 }, + { path05, 5, 0 }, + { path06, 6, 0 }, + { path07, 7, 0 }, + { path08, 8, 0 }, + { path09, 9, 0 }, + { path10, 10, 0 }, + { path11, 11, 0 }, + { path12, 12, 0 }, + { NULL, 0, 0 }, +}; + +u8 func1001_objectives_failed_msg[] = { + yield + set_chr_flag_bank3(CHR_PRES_CLONE, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_ELVIS, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_PRESIDENT, CHRFLAG3_04000000) + set_function(CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG) + endfunction +}; + +u8 func1400_setup_counterop[] = { + yield + set_chr_alliance(CHR_COUNTEROP, ALLIANCE_ENEMY) + set_function(CHR_SELF, GFUNC_REBUILD_GROUPS) + endfunction +}; + +u8 func1011_setup_snow[] = { + enable_snow(TRUE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1002_intro[] = { + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_music_track(MUSIC_CRASHSITE_INTRO) + camera_movement(0x01b5) + cmd0175(60) + + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x01b6, -1, -1, 0x0600, CHR_JOANNA, 4) + set_chr_hud_visible(CHR_JOANNA, TRUE) + + restart_timer + fade_to_color(0x000000ff, 0) + fade_to_color(0x00000000, 300) + set_cutscene_weapon(CHR_JOANNA, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_JOANNA, WEAPON_NONE, WEAPON_NONE) + + #define wait_until(time, loopid) \ + beginloop(loopid) \ + if_controller_button_pressed(/*goto*/ 0x65) \ + if_timer_gt(time, /*goto*/ 0x08) \ + endloop(loopid) \ + label(0x08) + + + + wait_until(724, 0x69) + speak(CHR_JOANNA, 0x0a20, 0x7759, CHANNEL_10, COLOR_09_BLUE) // "Ahhh... uuhhhh..." + + wait_until(830, 0x6a) + speak(CHR_JOANNA, 0x0a22, 0x7457, CHANNEL_10, COLOR_06_WHITE) // "Agent Dark! Please report!" + + wait_until(980, 0x6b) + speak(CHR_JOANNA, 0x0a21, 0x775a, CHANNEL_10, COLOR_09_BLUE) // "Ahhh... uhh... owww..." + + wait_until(1030, 0x6c) + speak(CHR_JOANNA, 0x0a23, 0x7458, CHANNEL_10, COLOR_06_WHITE) // "Perfect Dark, come in!" + + wait_until(1152, 0x6e) + speak(CHR_JOANNA, 0x0a24, 0x7459, CHANNEL_10, COLOR_09_BLUE) // "A-agent Dark reporting in..." + + wait_until(1372, 0x6f) + speak(CHR_JOANNA, 0x0a25, 0x745a, CHANNEL_10, COLOR_06_WHITE) // "Agent Dark! Please reply!" + + wait_until(1610, 0x6d) + speak(CHR_JOANNA, 0x0a26, 0x745b, CHANNEL_10, COLOR_09_BLUE) // "Something's jamming my transmissions... It's comin..." + + wait_until(1875, 0x70) + speak(CHR_JOANNA, -1, 0x8189, CHANNEL_10, COLOR_00_GREEN) + + wait_until(1900, 0x71) + speak(CHR_JOANNA, -1, 0x818a, CHANNEL_10, COLOR_00_GREEN) + + wait_until(1926, 0x72) + speak(CHR_JOANNA, -1, 0x8188, CHANNEL_7, COLOR_00_GREEN) + + wait_until(1958, 0x73) + speak(CHR_JOANNA, -1, 0x8189, CHANNEL_10, COLOR_00_GREEN) + + wait_until(2000, 0x74) + speak(CHR_JOANNA, 0x0a27, 0x745c, CHANNEL_10, COLOR_09_BLUE) // "I'd better find the jamming device and check that ..." + + wait_until(2116, 0x75) + speak(CHR_JOANNA, -1, 0x8188, CHANNEL_7, COLOR_00_GREEN) + + wait_until(2168, 0x76) + speak(CHR_JOANNA, -1, 0x8187, CHANNEL_6, COLOR_00_GREEN) + + wait_until(2224, 0x78) + set_cutscene_weapon(CHR_JOANNA, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_JOANNA, WEAPON_FALCON2_SCOPE, WEAPON_NONE) + + wait_until(2305, 0x79) + speak(CHR_JOANNA, -1, 0x01db, CHANNEL_5, COLOR_00_GREEN) + + wait_until(2392, 0x7a) + speak(CHR_JOANNA, -1, 0x8189, CHANNEL_7, COLOR_00_GREEN) + + wait_until(2412, 0x7b) + speak(CHR_JOANNA, -1, 0x8187, CHANNEL_6, COLOR_00_GREEN) + + wait_until(2460, 0x7c) + speak(CHR_JOANNA, -1, 0x8188, CHANNEL_7, COLOR_00_GREEN) + + wait_until(2513, 0x7d) + speak(CHR_JOANNA, -1, 0x8189, CHANNEL_6, COLOR_00_GREEN) + + wait_until(2685, 0x7e) + speak(CHR_JOANNA, -1, 0x818a, CHANNEL_7, COLOR_00_GREEN) + + beginloop(0x0a) + if_camera_animating(/*goto*/ 0x31) + goto_next(0x65) + + label(0x31) + if_controller_button_pressed(/*goto*/ 0x65) + label(0x31) + endloop(0x0a) + + label(0x65) + set_cutscene_weapon(CHR_JOANNA, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_JOANNA, WEAPON_FALCON2_SCOPE, WEAPON_NONE) + mute_channel(CHANNEL_7) + mute_channel(CHANNEL_6) + mute_channel(CHANNEL_5) + mute_channel(CHANNEL_10) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x01b6, -2, -1, 0x0600, CHR_JOANNA, 2) + restart_default_music + reset_ambience + set_chr_hud_visible(CHR_JOANNA, FALSE) + enter_firstperson + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0402_outro_from_menu[] = { + set_function(0x06, GFUNC_IDLE) + set_function(0x03, GFUNC_IDLE) + set_function(CHR_SKEDAR, GFUNC_IDLE) + set_function(CHR_ELVIS_OUTRO, GFUNC_IDLE) + set_function(CHR_TRENT, GFUNC_IDLE) + hide_chr(CHR_ROBOT1) + hide_chr(CHR_ROBOT2) + hide_chr(CHR_ROBOT3) + hide_chr(CHR_ROBOT4) + set_function(CHR_SELF, FUNC_OUTRO) + endfunction +}; + +u8 func0402_outro[] = { + set_stage_flag(STAGEFLAG_OUTRO_STARTED) + hide_object(OBJ_HOVERBIKE) + set_function(CHR_PRESIDENT, GFUNC_IDLE) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x31) + set_target_chr(CHR_JOANNA) + goto_next(0x08) + label(0x31) + set_target_chr(CHR_VELVET) + label(0x08) + camera_movement(0x01d9) + set_music_track(MUSIC_CRASHSITE_OUTRO) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0xf1, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_P1P2, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(TARGET_CHR, CHRFLAG3_HIDDEN) + set_function(TARGET_CHR, GFUNC_IDLE) + + remove_chr(CHR_ELVIS) + set_function(CHR_ELVIS, GFUNC_IDLE) + + set_chr_flag_bank3(CHR_PRESIDENT, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_PRESIDENT, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(CHR_PRESIDENT, GFUNC_IDLE) + + set_chr_flag_bank3(TARGET_CHR, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(TARGET_CHR, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(TARGET_CHR, CHRFLAG2_00020000) + animation(0x01df, -1, -1, 0x0600, TARGET_CHR, 4) + + set_chr_flag_bank3(CHR_SKEDAR, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_SKEDAR, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_SKEDAR, CHRFLAG2_00020000) + animation(0x01da, -1, -1, 0x0600, CHR_SKEDAR, 4) + + set_chr_flag_bank3(CHR_ELVIS_OUTRO, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_ELVIS_OUTRO, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_ELVIS_OUTRO, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_ELVIS_OUTRO, CHRFLAG2_00020000) + animation(0x01db, -1, -1, 0x0600, CHR_ELVIS_OUTRO, 4) + + set_chr_flag_bank3(CHR_TRENT, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_TRENT, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_TRENT, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_TRENT, CHRFLAG2_00020000) + animation(0x01dc, -1, -1, 0x0600, CHR_TRENT, 4) + + set_chr_flag_bank3(CHR_MRBLONDE, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_MRBLONDE, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_MRBLONDE, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_MRBLONDE, CHRFLAG2_00020000) + animation(0x01dd, -1, -1, 0x0600, CHR_MRBLONDE, 4) + + set_chr_flag_bank3(CHR_PRESIDENT_OUTRO, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_PRESIDENT_OUTRO, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_PRESIDENT_OUTRO, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_PRESIDENT_OUTRO, CHRFLAG2_00020000) + animation(0x01de, -1, -1, 0x0600, CHR_PRESIDENT_OUTRO, 4) + + show_object(0x00) + set_object_flag_bank1(OBJ_CRATE, OBJECTFLAG1_04000000) + set_object_flag_bank2(OBJ_CRATE, OBJECTFLAG2_00000010) + object_do_animation(0x01e0, OBJ_CRATE, 0x04ff, 0xff) + restart_timer + set_cutscene_weapon(TARGET_CHR, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(TARGET_CHR, WEAPON_NONE, WEAPON_NONE) + set_cutscene_weapon(CHR_ELVIS_OUTRO, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_ELVIS_OUTRO, WEAPON_HAMMER, WEAPON_NONE) + show_nonessential_chrs(FALSE) + + wait_until(146, 0x69) + play_sound(0x0594, CHANNEL_7) + + wait_until(200, 0x6a) + play_sound(0x0595, CHANNEL_6) + + wait_until(248, 0x6b) + speak(CHR_JOANNA, 0x0a28, 0x745d, CHANNEL_10, COLOR_09_BLUE) // "How are you feeling, Mr. President?" + + wait_until(414, 0x6c) + speak(CHR_JOANNA, 0x0a29, 0x745e, CHANNEL_10, COLOR_08_RED) // "Better now, young lady. Today, I think, will take ..." + + wait_until(490, 0x6e) + play_sound(0x0596, CHANNEL_5) + + wait_until(526, 0x6f) + play_sound(0x0597, CHANNEL_7) + + wait_until(578, 0x6d) + play_sound(0x0427, CHANNEL_6) + + wait_until(1078, 0x71) + play_sound(0x0596, CHANNEL_5) + + wait_until(1116, 0x72) + play_sound(0x0597, CHANNEL_7) + + wait_until(1200, 0x70) + speak(CHR_JOANNA, 0x0a2a, 0x745f, CHANNEL_10, COLOR_09_BLUE) // "Just one thing, sir? What is the Pelagic II that T..." + + wait_until(1474, 0x74) + play_sound(0x0525, CHANNEL_5) + play_sound(0x00f8, CHANNEL_10) + + wait_until(1490, 0x75) + play_sound(0x0596, CHANNEL_7) + + wait_until(1492, 0x76) + play_sound(0x0594, CHANNEL_6) + + wait_until(1556, 0x77) + play_sound(0x00f8, CHANNEL_10) + + wait_until(1626, 0x73) + speak(CHR_JOANNA, 0x0a2b, 0x7460, CHANNEL_10, COLOR_08_RED) // "It's a U.S. government deep sea research vessel, o..." + + wait_until(1807, 0x79) + play_sound(0x0595, CHANNEL_7) + + wait_until(1850, 0x7a) + play_sound(0x0597, CHANNEL_6) + + wait_until(1872, 0x7c) + play_sound(0x0595, CHANNEL_7) + + wait_until(2074, 0x7d) + play_sound(0x0594, CHANNEL_6) + + wait_until(2270, 0x7e) + play_sound(0x0596, CHANNEL_5) + + wait_until(2286, 0x7f) + play_sound(0x818a, CHANNEL_7) + + wait_until(2296, 0x80) + play_sound(0x8189, CHANNEL_6) + + wait_until(2316, 0x81) + play_sound(0x8187, CHANNEL_5) + + wait_until(2335, 0x82) + play_sound(0x8188, CHANNEL_7) + + wait_until(2450, 0x7b) + speak(CHR_JOANNA, 0x0a2c, 0x7461, CHANNEL_10, COLOR_09_BLUE) // "Trent has a lot to answer for, but I don't think w..." + + wait_until(3150, 0x83) + speak(CHR_JOANNA, 0x0a2d, 0x7462, CHANNEL_10, COLOR_03_RED) // "You have failed, Easton. You are a flawed device, ..." + + wait_until(3380, 0x88) + play_sound(0x818a, CHANNEL_7) + + wait_until(3580, 0x87) + speak(CHR_JOANNA, 0x0a2e, 0x7463, CHANNEL_10, COLOR_05_GREEN) // "Just try it, you Scandinavian freak!" + + wait_until(3747, 0x84) + play_sound(0x8189, CHANNEL_5) + + wait_until(3875, 0x85) + play_sound(0x8188, CHANNEL_7) + + wait_until(4054, 0x86) + play_sound(0x05a0, CHANNEL_5) + play_sound(0x005c, CHANNEL_10) + set_chr_flag_bank2(CHR_MRBLONDE, CHRFLAG2_CLOAKED) + set_chr_flag_bank2(CHR_SKEDAR, CHRFLAG2_CLOAKED) + + wait_until(4100, 0x95) + unset_chr_flag_bank2(CHR_SKEDAR, CHRFLAG2_CLOAKED) + play_sound(0x052a, CHANNEL_10) + + wait_until(4200, 0x78) + speak(CHR_JOANNA, 0x0a2f, 0x7464, CHANNEL_10, COLOR_05_GREEN) // "Noooooooo!!!" + + wait_until(4240, 0x93) + play_sound(0x05c0, CHANNEL_10) + + wait_until(4296, 0x89) + play_sound(0x007d, CHANNEL_6) + + wait_until(4444, 0x8a) + play_sound(0x05a0, CHANNEL_5) + play_sound(0x0530, CHANNEL_10) + + wait_until(4506, 0x8b) + play_sound(0x05a1, CHANNEL_7) + + wait_until(4544, 0x96) + set_chr_flag_bank2(CHR_SKEDAR, CHRFLAG2_CLOAKED) + + wait_until(4566, 0x8c) + play_sound(0x005b, CHANNEL_10) + unset_chr_flag_bank2(CHR_MRBLONDE, CHRFLAG2_CLOAKED) + + wait_until(4576, 0x8d) + + wait_until(4622, 0x8e) + play_sound(0x8187, CHANNEL_7) + + wait_until(4678, 0x8f) + play_sound(0x8188, CHANNEL_7) + + wait_until(4752, 0x90) + play_sound(0x8189, CHANNEL_7) + + beginloop(0x0a) + if_camera_animating(/*goto*/ 0x31) + goto_next(0x65) + + label(0x31) + if_controller_button_pressed(/*goto*/ 0x65) + label(0x31) + endloop(0x0a) + + label(0x65) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0407_init_blonde[] = { + set_accuracy(20) + set_reaction_speed(55) + set_chr_health(CHR_SELF, 40) + set_armor(60) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func0406_init_stripes[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(16) + set_reaction_speed(55) + set_chr_health(CHR_SELF, 60) + set_armor(0) + set_recovery_speed(30) + set_shield(0) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func1003_msg_therestheescapepod[] = { + beginloop(0x06) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_distance_to_pad_lt(CHR_P1P2, 1000, 0x01d8, /*goto*/ 0x31) + endloop(0x06) + + label(0x31) + speak(CHR_P1P2, 0x0a0a, 0x73cc, CHANNEL_6, COLOR_09_BLUE) // "There's the escape pod." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1004_msg_maybetheresabeacon[] = { + restart_timer + beginloop(0x06) + endloop(0x06) + + // Unreachable + label(0x31) + speak(CHR_JOANNA, 0x0a0b, 0x73cd, CHANNEL_6, COLOR_09_BLUE) // "Maybe there's a beacon in there." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1005_msg_thejamming[] = { + if_difficulty_lt(DIFF_PA, /*goto*/ 0x0f) + + beginloop(0x06) + consider_coop_for_p1p2_chr(CHR_SELF) + if_objective_complete(2, /*goto*/ 0x0f) + if_chr_in_room(CHR_P1P2, 0x00, 0x0029, /*goto*/ 0x31) + endloop(0x06) + + label(0x31) + speak(CHR_P1P2, 0x0a0c, 0x73ce, CHANNEL_6, COLOR_09_BLUE) // "The jamming... It's coming from that ship." + label(0x0f) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1006_msg_elvisbeable[] = { + beginloop(0x06) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_distance_to_pad_lt(CHR_P1P2, 1000, 0x0105, /*goto*/ 0x31) + endloop(0x06) + + label(0x31) + speak(CHR_P1P2, 0x0a0d, 0x73cf, CHANNEL_6, COLOR_09_BLUE) // "Elvis... He'll be able to protect the President." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +#define init_path(pathid, function) \ + set_chr_dodge_rating(2, 0x0a) \ + set_accuracy(16) \ + set_reaction_speed(55) \ + set_chr_health(CHR_SELF, 60) \ + set_armor(0) \ + set_recovery_speed(30) \ + set_shield(0) \ + set_return_function(CHR_SELF, function) \ + assign_path(pathid) \ + start_path \ + set_function(CHR_SELF, GFUNC_UNALERTED_0004) + + + +u8 func0408_start_path00[] = { + init_path(0, 0x0408) + endfunction +}; + +u8 func0409_start_path01[] = { + init_path(1, 0x0409) + endfunction +}; + +u8 func040a_start_path02[] = { + init_path(2, 0x040a) + endfunction +}; + +u8 func040b_start_path03[] = { + init_path(3, 0x040b) + endfunction +}; + +u8 func040c_start_path04[] = { + init_path(4, 0x040c) + endfunction +}; + +u8 func040d_start_path05[] = { + init_path(5, 0x040d) + endfunction +}; + +u8 func040e_start_path06[] = { + init_path(6, 0x040e) + endfunction +}; + +u8 func040f_start_path07[] = { + init_path(7, 0x040f) + endfunction +}; + +u8 func0410_start_path08[] = { + init_path(8, 0x0410) + endfunction +}; + +u8 func0411_start_path09[] = { + init_path(9, 0x0411) + endfunction +}; + +u8 func0412_start_path10[] = { + init_path(10, 0x0412) + endfunction +}; + +u8 func0413_start_path11[] = { + init_path(11, 0x0413) + endfunction +}; + +/** + * This function is unfinished. Target labels don't exist. + * + * Looks like it was intended to be a spawning function. + */ +u8 unregistered_function1[] = { + label(0x66) + restart_timer + + beginloop(0x67) + dprint 'T','I','M','E','\n',0, + if_timer_lt(1800, /*goto*/ 0x98) + label(0x31) + dprint 'S','Q','U','A','D','\n',0, + if_num_chrs_in_group_gt(1, 0x0f, /*goto*/ 0x98) + call_rng + if_rand_gt(64, /*goto*/ 0x69) + if_rand_gt(128, /*goto*/ 0x6a) + if_rand_gt(196, /*goto*/ 0x6b) + label(0x98) + endloop(0x67) + + label(0x68) + yield + cmd0145_rebuild_groups + cmd0146_rebuild_groups + goto_first(0x66) + + endfunction +}; + +u8 func0415_unused[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(16) + set_reaction_speed(55) + set_chr_health(CHR_SELF, 60) + set_armor(0) + set_recovery_speed(30) + set_shield(0) + try_draw_weapon(MODEL_CHRAVENGER, WEAPON_K7AVENGER, 0x00000000, /*goto*/ 0x08) + label(0x08) + set_chr_alliance(CHR_SELF, ALLIANCE_ENEMY) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + set_group(0x0f) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_SEARCH_FOR_PLAYER) + endfunction +}; + +u8 func100c_spawn_dd_guards[] = { + label(0x66) + restart_timer + + beginloop(0x67) + if_stage_flag_eq(STAGEFLAG_OUTRO_STARTED, TRUE, /*goto*/ 0x0f) + if_stage_flag_eq(STAGEFLAG_ELVIS_GAVE_PROXYMINE, TRUE, /*goto*/ 0x31) + if_objective_complete(0, /*goto*/ 0x31) + if_objective_complete(1, /*goto*/ 0x31) + if_objective_complete(2, /*goto*/ 0x31) + if_objective_complete(3, /*goto*/ 0x31) + if_objective_complete(4, /*goto*/ 0x31) + endloop(0x67) + + label(0x31) + dprint 'T','I','M','E','\n',0, + if_timer_lt(3600, /*goto*/ 0x98) + label(0x31) + dprint 'S','Q','U','A','D','\n',0, + if_num_chrs_in_group_gt(1, 0x0e, /*goto*/ 0x98) + call_rng + if_rand_gt(64, /*goto*/ 0x69) + if_rand_gt(128, /*goto*/ 0x6a) + if_rand_gt(196, /*goto*/ 0x6b) + + // 1 + if_stage_flag_eq(STAGEFLAG_OUTRO_STARTED, TRUE, /*goto*/ 0x0f) + try_spawn_chr(BODY_DD_GUARD, HEAD_RANDOM, 0x0126, FUNC_SPAWNED_GUARD, 0x00000200, /*goto*/ 0x68) + goto_next(0x98) + + // 2 + label(0x69) + if_stage_flag_eq(STAGEFLAG_OUTRO_STARTED, TRUE, /*goto*/ 0x0f) + try_spawn_chr(BODY_DD_GUARD, HEAD_RANDOM, 0x00e5, FUNC_SPAWNED_GUARD, 0x00000200, /*goto*/ 0x68) + goto_next(0x98) + + // 3 + label(0x6a) + if_stage_flag_eq(STAGEFLAG_OUTRO_STARTED, TRUE, /*goto*/ 0x0f) + try_spawn_chr(BODY_DD_GUARD, HEAD_RANDOM, 0x0130, FUNC_SPAWNED_GUARD, 0x00000200, /*goto*/ 0x68) + goto_next(0x98) + + // 4 + label(0x6b) + if_stage_flag_eq(STAGEFLAG_OUTRO_STARTED, TRUE, /*goto*/ 0x0f) + try_spawn_chr(BODY_DD_GUARD, HEAD_RANDOM, 0x00fd, FUNC_SPAWNED_GUARD, 0x00000200, /*goto*/ 0x68) + goto_next(0x98) + + // Spawn failed + label(0x98) + goto_first(0x67) + + // Spawn worked + label(0x68) + if_stage_flag_eq(STAGEFLAG_OUTRO_STARTED, TRUE, /*goto*/ 0x0f) + yield + cmd0145_rebuild_groups + cmd0146_rebuild_groups + goto_first(0x66) + + label(0x0f) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0416_spawned_guard[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(16) + set_reaction_speed(55) + set_chr_health(CHR_SELF, 60) + set_armor(0) + set_recovery_speed(30) + set_shield(0) + try_draw_weapon(MODEL_CHRAVENGER, WEAPON_K7AVENGER, 0x00000000, /*goto*/ 0x08) + label(0x08) + set_chr_alliance(CHR_SELF, ALLIANCE_ENEMY) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + set_self_flag_bankx(CHRFLAG0_AIVSAI, BANK_0) + set_group(0x0e) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + // Pad is next to UFO + run_to_pad(0x0105) + set_return_function(CHR_SELF, GFUNC_UNALERTED) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func1008_escapepod[] = { + beginloop(0x06) + consider_coop_for_p1p2_chr(CHR_SELF) + if_object_in_good_condition(OBJ_ESCAPEPOD, /*goto*/ 0x31) + + // Pod destroyed + mute_channel(CHANNEL_0) + message(CHR_JOANNA, 0x0a0f) // "Critical mission object has been destroyed." + set_stage_flag(STAGEFLAG_ESCAPEPOD_DESTROYED) + set_function(CHR_SELF, GFUNC_IDLE) + + // Pod healthy + label(0x31) + if_stage_flag_eq(STAGEFLAG_BEACON_ACTIVATED, TRUE, /*goto*/ 0x08) + if_chr_activated_object(CHR_P1P2, OBJ_ESCAPEPOD, /*goto*/ 0x31) + label(0x08) + reloop(0x06) + + label(0x31) + assign_sound(0x8115, CHANNEL_0) + play_sound_from_object(CHANNEL_0, OBJ_ESCAPEPOD, 0x0320, 0x0640) + message(CHR_P1P2, 0x0a0e) // "Distress beacon has been activated." + set_stage_flag(STAGEFLAG_BEACON_ACTIVATED) + endloop(0x06) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1009_check_shuttle_destroyed[] = { + yield + yield + yield + yield + yield + + beginloop(0x06) + if_object_in_good_condition(OBJ_SKEDAR_SHUTTLE, /*goto*/ 0x31) + message(CHR_JOANNA, 0x0a15) // "Jamming device has been shut down." + set_stage_flag(STAGEFLAG_SKEDAR_SHUTTLE_DESTROYED) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x31) + endloop(0x06) + + endfunction +}; + +u8 func100a_check_president_dead[] = { + beginloop(0x06) + if_chr_death_animation_finished(CHR_PRESIDENT, /*goto*/ 0x31) + if_chr_dying(CHR_PRESIDENT, /*goto*/ 0x31) + if_chr_unloaded(CHR_PRESIDENT, /*goto*/ 0x31) + endloop(0x06) + + label(0x31) + message(CHR_JOANNA, 0x0a16) // "President has been killed." + set_stage_flag(STAGEFLAG_PRESIDENT_DEAD) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100b_check_clone_dead[] = { + beginloop(0x06) + if_chr_death_animation_finished(CHR_PRES_CLONE, /*goto*/ 0x31) + if_chr_dying(CHR_PRES_CLONE, /*goto*/ 0x31) + if_chr_unloaded(CHR_PRES_CLONE, /*goto*/ 0x31) + endloop(0x06) + + label(0x31) + message(CHR_JOANNA, 0x0a17) // "Presidential clone has been eliminated." + set_stage_flag(STAGEFLAG_CLONE_DEAD) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0403_init_elvis[] = { + set_shield(100) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_10000000) + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_accuracy(100) + set_reaction_speed(100) + set_armor(1000) + set_chr_health(CHR_SELF, 1000) + set_self_flag_bank3(CHRFLAG3_00080000) + assign_path(12) + start_path + set_function(CHR_SELF, FUNC_ELVIS) + endfunction +}; + +u8 func0404_elvis[] = { + set_onshot_function(FUNC_ELVIS) + label(0x04) + restart_timer + + beginloop(0x06) + if_chr_idle(/*goto*/ 0x31) + if_path_started(/*goto*/ 0x31) + restart_timer + start_path + label(0x31) + dprint 'G','O',' ','T','O',' ','P','A','D','\n',0, + set_target_chr(CHR_JOANNA) + set_follow_chr(CHR_JOANNA) + if_stage_flag_eq(STAGEFLAG_ELVIS_GAVE_PROXYMINE, TRUE, /*goto*/ 0x31) + if_objective_complete(0, /*goto*/ 0x31) + if_objective_complete(1, /*goto*/ 0x31) + if_objective_complete(2, /*goto*/ 0x31) + if_objective_complete(3, /*goto*/ 0x31) + if_objective_complete(4, /*goto*/ 0x31) + if_chr_sees_player(/*goto*/ 0xa5) + set_target_chr(CHR_VELVET) + set_follow_chr(CHR_VELVET) + if_chr_sees_player(/*goto*/ 0xa5) + label(0x31) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x0a) + if_timer_gt(600, /*goto*/ 0x0b) + endloop(0x06) + + // 10 seconds passed + label(0x0b) + call_rng + if_rand_gt(128, /*goto*/ 0x31) + + // 50% chance of doing look around animation + call_rng + if_rand_lt(64, /*goto*/ 0x99) + if_rand_lt(128, /*goto*/ 0x9a) + if_rand_lt(196, /*goto*/ 0x9b) + + set_self_flag_bankx(CHRFLAG1_DONE_SEARCH_ANIM, BANK_1) + animation(ANIM_LOOK_AROUND_025B, 0, -1, 0x100a, CHR_SELF, 2) + goto_next(0x31) + + label(0x99) + animation(ANIM_LOOK_AROUND_025C, 0, -1, 0x100a, CHR_SELF, 2) + goto_next(0x31) + + label(0x9a) + animation(ANIM_LOOK_AROUND_025D, 0, -1, 0x100a, CHR_SELF, 2) + goto_next(0x31) + + label(0x9b) + animation(ANIM_LOOK_AROUND_025E, 0, -1, 0x100a, CHR_SELF, 2) + + label(0x31) + goto_first(0x04) + + // Detected enemy + label(0x0a) + dprint 'D','E','T','E','C','T','E','D','\n',0, + set_return_function(CHR_SELF, FUNC_INIT_ELVIS) + set_onshot_function(FUNC_INIT_ELVIS) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + + // Sees player + label(0xa5) + set_target_chr(FOLLOW_CHR) + try_run_to_target_chr(/*goto*/ 0x12) + + beginloop(0x12) + dprint 'G','O',' ','T','O','W','A','R','D','S','\n',0, + if_chr_distance_lt(300, /*goto*/ 0x13) + if_timer_gt(180, /*goto*/ 0x08) + endloop(0x12) + + // Running towards player for 3 seconds - check if can still see player + label(0x08) + if_chr_sees_player(/*goto*/ 0x31) + goto_first(0x04) + + label(0x31) + goto_first(0xa5) + + // Close to player + label(0x13) + do_special_animation(-1) + speak(TARGET_CHR, 0x0a1f, 0x12e2, CHANNEL_6, COLOR_04_ORANGE) // "Take this; you should find it useful!" + give_object_to_chr(OBJ_PROXYMINE, TARGET_CHR) + + beginloop(0x14) + if_sound_finished(CHANNEL_6, /*goto*/ 0x31) + endloop(0x14) + + label(0x31) + stop_chr + set_stage_flag(STAGEFLAG_ELVIS_GAVE_PROXYMINE) + goto_first(0x04) + + endfunction +}; + +u8 func0405_unused[] = { + jog_to_pad(0x0107) + beginloop(0x06) + endloop(0x06) + + endfunction +}; + +u8 func0417_init_robot[] = { + set_accuracy(40) + set_self_flag_bank3(CHRFLAG3_00020000) + set_chr_health(CHR_SELF, 250) + set_function(CHR_SELF, FUNC_ROBOT) + endfunction +}; + +u8 func0418_robot[] = { + set_onshot_function(FUNC_ROBOT) + label(0x66) + set_self_flag_bank3(CHRFLAG3_00040000) + if_chr_dying(CHR_SELF, /*goto*/ 0x11) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x11) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x08) + goto_next(0x04) + label(0x08) + yield + damage_chr(CHR_SELF, 18) + goto_first(0x66) + + beginloop(0x04) + dprint 'P','A','R','T',' ','1','\n',0, + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x0d) + if_target_chr_in_sight(/*goto*/ 0x0d) + call_rng + if_rand_gt(5, /*goto*/ 0x31) + if_sound_finished(CHANNEL_5, /*goto*/ 0x08) + goto_next(0x31) + + // Make random noise + label(0x08) + call_rng + if_rand_lt(86, /*goto*/ 0x0b) + if_rand_lt(172, /*goto*/ 0x0c) + assign_sound(0x046a, CHANNEL_5) + play_sound_from_entity(CHANNEL_5, CHR_SELF, 0x0bb8, 0x1770, 0x01) + goto_next(0x31) + label(0x0b) + assign_sound(0x046b, CHANNEL_5) + play_sound_from_entity(CHANNEL_5, CHR_SELF, 0x0bb8, 0x1770, 0x01) + goto_next(0x31) + label(0x0c) + assign_sound(0x046c, CHANNEL_5) + play_sound_from_entity(CHANNEL_5, CHR_SELF, 0x0bb8, 0x1770, 0x01) + label(0x31) + endloop(0x04) + + // Alerted + label(0x0d) + set_group_alertness(100) + restart_timer + if_chr_distance_lt(300, /*goto*/ 0x31) + if_chr_distance_gt(1000, /*goto*/ 0x15) + if_target_chr_in_sight(/*goto*/ 0x13) + + // Distance > 1000 or not in sight + label(0x15) + try_run_to_target_chr_with_hand_up(/*goto*/ 0x08) + + // Distance < 300 + label(0x31) + stop_chr + + label(0x08) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x0a) + say_quip(CHR_JOANNA, 0x1f, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + + beginloop(0x0a) + dprint 'P','A','R','T',' ','2','\n',0, + if_timer_gt(180, /*goto*/ 0x08) + if_chr_distance_gt(1000, /*goto*/ 0x15) + dprint 'P','A','R','T',' ','2','\n',0, + if_target_chr_in_sight(/*goto*/ 0x13) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x13) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + label(0x15) + endloop(0x0a) + + // Player in sight + label(0x13) + set_target_chr(CHR_P1P2) + restart_timer + dprint 'P','A','R','T',' ','3','a','\n',0, + try_aim_and_shoot_thing1(0x0200, 0x0000, /*goto*/ 0x0e) + goto_first(0x04) + + beginloop(0x0e) + if_chr_stopped(/*goto*/ 0x08) + endloop(0x0e) + + label(0x08) + goto_first(0x0d) + + label(0x11) + assign_sound(0x1aec, CHANNEL_6) + play_sound_from_entity(CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Assigned to two stripes guards. + */ +u8 func0414_spawner[] = { + set_self_flag_bank3(CHRFLAG3_00000002) + + beginloop(0x06) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0x0a) + // Room 0x0029 is the skedar shuttle area + if_chr_in_room(CHR_P1P2, 0x00, 0x0029, /*goto*/ 0x0a) + reloop(0x06) + + label(0x0a) + dprint 'H','E','A','R','S','P','A','W','N','\n',0, + label(0x31) + if_never_been_onscreen(/*goto*/ 0x52) + dprint 'N','E','V','E','R',' ','V','I','S','F','A','I','L','\n',0, + if_chr_sees_player(/*goto*/ 0x0a) + endloop(0x06) + + label(0x0a) + set_function(CHR_SELF, GFUNC_ALERTED) + + label(0x52) + dprint 'C','H','E','C','K',' ','D','U','P','E','\n',0, + if_chr_death_animation_finished(CHR_CLONE, /*goto*/ 0x52) + set_function(CHR_SELF, FUNC_SPAWNER) + + label(0x52) + dprint 'C','R','E','A','T','E',' ','S','P','A','W','N','\n',0, + try_spawn_clone2(CHR_SELF, GFUNC_ALERTED, 0x00000000, /*goto*/ 0x31) + dprint 'C','R','E','A','T','E',' ','F','A','I','L','\n',0, + set_function(CHR_SELF, FUNC_SPAWNER) + + label(0x31) + yield + set_function(CHR_SELF, FUNC_SPAWNER) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0419_unused[] = { + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0422_hide[] = { + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_UNEXPLODABLE) + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func041a_pres_clone[] = { + set_self_flag_bank3(CHRFLAG3_00020000) + set_self_flag_bank3(CHRFLAG3_00080000) + + beginloop(0x06) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x31) + if_player_looking_at_something_maybe(0x00, 0x00, 0x01, /*goto*/ 0x08) + if_target_chr_in_sight(/*goto*/ 0x31) + label(0x08) + endloop(0x06) + + // Alert, or player in sight and looking at clone + label(0x31) + run_to_pad(0x002c) + + beginloop(0x0a) + if_chr_stopped(/*goto*/ 0x31) + endloop(0x0a) + + label(0x31) + stop_chr + + label(0xa5) + animation(ANIM_COWER_0229, -1, -1, 0x100a, CHR_SELF, 2) + + beginloop(0x10) + if_chr_stopped(/*goto*/ 0x31) + endloop(0x10) + + label(0x31) + goto_first(0xa5) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func041b_init_president[] = { + set_self_flag_bank3(CHRFLAG3_00080000) + set_chr_health(CHR_SELF, 300) + set_shield(0) + set_function(CHR_SELF, FUNC_PRESIDENT_WAITING) + endfunction +}; + +u8 func041c_president_waiting[] = { + set_onshot_function(FUNC_PRESIDENT_WAITING) + if_chr_dying(CHR_SELF, /*goto*/ 0x08) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x08) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x08) + goto_next(0x31) + + // Dying + label(0x08) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x31) + stop_chr + yield + + // Wait until trigger and can see player + beginloop(0x06) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_stage_flag_eq(STAGEFLAG_TRIGGER_PRESIDENT_RUNNING, TRUE, /*goto*/ 0x31) + goto_first(0x06) + + label(0x31) + if_chr_sees_player(/*goto*/ 0x31) + endloop(0x06) + + label(0x31) + set_onshot_function(FUNC_PRESIDENT_RUNNING) + set_function(CHR_SELF, FUNC_PRESIDENT_RUNNING) + endfunction +}; + +u8 func041d_president_running[] = { + set_self_flag_bank3(CHRFLAG3_01000000) + set_alertness(100) + set_onshot_function(FUNC_PRESIDENT_RUNNING) + dprint 'R','E','S','T','A','R','T','\n',0, + yield + if_chr_dying(CHR_SELF, /*goto*/ 0x08) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x08) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x08) + goto_next(0x31) + + // Dying + label(0x08) + set_onshot_function(GFUNC_IDLE) + restart_timer + + beginloop(0x9c) + dprint 'K','I','L','L','E','D','\n',0, + if_timer_gt(15, /*goto*/ 0x08) + endloop(0x9c) + + label(0x08) + assign_sound(0x1abf, CHANNEL_6) + play_sound_from_entity(CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x31) + dprint 'b','4',' ','s','h','i','e','l','d',' ','c','h','e','c','k','\n',0, + if_just_injured(CHR_SELF, /*goto*/ 0x08) + goto_next(0x9d) + + // Injured + label(0x08) + restart_timer + assign_sound(0x1ac2, CHANNEL_6) + play_sound_from_entity(CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01) + + beginloop(0x9e) + dprint 'I','N','J','U','R','E','D','\n',0, + if_num_times_shot_lt(1, /*goto*/ 0x08) + if_timer_lt(20, /*goto*/ 0x08) + label(0x08) + if_chr_stopped(/*goto*/ 0x9d) + endloop(0x9e) + + // Main logic + label(0x9d) + stop_chr + restart_timer + + beginloop(0x9f) + dprint 'W','A','I','T','\n',0, + // Room 0x0014 = UFO area + // Yes, checking this 5 times is unnecessary + if_chr_in_room(CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5) + if_chr_in_room(CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5) + if_chr_in_room(CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5) + if_chr_in_room(CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5) + if_chr_in_room(CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5) + dprint 't','a','r','g','e','t','\n',0, + if_chr_sees_player(/*goto*/ 0x08) + goto_next(0xa0) + + label(0x08) + if_timer_gt(1250, /*goto*/ 0x31) + if_chr_distance_gt(200, /*goto*/ 0xa0) + endloop(0x9f) + + // 20.8 seconds passed + // Pointless RNG check + label(0x31) + call_rng + if_rand_lt(64, /*goto*/ 0x31) + goto_first(0x9d) + label(0x31) + goto_first(0x9d) + + // Sees player + label(0x08) + goto_first(0x9d) + + // Can't see player, or distance > 200 + label(0xa0) + restart_timer + label(0x31) + if_chr_distance_gt(300, /*goto*/ 0x31) + try_run_to_target_chr_with_hand_up(/*goto*/ 0xa1) + label(0x31) + try_run_to_target_chr(/*goto*/ 0xa1) + + beginloop(0xa1) + dprint 'F','O','L','L','O','W','\n',0, + if_chr_in_room(CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5) + if_chr_in_room(CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5) + if_chr_in_room(CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5) + if_chr_in_room(CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5) + if_chr_in_room(CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5) + if_chr_distance_lt(100, /*goto*/ 0xa2) + if_chr_stopped(/*goto*/ 0xa2) + if_timer_gt(360, /*goto*/ 0x31) + endloop(0xa1) + + // 6 seconds passed while running + label(0x31) + goto_first(0xa0) + + // Unreachable + label(0x08) + goto_first(0xa0) + + // Next to player + label(0xa2) + goto_first(0x9d) + + // Unreachable + label(0xa3) + try_run_to_target_chr(/*goto*/ 0xa4) + + // Unreachable + beginloop(0xa4) + dprint 'R','U','N','N','F','O','\n',0, + if_chr_in_room(CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5) + if_chr_in_room(CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5) + if_chr_in_room(CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5) + if_chr_in_room(CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5) + if_chr_in_room(CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5) + endloop(0xa4) + + // Unreachable + label(0xa6) + goto_first(0x9d) + + // Jo is near UFO + label(0xa5) + run_to_pad(0x0105) + + beginloop(0x0b) + if_chr_stopped(/*goto*/ 0x08) + endloop(0x0b) + + label(0x08) + stop_chr + set_chr_alliance(CHR_SELF, 0x80) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + if_stage_flag_eq(STAGEFLAG_PRESIDENT_RESCUED, TRUE, /*goto*/ 0x31) + message(TARGET_CHR, 0x0a19) // "President has been rescued." + set_stage_flag(STAGEFLAG_PRESIDENT_RESCUED) + label(0x31) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100e_check_robots_left[] = { + beginloop(0x06) + if_chr_death_animation_finished(CHR_ROBOT1, /*goto*/ 0x31) + if_chr_dying(CHR_ROBOT1, /*goto*/ 0x31) + if_chr_unloaded(CHR_ROBOT1, /*goto*/ 0x31) + if_chr_in_room(CHR_ROBOT1, 0x00, 0x004a, /*goto*/ 0x08) + if_chr_in_room(CHR_ROBOT1, 0x00, 0x004b, /*goto*/ 0x08) + if_chr_in_room(CHR_ROBOT1, 0x00, 0x004c, /*goto*/ 0x08) + if_chr_in_room(CHR_ROBOT1, 0x00, 0x004d, /*goto*/ 0x08) + goto_next(0x31) + label(0x08) + reloop(0x06) + + label(0x31) + if_chr_death_animation_finished(CHR_ROBOT2, /*goto*/ 0x31) + if_chr_dying(CHR_ROBOT2, /*goto*/ 0x31) + if_chr_unloaded(CHR_ROBOT2, /*goto*/ 0x31) + if_chr_in_room(CHR_ROBOT2, 0x00, 0x004a, /*goto*/ 0x08) + if_chr_in_room(CHR_ROBOT2, 0x00, 0x004b, /*goto*/ 0x08) + if_chr_in_room(CHR_ROBOT2, 0x00, 0x004c, /*goto*/ 0x08) + if_chr_in_room(CHR_ROBOT2, 0x00, 0x004d, /*goto*/ 0x08) + goto_next(0x31) + label(0x08) + reloop(0x06) + + label(0x31) + if_chr_death_animation_finished(CHR_ROBOT3, /*goto*/ 0x31) + if_chr_dying(CHR_ROBOT3, /*goto*/ 0x31) + if_chr_unloaded(CHR_ROBOT3, /*goto*/ 0x31) + if_chr_in_room(CHR_ROBOT3, 0x00, 0x004a, /*goto*/ 0x08) + if_chr_in_room(CHR_ROBOT3, 0x00, 0x004b, /*goto*/ 0x08) + if_chr_in_room(CHR_ROBOT3, 0x00, 0x004c, /*goto*/ 0x08) + if_chr_in_room(CHR_ROBOT3, 0x00, 0x004d, /*goto*/ 0x08) + goto_next(0x31) + label(0x08) + reloop(0x06) + + label(0x31) + if_chr_death_animation_finished(CHR_ROBOT4, /*goto*/ 0x31) + if_chr_dying(CHR_ROBOT4, /*goto*/ 0x31) + if_chr_unloaded(CHR_ROBOT4, /*goto*/ 0x31) + if_chr_in_room(CHR_ROBOT4, 0x00, 0x004a, /*goto*/ 0x08) + if_chr_in_room(CHR_ROBOT4, 0x00, 0x004b, /*goto*/ 0x08) + if_chr_in_room(CHR_ROBOT4, 0x00, 0x004c, /*goto*/ 0x08) + if_chr_in_room(CHR_ROBOT4, 0x00, 0x004d, /*goto*/ 0x08) + goto_next(0x31) + label(0x08) + reloop(0x06) + + label(0x31) + if_stage_flag_eq(STAGEFLAG_TRENT_RUNNING, TRUE, /*goto*/ 0x31) + goto_first(0x06) + + label(0x31) + set_stage_flag(STAGEFLAG_TRIGGER_PRESIDENT_RUNNING) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func041e_trent_waiting[] = { + set_accuracy(0) + set_self_flag_bank3(CHRFLAG3_00000040) + set_shield(100) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_10000000) + + beginloop(0x06) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0x08) + endloop(0x06) + + label(0x08) + restart_timer + speak(CHR_P1P2, 0x0a18, 0x12ca, CHANNEL_6, COLOR_05_GREEN) // "You'll never save him now!" + animation(ANIM_TALKING_0231, 0, -1, 0x1010, CHR_SELF, 2) + + beginloop(0x0a) + if_timer_gt(120, /*goto*/ 0x08) + endloop(0x0a) + + label(0x08) + set_function(CHR_SELF, FUNC_TRENT_SHOOTING) + endfunction +}; + +u8 func041f_trent_shooting[] = { + label(0x04) + stop_chr + + beginloop(0x06) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + try_unset_chr_flag_bank3_02000000(CHR_SELF, /*goto*/ 0x31) + if_target_chr_in_sight(/*goto*/ 0x08) + endloop(0x06) + + label(0x31) + set_function(CHR_SELF, FUNC_TRENT_RUNNING) + + label(0x08) + label(0xa8) + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0xa7) + label(0xa7) + say_quip(CHR_JOANNA, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x0a) + goto_next(0x31) + + // Shoot worked + beginloop(0x0a) + if_chr_stopped(/*goto*/ 0x08) + endloop(0x0a) + + label(0x08) + goto_next(0x0b) + + // Unreachable + if_chr_dying(TARGET_CHR, /*goto*/ 0x0b) + goto_first(0x04) + + // Shoot failed + label(0x31) + goto_first(0x04) + + label(0x0b) + restart_timer + animation(ANIM_TALKING_0231, 0, -1, 0x1010, CHR_SELF, 2) + + beginloop(0x0c) + if_timer_gt(120, /*goto*/ 0x08) + endloop(0x0c) + + label(0x08) + set_function(CHR_SELF, FUNC_TRENT_RUNNING) + endfunction +}; + +u8 func0420_trent_running[] = { + set_self_flag_bank3(CHRFLAG3_00080000) + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_stage_flag(STAGEFLAG_TRENT_RUNNING) + restart_timer + run_to_pad(0x0027) + + beginloop(0x0a) + if_timer_gt(300, /*goto*/ 0x31) + endloop(0x0a) + + label(0x31) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0x31) + goto_next(0x08) + + label(0x31) + if_chr_stopped(/*goto*/ 0x08) + goto_first(0x0a) + + // Player not in sight + label(0x08) + if_within_units_of_sight(30, /*goto*/ 0x31) + goto_next(0x08) + + label(0x31) + goto_first(0x0a) + + // Player definitely not in sight + label(0x08) + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100f_check_end_level[] = { + beginloop(0x0a) + if_all_objectives_complete(/*goto*/ 0x08) + endloop(0x0a) + + label(0x08) + restart_timer + + beginloop(0x0b) + if_timer_gt(120, /*goto*/ 0x31) + endloop(0x0b) + + label(0x31) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x31) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x31) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x31) + goto_next(0x08) + + label(0x31) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x31) + if_chr_dying(CHR_VELVET, /*goto*/ 0x31) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x31) + + // Jo or Velvet alive + label(0x08) + if_chr_death_animation_finished(CHR_PRESIDENT, /*goto*/ 0x32) + if_chr_dying(CHR_PRESIDENT, /*goto*/ 0x32) + if_chr_unloaded(CHR_PRESIDENT, /*goto*/ 0x32) + set_function(CHR_PRESIDENT, GFUNC_STOP_AND_IDLE) + + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x31) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x31) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x31) + goto_next(0x08) + + // Both players dead + label(0x31) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x31) + if_chr_dying(CHR_VELVET, /*goto*/ 0x31) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x31) + goto_next(0x08) + + label(0x31) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + + // Mission complete + label(0x08) + set_invincible(CHR_JOANNA) + set_function(CHR_SELF, FUNC_OUTRO) + + // President dead + label(0x32) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Assigned to 4 stripes and 2 blondes near the starting area. + */ +u8 func0421_starting_area_guard[] = { + label(0x0a) + set_return_function(CHR_SELF, GFUNC_UNALERTED) + set_function(CHR_SELF, GFUNC_SEARCH_FOR_PLAYER) + endfunction +}; + +u8 func1010_set_cave_lights[] = { + yield + set_lights_state(0x0064, 0x01, 0x06, 0x00, 0x00) + set_lights_state(0x0063, 0x01, 0x06, 0x00, 0x00) + set_lights_state(0x0062, 0x01, 0x06, 0x00, 0x00) + set_lights_state(0x0061, 0x01, 0x06, 0x00, 0x00) + set_lights_state(0x0060, 0x01, 0x06, 0x00, 0x00) + set_lights_state(0x005f, 0x01, 0x06, 0x00, 0x00) + set_lights_state(0x005e, 0x01, 0x06, 0x00, 0x00) + set_lights_state(0x005d, 0x01, 0x06, 0x00, 0x00) + set_lights_state(0x005c, 0x01, 0x06, 0x00, 0x00) + set_lights_state(0x005b, 0x01, 0x06, 0x00, 0x00) + set_lights_state(0x005a, 0x01, 0x06, 0x00, 0x00) + set_lights_state(0x0059, 0x01, 0x06, 0x00, 0x00) + set_lights_state(0x0053, 0x01, 0x06, 0x00, 0x00) + set_lights_state(0x0058, 0x01, 0x06, 0x00, 0x00) + set_lights_state(0x0056, 0x01, 0x06, 0x00, 0x00) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1012_give_medicalscanner[] = { + yield + if_difficulty_gt(DIFF_A, /*goto*/ 0x31) + give_object_to_chr(OBJ_MEDICALSCANNER, CHR_JOANNA) + label(0x31) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1013_setup_rtracker[] = { + yield + set_object_flag_bank2(OBJ_PROXYMINE, OBJECTFLAG2_RTRACKED_BLUE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1016_hide_hoverbike[] = { + yield + if_eeprom_flag_is_set(EEPROMFLAG_CRASHSITE_BIKE, /*goto*/ 0x08) + hide_object(OBJ_HOVERBIKE) + label(0x08) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1014_setup_skedar_shuttle[] = { + yield + show_object(OBJ_SKEDAR_SHUTTLE) + set_object_flag_bank2(OBJ_SKEDAR_SHUTTLE, OBJECTFLAG2_00000010) + set_object_part_visible(OBJ_SKEDAR_SHUTTLE, FALSE) + object_do_animation(0x0486, OBJ_SKEDAR_SHUTTLE, 0x01ff, 0xff) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1415_setup_lighting[] = { + yield + set_lighting(0x0001, 0x05, 0x01) + set_lighting(0x0001, 0x06, 0x01) + set_lighting(0x0002, 0x05, 0x01) + set_lighting(0x0002, 0x06, 0x01) + set_lighting(0x0003, 0x06, 0x01) + set_lighting(0x0004, 0x06, 0x01) + set_lighting(0x0005, 0x06, 0x01) + set_lighting(0x0006, 0x05, 0x01) + set_lighting(0x0006, 0x06, 0x01) + set_lighting(0x0008, 0x06, 0x01) + set_lighting(0x0009, 0x05, 0x01) + set_lighting(0x0009, 0x06, 0x01) + set_lighting(0x000a, 0x05, 0x01) + set_lighting(0x000a, 0x06, 0x01) + set_lighting(0x000b, 0x05, 0x01) + set_lighting(0x000b, 0x06, 0x01) + set_lighting(0x000c, 0x05, 0x01) + set_lighting(0x000c, 0x06, 0x01) + set_lighting(0x000d, 0x05, 0x01) + set_lighting(0x000d, 0x06, 0x01) + set_lighting(0x000e, 0x05, 0x01) + set_lighting(0x000e, 0x06, 0x01) + set_lighting(0x000f, 0x05, 0x01) + set_lighting(0x000f, 0x06, 0x01) + set_lighting(0x0010, 0x05, 0x01) + set_lighting(0x0010, 0x06, 0x01) + set_lighting(0x0011, 0x05, 0x01) + set_lighting(0x0011, 0x06, 0x01) + set_lighting(0x0012, 0x05, 0x01) + set_lighting(0x0012, 0x06, 0x01) + set_lighting(0x0013, 0x05, 0x01) + set_lighting(0x0013, 0x06, 0x01) + set_lighting(0x0014, 0x05, 0x01) + set_lighting(0x0014, 0x06, 0x01) + set_lighting(0x0015, 0x05, 0x01) + set_lighting(0x0015, 0x06, 0x01) + set_lighting(0x0016, 0x05, 0x01) + set_lighting(0x0016, 0x06, 0x01) + set_lighting(0x0018, 0x05, 0x01) + set_lighting(0x0018, 0x06, 0x01) + set_lighting(0x0019, 0x05, 0x01) + set_lighting(0x0019, 0x06, 0x01) + set_lighting(0x001a, 0x06, 0x01) + set_lighting(0x001b, 0x05, 0x01) + set_lighting(0x001b, 0x06, 0x01) + set_lighting(0x001c, 0x05, 0x01) + set_lighting(0x001c, 0x06, 0x01) + set_lighting(0x001d, 0x06, 0x01) + set_lighting(0x001e, 0x05, 0x01) + set_lighting(0x001e, 0x06, 0x01) + set_lighting(0x0025, 0x05, 0x01) + set_lighting(0x0025, 0x06, 0x01) + set_lighting(0x0026, 0x05, 0x01) + set_lighting(0x0026, 0x06, 0x01) + set_lighting(0x0027, 0x05, 0x01) + set_lighting(0x0027, 0x06, 0x01) + set_lighting(0x0028, 0x05, 0x01) + set_lighting(0x0028, 0x06, 0x01) + set_lighting(0x0029, 0x05, 0x01) + set_lighting(0x0029, 0x06, 0x01) + set_lighting(0x002a, 0x05, 0x01) + set_lighting(0x002a, 0x06, 0x01) + set_lighting(0x002b, 0x05, 0x01) + set_lighting(0x002b, 0x06, 0x01) + set_lighting(0x002c, 0x05, 0x01) + set_lighting(0x002c, 0x06, 0x01) + set_lighting(0x002e, 0x05, 0x01) + set_lighting(0x002e, 0x06, 0x01) + set_lighting(0x002f, 0x05, 0x01) + set_lighting(0x002f, 0x06, 0x01) + set_lighting(0x0030, 0x05, 0x01) + set_lighting(0x0030, 0x06, 0x01) + set_lighting(0x0031, 0x05, 0x01) + set_lighting(0x0031, 0x06, 0x01) + set_lighting(0x0032, 0x05, 0x01) + set_lighting(0x0032, 0x06, 0x01) + set_lighting(0x0033, 0x05, 0x01) + set_lighting(0x0033, 0x06, 0x01) + set_lighting(0x0035, 0x05, 0x01) + set_lighting(0x0035, 0x06, 0x01) + set_lighting(0x0036, 0x05, 0x01) + set_lighting(0x0036, 0x06, 0x01) + set_lighting(0x0038, 0x05, 0x01) + set_lighting(0x0038, 0x06, 0x01) + set_lighting(0x003a, 0x05, 0x01) + set_lighting(0x003a, 0x06, 0x01) + set_lighting(0x003b, 0x05, 0x01) + set_lighting(0x003b, 0x06, 0x01) + set_lighting(0x003c, 0x05, 0x01) + set_lighting(0x003c, 0x06, 0x01) + set_lighting(0x003d, 0x05, 0x01) + set_lighting(0x003d, 0x06, 0x01) + set_lighting(0x003e, 0x06, 0x01) + set_lighting(0x003f, 0x05, 0x01) + set_lighting(0x0045, 0x05, 0x01) + set_lighting(0x0065, 0x05, 0x01) + set_lighting(0x0065, 0x06, 0x01) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +struct ailists functions[] = { + { func1400_setup_counterop, 0x1400 }, + { func1001_objectives_failed_msg, 0x1001 }, + { func1002_intro, 0x1002 }, + { func1003_msg_therestheescapepod, 0x1003 }, + { func1004_msg_maybetheresabeacon, 0x1004 }, + { func1005_msg_thejamming, 0x1005 }, + { func1006_msg_elvisbeable, 0x1006 }, + { func1008_escapepod, 0x1008 }, + { func1009_check_shuttle_destroyed, 0x1009 }, + { func100a_check_president_dead, 0x100a }, + { func100b_check_clone_dead, 0x100b }, + { func100c_spawn_dd_guards, 0x100c }, + { func100e_check_robots_left, 0x100e }, + { func100f_check_end_level, 0x100f }, + { func1010_set_cave_lights, 0x1010 }, + { func1011_setup_snow, 0x1011 }, + { func1012_give_medicalscanner, 0x1012 }, + { func1013_setup_rtracker, 0x1013 }, + { func1014_setup_skedar_shuttle, 0x1014 }, + { func1415_setup_lighting, 0x1415 }, + { func1016_hide_hoverbike, 0x1016 }, + { func1002_intro, 0x0401 }, + { func0402_outro, 0x0402 }, + { func0403_init_elvis, 0x0403 }, + { func0404_elvis, 0x0404 }, + { func0405_unused, 0x0405 }, + { func1002_intro, 0x0c00 }, + { func0402_outro_from_menu, 0x0c01 }, + { func0406_init_stripes, 0x0406 }, + { func0407_init_blonde, 0x0407 }, + { func0408_start_path00, 0x0408 }, + { func0409_start_path01, 0x0409 }, + { func040a_start_path02, 0x040a }, + { func040b_start_path03, 0x040b }, + { func040c_start_path04, 0x040c }, + { func040d_start_path05, 0x040d }, + { func040e_start_path06, 0x040e }, + { func040f_start_path07, 0x040f }, + { func0410_start_path08, 0x0410 }, + { func0411_start_path09, 0x0411 }, + { func0412_start_path10, 0x0412 }, + { func0413_start_path11, 0x0413 }, + { func0414_spawner, 0x0414 }, + { func0415_unused, 0x0415 }, + { func0416_spawned_guard, 0x0416 }, + { func0417_init_robot, 0x0417 }, + { func0418_robot, 0x0418 }, + { func0419_unused, 0x0419 }, + { func041a_pres_clone, 0x041a }, + { func041c_president_waiting, 0x041c }, + { func041b_init_president, 0x041b }, + { func041d_president_running, 0x041d }, + { func041e_trent_waiting, 0x041e }, + { func041f_trent_shooting, 0x041f }, + { func0420_trent_running, 0x0420 }, + { func0421_starting_area_guard, 0x0421 }, + { func0422_hide, 0x0422 }, + { NULL, 0 }, +}; + diff --git a/src/setup/setupcat.c b/src/setup/setupcat.c new file mode 100644 index 000000000..00eb4cf7c --- /dev/null +++ b/src/setup/setupcat.c @@ -0,0 +1,38 @@ +// +// Stage ID 0x28 +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setupcave.c b/src/setup/setupcave.c new file mode 100644 index 000000000..50eebd797 --- /dev/null +++ b/src/setup/setupcave.c @@ -0,0 +1,4458 @@ +// +// Air Base +// + +#include "../include/setup.h" + +// Characters +#define CHR_STEWARDESS 0x38 +#define CHR_SECRETARY 0x39 +#define CHR_OFFICE1 0x3c +#define CHR_OFFICE2 0x3d +#define CHR_TRENT 0x47 +#define CHR_OUTRO_NSA 0x49 + +// Objects +#define OBJ_BRIEFCASE1 0x00 +#define OBJ_CONSOLE 0x01 +#define OBJ_UNIFORM 0x02 +#define OBJ_FLIGHTPLANS 0x03 +#define OBJ_BAGGAGE_CARRIER 0x04 +#define OBJ_LASER_PANEL 0x05 +#define OBJ_BRIEFCASE2 0x06 +#define OBJ_ALARM 0x19 +#define OBJ_SAFE_SWITCH 0x1a +#define OBJ_SAFE_SWITCH_COVER 0x1f +#define OBJ_VERTICAL_LIFT 0x21 // the one leading to the plane - not briefcase office +#define OBJ_REMOTEMINE 0x2b +#define OBJ_SAFEDOOR 0x2d +#define OBJ_PLANE 0x2e +#define OBJ_DIAGONAL_LIFT 0x36 + +// Stage flags +#define STAGEFLAG_SECURITY_SHUT_DOWN 0x00000100 +#define STAGEFLAG_STEWARDESS_ENTERED_BASE 0x00000200 +#define STAGEFLAG_CIVILIANS_KILLED 0x00000400 +#define STAGEFLAG_DISGUISE_UNCOVERED 0x00000800 +#define STAGEFLAG_DISGUISED 0x00001000 +#define STAGEFLAG_RECEPTIONIST_CALLED_SECURITY 0x00002000 +#define STAGEFLAG_SUITCASE_DEPOSITED 0x00004000 +#define STAGEFLAG_WEAPONS_DETECTED 0x00008000 +#define STAGEFLAG_SUITCASE_SCANNED 0x00010000 +#define STAGEFLAG_BOARDED_PLANE 0x00020000 +#define STAGEFLAG_LASERS_OVERLOADED 0x00040000 +#define STAGEFLAG_TOO_MANY_NEUTRALS_KILLED 0x00080000 +#define STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE 0x00100000 +#define STAGEFLAG_OFFICE1_DEAD 0x00200000 +#define STAGEFLAG_OFFICE2_DEAD 0x00400000 +#define STAGEFLAG_DISGUISED2 0x00800000 +#define STAGEFLAG_SECRETARY_DEAD 0x01000000 +#define STAGEFLAG_CONSOLE_DESTROYED 0x02000000 +#define STAGEFLAG_ENTERED_BASE 0x04000000 +#define STAGEFLAG_TROLLEY_SHUT_DOWN_WITHOUT_BRIEFCASE 0x08000000 +#define STAGEFLAG_CONSOLE_ACTIVATED 0x10000000 + +// Functions +#define FUNC_INIT_STRIPES 0x0402 +#define FUNC_BECOME_UNALERTED 0x0406 +#define FUNC_STEWARDESS 0x0407 +#define FUNC_SECRETARY 0x0408 +#define FUNC_OFFICE1 0x0409 +#define FUNC_OFFICE2 0x040a +#define FUNC_INIT_SECRETARY 0x040c +#define FUNC_INIT_OFFICE1 0x040d +#define FUNC_INIT_OFFICE2 0x040e +#define FUNC_NSA 0x040f +#define FUNC_TAKEOVER_LACKEY 0x0411 +#define FUNC_INIT_TAKEOVER_LACKEY 0x0412 +#define FUNC_ALASKAN_CONSOLE_GUARD 0x0413 +#define FUNC_OFFICEWORKER 0x0414 +#define FUNC_ALASKAN_MOUNTAINLIFT_GUARD 0x0415 +#define FUNC_REMOVE_OR_UNALERT 0x0417 +#define FUNC_REMOVE_OR_COWER 0x0418 +#define FUNC_DRAW_MAGNUM 0x041a +#define FUNC_INIT_ALASKAN_GUARD 0x0426 +#define FUNC_INIT_POSTTAKEOVER_GUARD 0x0427 +#define FUNC_POSTTAKEOVER_GUARD 0x0428 +#define FUNC_FOYER_SPAWNER 0x042a +#define FUNC_INIT_FOYER_CLONE 0x042b +#define FUNC_FOYER_CLONE 0x042c + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + briefing(0, 0x0e01) + briefing(1, 0x0e00) + briefing(2, 0x0e02) + briefing(3, 0x0e03) + + beginobjective(0, 0x0e05, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Obtain disguise and enter base" + complete_flags(STAGEFLAG_DISGUISED2) + complete_flags(STAGEFLAG_ENTERED_BASE) + fail_flags(STAGEFLAG_CIVILIANS_KILLED) + fail_flags(STAGEFLAG_DISGUISE_UNCOVERED) + fail_flags(STAGEFLAG_STEWARDESS_ENTERED_BASE) + fail_flags(STAGEFLAG_RECEPTIONIST_CALLED_SECURITY) + fail_flags(STAGEFLAG_TOO_MANY_NEUTRALS_KILLED) + fail_flags(STAGEFLAG_SECRETARY_DEAD) + endobjective + + beginobjective(1, 0x0e06, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Check in equipment" + complete_flags(STAGEFLAG_SUITCASE_DEPOSITED) + fail_flags(STAGEFLAG_WEAPONS_DETECTED) + fail_flags(STAGEFLAG_TROLLEY_SHUT_DOWN_WITHOUT_BRIEFCASE) + endobjective + + beginobjective(2, 0x0e07, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Subvert security monitoring system" + complete_flags(STAGEFLAG_SECURITY_SHUT_DOWN) + fail_flags(STAGEFLAG_SUITCASE_SCANNED) + fail_flags(STAGEFLAG_CONSOLE_DESTROYED) + endobjective + + beginobjective(3, 0x0e08, (DIFFBIT_PA | DIFFBIT_PD)) // "Obtain flight plans from safe" + require_object_collected(OBJ_FLIGHTPLANS) + endobjective + + beginobjective(4, 0x0e09, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Board Air Force One" + complete_flags(STAGEFLAG_BOARDED_PLANE) + endobjective + + chr(0x00000e80, 0x00, 0x00c8, BODY_ALASKAN_GUARD, HEAD_RANDOM, GFUNC_IDLE, 0x0135, -1, 20, 20, 0x80882408, 0x00000000, 0x02, 0x00, -1, 3, 0x00000700) + weapon(0x0100, MODEL_CHRDRAGON, 0x0000, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000e00, 0x01, 0x00d0, BODY_ALASKAN_GUARD, HEAD_RANDOM, GFUNC_IDLE, 0x0135, -1, 20, 20, 0x80882008, 0x00000000, 0x02, 0x00, -1, 0, 0x00000700) + weapon(0x0100, MODEL_CHRDRAGON, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00010c01, 0x38, 0x00d1, BODY_STEWARDESS_COAT, HEAD_ANKA, GFUNC_IDLE, -1, -1, 200, 10, 0x00880408, 0x00000000, 0x02, 0x01, -1, 0, 0x02000700) + chr(0x00000e00, 0x02, 0x00d3, BODY_ALASKAN_GUARD, HEAD_RANDOM, FUNC_ALASKAN_MOUNTAINLIFT_GUARD, 0x0135, -1, 200, 20, 0x80802400, 0x00000000, 0x02, 0x00, -1, 0, 0x02000700) + weapon(0x0100, MODEL_CHRDRAGON, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000e00, 0x03, 0x0012, BODY_ALASKAN_GUARD, HEAD_RANDOM, 0x041b, 0x0135, -1, 200, 15, 0x80882008, 0x00000000, 0x02, 0x03, -1, 0, 0x02000500) + weapon(0x0100, MODEL_CHRDRAGON, 0x0003, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000ec0, 0x04, 0x00ca, BODY_ALASKAN_GUARD, HEAD_RANDOM, FUNC_INIT_ALASKAN_GUARD, 0x0135, -1, 200, 100, 0x80802609, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0004, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000ec0, 0x05, 0x00cb, BODY_ALASKAN_GUARD, HEAD_RANDOM, FUNC_INIT_ALASKAN_GUARD, 0x0135, -1, 200, 100, 0x80842408, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0005, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x07, 0x00c7, BODY_ALASKAN_GUARD, HEAD_RANDOM, FUNC_INIT_ALASKAN_GUARD, -1, -1, 200, 14, 0x80882000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0007, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x06, 0x00e8, BODY_ALASKAN_GUARD, HEAD_RANDOM, FUNC_INIT_ALASKAN_GUARD, -1, -1, 200, 14, 0x80882000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0006, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00010400, 0x39, 0x00c9, BODY_SECRETARY, HEAD_SECRETARY, FUNC_INIT_SECRETARY, -1, -1, 200, 14, 0x80882000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + chr(0x00014400, 0x3c, 0x00c6, BODY_OFFICEWORKER, HEAD_RANDOM, FUNC_INIT_OFFICE1, -1, -1, 200, 8, 0x80082000, 0x00000100, 0x02, 0x05, 0x24, 0, 0x00010000) + chr(0x00014400, 0x3d, 0x00c5, BODY_OFFICEWORKER, HEAD_RANDOM, FUNC_INIT_OFFICE2, -1, -1, 200, 8, 0x80082000, 0x00000100, 0x02, 0x05, 0x25, 0, 0x00010000) + chr(0x00000600, 0x08, 0x00c3, BODY_ALASKAN_GUARD, HEAD_RANDOM, FUNC_INIT_ALASKAN_GUARD, -1, -1, 200, 100, 0xa0882000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0008, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x09, 0x0031, BODY_ALASKAN_GUARD, HEAD_RANDOM, 0x041c, -1, -1, 200, 100, 0x80082000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x10, 0x003a, BODY_NSA_LACKEY, HEAD_RANDOM, FUNC_NSA, 0x003a, -1, 200, 100, 0x80082080, 0x00000881, 0x02, 0x04, -1, 0, 0x00000000) + chr(0x00000600, 0x0a, 0x003d, BODY_ALASKAN_GUARD, HEAD_RANDOM, 0x041d, -1, -1, 200, 100, 0xa0882000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x000a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x0b, 0x005b, BODY_ALASKAN_GUARD, HEAD_RANDOM, 0x041e, -1, -1, 200, 100, 0x80082000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x000b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x11, 0x0072, BODY_NSA_LACKEY, HEAD_RANDOM, FUNC_NSA, 0x0072, -1, 200, 100, 0x80082000, 0x00000881, 0x02, 0x05, -1, 0, 0x01000000) + chr(0x00004600, 0x0c, 0x00c2, BODY_ALASKAN_GUARD, HEAD_RANDOM, FUNC_ALASKAN_CONSOLE_GUARD, 0x0156, -1, 200, 100, 0xc0082000, 0x20000100, 0x02, 0x08, -1, 0, 0x00050000) + chr(0x00000200, 0x12, 0x00c1, BODY_NSA_LACKEY, HEAD_RANDOM, FUNC_INIT_TAKEOVER_LACKEY, -1, -1, 200, 100, 0x80080000, 0x00000800, 0x02, 0x06, -1, 0, 0x02000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0012, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + tag(0x30, 2) + tag(0x31, 2) + weapon(0x0100, MODEL_CHRDY357, 0x0012, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357MAGNUM, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRDY357, 0x0012, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357MAGNUM, 0x00ffffff, 0x00000000) + link_collectibles(-1, -2) + chr(0x00000600, 0x0d, 0x00c0, BODY_ALASKAN_GUARD, HEAD_RANDOM, 0x041f, -1, -1, 200, 100, 0xa0882000, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x0e, 0x00bf, BODY_ALASKAN_GUARD, HEAD_RANDOM, FUNC_INIT_ALASKAN_GUARD, -1, -1, 200, 100, 0x80082000, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000400, 0x3a, 0x00be, BODY_OFFICEWORKER, HEAD_RANDOM, FUNC_OFFICEWORKER, -1, -1, 200, 4, 0x80082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + chr(0x00000600, 0x0f, 0x00bc, BODY_ALASKAN_GUARD, HEAD_RANDOM, FUNC_INIT_ALASKAN_GUARD, -1, -1, 200, 100, 0x80082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x000f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x13, 0x00ba, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc4082000, 0x04000a00, 0x02, 0x09, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0013, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x14, 0x0123, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x84082000, 0x04000a00, 0x02, 0x09, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000700, 0x16, 0x0124, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc4080000, 0x04000a00, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000700, 0x18, 0x0125, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xcc080000, 0x04000a00, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1a, 0x0126, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0088000, 0x04000a00, 0x02, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1c, 0x0127, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xe008a000, 0x04000a00, 0x02, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x001c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1b, 0x0090, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc008a000, 0x04000a00, 0x02, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x001b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x19, 0x008e, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0088000, 0x04000a00, 0x02, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0019, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1d, 0x0096, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc008a000, 0x04000a00, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x001d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1e, 0x0128, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc008a000, 0x04000a00, 0x02, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x001e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x20, 0x0129, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xe008a000, 0x04000a00, 0x02, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0020, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x21, 0x00b4, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0082000, 0x04000a00, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0021, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x22, 0x012a, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0082000, 0x04000a00, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0022, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x23, 0x00b2, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0082000, 0x04000a00, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0023, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x24, 0x012b, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0082000, 0x04000a00, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0024, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x25, 0x0026, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc4082000, 0x04000a00, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0025, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x26, 0x012c, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc4082000, 0x04000a00, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0026, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x27, 0x002c, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc4082000, 0x04000a00, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0027, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x28, 0x012d, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xa4082000, 0x04000a00, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0028, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x2a, 0x00d9, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc4082000, 0x04000a00, 0x02, 0x0f, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x002a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x2b, 0x012e, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc4082000, 0x04000a00, 0x02, 0x0f, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x002b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x2c, 0x00da, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc4082000, 0x04000a00, 0x02, 0x0f, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x002c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x2d, 0x012f, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc4082000, 0x04000a00, 0x02, 0x0f, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x002d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x2e, 0x00d8, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x8008a000, 0x04000a00, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x002e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x2f, 0x0130, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x8008a000, 0x04000a00, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x002f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x30, 0x00b1, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x8008a000, 0x04000a00, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0030, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x31, 0x0131, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x8008a000, 0x04000a00, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0031, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x32, 0x00dc, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xa4082000, 0x04000a00, 0x02, 0x0b, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0032, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x33, 0x0132, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc4082000, 0x04000a00, 0x02, 0x0b, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0033, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x34, 0x00b0, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0002000, 0x04000a00, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0034, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x35, 0x0133, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0002000, 0x04000a00, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0035, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00004600, 0x36, 0x00db, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0002000, 0x00000b00, 0x02, 0x08, -1, 0, 0x00010000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0036, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x37, 0x0134, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0002000, 0x04000a00, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0037, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00010400, 0x44, 0x0132, BODY_CIAGUY, HEAD_RANDOM, 0x0419, 0x0132, -1, 1000, 6, 0x80000004, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000) + chr(0x00010400, 0x45, 0x00b1, BODY_STEWARDESS, HEAD_RANDOM, 0x0419, 0x00b1, -1, 1000, 9, 0x80000000, 0x00000000, 0x02, 0x00, -1, 0, 0x02000000) + chr(0x00010400, 0x46, 0x00e6, BODY_STEWARD, HEAD_RANDOM, 0x0419, 0x00e6, -1, 1000, 10, 0x80000000, 0x00000000, 0x02, 0x00, -1, 0, 0x01000000) + chr(0x00000000, 0x42, 0x0136, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80082000, 0x00000a00, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0042, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x43, 0x0137, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80082000, 0x00000a00, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0043, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x47, 0x0138, BODY_TRENT, HEAD_TRENT, GFUNC_IDLE, 0x0135, -1, 20, 20, 0x80882408, 0x00000000, 0x02, 0x00, -1, 3, 0x00000700) + chr(0x00000001, 0x48, 0x0139, BODY_STEWARDESS_COAT, HEAD_ANKA, GFUNC_IDLE, 0x0135, -1, 20, 20, 0x80882408, 0x00000000, 0x02, 0x00, -1, 3, 0x00000700) + chr(0x00000000, 0x49, 0x013a, BODY_NSA_LACKEY, HEAD_RANDOM, GFUNC_INVINCIBLE_AND_IDLE, 0x0135, -1, 20, 20, 0x80882408, 0x00000000, 0x02, 0x00, -1, 3, 0x00000700) + weapon(0x0100, MODEL_CHRAVENGER, 0x0049, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x4a, 0x013b, BODY_NSA_LACKEY, HEAD_RANDOM, GFUNC_IDLE, 0x0135, -1, 20, 20, 0x80882408, 0x00000000, 0x02, 0x00, -1, 3, 0x00000700) + weapon(0x0100, MODEL_CHRAVENGER, 0x004a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x4b, 0x013c, BODY_ALASKAN_GUARD, HEAD_RANDOM, GFUNC_IDLE, 0x0135, -1, 20, 20, 0x80882408, 0x00000000, 0x02, 0x00, -1, 3, 0x00000700) + weapon(0x0100, MODEL_CHRDRAGON, 0x004b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x4c, 0x013d, BODY_ALASKAN_GUARD, HEAD_RANDOM, GFUNC_IDLE, 0x0135, -1, 20, 20, 0x80882408, 0x00000000, 0x02, 0x00, -1, 3, 0x00000700) + weapon(0x0100, MODEL_CHRDRAGON, 0x004c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + tag(0x00, 1) + weapon(0x0180, MODEL_CHRBRIEFCASE, 0x0113, 0x00420001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUITCASE, 0x00ffffff, 0x00000000) + rename_object(-1, 0x4d, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x0000, 0x0000) // "Obtain suitcase." + tag(0x01, 1) + multimonitor(0x0099, MODEL_PD_CONSOLE, 0x0156, 0x000001a1, 0x00000001, 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, 0x03030000) + tag(0x02, 1) + weapon(0x0080, MODEL_STEWARDESS_TROLLEY, 0x00b6, 0x00000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DISGUISE41, 0x00ffffff, 0x00000000) + rename_object(-1, 0x41, 0x0e0f, 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0000, 0x0000) // "Obtain air stewardess uniform." + tag(0x06, 1) + stdobject(0x0100, MODEL_CHRBRIEFCASE, 0x00c4, 0x014204e1, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x42, 6) + tag(0x43, 6) + tag(0x48, 6) + tag(0x49, 6) + tag(0x20, 1) + lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x013f, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x013f, 0x013e, 0xffffffff, 0x00000001, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x15000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2A_G5, 0x019a, 0x10000400, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2A_G5, 0x019b, 0x10000400, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2A_G5, 0x0198, 0x10000400, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2A_G5, 0x0199, 0x10000400, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-4, -5, 0, 0) + link_objects(-4, -6, 0, 0) + link_objects(-4, -7, 0, 1) + link_objects(-4, -8, 0, 1) + tag(0x04, 1) + lift(0x0100, MODEL_BAGGAGECARRIER, 0x0144, 0x015204e8, 0x00304300, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0144, 0x0145, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x3b, 6) + tag(0x37, 3) + tag(0x36, 1) + lift(0x0100, MODEL_AIRBASE_LIFT_ANGLE, 0x0146, 0x235204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0146, 0x0147, 0xffffffff, 0x00000001, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000aaa, 0x00320000, 0x15000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2A_G5, 0x0184, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2A_G5, 0x0185, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2A_G5, 0x019d, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2A_G5, 0x019e, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-4, -5, 0, 0) + link_objects(-4, -6, 0, 0) + link_objects(-4, -7, 0, 1) + link_objects(-4, -8, 0, 1) + tag(0x3c, 10) + tag(0x3d, 10) + tag(0x3e, 10) + tag(0x3f, 10) + tag(0x40, 10) + tag(0x41, 10) + tag(0x38, 10) + tag(0x39, 10) + tag(0x21, 1) + lift(0x0100, MODEL_AIRBASE_LIFT_ENCLOSED, 0x0140, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0140, 0x0141, 0x01420143, 0x00000001, 0x00000003, 0x00000005, 0x00000007, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2A_G5, 0x0196, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2A_G5, 0x0197, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2A_G5, 0x0194, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2A_G5, 0x0195, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2A_G5, 0x0192, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2A_G5, 0x0193, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2A_G5, 0x0190, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2A_G5, 0x0191, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-8, -9, 0, 0) + link_objects(-8, -10, 0, 0) + link_objects(-8, -11, 0, 1) + link_objects(-8, -12, 0, 1) + link_objects(-8, -13, 0, 2) + link_objects(-8, -14, 0, 2) + link_objects(-8, -15, 0, 3) + link_objects(-8, -16, 0, 3) + tag(0x05, 1) + multimonitor(0x0099, MODEL_COMHUB, 0x0153, 0x00000102, 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(0x07, 17) + tag(0x08, 17) + tag(0x09, 17) + tag(0x0a, 17) + tag(0x0b, 17) + tag(0x0c, 17) + tag(0x0d, 17) + tag(0x0e, 17) + tag(0x0f, 17) + tag(0x10, 17) + tag(0x11, 17) + tag(0x12, 17) + tag(0x13, 17) + tag(0x14, 17) + tag(0x15, 17) + tag(0x16, 17) + tag(0x17, 17) + door(0x0100, MODEL_LASDOOR, 0x0168, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x0169, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x016a, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x016b, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x016c, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x016d, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x016e, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x016f, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x0170, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x0177, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x0171, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x0172, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x0173, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x0176, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x0174, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x0175, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x017a, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x017b, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x017c, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x0178, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x0179, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + stdobject(0x00e6, MODEL_A51_CRATE2, 0x0157, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00e6, MODEL_A51_CRATE2, 0x0158, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00e6, MODEL_A51_CRATE2, 0x0159, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00e6, MODEL_A51_CRATE2, 0x015a, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00e6, MODEL_A51_CRATE2, 0x015b, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00e6, MODEL_A51_CRATE2, 0x015c, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00e6, MODEL_A51_CRATE2, 0x015d, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00e6, MODEL_A51_CRATE2, 0x015e, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00e6, MODEL_A51_CRATE2, 0x015f, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00e6, MODEL_A51_CRATE2, 0x0160, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00e6, MODEL_A51_CRATE2, 0x0161, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00e6, MODEL_A51_CRATE2, 0x0162, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00e6, MODEL_A51_CRATE2, 0x0163, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00e6, MODEL_A51_CRATE2, 0x0164, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00e6, MODEL_A51_CRATE2, 0x0165, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00e6, MODEL_A51_CRATE2, 0x0166, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00e6, MODEL_A51_CRATE2, 0x0167, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x0180, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x017f, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x003b, 0x03520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + escalator(0x0100, MODEL_ESCA_STEP, 0x002d, 0x13520401, 0x00224300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x18, 1) + door(0x0100, MODEL_AF1_INNERDOOR, 0x0183, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2A_G5, 0x0186, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x35, 1) + door(0x0100, MODEL_AF1_INNERDOOR, 0x0187, 0x10000400, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000080, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x27, 1) + door(0x0100, MODEL_AF1_INNERDOOR, 0x018a, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x29, 1) + stdobject(0x0100, MODEL_AF1_INNERDOOR, 0x01a0, 0x800201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x28, 1) + door(0x0100, MODEL_AF1_INNERDOOR, 0x018e, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x2a, 1) + stdobject(0x0100, MODEL_AF1_INNERDOOR, 0x01a4, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + door(0x0100, MODEL_AF1_INNERDOOR, 0x018b, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x2d, 1) + door(0x0100, MODEL_AIRBASE_SAFEDOOR, 0x018c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x00000005, 0x00000080, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AF1_INNERDOOR, 0x018d, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AF1_INNERDOOR, 0x018f, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x19, 1) + multimonitor(0x0099, MODEL_COMHUB, 0x0154, 0x00000102, 0x00000001, 0x00000000, 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) + hover_vehicle(0x0080, MODEL_TESTERBOT, 0x01ba, 0xe0000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, 0x0000042e, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + hover_vehicle(0x0080, MODEL_HOOVERBOT, 0x01ba, 0xe0000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, 0x0000042f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + hover_vehicle(0x0080, MODEL_HOOVERBOT, 0x01c3, 0xe0000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, 0x00000431, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + hover_vehicle(0x004c, MODEL_TESTERBOT, 0x01c3, 0xe0000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, 0x00000432, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x03, 1) + weapon(0x0040, MODEL_SAFEITEM, 0x00d6, 0x00000008, 0x00000000, 0x00400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FLIGHTPLANS, 0x00ffffff, 0x00000000) + rename_object(-1, 0x42, 0x0e14, 0x0e15, 0x0e16, 0x0e17, 0x0e18, 0x0000, 0x0000) // "Obtain flight plans from safe." + tag(0x1f, 1) + lift(0x0100, MODEL_DD_LIFTDOOR, 0x0151, 0x035204e8, 0x00304300, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0151, 0x0150, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x01000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x1a, 1) + stdobject(0x0100, MODEL_LIGHTSWITCH2, 0x0155, 0x00420008, 0x00000800, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01ce, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01cf, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01d0, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01d1, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01d2, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01d4, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01d5, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01d6, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01d7, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x24, 1) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01d9, 0x000205e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x25, 1) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01dc, 0x000205e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01da, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01db, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x26, 1) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01dd, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01d3, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_PLANTRUBBER, 0x01de, 0x04000001, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_PLANTSPIDER, 0x01df, 0x04000001, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_PLANTSPIKE, 0x01e0, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_PLANTRUBBER, 0x01e1, 0x04000001, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_PLANTSPIDER, 0x01e2, 0x04000001, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_PLANTSPIKE, 0x01e3, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_PLANTRUBBER, 0x01e4, 0x04000001, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_PLANTSPIKE, 0x01e7, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01e8, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01e9, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01ea, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x23, 1) + door(0x0100, MODEL_DOOR2A_G5, 0x019c, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00000000, 0x00000002, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x22, 1) + stdobject(0x0100, MODEL_CABLE_CAR, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x2f, 1) + stdobject(0x0100, MODEL_BINOCULARS, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x01ec, 0x10000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640190, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x01ed, 0x10000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640190, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x01ee, 0x10000b62, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640190, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x01ef, 0x14000b62, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640190, 0x0000ffff, 0x00000000) + tag(0x46, 2) + tag(0x47, 2) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x01f0, 0x14000b62, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640190, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x01f1, 0x14000b62, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640190, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x01f2, 0x14000b62, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00640190, 0x0000ffff, 0x00000000) + tag(0x2b, 1) + weapon(0x0100, MODEL_CHRREMOTEMINE, 0x0111, 0x003004e8, 0x000a2001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REMOTEMINE, 0x00ffffff, 0x00000000) + tag(0x2e, 1) + stdobject(0x0100, MODEL_AIRFORCE1, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x45, 1) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x01eb, 0x14000b62, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00c80320, 0x0000ffff, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01f3, 0x04000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01f4, 0x04000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01f5, 0x04000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01f6, 0x04000262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01f7, 0x04000262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01f8, 0x04000262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01f9, 0x04000262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + door(0x0100, MODEL_SHUTTLEDOOR, 0x01a2, 0x10000000, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x0000f333, 0x0002c71c, 0x0002c71c, 0x00000888, 0x00140000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SHUTTLEDOOR, 0x01a3, 0x10000000, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x0000f333, 0x0002c71c, 0x0002c71c, 0x00000888, 0x000c0000, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x33, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x0011, 0x00004001, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000) + tag(0x34, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x00d6, 0x00100001, 0x000800c0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000) + tag(0x44, 1) + weapon(0x0080, MODEL_MULTI_AMMO_CRATE, 0x00b5, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PROXIMITYMINE, 0x00ffffff, 0x00000000) + endprops +}; + +u8 intro[] = { + spawn(0x011e) + intro_weapon(WEAPON_CROSSBOW, -1) + intro_weapon(WEAPON_HORIZONSCANNER, -1) + ammo(AMMOTYPE_CROSSBOW, 12) + ammo(AMMOTYPE_PROXY_MINE, 3) + ammo(AMMOTYPE_RIFLE, 30) + intro_weapon(WEAPON_CAMSPY, -1) + outfit(OUTFIT_SNOW) + endintro +}; + +s32 path06[] = { + 0x000e, + 0x000d, + 0x000d, + 0x000e, + 0x0012, + -1, +}; + +s32 path07[] = { + 0x002d, + 0x0031, + 0x002e, + 0x002f, + 0x0030, + 0x0031, + -1, +}; + +s32 path08[] = { + 0x004d, + 0x004f, + 0x004d, + 0x004c, + 0x003d, + 0x003e, + 0x003c, + 0x003e, + 0x003d, + 0x004c, + -1, +}; + +s32 path09[] = { + 0x005b, + 0x0053, + 0x0051, + 0x0052, + 0x0054, + 0x0053, + -1, +}; + +s32 path10[] = { + 0x0041, + 0x0042, + 0x0043, + 0x0044, + 0x0045, + 0x0044, + 0x0043, + 0x0042, + -1, +}; + +s32 path11[] = { + 0x008e, + 0x008d, + 0x008c, + 0x008d, + -1, +}; + +s32 path12[] = { + 0x0095, + 0x0090, + 0x008f, + 0x008e, + 0x008f, + 0x0090, + -1, +}; + +s32 path13[] = { + 0x0099, + 0x0098, + 0x0097, + 0x0096, + 0x0095, + 0x0096, + 0x0097, + 0x0098, + -1, +}; + +s32 path14[] = { + 0x0030, + 0x002c, + 0x0039, + 0x002c, + -1, +}; + +s32 path15[] = { + 0x0019, + 0x0012, + -1, +}; + +s32 path00[] = { + 0x01ba, + 0x01bb, + 0x01bc, + 0x01bd, + 0x01bd, + -1, +}; + +s32 path01[] = { + 0x01ba, + 0x01be, + 0x01bf, + 0x01c0, + 0x01ba, + -1, +}; + +s32 path02[] = { + 0x01ba, + 0x01c1, + 0x01c2, + 0x01be, + 0x01ba, + -1, +}; + +s32 path03[] = { + 0x01c3, + 0x01c4, + 0x01c5, + 0x01c6, + 0x01c3, + -1, +}; + +s32 path04[] = { + 0x01c3, + 0x01c7, + 0x01c8, + 0x01c9, + 0x01c3, + -1, +}; + +s32 path05[] = { + 0x01c3, + 0x01ca, + 0x01cb, + 0x01cc, + 0x01c3, + -1, +}; + +s32 unregistered_path1[] = { + 0x003b, + 0x003e, + 0x003d, + 0x004c, + 0x004d, + 0x004f, + 0x0050, + 0x004e, + 0x004d, + 0x004c, + 0x003d, + 0x003e, + 0x003b, + 0x003b, + -1, +}; + +struct aipaths paths[] = { + { path06, 6, 0 }, + { path07, 7, 0 }, + { path08, 8, 0 }, + { path09, 9, 0 }, + { path10, 10, 0 }, + { path11, 11, 0 }, + { path12, 12, 0 }, + { path13, 13, 0 }, + { path14, 14, 0 }, + { path15, 15, 0 }, + { path00, 0, 0 }, + { path01, 1, 0 }, + { path02, 2, 0 }, + { path03, 3, 0 }, + { path04, 4, 0 }, + { path05, 5, 0 }, + { NULL, 0, 0 }, +}; + +u8 func1002_objectives_failed_msg[] = { + yield + give_object_to_chr(OBJ_UNIFORM, CHR_STEWARDESS) + set_chr_flag_bank3(0x00, CHRFLAG3_04000000) + set_chr_flag_bank3(0x01, CHRFLAG3_04000000) + set_chr_flag_bank3(0x02, CHRFLAG3_04000000) + set_chr_flag_bank3(0x03, CHRFLAG3_04000000) + set_chr_flag_bank3(0x04, CHRFLAG3_04000000) + set_chr_flag_bank3(0x05, CHRFLAG3_04000000) + set_chr_flag_bank3(0x06, CHRFLAG3_04000000) + set_chr_flag_bank3(0x07, CHRFLAG3_04000000) + set_chr_flag_bank3(0x08, CHRFLAG3_04000000) + set_chr_flag_bank3(0x09, CHRFLAG3_04000000) + set_chr_flag_bank3(0x0a, CHRFLAG3_04000000) + set_chr_flag_bank3(0x0b, CHRFLAG3_04000000) + set_chr_flag_bank3(0x0c, CHRFLAG3_04000000) + set_chr_flag_bank3(0x0d, CHRFLAG3_04000000) + set_chr_flag_bank3(0x0e, CHRFLAG3_04000000) + set_chr_flag_bank3(0x0f, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_STEWARDESS, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_SECRETARY, CHRFLAG3_04000000) + set_chr_flag_bank3(0x3a, CHRFLAG3_04000000) + set_chr_flag_bank3(0x3b, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_OFFICE1, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_OFFICE2, CHRFLAG3_04000000) + set_chr_flag_bank3(0x44, CHRFLAG3_04000000) + set_chr_flag_bank3(0x45, CHRFLAG3_04000000) + set_chr_flag_bank3(0x46, CHRFLAG3_04000000) + set_function(CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG) + endfunction +}; + +u8 func1000_rebuild_groups[] = { + set_function(CHR_SELF, GFUNC_REBUILD_GROUPS) + endfunction +}; + +u8 func1401_setup_counterop[] = { + yield + set_chr_alliance(CHR_COUNTEROP, 0x04) + set_function(CHR_SELF, GFUNC_REBUILD_GROUPS) + endfunction +}; + +u8 unregistered_function1[] = { + set_return_function(CHR_SELF, GFUNC_END_CINEMA) + set_function(CHR_SELF, 0x0401) + endfunction +}; + +/** + * @unused + */ +u8 func0401_unused_cutscene[] = { + chr_draw_weapon_in_cutscene(CHR_JOANNA, WEAPON_FALCON2) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_music_track(MUSIC_AIRBASE_OUTRO_LONG) + camera_movement(0x016b) + cmd0175(60) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x0170, -1, -1, 0x0600, CHR_JOANNA, 4) + set_chr_hud_visible(CHR_JOANNA, TRUE) + set_chr_flag_bank3(0x00, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x00, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(0x00, CHRFLAG2_00020000) + animation(0x016c, -1, -1, 0x0600, 0x00, 4) + set_chr_flag_bank3(0x01, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x01, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(0x01, CHRFLAG2_00020000) + animation(0x016d, -1, -1, 0x0600, 0x01, 4) + set_chr_flag_bank3(0x02, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x02, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(0x02, CHRFLAG2_00020000) + animation(0x016e, -1, -1, 0x0600, 0x02, 4) + set_chr_flag_bank3(CHR_STEWARDESS, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_STEWARDESS, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_STEWARDESS, CHRFLAG2_00020000) + animation(0x016f, -1, -1, 0x0600, CHR_STEWARDESS, 4) + fade_to_color(0x000000ff, 0) + fade_to_color(0x00000000, 90) + set_cutscene_weapon(CHR_JOANNA, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_JOANNA, WEAPON_NONE, WEAPON_NONE) + + beginloop(0x04) + if_camera_animating(/*goto*/ 0x31) + goto_next(0x48) + + label(0x31) + if_controller_button_pressed(/*goto*/ 0x48) + label(0x31) + endloop(0x04) + + label(0x48) + label(0x02) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_function(0x00, 0x0405) + set_function(0x01, 0x0405) + remove_chr(0x02) + set_function(CHR_STEWARDESS, 0x040b) + restart_default_music + reset_ambience + set_function(CHR_SELF, GFUNC_END_CINEMA) + endfunction +}; + +u8 func0425_outro[] = { + fade_to_color(0x000000ff, 0) + fade_to_color(0x00000000, 110) + camera_movement(0x031a) + set_music_track(MUSIC_AIRBASE_OUTRO) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0xf1, CHRFLAG3_HIDDEN) + set_function(CHR_P1P2, GFUNC_IDLE) + unset_chr_flag_bank3(CHR_P1P2, CHRFLAG3_HIDDEN) + + set_chr_flag_bank3(CHR_OUTRO_NSA, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_OUTRO_NSA, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_OUTRO_NSA, CHRFLAG2_00020000) + animation(0x031b, -1, -1, 0x0600, CHR_OUTRO_NSA, 4) + + show_object(OBJ_PLANE) + set_object_flag_bank1(OBJ_PLANE, OBJECTFLAG1_04000000) + set_object_flag_bank2(OBJ_PLANE, OBJECTFLAG2_00000010) + object_do_animation(0x031c, OBJ_PLANE, 0x04ff, 0xff) + + set_cutscene_weapon(CHR_P1P2, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_P1P2, WEAPON_NONE, WEAPON_NONE) + show_nonessential_chrs(FALSE) + restart_timer + + #define wait_until(time, loopid) \ + beginloop(loopid) \ + if_controller_button_pressed(/*goto*/ 0x48) \ + if_timer_gt(time, /*goto*/ 0x02) \ + endloop(loopid) \ + label(0x02) + + + + wait_until(38, 0x92) + play_sound(0x80c4, CHANNEL_10) + + wait_until(84, 0x93) + play_sound(0x80c5, CHANNEL_10) + + wait_until(130, 0x94) + play_sound(0x80c6, CHANNEL_10) + + wait_until(176, 0x95) + play_sound(0x80c7, CHANNEL_10) + + wait_until(220, 0x96) + play_sound(0x80c4, CHANNEL_10) + + wait_until(274, 0x97) + play_sound(0x80c5, CHANNEL_10) + + wait_until(320, 0x98) + play_sound(0x80c6, CHANNEL_10) + + wait_until(365, 0x99) + play_sound(0x80c7, CHANNEL_10) + + beginloop(0x04) + if_camera_animating(/*goto*/ 0x31) + goto_next(0x48) + + label(0x31) + if_controller_button_pressed(/*goto*/ 0x48) + label(0x31) + endloop(0x04) + + label(0x48) + mute_channel(CHANNEL_10) + label(0x02) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + hide_object(OBJ_PLANE) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0402_init_stripes[] = { + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_HIDDEN) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1004_guard_activation[] = { + set_object_flag_bank0(0x29, OBJECTFLAG0_INVINCIBLE) + set_object_flag_bank1(0x29, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank0(0x29, OBJECTFLAG0_00000100) + set_object_flag_bank0(0x2a, OBJECTFLAG0_INVINCIBLE) + set_object_flag_bank1(0x2a, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank0(0x2a, OBJECTFLAG0_00000100) + set_object_flag_bank1(OBJ_REMOTEMINE, OBJECTFLAG1_00020000) + set_object_flag_bank0(OBJ_REMOTEMINE, OBJECTFLAG0_INVINCIBLE) + set_object_flag_bank1(OBJ_REMOTEMINE, OBJECTFLAG1_INVISIBLE) + yield + yield + hide_chr(0x13) + hide_chr(0x15) + hide_chr(0x17) + hide_chr(0x19) + hide_chr(0x1b) + hide_chr(0x1d) + hide_chr(0x1f) + hide_chr(0x21) + hide_chr(0x23) + hide_chr(0x25) + hide_chr(0x27) + hide_chr(0x2a) + hide_chr(0x2c) + hide_chr(0x2e) + hide_chr(0x30) + hide_chr(0x32) + hide_chr(0x34) + hide_chr(0x36) + hide_chr(0x42) + hide_chr(0x43) + hide_chr(0x14) + hide_chr(0x16) + hide_chr(0x18) + hide_chr(0x1a) + hide_chr(0x1c) + hide_chr(0x1e) + hide_chr(0x20) + hide_chr(0x22) + hide_chr(0x24) + hide_chr(0x26) + hide_chr(0x28) + hide_chr(0x2b) + hide_chr(0x2d) + hide_chr(0x2f) + hide_chr(0x31) + hide_chr(0x33) + hide_chr(0x35) + hide_chr(0x37) + + beginloop(0x00) + if_stage_flag_eq(STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x02) + endloop(0x00) + + label(0x02) + hide_object(0x27) + hide_object(0x28) + unset_object_flag_bank0(0x29, OBJECTFLAG0_INVINCIBLE) + unset_object_flag_bank1(0x29, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank0(0x29, OBJECTFLAG0_00000100) + unset_object_flag_bank0(0x2a, OBJECTFLAG0_INVINCIBLE) + unset_object_flag_bank1(0x2a, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank0(0x2a, OBJECTFLAG0_00000100) + + #define remove_alaskan_guard(chr) \ + set_chr_flag_bankx(chr, CHRFLAG1_WARNED, BANK_1) \ + set_function(chr, FUNC_REMOVE_OR_UNALERT) \ + set_chr_flag_bankx(chr, CHRFLAG0_AIVSAI, BANK_0) \ + yield + + + + remove_alaskan_guard(0x00) + remove_alaskan_guard(0x01) + remove_alaskan_guard(0x02) + remove_alaskan_guard(0x03) + remove_alaskan_guard(0x04) + remove_alaskan_guard(0x05) + remove_alaskan_guard(0x06) + remove_alaskan_guard(0x07) + remove_alaskan_guard(0x08) + remove_alaskan_guard(0x09) + remove_alaskan_guard(0x0a) + remove_alaskan_guard(0x0b) + remove_alaskan_guard(0x0d) + remove_alaskan_guard(0x0e) + remove_alaskan_guard(0x0f) + + set_function(CHR_SECRETARY, FUNC_REMOVE_OR_COWER) + set_function(CHR_STEWARDESS, FUNC_REMOVE_OR_COWER) + set_function(CHR_OFFICE1, FUNC_REMOVE_OR_COWER) + set_function(CHR_OFFICE2, FUNC_REMOVE_OR_COWER) + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + set_function(0x10, FUNC_INIT_POSTTAKEOVER_GUARD) + set_function(0x11, FUNC_INIT_POSTTAKEOVER_GUARD) + + #define enable_takeover_guard2(chr, function) \ + show_chr(chr) \ + set_function(chr, function) \ + unset_chr_flag_bank2(chr, CHRFLAG2_40000000) \ + unset_chr_flag_bank3(chr, CHRFLAG3_HIDDEN) \ + yield + + + + enable_takeover_guard2(0x15, FUNC_INIT_POSTTAKEOVER_GUARD) + enable_takeover_guard2(0x17, FUNC_INIT_POSTTAKEOVER_GUARD) + enable_takeover_guard2(0x21, FUNC_INIT_POSTTAKEOVER_GUARD) + enable_takeover_guard2(0x23, FUNC_INIT_POSTTAKEOVER_GUARD) + enable_takeover_guard2(0x25, FUNC_INIT_POSTTAKEOVER_GUARD) + enable_takeover_guard2(0x27, 0x0423) + enable_takeover_guard2(0x2a, FUNC_INIT_POSTTAKEOVER_GUARD) + enable_takeover_guard2(0x2c, FUNC_INIT_POSTTAKEOVER_GUARD) + enable_takeover_guard2(0x2e, FUNC_INIT_POSTTAKEOVER_GUARD) + enable_takeover_guard2(0x30, FUNC_INIT_POSTTAKEOVER_GUARD) + enable_takeover_guard2(0x32, FUNC_INIT_POSTTAKEOVER_GUARD) + enable_takeover_guard2(0x34, FUNC_INIT_POSTTAKEOVER_GUARD) + enable_takeover_guard2(0x36, FUNC_INIT_POSTTAKEOVER_GUARD) + + show_chr(0x42) + set_function(0x42, FUNC_FOYER_SPAWNER) + yield + + show_chr(0x43) + set_function(0x43, FUNC_FOYER_SPAWNER) + yield + + enable_takeover_guard2(0x22, FUNC_INIT_POSTTAKEOVER_GUARD) + enable_takeover_guard2(0x24, FUNC_INIT_POSTTAKEOVER_GUARD) + enable_takeover_guard2(0x26, FUNC_INIT_POSTTAKEOVER_GUARD) + enable_takeover_guard2(0x28, FUNC_INIT_POSTTAKEOVER_GUARD) + enable_takeover_guard2(0x2b, FUNC_INIT_POSTTAKEOVER_GUARD) + enable_takeover_guard2(0x2d, FUNC_INIT_POSTTAKEOVER_GUARD) + enable_takeover_guard2(0x2f, FUNC_INIT_POSTTAKEOVER_GUARD) + enable_takeover_guard2(0x31, FUNC_INIT_POSTTAKEOVER_GUARD) + enable_takeover_guard2(0x33, FUNC_INIT_POSTTAKEOVER_GUARD) + enable_takeover_guard2(0x35, FUNC_INIT_POSTTAKEOVER_GUARD) + enable_takeover_guard2(0x37, FUNC_INIT_POSTTAKEOVER_GUARD) + + set_function(0x10, FUNC_DRAW_MAGNUM) + set_function(0x11, FUNC_DRAW_MAGNUM) + unset_object_flag_bank0(0x2b, OBJECTFLAG0_INVINCIBLE) + unset_object_flag_bank1(0x2b, OBJECTFLAG1_INVISIBLE) + + beginloop(0x6d) + if_chr_y(CHR_P1P2, -2000, OPERATOR_LESS_THAN, /*goto*/ 0x02) + endloop(0x6d) + + #define enable_bottom_guard(chr) \ + show_chr(chr) \ + set_function(chr, FUNC_INIT_POSTTAKEOVER_GUARD) \ + unset_chr_flag_bank2(chr, CHRFLAG2_40000000) \ + unset_chr_flag_bank3(chr, CHRFLAG3_HIDDEN) \ + yield + + + + label(0x02) + enable_bottom_guard(0x13) + enable_bottom_guard(0x14) + enable_bottom_guard(0x16) + enable_bottom_guard(0x18) + enable_bottom_guard(0x1a) + enable_bottom_guard(0x1c) + enable_bottom_guard(0x1f) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0405_start_path15[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(12) + set_reaction_speed(70) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + restart_timer + + beginloop(0x05) + if_timer_gt(120, /*goto*/ 0x02) + endloop(0x05) + + label(0x02) + assign_path(15) + start_path + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +/** + * Assigned to the stewardess from another unused function. + */ +u8 func040b_unused[] = { + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, 0x040b) + endfunction +}; + +u8 func0407_stewardess[] = { + set_onshot_function(FUNC_STEWARDESS) + if_chr_dying(CHR_SELF, /*goto*/ 0x02) + if_chr_dying(CHR_SELF, /*goto*/ 0x02) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x02) + goto_next(0x31) + + label(0x02) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x31) + if_just_injured(CHR_SELF, /*goto*/ 0x02) + goto_next(0x4c) + + // Injured + label(0x02) + restart_timer + + beginloop(0x4d) + if_stage_flag_eq(STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE, TRUE, /*goto*/ 0x75) + if_chr_distance_gt(200, /*goto*/ 0x75) + set_stage_flag(STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE) + label(0x75) + if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x02) + if_num_times_shot_lt(1, /*goto*/ 0x02) + if_timer_lt(20, /*goto*/ 0x02) + say_quip(CHR_JOANNA, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00) + say_quip(CHR_JOANNA, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00) + set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0) + label(0x02) + if_chr_stopped(/*goto*/ 0x4c) + endloop(0x4d) + + // Not injured, or recovered + label(0x4c) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x02) + goto_next(0x16) + + label(0x02) + set_function(CHR_SELF, GFUNC_IDLE) + + restart_timer + + beginloop(0x11) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_stage_flag_eq(STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE, TRUE, /*goto*/ 0x75) + if_chr_distance_gt(200, /*goto*/ 0x75) + set_stage_flag(STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE) + label(0x75) + if_self_flag_bankx_eq(CHRFLAG0_CAN_EXAMINE_BODY, FALSE, BANK_0, /*goto*/ 0x31) + if_saw_death(0x00, /*goto*/ 0x0f) + label(0x31) + if_chr_distance_gt(500, /*goto*/ 0x31) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x04) + label(0x31) + if_player_looking_at_something_maybe(0x00, 0x00, 0x01, /*goto*/ 0x02) + if_target_chr_in_sight(/*goto*/ 0x04) + label(0x02) + if_timer_gt(120, /*goto*/ 0x16) + endloop(0x11) + + // Loaded + label(0x16) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x31) + walk_to_pad(0x0012) // outside front door + goto_next(0x00) + + label(0x31) + walk_to_pad(0x0026) // top of escalators + + // Walking + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_stage_flag_eq(STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE, TRUE, /*goto*/ 0x75) + if_chr_distance_gt(200, /*goto*/ 0x75) + set_stage_flag(STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE) + label(0x75) + if_self_flag_bankx_eq(CHRFLAG0_CAN_EXAMINE_BODY, FALSE, BANK_0, /*goto*/ 0x31) + if_saw_death(0x00, /*goto*/ 0x0f) + label(0x31) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x04) + if_player_looking_at_something_maybe(0x00, 0x00, 0x01, /*goto*/ 0x02) + if_target_chr_in_sight(/*goto*/ 0x04) + label(0x02) + if_chr_stopped(/*goto*/ 0x0b) + endloop(0x00) + + // Saw player + label(0x04) + restart_timer + try_face_entity(0x0200, 0x0000, /*goto*/ 0x05) + + beginloop(0x05) + if_angle_to_target_chr_lt(10, /*goto*/ 0x02) + if_timer_gt(60, /*goto*/ 0x02) + endloop(0x05) + + label(0x02) + speak(TARGET_CHR, 0x0e19, 0x1adc, CHANNEL_4, COLOR_07_RED) // "Look out - it's an intruder..." + set_group_alertness(100) + animation(ANIM_SURRENDER_002E, 0, 193, 0x1010, CHR_SELF, 2) + + beginloop(0x06) + if_chr_stopped(/*goto*/ 0x02) + endloop(0x06) + + label(0x02) + jog_to_pad(0x001d) // alcove in foyer + + beginloop(0x07) + if_chr_stopped(/*goto*/ 0x0b) + endloop(0x07) + + label(0x0b) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x31) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + animation(ANIM_SNEEZE, 0, -1, 0x1010, CHR_SELF, 2) + + beginloop(0x69) + if_chr_stopped(/*goto*/ 0x02) + endloop(0x69) + + label(0x02) + goto_first(0x16) + + label(0x31) + set_stage_flag(STAGEFLAG_STEWARDESS_ENTERED_BASE) + + label(0x62) + set_stage_flag(STAGEFLAG_DISGUISE_UNCOVERED) + animation(ANIM_COWER_0229, -1, 190, 0x100a, CHR_SELF, 2) + + beginloop(0x63) + if_chr_stopped(/*goto*/ 0x31) + endloop(0x63) + + label(0x31) + goto_first(0x62) + + label(0x0f) + chr_try_run_to_target_chr_with_hand_up(0xfb, /*goto*/ 0x49) + dprint 'W','A','L','K','F','A','I','L','\n',0, + + beginloop(0x49) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_stage_flag_eq(STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE, TRUE, /*goto*/ 0x75) + if_chr_distance_gt(200, /*goto*/ 0x75) + set_stage_flag(STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE) + label(0x75) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x4e) + dprint 'W','A','L','K','I','N','G','\n',0, + if_player_looking_at_something_maybe(0x00, 0x00, 0x01, /*goto*/ 0x31) + if_target_chr_in_sight(/*goto*/ 0x02) + label(0x31) + if_self_distance_to_chr_lt(200, 0xfb, /*goto*/ 0x4a) + if_chr_stopped(/*goto*/ 0x4a) + endloop(0x49) + + label(0x4a) + unset_self_flag_bankx(CHRFLAG0_CAN_EXAMINE_BODY, BANK_0) + speak(TARGET_CHR, 0x0e1b, 0x1add, CHANNEL_4, COLOR_07_RED) // "Is he OK?" + stop_chr + restart_timer + + beginloop(0x4b) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_stage_flag_eq(STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE, TRUE, /*goto*/ 0x75) + if_chr_distance_gt(200, /*goto*/ 0x75) + set_stage_flag(STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE) + label(0x75) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x4e) + if_timer_gt(240, /*goto*/ 0x02) + endloop(0x4b) + + label(0x02) + speak(TARGET_CHR, 0x0e1c, 0x1ade, CHANNEL_4, COLOR_07_RED) // "I'll go and get some help." + restart_timer + stop_chr + + beginloop(0x10) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_stage_flag_eq(STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE, TRUE, /*goto*/ 0x75) + if_chr_distance_gt(200, /*goto*/ 0x75) + set_stage_flag(STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE) + label(0x75) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x4e) + if_timer_gt(120, /*goto*/ 0x02) + endloop(0x10) + + label(0x02) + unset_self_flag_bankx(CHRFLAG0_CAN_EXAMINE_BODY, BANK_0) + jog_to_pad(0x0026) + goto_first(0x00) + + label(0x4e) + goto_first(0x04) + + endfunction +}; + +u8 func0406_become_unalerted[] = { + set_self_flag_bank3(CHRFLAG3_00000040) + label(0x00) + yield + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x02) + set_function(CHR_SELF, GFUNC_UNALERTED) + + label(0x02) + if_chr_lost_track_of_target_maybe(/*goto*/ 0x02) + if_chr_dying(TARGET_CHR, /*goto*/ 0x02) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0x02) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0x02) + set_onshot_function(FUNC_BECOME_UNALERTED) + set_return_function(CHR_SELF, FUNC_BECOME_UNALERTED) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + + label(0x02) + set_function(CHR_SELF, GFUNC_UNALERTED) + set_return_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func1005_check_civilians_killed[] = { + beginloop(0x00) + if_stage_flag_eq(STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x02) + if_chr_dying(CHR_STEWARDESS, /*goto*/ 0x31) + if_chr_dying(CHR_SECRETARY, /*goto*/ 0x31) + if_chr_dying(CHR_OFFICE1, /*goto*/ 0x31) + if_chr_dying(CHR_OFFICE2, /*goto*/ 0x31) + endloop(0x00) + + label(0x31) + message(CHR_JOANNA, 0x0e1a) // "Innocent civilians have been killed." + set_stage_flag(STAGEFLAG_CIVILIANS_KILLED) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x02) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +#define init_path(reaction, health, armor, recovery, pathid) \ + set_accuracy(12) \ + set_reaction_speed(reaction) \ + set_chr_health(CHR_SELF, health) \ + set_armor(armor) \ + set_recovery_speed(recovery) \ + set_shield(0) \ + assign_path(pathid) \ + start_path \ + set_function(CHR_SELF, GFUNC_UNALERTED) + + + +u8 func041b_start_path06[] = { + init_path(70, 40, 0, 0, 0x06) + endfunction +}; + +u8 func041c_start_path07[] = { + init_path(70, 40, 0, 0, 0x07) + endfunction +}; + +u8 func041d_start_path08[] = { + init_path(70, 40, 0, 0, 0x08) + endfunction +}; + +u8 func041e_start_path09[] = { + init_path(70, 40, 0, 0, 0x09) + endfunction +}; + +u8 func041f_start_path10[] = { + init_path(70, 40, 0, 0, 0x0a) + endfunction +}; + +u8 func0420_start_path11[] = { + init_path(45, 60, 40, 30, 0x0b) + endfunction +}; + +u8 func0421_start_path12[] = { + init_path(45, 60, 40, 30, 0x0c) + endfunction +}; + +/** + * Assigned to a stripes guard near the plane. + */ +u8 func0422_start_path13[] = { + set_chr_alliance(CHR_SELF, 0x04) + set_accuracy(12) + set_reaction_speed(45) + set_chr_health(CHR_SELF, 60) + set_armor(40) + set_recovery_speed(30) + set_shield(0) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + assign_path(13) + start_path + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func0423_start_path14[] = { + set_chr_alliance(CHR_SELF, 0x04) + set_accuracy(12) + set_reaction_speed(45) + set_chr_health(CHR_SELF, 60) + set_armor(40) + set_recovery_speed(30) + set_shield(0) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + assign_path(14) + start_path + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func0424_start_path15_unused[] = { + set_accuracy(12) + set_reaction_speed(45) + set_chr_health(CHR_SELF, 60) + set_armor(40) + set_recovery_speed(30) + set_shield(0) + assign_path(15) + start_path + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func040c_init_secretary[] = { + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, FUNC_SECRETARY) + endfunction +}; + +/** + * The secretary uses var_a to track things. + * + * 0 = Not done anything + * 1 = Not used + * 2 = Said "good afternoon" + * 3 = Said "you'll have to check that weapon" + * 4 = Said "weapons are not allowed" + */ +u8 func0408_secretary[] = { + set_onshot_function(FUNC_SECRETARY) + set_var_a(0) + if_chr_dying(CHR_SELF, /*goto*/ 0x02) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x02) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x02) + goto_next(0x00) + + label(0x02) + set_function(CHR_SELF, GFUNC_IDLE) +#define LABEL_MAIN_LOOP 0x00 +#define LABEL_BECOME_ALERT1 0x66 +#define LABEL_BECOME_ALERT2 0x68 + + // + // MAIN LOOP + // + beginloop(LABEL_MAIN_LOOP) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + set_view_distance(100) + if_shot_near_chr(0x00, /*goto*/ LABEL_BECOME_ALERT1) + if_saw_death(0x00, /*goto*/ LABEL_BECOME_ALERT1) + set_view_distance(14) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ LABEL_BECOME_ALERT1) + if_target_chr_in_sight(/*goto*/ 0x02) + if_alarm_active2(/*goto*/ 0x67) + endloop(LABEL_MAIN_LOOP) + + // Joanna within 14 units (?) of distance + label(0x02) + restart_timer + try_face_entity(0x0200, 0x0000, /*goto*/ 0x05) + + beginloop(0x05) + if_angle_to_target_chr_lt(10, /*goto*/ 0x02) + if_timer_gt(60, /*goto*/ 0x02) + endloop(0x05) + + label(0x02) + if_stage_flag_eq(STAGEFLAG_DISGUISED, TRUE, /*goto*/ 0x07) + + // + // BECOMING ALERT + // + label(LABEL_BECOME_ALERT1) + mute_channel(CHANNEL_4) + yield + label(0x02) + speak(TARGET_CHR, 0x0e20, 0x8162, CHANNEL_4, COLOR_06_WHITE) // "Oh, my God!" + + label(0x67) + set_group_alertness(100) + restart_timer + animation(ANIM_SURRENDER_002E, 0, 193, 0x1810, CHR_SELF, 2) + + beginloop(0x06) + if_chr_stopped(/*goto*/ 0x4f) + endloop(0x06) + + label(0x4f) + set_stage_flag(STAGEFLAG_DISGUISE_UNCOVERED) + animation(ANIM_COWER_0229, -1, -1, 0x100a, CHR_SELF, 2) + + beginloop(0x0f) + if_chr_stopped(/*goto*/ 0x31) + endloop(0x0f) + + label(0x31) + if_stage_flag_eq(STAGEFLAG_RECEPTIONIST_CALLED_SECURITY, TRUE, /*goto*/ 0x31) + goto_next(0x77) + + label(0x31) + goto_first(0x4f) + + // Unreachable + set_function(CHR_SELF, GFUNC_IDLE) + + // Seen Jo while disguised + label(0x07) + if_var_a_lt(2, /*goto*/ 0x32) + goto_next(0x02) + + // + // FIRST TALK + // + label(0x32) + speak(TARGET_CHR, 0x0e1d, 0x8161, CHANNEL_4, COLOR_06_WHITE) // "Good afternoon." + animation(ANIM_TALKING_0231, 0, 193, 0x1810, CHR_SELF, 2) + restart_timer + set_var_a(2) + + beginloop(0x08) + if_shot_near_chr(0x00, /*goto*/ LABEL_BECOME_ALERT2) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ LABEL_BECOME_ALERT2) + if_timer_gt(60, /*goto*/ 0x02) + if_chr_sees_player(/*goto*/ 0x31) + goto_first(LABEL_MAIN_LOOP) + + label(0x31) + endloop(0x08) + + // + // SECOND TALK/WEAPON CHECK + // + label(0x02) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_NONE, /*goto*/ 0x0c) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x0c) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_HORIZONSCANNER, /*goto*/ 0x0c) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_SUITCASE, /*goto*/ 0x0c) + if_var_a_lt(3, /*goto*/ 0x32) + goto_next(0x02) + + // + // WEAPON TALK 1 + // + label(0x32) + speak(TARGET_CHR, 0x0e1f, 0x1273, CHANNEL_4, COLOR_06_WHITE) // "You'll have to check that weapon in here." + restart_timer + animation(ANIM_TALKING_0232, 0, 193, 0x1810, CHR_SELF, 2) + set_var_a(3) + + beginloop(0x09) + if_shot_near_chr(0x00, /*goto*/ LABEL_BECOME_ALERT2) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ LABEL_BECOME_ALERT2) + if_timer_gt(400, /*goto*/ 0x02) + if_chr_sees_player(/*goto*/ 0x31) + goto_first(LABEL_MAIN_LOOP) + + label(0x31) + endloop(0x09) + + // 6.66 seconds since weapon talk + label(0x02) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_NONE, /*goto*/ 0x31) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x31) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_HORIZONSCANNER, /*goto*/ 0x31) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_SUITCASE, /*goto*/ 0x31) + if_var_a_lt(4, /*goto*/ 0x32) + goto_next(0x02) + + label(0x32) + speak(TARGET_CHR, 0x0e21, 0x1274, CHANNEL_4, COLOR_06_WHITE) // "Weapons are not allowed in the base." + restart_timer + animation(ANIM_TALKING_0233, 0, 193, 0x1810, CHR_SELF, 2) + set_var_a(4) + + beginloop(0x0a) + if_shot_near_chr(0x00, /*goto*/ LABEL_BECOME_ALERT2) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ LABEL_BECOME_ALERT2) + if_timer_gt(400, /*goto*/ 0x0c) + if_chr_sees_player(/*goto*/ 0x31) + goto_first(LABEL_MAIN_LOOP) + + label(0x31) + endloop(0x0a) + + // Wait 1.5 seconds, check weapon equipped and call security if so + label(0x0c) + restart_timer + + beginloop(0x0d) + if_timer_gt(90, /*goto*/ 0x31) + endloop(0x0d) + + label(0x31) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_NONE, /*goto*/ 0x31) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x31) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_HORIZONSCANNER, /*goto*/ 0x31) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_SUITCASE, /*goto*/ 0x31) + + // Calling security + label(0x77) + speak(TARGET_CHR, 0x0e22, 0x1276, CHANNEL_4, COLOR_06_WHITE) // "Right, I'm calling security." + set_stage_flag(STAGEFLAG_RECEPTIONIST_CALLED_SECURITY) + activate_alarm + restart_timer + animation(ANIM_SURRENDER_002E, 0, 193, 0x1810, CHR_SELF, 2) + + beginloop(0x0b) + if_timer_gt(180, /*goto*/ 0x02) + endloop(0x0b) + + label(0x02) + goto_first(0x4f) + + // Unreachable + set_function(CHR_SELF, GFUNC_IDLE) + + // + // TALK 2 + // + label(0x31) + speak(TARGET_CHR, 0x0e1e, 0x1272, CHANNEL_4, COLOR_06_WHITE) // "OK, you know the way from here." + animation(0x0232, 0, 193, 0x1810, CHR_SELF, 2) + unlock_door(0x18, 0x02) + + beginloop(0x0e) + if_shot_near_chr(0x00, /*goto*/ LABEL_BECOME_ALERT2) + if_saw_death(0x00, /*goto*/ LABEL_BECOME_ALERT2) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ LABEL_BECOME_ALERT2) + endloop(0x0e) + + label(0x02) + set_function(CHR_SELF, GFUNC_IDLE) + + label(LABEL_BECOME_ALERT2) + goto_first(LABEL_BECOME_ALERT1) + + endfunction +}; + +u8 unregistered_function2[] = { + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_flag_bank2(CHR_P1P2, CHRFLAG2_DISGUISED, /*goto*/ 0x02) + endloop(0x00) + + label(0x02) + if_stage_flag_eq(STAGEFLAG_DISGUISE_UNCOVERED, TRUE, /*goto*/ 0x02) + if_stage_flag_eq(STAGEFLAG_RECEPTIONIST_CALLED_SECURITY, TRUE, /*goto*/ 0x02) + set_stage_flag(STAGEFLAG_DISGUISED) + + label(0x02) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1007_console_activation[] = { + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + if_object_in_good_condition(OBJ_CONSOLE, /*goto*/ 0x31) + goto_next(0x0c) + + label(0x31) + if_chr_activated_object(CHR_P1P2, OBJ_CONSOLE, /*goto*/ 0x02) + endloop(0x00) + + label(0x02) + set_stage_flag(STAGEFLAG_CONSOLE_ACTIVATED) + set_object_image(OBJ_CONSOLE, 0x00, 0x0f) + set_object_image(OBJ_CONSOLE, 0x01, 0x0f) + set_chr_flag_bankx(0x12, CHRFLAG0_00002000, BANK_0) + message(CHR_P1P2, 0x0e23) // "System shutdown initiated..." + mute_channel(CHANNEL_1) + assign_sound(0x01b9, CHANNEL_1) + control_sound_from_object(CHANNEL_1, OBJ_CONSOLE, TRUE) + restart_timer + + beginloop(0x04) + if_object_in_good_condition(OBJ_CONSOLE, /*goto*/ 0x31) + goto_next(0x0c) + + label(0x31) + if_timer_gt(120, /*goto*/ 0x02) + endloop(0x04) + + label(0x02) + set_object_image(OBJ_CONSOLE, 0x00, 0x14) + mute_channel(CHANNEL_1) + assign_sound(0x0479, CHANNEL_1) + control_sound_from_object(CHANNEL_1, OBJ_CONSOLE, TRUE) + message(CHR_P1P2, 0x0e24) // "Security systems have been shut down." + set_stage_flag(STAGEFLAG_SECURITY_SHUT_DOWN) + unset_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_DISGUISED) + restart_timer + + beginloop(0x05) + if_timer_gt(120, /*goto*/ 0x31) + endloop(0x05) + + label(0x31) + set_object_image(OBJ_CONSOLE, 0x01, 0x14) + play_x_music(0x58, 88) // @bug? Invalid channel + + beginloop(0x06) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_y(CHR_P1P2, -2000, OPERATOR_LESS_THAN, /*goto*/ 0x02) + endloop(0x06) + + label(0x02) + stop_music_channel(CHANNEL_1) + + label(0x0c) + mute_channel(CHANNEL_1) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +#define weapon_detection_logic(chr) \ + if_difficulty_lt(DIFF_SA, /*goto*/ 0x08) \ + \ + label(0x00) \ + yield \ + mute_channel(CHANNEL_6) \ + set_lights_state(0x0039, 0x03, 0x78, 0xff, 0x3c) \ + set_lights_state(0x003a, 0x03, 0x78, 0xff, 0x3c) \ + set_lights_state(0x003b, 0x03, 0x78, 0xff, 0x3c) \ + set_lights_state(0x0041, 0x03, 0x78, 0xff, 0x3c) \ + set_lights_state(0x0042, 0x03, 0x78, 0xff, 0x3c) \ + set_lights_state(0x0043, 0x03, 0x78, 0xff, 0x3c) \ + \ + beginloop(0x65) \ + if_stage_flag_eq(STAGEFLAG_SUITCASE_DEPOSITED, TRUE, /*goto*/ 0x08) \ + if_chr_in_room(chr, 0x00, 0x0039, /*goto*/ 0x31) \ + if_chr_in_room(chr, 0x00, 0x003a, /*goto*/ 0x31) \ + if_chr_in_room(chr, 0x00, 0x003b, /*goto*/ 0x31) \ + if_chr_in_room(chr, 0x00, 0x0041, /*goto*/ 0x31) \ + if_chr_in_room(chr, 0x00, 0x0042, /*goto*/ 0x31) \ + if_chr_in_room(chr, 0x00, 0x0043, /*goto*/ 0x31) \ + endloop(0x65) \ + \ + /* In hallway with weapons */ \ + label(0x31) \ + set_lights_state(0x0039, 0x04, 0x00, 0xff, 0x3c) \ + set_lights_state(0x003a, 0x04, 0x00, 0xff, 0x3c) \ + set_lights_state(0x003b, 0x04, 0x00, 0xff, 0x3c) \ + set_lights_state(0x0041, 0x04, 0x00, 0xff, 0x3c) \ + set_lights_state(0x0042, 0x04, 0x00, 0xff, 0x3c) \ + set_lights_state(0x0043, 0x04, 0x00, 0xff, 0x3c) \ + play_sound(0x04ac, CHANNEL_6) \ + restart_timer \ + \ + beginloop(0x04) \ + if_timer_gt(60, /*goto*/ 0x02) \ + if_chr_in_room(chr, 0x00, 0x0039, /*goto*/ 0x31) \ + if_chr_in_room(chr, 0x00, 0x003a, /*goto*/ 0x31) \ + if_chr_in_room(chr, 0x00, 0x003b, /*goto*/ 0x31) \ + if_chr_in_room(chr, 0x00, 0x0041, /*goto*/ 0x31) \ + if_chr_in_room(chr, 0x00, 0x0042, /*goto*/ 0x31) \ + if_chr_in_room(chr, 0x00, 0x0043, /*goto*/ 0x31) \ + goto_first(0x00) \ + \ + label(0x31) \ + endloop(0x04) \ + \ + /* In hallway with weapons for over 60 frames */ \ + label(0x02) \ + restart_timer \ + set_lights_state(0x0039, 0x04, 0x00, 0xff, 0x32) \ + set_lights_state(0x003a, 0x04, 0x00, 0xff, 0x32) \ + set_lights_state(0x003b, 0x04, 0x00, 0xff, 0x32) \ + set_lights_state(0x0041, 0x04, 0x00, 0xff, 0x32) \ + set_lights_state(0x0042, 0x04, 0x00, 0xff, 0x32) \ + set_lights_state(0x0043, 0x04, 0x00, 0xff, 0x32) \ + \ + beginloop(0x05) \ + if_timer_gt(40, /*goto*/ 0x02) \ + if_chr_in_room(chr, 0x00, 0x0039, /*goto*/ 0x31) \ + if_chr_in_room(chr, 0x00, 0x003a, /*goto*/ 0x31) \ + if_chr_in_room(chr, 0x00, 0x003b, /*goto*/ 0x31) \ + if_chr_in_room(chr, 0x00, 0x0041, /*goto*/ 0x31) \ + if_chr_in_room(chr, 0x00, 0x0042, /*goto*/ 0x31) \ + if_chr_in_room(chr, 0x00, 0x0043, /*goto*/ 0x31) \ + goto_first(0x00) \ + \ + label(0x31) \ + endloop(0x05) \ + \ + /* In hallway with weapons for over 100 frames */ \ + label(0x02) \ + restart_timer \ + set_lights_state(0x0039, 0x04, 0x00, 0xff, 0x28) \ + set_lights_state(0x003a, 0x04, 0x00, 0xff, 0x28) \ + set_lights_state(0x003b, 0x04, 0x00, 0xff, 0x28) \ + set_lights_state(0x0041, 0x04, 0x00, 0xff, 0x28) \ + set_lights_state(0x0042, 0x04, 0x00, 0xff, 0x28) \ + set_lights_state(0x0043, 0x04, 0x00, 0xff, 0x28) \ + \ + beginloop(0x06) \ + if_timer_gt(1, /*goto*/ 0x02) \ + if_chr_in_room(chr, 0x00, 0x0039, /*goto*/ 0x31) \ + if_chr_in_room(chr, 0x00, 0x003a, /*goto*/ 0x31) \ + if_chr_in_room(chr, 0x00, 0x003b, /*goto*/ 0x31) \ + if_chr_in_room(chr, 0x00, 0x0041, /*goto*/ 0x31) \ + if_chr_in_room(chr, 0x00, 0x0042, /*goto*/ 0x31) \ + if_chr_in_room(chr, 0x00, 0x0043, /*goto*/ 0x31) \ + goto_first(0x00) \ + \ + label(0x31) \ + endloop(0x06) \ + \ + /* In hallway with weapons for over 101 frames */ \ + label(0x02) \ + restart_timer \ + set_lights_state(0x0039, 0x04, 0x00, 0xff, 0x1e) \ + set_lights_state(0x003a, 0x04, 0x00, 0xff, 0x1e) \ + set_lights_state(0x003b, 0x04, 0x00, 0xff, 0x1e) \ + set_lights_state(0x0041, 0x04, 0x00, 0xff, 0x1e) \ + set_lights_state(0x0042, 0x04, 0x00, 0xff, 0x1e) \ + set_lights_state(0x0043, 0x04, 0x00, 0xff, 0x1e) \ + \ + beginloop(0x07) \ + yield \ + yield \ + yield \ + yield \ + yield \ + yield \ + yield \ + yield \ + yield \ + if_timer_gt(30, /*goto*/ 0x02) \ + if_chr_in_room(chr, 0x00, 0x0039, /*goto*/ 0x31) \ + if_chr_in_room(chr, 0x00, 0x003a, /*goto*/ 0x31) \ + if_chr_in_room(chr, 0x00, 0x003b, /*goto*/ 0x31) \ + if_chr_in_room(chr, 0x00, 0x0041, /*goto*/ 0x31) \ + if_chr_in_room(chr, 0x00, 0x0042, /*goto*/ 0x31) \ + if_chr_in_room(chr, 0x00, 0x0043, /*goto*/ 0x31) \ + goto_first(0x00) \ + \ + label(0x31) \ + endloop(0x07) \ + \ + label(0x02) \ + message(chr, 0x0e25) /* "Weapons have been detected." */ \ + set_stage_flag(STAGEFLAG_WEAPONS_DETECTED) \ + label(0x31) \ + mute_channel(CHANNEL_6) \ + yield \ + activate_alarm \ + set_function(CHR_SELF, GFUNC_IDLE) \ + \ + /* Agent, or suitcase deposited */ \ + label(0x08) \ + set_function(CHR_SELF, GFUNC_IDLE) + + + +u8 func1020_weapon_scanning_joanna[] = { + yield + weapon_detection_logic(CHR_JOANNA) + endfunction +}; + +u8 func1021_weapon_scanning_velvet[] = { + yield + set_target_chr(CHR_VELVET) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x31) + goto_next(0x02) + + label(0x31) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x02) + weapon_detection_logic(CHR_VELVET) + endfunction +}; + +u8 func1009_carousel_activation[] = { + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_BAGGAGE_CARRIER, /*goto*/ 0x02) + if_stage_flag_eq(STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x31) + reloop(0x00) + + // Shut down without depositing + label(0x31) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x09) + message(CHR_JOANNA, 0x0e42) // "Hover trolley has been shut down." + set_stage_flag(STAGEFLAG_TROLLEY_SHUT_DOWN_WITHOUT_BRIEFCASE) + yield + message(CHR_JOANNA, 0x0e43) // "Equipment cannot be checked in." + label(0x09) + set_function(CHR_SELF, GFUNC_IDLE) + + // Carrier activated + label(0x02) + if_chr_weapon_equipped(CHR_P1P2, WEAPON_SUITCASE, /*goto*/ 0x02) + endloop(0x00) + + label(0x02) + message(CHR_P1P2, 0x0e26) // "Suitcase has been deposited." + chr_draw_weapon_in_cutscene(CHR_P1P2, WEAPON_UNARMED) + set_stage_flag(STAGEFLAG_SUITCASE_DEPOSITED) + play_sound(0x80aa, CHANNEL_7) + unset_object_flag_bank1(OBJ_BRIEFCASE2, OBJECTFLAG1_INVISIBLE) + move_object_to_pad(OBJ_BRIEFCASE2, 0x00de) + yield + restart_timer + + beginloop(0x05) + if_timer_gt(120, /*goto*/ 0x02) + endloop(0x05) + + label(0x02) + clear_inventory(CHR_JOANNA) + unset_object_flag_bank0(OBJ_BAGGAGE_CARRIER, OBJECTFLAG0_DEACTIVATED) + open_door(0x23) + restart_timer + + beginloop(0x04) + if_timer_gt(400, /*goto*/ 0x02) + endloop(0x04) + + label(0x02) + set_object_flag_bank0(OBJ_BAGGAGE_CARRIER, OBJECTFLAG0_DEACTIVATED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100b_suitcase_scanning[] = { + beginloop(0x00) + if_stage_flag_eq(STAGEFLAG_SUITCASE_DEPOSITED, TRUE, /*goto*/ 0x02) + endloop(0x00) + + label(0x02) + restart_timer + if_difficulty_lt(DIFF_SA, /*goto*/ 0x07) + if_difficulty_lt(DIFF_PA, /*goto*/ 0xb7) + + // PA + set_countdown_timer(30) + show_countdown_timer + start_countdown_timer + + beginloop(0x06) + if_stage_flag_eq(STAGEFLAG_CONSOLE_ACTIVATED, TRUE, /*goto*/ 0x07) + if_stage_flag_eq(STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x07) + if_countdown_timer_lt(1, /*goto*/ 0x02) + endloop(0x06) + + // SA + label(0xb7) + set_countdown_timer(45) + show_countdown_timer + start_countdown_timer + + beginloop(0x05) + if_stage_flag_eq(STAGEFLAG_CONSOLE_ACTIVATED, TRUE, /*goto*/ 0x07) + if_stage_flag_eq(STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x07) + if_countdown_timer_lt(1, /*goto*/ 0x02) + endloop(0x05) + + // Scanned + label(0x02) + message(CHR_JOANNA, 0x0e27) // "Suitcase has been scanned." + set_stage_flag(STAGEFLAG_SUITCASE_SCANNED) + + // Agent + label(0x07) + stop_countdown_timer + hide_countdown_timer + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040d_init_office1[] = { + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, FUNC_OFFICE1) + endfunction +}; + +u8 func0409_office1[] = { +#define LABEL_RUN_TO_FOYER 0x4f + + set_self_flag_bank3(CHRFLAG3_00040000) + set_var_a(0) + set_onshot_function(FUNC_OFFICE1) + if_chr_dying(CHR_SELF, /*goto*/ 0x02) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x02) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x02) + goto_next(0x42) + + label(0x02) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x42) + animation(ANIM_SITTING_DORMANT, 0, -1, 0x1410, CHR_SELF, 2) + + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x02) + if_shot_near_chr(0x00, /*goto*/ LABEL_RUN_TO_FOYER) + if_stage_flag_eq(STAGEFLAG_OFFICE2_DEAD, TRUE, /*goto*/ LABEL_RUN_TO_FOYER) + if_object_in_good_condition(0x45, /*goto*/ 0x33) + goto_next(LABEL_RUN_TO_FOYER) + + label(0x33) + if_chr_idle(/*goto*/ 0x31) + goto_first(0x42) + + label(0x31) + endloop(0x00) + + // Jo in sight + label(0x02) + if_stage_flag_eq(STAGEFLAG_DISGUISED, FALSE, /*goto*/ 0x07) + + // Disguised + if_chr_weapon_equipped(TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x31) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_HORIZONSCANNER, /*goto*/ 0x31) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_SUITCASE, /*goto*/ 0x31) + goto_next(0x07) + + // Disguised and unarmed-ish + label(0x31) + animation(ANIM_SITTING_0265, 0, -1, 0x1410, CHR_SELF, 2) + speak(TARGET_CHR, 0x0e29, 0x1ae6, CHANNEL_4, COLOR_08_RED) // "Are you new around here?" + + beginloop(0x09) + if_shot_near_chr(0x00, /*goto*/ LABEL_RUN_TO_FOYER) + if_stage_flag_eq(STAGEFLAG_OFFICE2_DEAD, TRUE, /*goto*/ LABEL_RUN_TO_FOYER) + if_chr_has_object(TARGET_CHR, OBJ_BRIEFCASE1, /*goto*/ 0x02) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x31) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_HORIZONSCANNER, /*goto*/ 0x31) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_SUITCASE, /*goto*/ 0x31) + goto_next(0x07) + + label(0x31) + if_chr_idle(/*goto*/ 0x31) + goto_next(0x7b) + + label(0x31) + reloop(0x09) + + label(0x7b) + animation(ANIM_SITTING_DORMANT, 0, -1, 0x1400, CHR_SELF, 2) + endloop(0x09) + + // Picked up briefcase + label(0x02) + restart_timer + try_face_entity(0x0200, 0x0000, /*goto*/ 0x0b) + + beginloop(0x0b) + if_sound_finished(CHANNEL_4, /*goto*/ 0x31) + reloop(0x0b) + + label(0x31) + if_angle_to_target_chr_lt(10, /*goto*/ 0x02) + if_timer_gt(60, /*goto*/ 0x02) + endloop(0x0b) + + label(0x02) + speak(TARGET_CHR, 0x0e2a, 0x1ae7, CHANNEL_4, COLOR_08_RED) // "Hey - give me back my case." + restart_timer + set_group_alertness(100) + + beginloop(0x0a) + if_timer_gt(120, /*goto*/ 0x02) + endloop(0x0a) + + label(0x02) + goto_next(LABEL_RUN_TO_FOYER) + + // Not disguised, or disguised with weapon equipped + label(0x07) + object_do_animation(0x025a, 0xff, 0x02ff, 0xff) + restart_timer + try_face_entity(0x0200, 0x0000, /*goto*/ 0x05) + + beginloop(0x05) + if_angle_to_target_chr_lt(10, /*goto*/ 0x02) + if_timer_gt(60, /*goto*/ 0x02) + endloop(0x05) + + label(0x72) + label(0x02) + speak(TARGET_CHR, 0x0e28, 0x1ae5, CHANNEL_4, COLOR_08_RED) // "Hey, you - this is a restricted area." + set_group_alertness(100) + restart_timer + animation(ANIM_WALK_BACKWARDS, -1, -1, 0x1010, CHR_SELF, 2) + + beginloop(0x06) + if_timer_gt(180, /*goto*/ LABEL_RUN_TO_FOYER) + endloop(0x06) + + // Run to foyer + label(LABEL_RUN_TO_FOYER) + jog_to_pad(0x001b) + + beginloop(0x08) + if_chr_stopped(/*goto*/ 0x02) + endloop(0x08) + + label(0x02) + speak(TARGET_CHR, 0x0e2c, 0x1ae8, CHANNEL_4, COLOR_08_RED) // "Upstairs...there's an intruder." + set_group_alertness(100) + set_stage_flag(STAGEFLAG_DISGUISE_UNCOVERED) + activate_alarm + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040e_init_office2[] = { + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, FUNC_OFFICE2) + endfunction +}; + +u8 func040a_office2[] = { + set_self_flag_bank3(CHRFLAG3_00040000) + set_var_a(0) + set_onshot_function(FUNC_OFFICE2) + if_chr_dying(CHR_SELF, /*goto*/ 0x02) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x02) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x02) + goto_next(0x42) + + label(0x02) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x42) + animation(ANIM_SITTING_DORMANT, 0, -1, 0x1410, CHR_SELF, 2) + + beginloop(0x00) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x02) + if_shot_near_chr(0x00, /*goto*/ 0x72) + if_stage_flag_eq(STAGEFLAG_OFFICE1_DEAD, TRUE, /*goto*/ 0x72) + if_chr_idle(/*goto*/ 0x31) + goto_first(0x42) + + label(0x31) + endloop(0x00) + + // Alert + label(0x02) + + beginloop(0x09) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0x02) + if_shot_near_chr(0x00, /*goto*/ 0x02) + if_stage_flag_eq(STAGEFLAG_OFFICE1_DEAD, TRUE, /*goto*/ 0x72) + endloop(0x09) + + label(0x72) + label(0x02) + object_do_animation(0x025a, 0xff, 0x02ff, 0xff) + restart_timer + try_face_entity(0x0200, 0x0000, /*goto*/ 0x05) + + // Wait for other guy to finish talking + beginloop(0x05) + if_sound_finished(CHANNEL_4, /*goto*/ 0x31) + reloop(0x05) + + label(0x31) + yield + yield + yield + yield + yield + if_sound_finished(CHANNEL_4, /*goto*/ 0x31) + reloop(0x05) + + label(0x31) + if_angle_to_target_chr_lt(10, /*goto*/ 0x02) + if_timer_gt(60, /*goto*/ 0x02) + endloop(0x05) + + label(0x02) + if_chr_dying(CHR_OFFICE1, /*goto*/ 0x02) + if_chr_death_animation_finished(CHR_OFFICE1, /*goto*/ 0x02) + if_chr_unloaded(CHR_OFFICE1, /*goto*/ 0x02) + speak(TARGET_CHR, 0x0e2b, 0x1ae9, CHANNEL_4, COLOR_09_BLUE) // "You get security - I'll deal with her..." + set_group_alertness(100) + restart_timer + + beginloop(0x06) + if_chr_stopped(/*goto*/ 0x02) + if_timer_gt(120, /*goto*/ 0x02) + endloop(0x06) + + // Attack player + label(0x02) + set_self_flag_bankx(CHRFLAG1_00000001, BANK_1) + set_function(CHR_SELF, GFUNC_ALERTED) + + // Unreachable + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100c_check_end_level[] = { + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + if_objective_complete(0, /*goto*/ 0x31) + goto_first(0x00) + + label(0x31) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x31) + if_objective_complete(1, /*goto*/ 0x31) + goto_first(0x00) + + label(0x31) + if_objective_complete(2, /*goto*/ 0x31) + goto_first(0x00) + + label(0x31) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x31) + if_objective_complete(3, /*goto*/ 0x31) + goto_first(0x00) + + label(0x31) + if_chr_distance_to_pad_lt(CHR_P1P2, 200, 0x00e9, /*goto*/ 0x04) + if_chr_distance_to_pad_lt(CHR_P1P2, 200, 0x00d5, /*goto*/ 0x05) + endloop(0x00) + + // Pad 0x00e9 + label(0x04) + set_stage_flag(STAGEFLAG_BOARDED_PLANE) + unset_eeprom_flag(EEPROMFLAG_AF1_ENTRY) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x31) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x31) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x31) + goto_next(0x02) + + label(0x31) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x31) + if_chr_dying(CHR_VELVET, /*goto*/ 0x31) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x31) + goto_next(0x02) + + // Both players dead + label(0x31) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + + // Mission complete + label(0x02) + set_invincible(CHR_JOANNA) + set_function(CHR_SELF, 0x0425) + + // Pad 0x00d5 + label(0x05) + set_stage_flag(STAGEFLAG_BOARDED_PLANE) + set_eeprom_flag(EEPROMFLAG_AF1_ENTRY) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x31) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x31) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x31) + goto_next(0x02) + + label(0x31) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x31) + if_chr_dying(CHR_VELVET, /*goto*/ 0x31) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x31) + goto_next(0x02) + + // Both players dead + label(0x31) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + + // Mission complete + label(0x02) + set_invincible(CHR_JOANNA) + set_function(CHR_SELF, 0x0425) + endfunction +}; + +u8 func100d_laser_panel[] = { + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_LASER_PANEL, /*goto*/ 0x04) + if_object_in_good_condition(OBJ_LASER_PANEL, /*goto*/ 0x02) + goto_next(0x05) + + label(0x02) + reloop(0x00) + + label(0x04) + assign_sound(0x043a, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_LASER_PANEL, TRUE) + message(CHR_P1P2, 0x0e2d) // "Laser grid access denied." + endloop(0x00) + + label(0x05) + set_stage_flag(STAGEFLAG_LASERS_OVERLOADED) + message(CHR_P1P2, 0x0e2e) // "Laser grid system has been overloaded." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100e_check_alaskans_killed[] = { + set_chr_flag_bank3(0x00, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x01, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x02, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x03, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x04, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x05, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x06, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x07, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x08, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x09, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x0a, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x0b, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x0c, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x0d, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x0e, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x0f, CHRFLAG3_KILLCOUNTABLE) + + beginloop(0x00) + if_stage_flag_eq(STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x02) + if_kill_count_gt(2, /*goto*/ 0x31) + endloop(0x00) + + label(0x31) + message(CHR_JOANNA, 0x0e2f) // "Too many neutral casualties inflicted." + set_stage_flag(STAGEFLAG_TOO_MANY_NEUTRALS_KILLED) + label(0x02) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * @unused + */ +u8 func0410_unused[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(22) + set_reaction_speed(80) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + set_self_flag_bank3(CHRFLAG3_00000040) + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_00040000) + set_function(CHR_SELF, FUNC_NSA) + endfunction +}; + +u8 func040f_nsa[] = { + set_onshot_function(FUNC_NSA) + if_chr_dying(CHR_SELF, /*goto*/ 0x02) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x02) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x02) + goto_next(0x44) + + label(0x02) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x44) + if_chr_distance_to_pad_lt(CHR_SELF, 70, TARGET_PAD, /*goto*/ 0x02) + + // Return to pad + walk_to_pad(TARGET_PAD) + + beginloop(0x06) + dprint 'G','O',' ','F','O','R',' ','P','A','D','\n',0, + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_distance_lt(250, /*goto*/ 0x64) + if_self_flag_bankx_eq(CHRFLAG0_00000080, TRUE, BANK_0, /*goto*/ 0x33) + if_chr_in_room(TARGET_CHR, 0x00, 0x006b, /*goto*/ 0x31) + if_chr_in_room(TARGET_CHR, 0x00, 0x006c, /*goto*/ 0x31) + if_chr_in_room(TARGET_CHR, 0x00, 0x006d, /*goto*/ 0x31) + goto_first(0x00) + + label(0x33) + if_chr_in_room(TARGET_CHR, 0x00, 0x003c, /*goto*/ 0x31) + if_chr_in_room(TARGET_CHR, 0x00, 0x003d, /*goto*/ 0x31) + if_chr_in_room(TARGET_CHR, 0x00, 0x003e, /*goto*/ 0x31) + if_chr_y(TARGET_CHR, -257, OPERATOR_LESS_THAN, /*goto*/ 0x6d) // gone down an escalator + goto_next(0x76) + + label(0x6d) + if_chr_in_room(TARGET_CHR, 0x00, 0x003f, /*goto*/ 0x31) + label(0x76) + goto_first(0x00) + + label(0x31) + if_chr_sees_player(/*goto*/ 0x04) + if_chr_distance_to_pad_lt(CHR_SELF, 70, TARGET_PAD, /*goto*/ 0x02) + endloop(0x06) + + // At pad + label(0x02) + stop_chr + + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + dprint 'W','A','I','T',' ','F','O','R',' ','C','H','R','\n',0, + set_target_chr(CHR_P1P2) + if_stage_flag_eq(STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x0b) + if_chr_sees_player(/*goto*/ 0x31) + endloop(0x00) + + // Seen player + label(0x31) + dprint 'C','H','R','\n',0, + if_chr_y(TARGET_CHR, -330, OPERATOR_LESS_THAN, /*goto*/ 0x02) + goto_first(0x00) + + // Seen player down escalator + label(0x02) + if_self_flag_bankx_eq(CHRFLAG0_00000080, TRUE, BANK_0, /*goto*/ 0x33) + if_chr_in_room(TARGET_CHR, 0x00, 0x006b, /*goto*/ 0x04) + if_chr_in_room(TARGET_CHR, 0x00, 0x006c, /*goto*/ 0x04) + if_chr_in_room(TARGET_CHR, 0x00, 0x006d, /*goto*/ 0x04) + goto_first(0x00) + + label(0x33) + if_chr_in_room(TARGET_CHR, 0x00, 0x003c, /*goto*/ 0x04) + if_chr_in_room(TARGET_CHR, 0x00, 0x003d, /*goto*/ 0x04) + if_chr_in_room(TARGET_CHR, 0x00, 0x003e, /*goto*/ 0x04) + if_chr_y(TARGET_CHR, -257, OPERATOR_LESS_THAN, /*goto*/ 0x6d) + goto_next(0x76) + + // Seen player down escalator but not in security hall + label(0x6d) + if_chr_in_room(TARGET_CHR, 0x00, 0x003f, /*goto*/ 0x04) // escalator room + label(0x76) + goto_first(0x00) + + // Seen player in security hall or escalator room + label(0x04) + restart_timer + restart_timer + try_face_entity(0x0200, 0x0000, /*goto*/ 0x09) + + beginloop(0x09) + if_angle_to_target_chr_lt(10, /*goto*/ 0x02) + cmd004f(245, /*goto*/ 0x02) + if_timer_gt(60, /*goto*/ 0x02) + endloop(0x09) + + label(0x02) + animation(ANIM_TALKING_0098, 0, 90, 0x0010, CHR_SELF, 2) + say_quip(CHR_JOANNA, 0x1c, 0xff, 0x02, 0xff, 0x81, 0x00, 0x00) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + + beginloop(0x0a) + if_chr_stopped(/*goto*/ 0x02) + endloop(0x0a) + + label(0x02) + set_return_function(CHR_SELF, GFUNC_ALERTED) + set_function(CHR_SELF, GFUNC_ALERTED) + + // Unreachable + restart_timer + set_target_chr(CHR_P1P2) + try_walk_to_target_chr(/*goto*/ 0x05) + + // Also unreachable + label(0x31) + dprint 'R','U','N',' ','S','T','A','R','T','\n',0, + restart_timer + set_target_chr(CHR_JOANNA) + try_run_to_target_chr(/*goto*/ 0x05) + + beginloop(0x05) + set_return_function(CHR_SELF, GFUNC_ALERTED) + set_function(CHR_SELF, GFUNC_ALERTED) + dprint 'G','O',' ','F','O','R',' ','C','H','R','\n',0, + if_chr_stopped(/*goto*/ 0x32) + if_timer_gt(30, /*goto*/ 0x32) + if_chr_y(TARGET_CHR, -330, OPERATOR_LESS_THAN, /*goto*/ 0x02) + goto_next(0x07) + + label(0x02) + if_self_flag_bankx_eq(CHRFLAG0_00000080, TRUE, BANK_0, /*goto*/ 0x33) + if_chr_in_room(TARGET_CHR, 0x00, 0x006b, /*goto*/ 0x31) + if_chr_in_room(TARGET_CHR, 0x00, 0x006c, /*goto*/ 0x31) + if_chr_in_room(TARGET_CHR, 0x00, 0x006d, /*goto*/ 0x31) + goto_next(0x07) + + label(0x33) + if_chr_in_room(TARGET_CHR, 0x00, 0x003c, /*goto*/ 0x31) + if_chr_in_room(TARGET_CHR, 0x00, 0x003d, /*goto*/ 0x31) + if_chr_in_room(TARGET_CHR, 0x00, 0x003e, /*goto*/ 0x31) + if_chr_in_room(TARGET_CHR, 0x00, 0x003f, /*goto*/ 0x31) + goto_next(0x07) + + label(0x31) + if_chr_distance_lt(250, /*goto*/ 0x02) + endloop(0x05) + + label(0x32) + goto_first(0x04) + + label(0x64) + label(0x02) + set_self_flag_bankx(CHRFLAG1_00000001, BANK_1) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + set_return_function(CHR_SELF, FUNC_NSA) + set_function(CHR_SELF, GFUNC_HAND_COMBAT) + + label(0x07) + animation(ANIM_TALKING_0098, 0, 90, 0x0010, CHR_SELF, 2) + say_quip(CHR_JOANNA, 0x1d, 0xff, 0x02, 0xff, 0x81, 0x00, 0x00) + label(0x08) + yield + if_chr_stopped(/*goto*/ 0x02) + goto_first(0x08) + + label(0x02) + goto_first(0x44) + + label(0x0b) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func0412_init_takeover_lackey[] = { + set_onshot_function(GFUNC_ALERTED) + set_self_flag_bank3(CHRFLAG3_00000040) + set_chr_dodge_rating(2, 0x0a) + set_accuracy(60) + set_reaction_speed(80) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, FUNC_TAKEOVER_LACKEY) + endfunction +}; + +u8 func0411_takeover_lackey[] = { + set_onshot_function(GFUNC_ALERTED) + if_chr_dying(CHR_SELF, /*goto*/ 0x02) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x02) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x02) + goto_next(0x00) + + label(0x02) + set_function(CHR_SELF, GFUNC_IDLE) + + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_dying(0x0c, /*goto*/ 0x7b) + if_chr_death_animation_finished(0x0c, /*goto*/ 0x7b) + if_chr_unloaded(0x0c, /*goto*/ 0x7b) + if_target_chr_in_sight(/*goto*/ 0x31) + goto_next(0x02) + + label(0x31) + try_face_entity(0x0200, 0x0000, /*goto*/ 0x02) + label(0x02) + if_self_flag_bankx_eq(CHRFLAG0_00002000, FALSE, BANK_0, /*goto*/ 0x31) + if_target_chr_in_sight(/*goto*/ 0x02) + label(0x31) + endloop(0x00) + + // Alaskan guard is dead + label(0x7b) + label(0x02) + set_chr_alliance(CHR_SELF, 0x04) + if_chr_dying(0x0c, /*goto*/ 0x02) + if_chr_death_animation_finished(0x0c, /*goto*/ 0x02) + if_chr_unloaded(0x0c, /*goto*/ 0x02) + set_target_chr(0x0c) + try_chr_kneel_and_shoot_thing(0x0220, 0x0000, /*goto*/ 0x31) + label(0x31) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x04) + + beginloop(0x04) + if_chr_stopped(/*goto*/ 0x02) + endloop(0x04) + + label(0x02) + speak(TARGET_CHR, 0x0e41, 0x05bf, CHANNEL_6, COLOR_08_RED) // "We're taking over!!" + + beginloop(0x09) + if_chr_stopped(/*goto*/ 0x02) + endloop(0x09) + + label(0x02) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_DISGUISE_UNCOVERED) + set_chr_flag_bank2(CHR_VELVET, CHRFLAG2_DISGUISE_UNCOVERED) + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +u8 func0413_alaskan_console_guard[] = { + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 unregistered_function3[] = { + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, FUNC_OFFICEWORKER) + endfunction +}; + +u8 func0414_officeworker[] = { + set_var_a(0) + if_chr_dying(CHR_SELF, /*goto*/ 0x02) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x02) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x02) + goto_next(0x00) + + label(0x02) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x44) + animation(ANIM_SITTING_DORMANT, -1, 60, 0x1400, CHR_SELF, 2) + + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_stage_flag_eq(STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x07) + if_chr_idle(/*goto*/ 0x02) + goto_next(0x08) + + label(0x02) + if_target_chr_in_sight(/*goto*/ 0x02) + label(0x33) + endloop(0x00) + + label(0x02) + animation(ANIM_SITTING_0265, 0, 120, 0x1410, CHR_SELF, 2) + say_quip(CHR_JOANNA, 0x20, 0xff, 0x0a, 0xff, BANK_1, 0x00, 0x00) + restart_timer + + beginloop(0x09) + if_stage_flag_eq(STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x07) + if_chr_idle(/*goto*/ 0x02) + goto_next(0x08) + + label(0x02) + if_timer_gt(180, /*goto*/ 0x02) + endloop(0x09) + + label(0x02) + goto_first(0x00) + + label(0x08) + goto_first(0x44) + + // After takeover + label(0x07) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x6d) + set_chr_flag_bank2(0x3a, CHRFLAG2_00100000) + chr_move_to_pad(0x3a, 0x00d7, 0x00, /*goto*/ 0x31) + + label(0x31) + animation(ANIM_SITTING_DORMANT, -1, 60, 0x1400, CHR_SELF, 2) + + label(0x77) + animation(ANIM_COWER_0229, -1, 60, 0x140a, CHR_SELF, 2) + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x02) + if_chr_idle(/*goto*/ 0x31) + goto_first(0x77) + + label(0x31) + endloop(0x04) + + label(0x02) + restart_timer + try_face_entity(0x0200, 0x0000, /*goto*/ 0x78) + + beginloop(0x78) + if_angle_to_target_chr_lt(10, /*goto*/ 0x02) + if_timer_gt(40, /*goto*/ 0x02) + endloop(0x78) + + label(0x02) + do_special_animation(7) + speak(TARGET_CHR, 0x0e36, 0x1b38, CHANNEL_4, COLOR_08_RED) // "Stop them - they're breaking into the safe..." + + beginloop(0x05) + if_sound_finished(CHANNEL_4, /*goto*/ 0x79) + endloop(0x05) + + label(0x79) + animation(0x0229, -1, 60, 0x140a, CHR_SELF, 2) + + beginloop(0x06) + if_chr_idle(/*goto*/ 0x02) + goto_first(0x79) + + label(0x02) + endloop(0x06) + + label(0x02) + set_function(CHR_SELF, GFUNC_IDLE) + + beginloop(0x6d) + damage_chr(CHR_SELF, 18) + if_chr_dying(CHR_SELF, /*goto*/ 0x31) + endloop(0x6d) + + label(0x31) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0415_alaskan_mountainlift_guard[] = { + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func1010_setup_baggage_carrier[] = { + set_object_flag_bank0(OBJ_BAGGAGE_CARRIER, OBJECTFLAG0_DEACTIVATED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +#define laser_overloaded_logic(laser1, laser2, time) \ + beginloop(0x00) \ + if_stage_flag_eq(STAGEFLAG_LASERS_OVERLOADED, TRUE, /*goto*/ 0x04) \ + endloop(0x00) \ + \ + label(0x04) \ + restart_timer \ + open_door(laser1) \ + open_door(laser2) \ + \ + beginloop(0x05) \ + if_timer_gt(time, /*goto*/ 0x02) \ + endloop(0x05) \ + \ + label(0x02) \ + close_door(laser1) \ + close_door(laser2) \ + \ + beginloop(0x05) \ + if_timer_gt(time, /*goto*/ 0x02) \ + endloop(0x05) \ + \ + label(0x02) \ + goto_first(0x04) \ + \ + set_function(CHR_SELF, GFUNC_IDLE) + + + +u8 func1011_lasers1[] = { + laser_overloaded_logic(0x07, 0x0c, 120) + endfunction +}; + +u8 func1012_lasers2[] = { + laser_overloaded_logic(0x0e, 0x10, 180) + endfunction +}; + +u8 func1013_lasers3[] = { + laser_overloaded_logic(0x0b, 0x12, 90) + endfunction +}; + +u8 func1014_lasers4[] = { + beginloop(0x00) + if_stage_flag_eq(STAGEFLAG_LASERS_OVERLOADED, TRUE, /*goto*/ 0x04) + endloop(0x00) + + label(0x04) + restart_timer + open_door(0x11) + + beginloop(0x05) + if_timer_gt(180, /*goto*/ 0x02) + endloop(0x05) + + label(0x02) + close_door(0x11) + + beginloop(0x05) + if_timer_gt(180, /*goto*/ 0x02) + endloop(0x05) + + label(0x02) + goto_first(0x04) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * This is the first laser, which gets disabled permanently. + */ +u8 func1017_laser5[] = { + beginloop(0x00) + if_stage_flag_eq(STAGEFLAG_LASERS_OVERLOADED, TRUE, /*goto*/ 0x04) + endloop(0x00) + + label(0x04) + restart_timer + hide_object(0x13) + set_function(CHR_SELF, GFUNC_IDLE) + + // Unreachable + open_door(0x13) + + beginloop(0x05) + if_door_state(0x13, (DOORSTATE_CLOSED | DOORSTATE_CLOSING), /*goto*/ 0x31) + endloop(0x05) + + label(0x31) + goto_first(0x04) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0403_unused[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(12) + set_reaction_speed(45) + set_chr_health(CHR_SELF, 60) + set_armor(40) + set_recovery_speed(30) + set_shield(0) + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_HIDDEN) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1015_unhide_laser_guards[] = { + // These are all invalid chrs. They must have been removed. + // They would have appeared when the lasers were overloaded. + hide_chr(0x3e) + hide_chr(0x3f) + hide_chr(0x40) + hide_chr(0x41) + set_chr_flag_bank3(0x3e, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0x3f, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0x40, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0x41, CHRFLAG3_HIDDEN) + set_function(CHR_SELF, GFUNC_IDLE) + + // Unreachable + beginloop(0x00) + if_stage_flag_eq(STAGEFLAG_LASERS_OVERLOADED, TRUE, /*goto*/ 0x02) + endloop(0x00) + + label(0x02) + unset_chr_flag_bank3(0x3e, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x3f, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x40, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x41, CHRFLAG3_HIDDEN) + show_chr(0x3e) + set_function(0x3e, 0x0404) + show_chr(0x3f) + set_function(0x3f, GFUNC_ALERTED) + show_chr(0x40) + set_function(0x40, GFUNC_ALERTED) + show_chr(0x41) + set_function(0x41, GFUNC_ALERTED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * After overloading the lasers, some guards would have been unhidden who will + * chase you down. This function would have been assigned to one of them. + * + * @unused + */ +u8 func0404_laser_guard[] = { + set_onshot_function(GFUNC_UNALERTED) + run_to_pad(0x0002) + label(0x04) + yield + label(0x02) + set_function(CHR_SELF, GFUNC_UNALERTED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1016_console_noises[] = { + yield + assign_sound(0x8141, CHANNEL_0) + play_sound_from_object(CHANNEL_0, 0x04, 0x0258, 0x0320) + yield + assign_sound(0x8143, CHANNEL_2) + play_sound_from_object(CHANNEL_2, 0x05, 0x01f4, 0x03e8) + yield + play_sound_from_pad(0x0114, 0x81a7) + yield + play_sound_from_pad(0x0115, 0x81a7) + yield + play_sound_from_pad(0x01ac, 0x811b) + + label(0x42) + restart_timer + + beginloop(0x00) + if_object_in_good_condition(OBJ_CONSOLE, /*goto*/ 0x31) + goto_next(0x09) + + label(0x31) + if_timer_gt(180, /*goto*/ 0x31) + endloop(0x00) + + label(0x31) + yield + if_object_in_good_condition(0x01, /*goto*/ 0x31) + goto_next(0x09) + + label(0x31) + if_stage_flag_eq(STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x09) + call_rng + if_rand_lt(100, /*goto*/ 0x76) + if_rand_lt(150, /*goto*/ 0x77) + if_rand_lt(200, /*goto*/ 0x78) + goto_first(0x42) + + // Rand 1 + label(0x76) + if_object_in_good_condition(OBJ_CONSOLE, /*goto*/ 0x31) + goto_next(0x09) + + label(0x31) + mute_channel(CHANNEL_1) + yield + yield + yield + yield + yield + assign_sound(0x8112, CHANNEL_1) + play_sound_from_object(CHANNEL_1, OBJ_CONSOLE, 0x0258, 0x0320) + goto_first(0x42) + + // Rand 2 + label(0x77) + if_object_in_good_condition(OBJ_CONSOLE, /*goto*/ 0x31) + goto_next(0x09) + + label(0x31) + mute_channel(CHANNEL_1) + yield + yield + yield + yield + yield + assign_sound(0x813f, CHANNEL_1) + play_sound_from_object(CHANNEL_1, OBJ_CONSOLE, 0x0258, 0x0320) + goto_first(0x42) + + // Rand 3 + label(0x78) + if_object_in_good_condition(OBJ_CONSOLE, /*goto*/ 0x31) + goto_next(0x09) + + label(0x31) + mute_channel(CHANNEL_1) + yield + yield + yield + yield + yield + assign_sound(0x8140, CHANNEL_1) + play_sound_from_object(CHANNEL_1, OBJ_CONSOLE, 0x0258, 0x0320) + goto_first(0x42) + + label(0x09) + mute_channel(CHANNEL_1) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0426_init_alaskan_guard[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(12) + set_reaction_speed(70) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +/** + * Assigned to stripes guards and NSA lackeys during takeover. + */ +u8 func0427_init_posttakeover_guard[] = { + set_self_flag_bank3(CHRFLAG3_00040000) + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_chr_alliance(CHR_SELF, 0x04) + set_chr_dodge_rating(2, 0x0a) + set_accuracy(12) + set_reaction_speed(45) + set_chr_health(CHR_SELF, 60) + set_armor(40) + set_recovery_speed(30) + set_shield(0) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, FUNC_POSTTAKEOVER_GUARD) + endfunction +}; + +/** + * Wait until not in sight by any human player, + * then assign FUNC_BECOME_UNALERTED. + */ +u8 func0428_posttakeover_guard[] = { + beginloop(0x00) + set_target_chr(CHR_JOANNA) + if_within_units_of_sight(30, /*goto*/ 0x31) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x02) + set_target_chr(CHR_VELVET) + if_within_units_of_sight(30, /*goto*/ 0x31) + + label(0x02) + if_chr_death_animation_finished(CHR_COUNTEROP, /*goto*/ 0x02) + set_target_chr(CHR_COUNTEROP) + if_within_units_of_sight(30, /*goto*/ 0x31) + + label(0x02) + unset_self_flag_bank3(CHRFLAG3_HIDDEN) + unset_self_flag_bank3(CHRFLAG3_00040000) + set_function(CHR_SELF, FUNC_BECOME_UNALERTED) + + label(0x31) + restart_timer + + beginloop(0x6d) + if_timer_gt(300, /*goto*/ 0x02) + endloop(0x6d) + + label(0x02) + endloop(0x00) + + endfunction +}; + +/** + * @unused + */ +u8 func0429_unused[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(22) + set_reaction_speed(80) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +/** + * Assigned to two stripes guards in the foyer during takeover. + */ +u8 func042a_foyer_spawner[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(12) + set_reaction_speed(45) + set_chr_health(CHR_SELF, 60) + set_armor(40) + set_recovery_speed(30) + set_shield(0) + set_self_flag_bank3(CHRFLAG3_00000002) + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_self_flag_bank3(CHRFLAG3_00040000) + + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_stage_flag_eq(STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x02) + if_chr_y(TARGET_CHR, -4800, OPERATOR_LESS_THAN, /*goto*/ 0x09) + reloop(0x00) + + // Security shut down + label(0x02) + set_chr_alliance(CHR_SELF, 0x04) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + dprint 'O','B','J','E','C','T','I','V','E',' ','D','O','N','E','\n',0, + if_never_been_onscreen(/*goto*/ 0x6a) + if_chr_sees_player(/*goto*/ 0x04) + reloop(0x00) + + label(0x04) + set_function(CHR_SELF, FUNC_FOYER_CLONE) + + label(0x6a) + unset_self_flag_bank3(CHRFLAG3_HIDDEN) + if_chr_death_animation_finished(CHR_CLONE, /*goto*/ 0x6a) + reloop(0x00) + + label(0x6a) + try_spawn_clone2(CHR_SELF, FUNC_INIT_FOYER_CLONE, 0x00000000, /*goto*/ 0x31) + label(0x31) + yield + endloop(0x00) + + // Player has gone to bottom without disabling security + label(0x09) + set_function(CHR_SELF, GFUNC_SEARCH_FOR_PLAYER) + endfunction +}; + +u8 func042b_init_foyer_clone[] = { + set_self_flag_bankx(CHRFLAG1_00080000, BANK_1) + label(0x00) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + try_inherit_properties(0x42, /*goto*/ 0x02) + label(0x02) + set_function(CHR_SELF, FUNC_FOYER_CLONE) + endfunction +}; + +u8 func042c_foyer_clone[] = { + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +#define hoverbot_do_paths(path1, path2, path3) \ + /* Path 1 */ \ + label(0x44) \ + begin_hovercar_path(path1) \ + label(0x31) \ + set_vehicle_speed(512, 120) \ + \ + beginloop(0x04) \ + if_hoverbot_path_finished(0x01, 0x03, /*goto*/ 0x02) \ + endloop(0x04) \ + \ + /* Path 2 */ \ + label(0x02) \ + begin_hovercar_path(path2) \ + label(0x31) \ + set_vehicle_speed(512, 120) \ + \ + beginloop(0x05) \ + if_hoverbot_path_finished(0x01, 0x03, /*goto*/ 0x02) \ + endloop(0x05) \ + \ + /* Path 3 */ \ + label(0x02) \ + begin_hovercar_path(path3) \ + label(0x31) \ + set_vehicle_speed(512, 120) \ + \ + beginloop(0x06) \ + if_hoverbot_path_finished(0x01, 0x03, /*goto*/ 0x02) \ + endloop(0x06) \ + \ + label(0x02) \ + goto_first(0x44) \ + \ + set_function(CHR_SELF, GFUNC_IDLE) + + + +u8 func042d_hoverbot1[] = { + hoverbot_do_paths(0, 1, 2) + endfunction +}; + +u8 func042e_hoverbot2[] = { + hoverbot_do_paths(1, 2, 0) + endfunction +}; + +u8 func042f_hoverbot3[] = { + hoverbot_do_paths(2, 0, 1) + endfunction +}; + +u8 func0430_hoverbot4[] = { + hoverbot_do_paths(3, 4, 5) + endfunction +}; + +u8 func0431_hoverbot5[] = { + hoverbot_do_paths(4, 5, 3) + endfunction +}; + +u8 func0432_hoverbot6[] = { + hoverbot_do_paths(5, 3, 4) + endfunction +}; + +/** + * This looks to be copied from Chicago? But is assigned to an chr called + * steward. + */ +u8 func0419_ba8c[] = { + set_alertness(255) + set_return_function(CHR_SELF, 0x0419) + set_onshot_function(0x0419) + if_chr_dying(CHR_SELF, /*goto*/ 0x02) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x02) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x02) + goto_next(0x31) + + label(0x02) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x31) + if_chr_idle(/*goto*/ 0x6b) + if_num_times_shot_lt(1, /*goto*/ 0x00) + + beginloop(0x0c) + if_chr_stopped(/*goto*/ 0x02) + endloop(0x0c) + + label(0x02) + goto_next(0x0b) + + // Unreachable + restart_timer + + beginloop(0x6b) + if_saw_death(0x00, /*goto*/ 0x4f) + if_shot_near_chr(0x00, /*goto*/ 0x0f) + dprint 'D','U','R','I','N','G','T','A','L','K','\n',0, + if_timer_gt(180, /*goto*/ 0x02) + endloop(0x6b) + + label(0x02) + if_self_flag_bankx_eq(CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x33) + dprint 'N','O','T',' ','A',' ','P','A','T','R','O','L','L','E','R','\n',0, + stop_chr + goto_next(0x00) + + label(0x33) + dprint 'P','A','T',' ','R','E','T','\n',0, + start_path + label(0x00) + yield + if_self_flag_bankx_eq(CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x6c) + call_rng + if_rand_gt(128, /*goto*/ 0x6c) + label(0x6d) + restart_timer + label(0x07) + stop_chr + if_self_flag_bankx_eq(CHRFLAG1_DONE_SEARCH_ANIM, TRUE, BANK_1, /*goto*/ 0x31) + call_rng + if_rand_gt(128, /*goto*/ 0x31) + call_rng + if_rand_lt(64, /*goto*/ 0x6e) + if_rand_lt(128, /*goto*/ 0x6f) + if_rand_lt(196, /*goto*/ 0x70) + set_self_flag_bankx(CHRFLAG1_DONE_SEARCH_ANIM, BANK_1) + animation(ANIM_SMOKE_CIGARETTE, 0, -1, 0x100a, CHR_SELF, 2) + goto_next(0x72) + + label(0x6e) + animation(ANIM_SCRATCH_HEAD, 0, -1, 0x100a, CHR_SELF, 2) + goto_next(0x72) + + label(0x6f) + animation(ANIM_YAWN, 0, -1, 0x100a, CHR_SELF, 2) + goto_next(0x72) + + label(0x70) + animation(ANIM_GRAB_CROTCH, 0, -1, 0x100a, CHR_SELF, 2) + goto_next(0x72) + + label(0x71) + animation(ANIM_TWO_GUN_HOLD, 0, 100, 0x100a, CHR_SELF, 2) + goto_next(0x72) + + label(0x31) + unset_self_flag_bankx(CHRFLAG1_DONE_SEARCH_ANIM, BANK_1) + if_chr_distance_to_pad_lt(CHR_SELF, 100, TARGET_PAD, /*goto*/ 0x02) + goto_next(0x31) + + label(0x02) + call_rng + if_rand_lt(64, /*goto*/ 0x6e) + if_rand_lt(128, /*goto*/ 0x6f) + if_rand_lt(196, /*goto*/ 0x70) + try_set_target_pad_to_something(0x08, /*goto*/ 0x31) + label(0x6e) + try_set_target_pad_to_something(0x02, /*goto*/ 0x31) + label(0x6f) + try_set_target_pad_to_something(0x04, /*goto*/ 0x31) + label(0x70) + try_set_target_pad_to_something(0x08, /*goto*/ 0x31) + goto_next(0x72) + label(0x31) + go_to_target_pad(SPEED_WALK) + restart_timer + label(0x72) + yield + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_saw_death(0x00, /*goto*/ 0x4f) + if_shot_near_chr(0x00, /*goto*/ 0x0f) + if_target_chr_in_sight(/*goto*/ 0x02) + if_chr_stopped(/*goto*/ 0x73) + if_chr_idle(/*goto*/ 0x31) + if_timer_gt(180, /*goto*/ 0x73) + label(0x31) + goto_first(0x72) + + label(0x73) + goto_first(0x00) + + label(0x6c) + if_saw_death(0x00, /*goto*/ 0x4f) + if_shot_near_chr(0x00, /*goto*/ 0x0f) + if_target_chr_in_sight(/*goto*/ 0x02) + goto_first(0x00) + + label(0x02) + restart_timer + label(0x04) + yield + if_saw_death(0x00, /*goto*/ 0x4f) + if_shot_near_chr(0x00, /*goto*/ 0x0f) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x31) + goto_next(0x02) + label(0x31) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x31) + if_chr_distance_gt(450, /*goto*/ 0x31) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + set_return_function(CHR_SELF, 0x0419) + set_function(CHR_SELF, GFUNC_CIVILIAN_SAY_COMMENT) + label(0x31) + if_timer_lt(600, /*goto*/ 0x31) + unset_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + label(0x31) + dprint 'L','I','M','O',' ','R','E','A','D','Y',' ','T','O',' ','G','O','\n',0, + goto_first(0x00) + + label(0x0f) + restart_timer + try_face_entity(0x0200, 0x0000, /*goto*/ 0x08) + label(0x08) + yield + if_angle_to_target_chr_lt(10, /*goto*/ 0x02) + if_timer_gt(40, /*goto*/ 0x02) + goto_first(0x08) + + label(0x4f) + restart_timer + animation(0x025f, 0, 193, 0x1010, CHR_SELF, 2) + label(0x0f) + yield + if_timer_gt(90, /*goto*/ 0x0b) + goto_first(0x0f) + + label(0x02) + say_quip(CHR_JOANNA, 0x24, 0xff, 0x00, 0xff, 0x81, 0x00, 0x00) + animation(0x002e, 0, 193, 0x1010, CHR_SELF, 2) + label(0x09) + yield + if_timer_gt(120, /*goto*/ 0x0b) + goto_first(0x09) + + label(0x0b) + try_target_chr_in_same_group(/*goto*/ 0x02) + goto_next(0x0e) + label(0x31) + goto_first(0x04) + + label(0x02) + try_run_to_chr(FOLLOW_CHR, /*goto*/ 0x05) + label(0x05) + yield + if_detected_chr(FOLLOW_CHR, /*goto*/ 0x02) + goto_first(0x05) + + label(0x02) + set_group_alertness(100) + say_quip(CHR_JOANNA, 0x25, 0xff, 0x00, 0xff, 0x81, 0x00, 0x00) + label(0x0e) + animation(0x0229, -1, -1, 0x1014, CHR_SELF, 2) + label(0x0a) + yield + if_chr_stopped(/*goto*/ 0x31) + goto_first(0x0a) + + label(0x31) + goto_first(0x0e) + + endfunction +}; + +u8 func041a_draw_magnum[] = { + set_chr_alliance(CHR_SELF, 0x04) + try_draw_weapon(MODEL_CHRDY357, WEAPON_DY357MAGNUM, 0x10000000, /*goto*/ 0x00) + label(0x00) + unset_self_flag_bankx(CHRFLAG1_00000001, BANK_1) + set_self_flag_bankx(CHRFLAG0_AIVSAI, BANK_0) + set_self_flag_bankx(CHRFLAG1_WARNED, BANK_1) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func141b_setup_lifts[] = { + activate_lift(1, 0x20) + activate_lift(2, 0x21) + activate_lift(9, 0x36) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1018_safe_switch[] = { + set_object_flag_bank1(OBJ_FLIGHTPLANS, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank0(OBJ_SAFE_SWITCH_COVER, OBJECTFLAG0_DEACTIVATED) + + // Wait for player to activate switch + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_SAFE_SWITCH, /*goto*/ 0x31) + endloop(0x00) + + // Raise switch cover + label(0x31) + unset_object_flag_bank0(OBJ_SAFE_SWITCH_COVER, OBJECTFLAG0_DEACTIVATED) + + beginloop(0x05) + if_lift_stationary(OBJ_SAFE_SWITCH_COVER, /*goto*/ 0x31) + endloop(0x05) + + label(0x31) + set_object_flag_bank0(OBJ_SAFE_SWITCH_COVER, OBJECTFLAG0_DEACTIVATED) + + // Wait for player to press button again + beginloop(0x06) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_SAFE_SWITCH, /*goto*/ 0x31) + endloop(0x06) + + // Open safe + label(0x31) + play_sound(0x00ba, -1) + yield + yield + yield + yield + yield + open_door(OBJ_SAFEDOOR) + yield + set_object_flag_bank0(OBJ_SAFEDOOR, OBJECTFLAG0_40000000) + + unset_object_flag_bank1(OBJ_FLIGHTPLANS, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank0(OBJ_FLIGHTPLANS, OBJECTFLAG0_00100000) + set_object_flag_bank0(OBJ_FLIGHTPLANS, OBJECTFLAG0_COLLECTABLE) + set_object_flag_bank1(OBJ_FLIGHTPLANS, OBJECTFLAG1_00001000) + + // 0x32 = a shield + set_object_flag_bank1(0x34, OBJECTFLAG1_00001000) + unset_object_flag_bank0(0x34, OBJECTFLAG0_00100000) + + // 0x32 = invalid object + unset_object_flag_bank1(0x32, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank0(0x32, OBJECTFLAG0_00100000) + + label(0x31) + + beginloop(0x08) + if_door_state(OBJ_SAFEDOOR, DOORSTATE_CLOSING, /*goto*/ 0x31) + reloop(0x08) + + label(0x31) + open_door(OBJ_SAFEDOOR) + endloop(0x08) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1018_safe_switch_cover[] = { + set_object_flag_bank0(OBJ_SAFE_SWITCH_COVER, OBJECTFLAG0_DEACTIVATED) + + beginloop(0x00) + if_chr_activated_object(CHR_F3, OBJ_SAFE_SWITCH_COVER, /*goto*/ 0x31) + endloop(0x00) + + label(0x31) + unset_object_flag_bank0(OBJ_SAFE_SWITCH_COVER, OBJECTFLAG0_DEACTIVATED) + yield + yield + + beginloop(0x04) + if_lift_stationary(OBJ_SAFE_SWITCH_COVER, /*goto*/ 0x31) + endloop(0x04) + + label(0x31) + set_object_flag_bank0(OBJ_SAFE_SWITCH_COVER, OBJECTFLAG0_02000000) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101a_check_disguise_used[] = { + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_flag_bank2(CHR_P1P2, CHRFLAG2_DISGUISED, /*goto*/ 0x31) + endloop(0x00) + + label(0x31) + message(CHR_P1P2, 0x0e31) // "Disguise worn." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1003_intro[] = { + label(0x31) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_music_track(MUSIC_AIRBASE_INTRO) + camera_movement(0x01e5) + cmd0175(60) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x01e6, -1, -1, 0x0600, CHR_JOANNA, 4) + set_chr_hud_visible(CHR_JOANNA, TRUE) + set_chr_flag_bank3(CHR_TRENT, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_TRENT, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_TRENT, CHRFLAG2_00020000) + animation(0x01e7, -1, -1, 0x0600, CHR_TRENT, 4) + set_chr_flag_bank3(0x48, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x48, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(0x48, CHRFLAG2_00020000) + animation(0x01e8, -1, -1, 0x0600, 0x48, 4) + set_chr_flag_bank3(0x49, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x49, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(0x49, CHRFLAG2_00020000) + animation(0x01e9, -1, -1, 0x0600, 0x49, 4) + set_chr_flag_bank3(0x4a, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x4a, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(0x4a, CHRFLAG2_00020000) + animation(0x01ea, -1, -1, 0x0600, 0x4a, 4) + set_chr_flag_bank3(0x4b, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x4b, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(0x4b, CHRFLAG2_00020000) + animation(0x01eb, -1, -1, 0x0600, 0x4b, 4) + set_chr_flag_bank3(0x4c, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x4c, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(0x4c, CHRFLAG2_00020000) + animation(0x01ec, -1, -1, 0x0600, 0x4c, 4) + show_object(0x22) + set_object_flag_bank1(0x22, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x22, OBJECTFLAG2_00000010) + object_do_animation(0x01ed, 0x22, 0x04ff, 0xff) + show_object(0x2f) + set_object_flag_bank1(0x2f, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x2f, OBJECTFLAG2_00000010) + object_do_animation(0x01ee, 0x2f, 0x04ff, 0xff) + restart_timer + fade_to_color(0x000000ff, 0x0000) + fade_to_color(0x00000000, 0x006e) + set_cutscene_weapon(CHR_JOANNA, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_JOANNA, WEAPON_NONE, WEAPON_NONE) + + wait_until(30, 0x6d) + speak(CHR_JOANNA, 0x0e37, 0x7447, CHANNEL_7, COLOR_09_BLUE) // "Agent Dark in position. I can see the main entranc..." + + wait_until(312, 0x89) + play_sound(0x0594, CHANNEL_10) + + wait_until(346, 0x8a) + play_sound(0x0595, CHANNEL_10) + + wait_until(580, 0x76) + speak(CHR_JOANNA, 0x0e38, 0x7448, CHANNEL_10, COLOR_06_WHITE) // "Excellent, Joanna. That cable car is your way in....." + + wait_until(968, 0x8b) + play_sound(0x0596, CHANNEL_10) + + wait_until(1315, 0x77) + speak(CHR_JOANNA, 0x0e39, 0x77db, CHANNEL_10, COLOR_09_BLUE) // "That they're probably innocent of any involvement ..." + + wait_until(1411, 0x8e) + play_sound(0x04af, CHANNEL_0) + + wait_until(1735, 0x85) + mute_channel(CHANNEL_0) + play_sound(0x04ea, CHANNEL_10) + + wait_until(1800, 0x86) + play_sound(0x04eb, CHANNEL_10) + + wait_until(1890, 0x87) + play_sound(0x04ec, CHANNEL_10) + + wait_until(1900, 0x78) + speak(CHR_JOANNA, 0x0e3a, 0x7449, CHANNEL_5, COLOR_06_WHITE) // "I don't know how far the conspiracy has spread thr..." + + wait_until(1970, 0x8c) + play_sound(0x0171, CHANNEL_10) + + wait_until(1980, 0x88) + + wait_until(2013, 0x8d) + play_sound(0x0172, CHANNEL_10) + + wait_until(2048, 0x8f) + play_sound(0x0596, CHANNEL_10) + + wait_until(2076, 0x92) + play_sound(0x0161, CHANNEL_10) + + wait_until(2088, 0x93) + play_sound(0x0162, CHANNEL_10) + + wait_until(2116, 0x94) + play_sound(0x0163, CHANNEL_10) + + wait_until(2140, 0x95) + play_sound(0x0164, CHANNEL_10) + + wait_until(2154, 0x96) + play_sound(0x0165, CHANNEL_10) + + wait_until(2184, 0x97) + play_sound(0x0166, CHANNEL_10) + + wait_until(2202, 0x98) + play_sound(0x0167, CHANNEL_10) + + wait_until(2246, 0x99) + play_sound(0x0168, CHANNEL_10) + + wait_until(2296, 0x9a) + play_sound(0x0161, CHANNEL_10) + + wait_until(2332, 0x9b) + play_sound(0x0162, CHANNEL_10) + + wait_until(2376, 0x9c) + play_sound(0x0165, CHANNEL_10) + + wait_until(2418, 0x9d) + play_sound(0x0163, CHANNEL_10) + + wait_until(2446, 0x9e) + play_sound(0x0164, CHANNEL_10) + + wait_until(2486, 0x9f) + play_sound(0x0168, CHANNEL_10) + + wait_until(2526, 0xa0) + play_sound(0x0166, CHANNEL_10) + + wait_until(2558, 0xa1) + play_sound(0x0167, CHANNEL_10) + + wait_until(2674, 0xa2) + play_sound(0x0168, CHANNEL_10) + + wait_until(2700, 0x79) + speak(CHR_JOANNA, 0x0e3b, 0x744a, CHANNEL_7, COLOR_09_BLUE) // "Yes, and protect him from his abductors. Do you ha..." + + wait_until(2704, 0xa3) + play_sound(0x0161, CHANNEL_10) + + wait_until(2720, 0xa4) + play_sound(0x0163, CHANNEL_10) + + wait_until(2770, 0xa5) + play_sound(0x0164, CHANNEL_10) + + wait_until(2796, 0xa6) + play_sound(0x0167, CHANNEL_10) + + wait_until(2812, 0xa7) + play_sound(0x0168, CHANNEL_10) + + wait_until(2830, 0xa8) + play_sound(0x0162, CHANNEL_10) + + wait_until(2846, 0xa9) + play_sound(0x0164, CHANNEL_10) + + wait_until(2856, 0xaa) + play_sound(0x0165, CHANNEL_10) + + wait_until(2890, 0xab) + play_sound(0x0166, CHANNEL_10) + + wait_until(2946, 0xac) + play_sound(0x0163, CHANNEL_10) + + wait_until(2976, 0xad) + play_sound(0x0164, CHANNEL_10) + + wait_until(3008, 0xae) + play_sound(0x0167, CHANNEL_10) + + wait_until(3116, 0xaf) + play_sound(0x0164, CHANNEL_10) + + wait_until(3154, 0xb0) + play_sound(0x0165, CHANNEL_10) + + wait_until(3188, 0xb1) + play_sound(0x0163, CHANNEL_10) + + wait_until(3230, 0xb2) + play_sound(0x0164, CHANNEL_10) + + wait_until(3250, 0x7a) + speak(CHR_JOANNA, 0x0e3c, 0x744b, CHANNEL_5, COLOR_06_WHITE) // "Only vague suspicions, and I won't distract you wi..." + + wait_until(3387, 0xb3) + play_sound(0x0166, CHANNEL_10) + + wait_until(3427, 0xb4) + play_sound(0x0167, CHANNEL_10) + + wait_until(3448, 0xb5) + play_sound(0x0168, CHANNEL_10) + + wait_until(3656, 0xb6) + play_sound(0x0163, CHANNEL_10) + + wait_until(3723, 0x90) + + wait_until(3796, 0x91) + play_sound(0x04fc, CHANNEL_10) + + beginloop(0x04) + if_camera_animating(/*goto*/ 0x31) + goto_next(0x48) + + label(0x31) + if_controller_button_pressed(/*goto*/ 0x48) + label(0x31) + endloop(0x04) + + label(0x48) + mute_channel(CHANNEL_7) + mute_channel(CHANNEL_6) + mute_channel(CHANNEL_5) + mute_channel(CHANNEL_4) + mute_channel(CHANNEL_0) + mute_channel(CHANNEL_10) + hide_object(0x22) + hide_object(0x2f) + label(0x02) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_TRENT, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x48, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x49, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x4a, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x4b, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x4c, CHRFLAG3_UNPLAYABLE) + remove_chr(CHR_TRENT) + remove_chr(0x48) + remove_chr(0x4a) + remove_chr(0x4b) + remove_chr(0x4c) + set_chr_flag_bank3(0x49, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(0x49, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(0x49, CHRFLAG2_00020000) + animation(0x01e9, -2, -1, 0x0600, 0x49, 2) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x01e6, -2, -1, 0x0600, CHR_JOANNA, 2) + set_chr_hud_visible(CHR_JOANNA, FALSE) + unset_object_flag_bank1(0x22, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x22, OBJECTFLAG2_00000010) + object_do_animation(0x01ed, 0x22, 0x01ff, 0xfe) + set_function(0x00, 0x0405) + set_function(0x01, 0x0405) + set_function(CHR_STEWARDESS, FUNC_STEWARDESS) + restart_default_music + reset_ambience + enter_firstperson + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101c_msg_nowsyourchance[] = { + beginloop(0x00) + if_stage_flag_eq(STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE, TRUE, /*goto*/ 0x31) + endloop(0x00) + + label(0x31) + speak(CHR_JOANNA, 0x0e32, 0x8182, CHANNEL_6, COLOR_09_BLUE) // "Now's your chance! Grab the stewardess's bag and g..." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101d_msg_usethatcase[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x09) + + restart_timer + + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_has_object(CHR_P1P2, OBJ_BRIEFCASE1, /*goto*/ 0x31) + endloop(0x00) + + label(0x31) + restart_timer + + beginloop(0x04) + if_timer_gt(600, /*goto*/ 0x31) + reloop(0x04) + + label(0x31) + if_sound_finished(CHANNEL_4, /*goto*/ 0x31) + endloop(0x04) + + label(0x31) + speak(CHR_P1P2, 0x0e33, 0x8183, CHANNEL_4, COLOR_09_BLUE) // "Use that case to conceal your equipment." + + label(0x09) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101e_msg_casewillgetstopped[] = { + beginloop(0x00) + if_objective_complete(1, /*goto*/ 0x31) + endloop(0x00) + + label(0x31) + restart_timer + + beginloop(0x04) + if_timer_gt(120, /*goto*/ 0x31) + endloop(0x04) + + label(0x31) + speak(CHR_JOANNA, 0x0e34, 0x8184, CHANNEL_6, COLOR_09_BLUE) // "The case will get stopped unless you do something." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101f_msg_smallerthanithought[] = { + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0025, /*goto*/ 0x31) + if_chr_in_room(CHR_P1P2, 0x00, 0x001c, /*goto*/ 0x31) + endloop(0x00) + + label(0x31) + speak(CHR_P1P2, 0x0e35, 0x73c7, CHANNEL_6, COLOR_09_BLUE) // "So that's Air Force One? ... Huh, smaller than I t..." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1022_check_office1_dead[] = { + beginloop(0x00) + if_chr_dying(CHR_OFFICE1, /*goto*/ 0x31) + if_chr_death_animation_finished(CHR_OFFICE1, /*goto*/ 0x31) + if_chr_unloaded(CHR_OFFICE1, /*goto*/ 0x31) + endloop(0x00) + + label(0x31) + set_stage_flag(STAGEFLAG_OFFICE1_DEAD) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1023_check_office2_dead[] = { + beginloop(0x00) + if_chr_dying(CHR_OFFICE2, /*goto*/ 0x31) + if_chr_death_animation_finished(CHR_OFFICE2, /*goto*/ 0x31) + if_chr_unloaded(CHR_OFFICE2, /*goto*/ 0x31) + endloop(0x00) + + label(0x31) + set_stage_flag(STAGEFLAG_OFFICE2_DEAD) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1024_double_dy357[] = { + set_object_flag_bank0(0x30, OBJECTFLAG0_00100000) + set_object_flag_bank1(0x30, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank0(0x31, OBJECTFLAG0_00100000) + set_object_flag_bank1(0x31, OBJECTFLAG1_INVISIBLE) + + beginloop(0x00) + if_chr_unloaded(0x10, /*goto*/ 0x31) + reloop(0x00) + + label(0x31) + if_chr_unloaded(0x11, /*goto*/ 0x31) + endloop(0x00) + + label(0x31) + unset_object_flag_bank0(0x30, OBJECTFLAG0_00100000) + unset_object_flag_bank1(0x30, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank0(0x31, OBJECTFLAG0_00100000) + unset_object_flag_bank1(0x31, OBJECTFLAG1_INVISIBLE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * @unused + */ +u8 func0416_watch_flag[] = { + beginloop(0x00) + if_chr_flag_bank2(CHR_SELF, CHRFLAG2_40000000, /*goto*/ 0x31) + dprint 'F','L','A','G',' ','N','O','T',' ','S','E','T','\n',0, + reloop(0x00) + + label(0x31) + dprint 'F','L','A','G',' ','S','E','T','\n',0, + endloop(0x00) + + endfunction +}; + +u8 func101a_check_disguise_used2[] = { + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_has_object(CHR_P1P2, OBJ_UNIFORM, /*goto*/ 0x02) + endloop(0x00) + + label(0x02) + dprint 'D','I','S','G','U','I','S','E','D',' ','U','P','\n',0, + + beginloop(0x04) + if_chr_flag_bank2(CHR_P1P2, CHRFLAG2_DISGUISED, /*goto*/ 0x31) + endloop(0x04) + + label(0x31) + if_stage_flag_eq(STAGEFLAG_DISGUISE_UNCOVERED, TRUE, /*goto*/ 0x02) + if_stage_flag_eq(STAGEFLAG_RECEPTIONIST_CALLED_SECURITY, TRUE, /*goto*/ 0x02) + set_stage_flag(STAGEFLAG_DISGUISED) + set_stage_flag(STAGEFLAG_DISGUISED2) + label(0x02) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x00) + endfunction +}; + +u8 func1026_check_alarm_destroyed[] = { + beginloop(0x00) + if_object_in_good_condition(OBJ_ALARM, /*goto*/ 0x31) + activate_alarm + set_function(CHR_SELF, GFUNC_IDLE) + label(0x31) + endloop(0x00) + + endfunction +}; + +u8 func0417_remove_or_unalert[] = { + set_self_flag_bank3(CHRFLAG3_00040000) + + label(0x00) + yield + set_target_chr(CHR_JOANNA) + if_within_units_of_sight(30, /*goto*/ 0x02) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x31) + set_target_chr(CHR_VELVET) + if_within_units_of_sight(30, /*goto*/ 0x02) + label(0x31) + if_chr_death_animation_finished(CHR_COUNTEROP, /*goto*/ 0x04) + set_target_chr(CHR_COUNTEROP) + if_within_units_of_sight(30, /*goto*/ 0x02) + label(0x04) + yield + chr_drop_weapon(CHR_SELF) + remove_chr(CHR_SELF) + label(0x31) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x02) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func0418_remove_or_cower[] = { + set_self_flag_bank3(CHRFLAG3_00040000) + label(0x00) + yield + set_target_chr(CHR_JOANNA) + if_within_units_of_sight(30, /*goto*/ 0x02) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x31) + set_target_chr(CHR_VELVET) + if_within_units_of_sight(30, /*goto*/ 0x02) + label(0x31) + if_chr_death_animation_finished(CHR_COUNTEROP, /*goto*/ 0x04) + set_target_chr(CHR_COUNTEROP) + if_within_units_of_sight(30, /*goto*/ 0x02) + label(0x04) + yield + remove_chr(CHR_SELF) + label(0x31) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x02) + label(0x62) + animation(ANIM_COWER_0229, -1, -1, 0x140a, CHR_SELF, 2) + + beginloop(0x63) + if_chr_stopped(/*goto*/ 0x31) + endloop(0x63) + + label(0x31) + goto_first(0x62) + + endfunction +}; + +u8 func102a_setup_snow[] = { + enable_snow(TRUE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1027_remotemine[] = { + beginloop(0x00) + if_object_in_good_condition(OBJ_REMOTEMINE, /*goto*/ 0x31) + goto_next(0x02) + + label(0x31) + reloop(0x00) + + label(0x02) + destroy_object(OBJ_REMOTEMINE) + yield + destroy_object(0x46) + yield + destroy_object(0x47) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x31) + endloop(0x00) + + endfunction +}; + +u8 func141b_setup_lifts_and_doors[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x31) + + // SA and PA + unlock_door(0x35, 0x80) + goto_next(0x02) + + // Agent + label(0x31) + hide_object(0x09) + label(0x02) + set_object_flag_bank0(OBJ_DIAGONAL_LIFT, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(OBJ_VERTICAL_LIFT, OBJECTFLAG0_DEACTIVATED) + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x02) + endloop(0x04) + + label(0x02) + unset_object_flag_bank0(OBJ_DIAGONAL_LIFT, OBJECTFLAG0_DEACTIVATED) + unset_object_flag_bank0(OBJ_VERTICAL_LIFT, OBJECTFLAG0_DEACTIVATED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1029_lift_doors[] = { + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, 0x37, /*goto*/ 0x31) + if_chr_activated_object(CHR_P1P2, 0x38, /*goto*/ 0x31) + if_chr_activated_object(CHR_P1P2, 0x39, /*goto*/ 0x31) + if_chr_activated_object(CHR_P1P2, 0x42, /*goto*/ 0x05) + if_chr_activated_object(CHR_P1P2, 0x43, /*goto*/ 0x05) + if_chr_activated_object(CHR_P1P2, 0x48, /*goto*/ 0x05) + if_chr_activated_object(CHR_P1P2, 0x49, /*goto*/ 0x05) + if_chr_activated_object(CHR_P1P2, 0x3b, /*goto*/ 0x05) + if_chr_activated_object(CHR_P1P2, 0x3c, /*goto*/ 0x05) + if_chr_activated_object(CHR_P1P2, 0x3d, /*goto*/ 0x05) + if_chr_activated_object(CHR_P1P2, 0x3e, /*goto*/ 0x05) + if_chr_activated_object(CHR_P1P2, 0x3f, /*goto*/ 0x05) + if_chr_activated_object(CHR_P1P2, 0x40, /*goto*/ 0x05) + if_chr_activated_object(CHR_P1P2, 0x41, /*goto*/ 0x05) + reloop(0x00) + + label(0x31) + if_stage_flag_eq(STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x05) + message(CHR_P1P2, 0x0e3d) // "Lift inoperative - security system is active." + restart_timer + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x05) + if_timer_gt(120, /*goto*/ 0x31) + endloop(0x04) + + label(0x31) + reloop(0x00) + + label(0x05) + play_sound(0x81b0, -1) + restart_timer + + beginloop(0x06) + if_timer_gt(120, /*goto*/ 0x02) + endloop(0x06) + + label(0x02) + endloop(0x00) + + endfunction +}; + +u8 func102b_check_secretary_dead[] = { + beginloop(0x00) + if_stage_flag_eq(STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x09) + if_chr_death_animation_finished(CHR_SECRETARY, /*goto*/ 0x31) + if_chr_dying(CHR_SECRETARY, /*goto*/ 0x31) + if_chr_unloaded(CHR_SECRETARY, /*goto*/ 0x31) + endloop(0x00) + + label(0x31) + if_door_locked(0x18, 0x02, /*goto*/ 0x31) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x31) + message(CHR_JOANNA, 0x0e3e) // "Critical mission personnel disabled." + set_stage_flag(STAGEFLAG_SECRETARY_DEAD) + label(0x09) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func102c_lock_door_on_alarm[] = { + beginloop(0x00) + if_alarm_active(/*goto*/ 0x31) + endloop(0x00) + + label(0x31) + lock_door(0x18, 0x04) + close_door(0x18) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func102d_check_console_destroyed[] = { + beginloop(0x00) + if_object_in_good_condition(OBJ_CONSOLE, /*goto*/ 0x31) + goto_next(0x02) + + label(0x31) + endloop(0x00) + + label(0x02) + mute_channel(CHANNEL_1) + if_stage_flag_eq(STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x31) + set_stage_flag(STAGEFLAG_CONSOLE_DESTROYED) + message(CHR_JOANNA, 0x0e3f) // "Critical mission object destroyed." + label(0x31) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func102e_check_base_entered[] = { + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x002e, /*goto*/ 0x31) + endloop(0x00) + + label(0x31) + message(CHR_JOANNA, 0x0e40) // "Entrance to base secured." + set_stage_flag(STAGEFLAG_ENTERED_BASE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func102f_undisguise_on_alarm[] = { + beginloop(0x00) + if_alarm_active(/*goto*/ 0x31) + endloop(0x00) + + label(0x31) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_DISGUISE_UNCOVERED) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x31) + set_chr_flag_bank2(CHR_VELVET, CHRFLAG2_DISGUISE_UNCOVERED) + label(0x31) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1030_setup_rtracker[] = { + yield + set_object_flag_bank2(0x30, OBJECTFLAG2_RTRACKED_BLUE) + set_object_flag_bank2(0x31, OBJECTFLAG2_RTRACKED_BLUE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1031_setup_lighting[] = { + yield + set_lighting(0x0000, 0x00, 0x00) + set_lighting(0x0000, 0x01, 0x00) + set_lighting(0x0000, 0x02, 0x00) + set_lighting(0x0000, 0x03, 0x00) + set_lighting(0x0000, 0x04, 0x00) + set_lighting(0x007b, 0x05, 0x01) + set_lighting(0x007b, 0x06, 0x01) + set_lighting(0x007c, 0x05, 0x01) + set_lighting(0x007c, 0x06, 0x01) + set_lighting(0x007d, 0x05, 0x01) + set_lighting(0x007d, 0x06, 0x01) + set_lighting(0x007f, 0x05, 0x01) + set_lighting(0x007f, 0x06, 0x01) + set_lighting(0x0080, 0x06, 0x01) + set_lighting(0x0081, 0x05, 0x01) + set_lighting(0x0081, 0x06, 0x01) + set_lighting(0x0082, 0x05, 0x01) + set_lighting(0x0082, 0x06, 0x01) + set_lighting(0x0083, 0x05, 0x01) + set_lighting(0x0083, 0x06, 0x01) + set_lighting(0x0084, 0x06, 0x01) + set_lighting(0x0085, 0x06, 0x01) + set_lighting(0x0086, 0x05, 0x01) + set_lighting(0x0086, 0x06, 0x01) + set_lighting(0x0087, 0x05, 0x01) + set_lighting(0x0087, 0x06, 0x01) + set_lighting(0x0088, 0x05, 0x01) + set_lighting(0x0088, 0x06, 0x01) + set_lighting(0x0089, 0x05, 0x01) + set_lighting(0x008f, 0x05, 0x01) + set_lighting(0x0090, 0x06, 0x01) + set_lighting(0x0091, 0x06, 0x01) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1032_unhide_guards_near_plane[] = { + // Wait until player is in a room near the plane. If you ride the vertical + // elevator all the way to the bottom, then come out and turn left, you'll + // walk through these rooms before reaching the stairs. + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0016, /*goto*/ 0x31) + if_chr_in_room(CHR_P1P2, 0x00, 0x0017, /*goto*/ 0x31) + endloop(0x00) + + label(0x31) + show_chr(0x1b) + set_function(0x1b, 0x0422) + unset_chr_flag_bank2(0x1b, CHRFLAG2_40000000) + unset_chr_flag_bank3(0x1b, CHRFLAG3_HIDDEN) + yield + show_chr(0x19) + set_function(0x19, FUNC_INIT_POSTTAKEOVER_GUARD) + unset_chr_flag_bank2(0x19, CHRFLAG2_40000000) + unset_chr_flag_bank3(0x19, CHRFLAG3_HIDDEN) + yield + show_chr(0x1d) + set_function(0x1d, FUNC_INIT_POSTTAKEOVER_GUARD) + unset_chr_flag_bank2(0x1d, CHRFLAG2_40000000) + unset_chr_flag_bank3(0x1d, CHRFLAG3_HIDDEN) + yield + show_chr(0x1e) + set_function(0x1e, FUNC_INIT_POSTTAKEOVER_GUARD) + unset_chr_flag_bank2(0x1e, CHRFLAG2_40000000) + unset_chr_flag_bank3(0x1e, CHRFLAG3_HIDDEN) + yield + show_chr(0x20) + set_function(0x20, FUNC_INIT_POSTTAKEOVER_GUARD) + unset_chr_flag_bank2(0x20, CHRFLAG2_40000000) + unset_chr_flag_bank3(0x20, CHRFLAG3_HIDDEN) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1420_setup_portals[] = { + yield + configure_room_portals(0x0080) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +struct ailists functions[] = { + { func1000_rebuild_groups, 0x1000 }, + { func1401_setup_counterop, 0x1401 }, + { func1002_objectives_failed_msg, 0x1002 }, + { func1003_intro, 0x1003 }, + { func1004_guard_activation, 0x1004 }, + { func1005_check_civilians_killed, 0x1005 }, + { func1007_console_activation, 0x1007 }, + { func1009_carousel_activation, 0x1009 }, + { func100b_suitcase_scanning, 0x100b }, + { func100c_check_end_level, 0x100c }, + { func100d_laser_panel, 0x100d }, + { func100e_check_alaskans_killed, 0x100e }, + { func1010_setup_baggage_carrier, 0x1010 }, + { func1011_lasers1, 0x1011 }, + { func1012_lasers2, 0x1012 }, + { func1013_lasers3, 0x1013 }, + { func1014_lasers4, 0x1014 }, + { func1015_unhide_laser_guards, 0x1015 }, + { func1016_console_noises, 0x1016 }, + { func1017_laser5, 0x1017 }, + { func1018_safe_switch, 0x1018 }, + { func1018_safe_switch_cover, 0x1019 }, + { func101a_check_disguise_used, 0x101a }, + { func141b_setup_lifts, 0x141b }, + { func101c_msg_nowsyourchance, 0x101c }, + { func101d_msg_usethatcase, 0x101d }, + { func101e_msg_casewillgetstopped, 0x101e }, + { func101f_msg_smallerthanithought, 0x101f }, + { func1020_weapon_scanning_joanna, 0x1020 }, + { func1021_weapon_scanning_velvet, 0x1021 }, + { func1022_check_office1_dead, 0x1022 }, + { func1023_check_office2_dead, 0x1023 }, + { func1024_double_dy357, 0x1024 }, + { func101a_check_disguise_used2, 0x1025 }, + { func1026_check_alarm_destroyed, 0x1026 }, + { func1027_remotemine, 0x1027 }, + { func141b_setup_lifts_and_doors, 0x1028 }, + { func1029_lift_doors, 0x1029 }, + { func102a_setup_snow, 0x102a }, + { func102b_check_secretary_dead, 0x102b }, + { func102c_lock_door_on_alarm, 0x102c }, + { func102d_check_console_destroyed, 0x102d }, + { func102e_check_base_entered, 0x102e }, + { func102f_undisguise_on_alarm, 0x102f }, + { func1030_setup_rtracker, 0x1030 }, + { func1031_setup_lighting, 0x1031 }, + { func1032_unhide_guards_near_plane, 0x1032 }, + { func1420_setup_portals, 0x1420 }, + { func0404_laser_guard, 0x0404 }, + { func0403_unused, 0x0403 }, + { func0402_init_stripes, 0x0402 }, + { func0401_unused_cutscene, 0x0401 }, + { func0405_start_path15, 0x0405 }, + { func0406_become_unalerted, 0x0406 }, + { func041b_start_path06, 0x041b }, + { func041c_start_path07, 0x041c }, + { func041d_start_path08, 0x041d }, + { func041e_start_path09, 0x041e }, + { func041f_start_path10, 0x041f }, + { func0420_start_path11, 0x0420 }, + { func0421_start_path12, 0x0421 }, + { func0422_start_path13, 0x0422 }, + { func0423_start_path14, 0x0423 }, + { func0424_start_path15_unused, 0x0424 }, + { func0407_stewardess, 0x0407 }, + { func0408_secretary, 0x0408 }, + { func0409_office1, 0x0409 }, + { func040a_office2, 0x040a }, + { func040b_unused, 0x040b }, + { func040c_init_secretary, 0x040c }, + { func040d_init_office1, 0x040d }, + { func040e_init_office2, 0x040e }, + { func040f_nsa, 0x040f }, + { func0410_unused, 0x0410 }, + { func0411_takeover_lackey, 0x0411 }, + { func0412_init_takeover_lackey, 0x0412 }, + { func0413_alaskan_console_guard, 0x0413 }, + { func0414_officeworker, 0x0414 }, + { func0415_alaskan_mountainlift_guard, 0x0415 }, + { func0416_watch_flag, 0x0416 }, + { func0417_remove_or_unalert, 0x0417 }, + { func0418_remove_or_cower, 0x0418 }, + { func0419_ba8c, 0x0419 }, + { func041a_draw_magnum, 0x041a }, + { func0425_outro, 0x0425 }, + { func0426_init_alaskan_guard, 0x0426 }, + { func0427_init_posttakeover_guard, 0x0427 }, + { func0428_posttakeover_guard, 0x0428 }, + { func0429_unused, 0x0429 }, + { func042a_foyer_spawner, 0x042a }, + { func042b_init_foyer_clone, 0x042b }, + { func042c_foyer_clone, 0x042c }, + { func042d_hoverbot1, 0x042d }, + { func042e_hoverbot2, 0x042e }, + { func042f_hoverbot3, 0x042f }, + { func0430_hoverbot4, 0x0430 }, + { func0431_hoverbot5, 0x0431 }, + { func0432_hoverbot6, 0x0432 }, + { func1003_intro, 0x0c00 }, + { func0425_outro, 0x0c01 }, + { NULL, 0 }, +}; + diff --git a/src/setup/setupcrad.c b/src/setup/setupcrad.c new file mode 100644 index 000000000..023a39b8c --- /dev/null +++ b/src/setup/setupcrad.c @@ -0,0 +1,40 @@ +// +// Pipes (MP) +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + intro_weapon(WEAPON_FALCON2, -1) + ammo(AMMOTYPE_PISTOL, 100) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setupcryp.c b/src/setup/setupcryp.c new file mode 100644 index 000000000..cd8d01efb --- /dev/null +++ b/src/setup/setupcryp.c @@ -0,0 +1,39 @@ +// +// G5 Building (MP) +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + intro_weapon(WEAPON_FALCON2, -1) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setupdam.c b/src/setup/setupdam.c new file mode 100644 index 000000000..524f8e202 --- /dev/null +++ b/src/setup/setupdam.c @@ -0,0 +1,2997 @@ +// +// Pelagic II +// + +#include "../include/setup.h" + +// Characters +#define CHR_ELVIS 0x00 +#define CHR_INTRO_GUARD 0x02 +#define CHR_PILOT1 0x3c +#define CHR_PILOT2 0x3e +#define CHR_PILOT3 0x3f +#define CHR_LABTECH1 0x4e +#define CHR_LABTECH3 0x4f +#define CHR_LABTECH2 0x50 +#define CHR_ANGRY_PILOT 0x60 + +// Objects +#define OBJ_BADHATCHSWITCH1 0x08 +#define OBJ_BADHATCHSWITCH2 0x09 +#define OBJ_BADHATCHSWITCH3 0x0a +#define OBJ_BADHATCHSWITCH4 0x0b +#define OBJ_HATCHSWITCH1 0x0c +#define OBJ_HATCHSWITCH2 0x0d +#define OBJ_HATCHSWITCH3 0x0e +#define OBJ_HATCHSWITCH4 0x0f +#define OBJ_REACTOR_SWITCH 0x13 +#define OBJ_RESEARCHDATA1 0x14 +#define OBJ_RESEARCHDATA2 0x15 +#define OBJ_RESEARCHDATA3 0x16 +#define OBJ_LIFT_SWITCH 0x17 +#define OBJ_MOONPOOL_SWITCH 0x1a +#define OBJ_OUTRO_SUBMARINE 0x1b +#define OBJ_OUTRO_GRATE 0x1c +#define OBJ_OUTRO_CRATE1 0x1d +#define OBJ_OUTRO_CRATE2 0x1e +#define OBJ_REACTOR_HATCH 0x26 + +// Stage flags +#define STAGEFLAG_ELVIS_WARPED_FROM_START 0x00000001 +#define STAGEFLAG_TRIGGER_ANGRY_PILOT 0x00000002 +#define STAGEFLAG_MOONPOOL_SWITCH_DESTROYED 0x00000004 +#define STAGEFLAG_GPS_DISABLED 0x00000100 +#define STAGEFLAG_AUTOPILOT_DISABLED 0x00000200 +#define STAGEFLAG_00000400 0x00000400 +#define STAGEFLAG_REACTOR_HATCH_OPEN 0x00000800 +#define STAGEFLAG_REACTOR_SHUT_DOWN 0x00001000 +#define STAGEFLAG_LOCATED_DIVING_AREA 0x00002000 +#define STAGEFLAG_COLLECTED_RESEARCH_DATA 0x00004000 +#define STAGEFLAG_LABTECH_DEAD 0x00008000 +#define STAGEFLAG_SAID_PULLTHEPLUG 0x00010000 +#define STAGEFLAG_SAID_SWITCHTHINGOFF 0x00020000 +#define STAGEFLAG_PILOT_DEAD 0x00040000 +#define STAGEFLAG_00080000 0x00080000 +#define STAGEFLAG_MOONPOOL_ACTIVATED 0x00100000 +#define STAGEFLAG_LIFT_UNLOCKED 0x00200000 +#define STAGEFLAG_HATCHSWITCH1_ACTIVATED 0x00400000 +#define STAGEFLAG_HATCHSWITCH2_ACTIVATED 0x00800000 +#define STAGEFLAG_HATCHSWITCH3_ACTIVATED 0x01000000 +#define STAGEFLAG_HATCHSWITCH4_ACTIVATED 0x02000000 +#define STAGEFLAG_HATCHSWITCHES_RESETTING 0x04000000 +#define STAGEFLAG_MET_ELVIS 0x08000000 +#define STAGEFLAG_ELVIS_APPEARED_AT_MOONPOOL 0x10000000 +#define STAGEFLAG_ELVIS_DEAD 0x20000000 +#define STAGEFLAG_JO_KILLED_A_PILOT 0x40000000 +#define STAGEFLAG_REACTOR_SWITCH_DESTROYED 0x80000000 + +// Functions +#define FUNC_PILOT 0x0401 +#define FUNC_INIT_PILOT 0x0402 +#define FUNC_PILOT_DYING 0x0403 +#define FUNC_ANGRY_PILOT 0x0404 +#define FUNC_GUARD_UNALERTED 0x0408 +#define FUNC_LABTECH1 0x040b +#define FUNC_LABTECH2 0x040c +#define FUNC_LABTECH3 0x040d +#define FUNC_INIT_LABTECH1 0x040e +#define FUNC_INIT_LABTECH2 0x040f +#define FUNC_INIT_LABTECH3 0x0410 +#define FUNC_LABTECH_ALERTED 0x0411 +#define FUNC_HIDE 0x0412 +#define FUNC_GUARD_ALERTED 0x0413 +#define FUNC_OUTRO 0x0414 +#define FUNC_ELVIS_AT_START 0x0415 +#define FUNC_ELVIS_LEADING 0x0416 +#define FUNC_ELVIS_PREPARE_LEADING 0x0417 +#define FUNC_ELVIS_AT_MOONPOOL 0x0418 + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + briefing(0, 0x1601) + briefing(1, 0x1600) + briefing(2, 0x1602) + briefing(3, 0x1603) + + beginobjective(0, 0x1606, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Disable primary power source" + complete_flags(STAGEFLAG_REACTOR_SHUT_DOWN) + fail_flags(STAGEFLAG_REACTOR_SWITCH_DESTROYED) + endobjective + + beginobjective(1, 0x1607, (DIFFBIT_PA | DIFFBIT_PD)) // "Secure laboratories and research data" + complete_flags(STAGEFLAG_COLLECTED_RESEARCH_DATA) + fail_flags(STAGEFLAG_LABTECH_DEAD) + endobjective + + beginobjective(2, 0x1605, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Deactivate GPS and autopilot" + complete_flags(STAGEFLAG_GPS_DISABLED) + complete_flags(STAGEFLAG_AUTOPILOT_DISABLED) + fail_flags(STAGEFLAG_00000400) + fail_flags(STAGEFLAG_PILOT_DEAD) + fail_flags(STAGEFLAG_JO_KILLED_A_PILOT) + endobjective + + beginobjective(3, 0x1608, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Activate Moon Pool lift" + complete_flags(STAGEFLAG_MOONPOOL_ACTIVATED) + fail_flags(STAGEFLAG_MOONPOOL_SWITCH_DESTROYED) + endobjective + + beginobjective(4, 0x1609, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Rendezvous and escape with Elvis" + complete_flags(STAGEFLAG_LOCATED_DIVING_AREA) + fail_flags(STAGEFLAG_ELVIS_DEAD) + endobjective + + chr(0x00010400, 0x00, 0x0024, BODY_THEKING, HEAD_ELVIS_GOGS, GFUNC_IDLE, -1, -1, 1000, 200, 0x00002000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAIANPISTOL, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PHOENIX, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x02, 0x0027, BODY_PELAGIC_GUARD, HEAD_MOTO, GFUNC_IDLE, -1, -1, 1000, 200, 0x00002000, 0x00300000, 0x10, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FARSIGHTXR20, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x2e, 0x014e, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc000a601, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x002e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x2d, 0x014d, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, 0x0214, -1, 1000, 100, 0xc0042000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x002d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x2f, 0x014f, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, 0x0215, -1, 1000, 100, 0xc40c2000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x002f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x30, 0x0150, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, 0x0215, -1, 1000, 100, 0xc40c2008, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0030, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x31, 0x0151, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, 0x0215, -1, 1000, 100, 0xc40c2000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0031, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x32, 0x0152, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, 0x0215, -1, 1000, 100, 0xc40c2008, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0032, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x33, 0x0153, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, 0x0216, -1, 1000, 100, 0xc40c2400, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0033, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x34, 0x0154, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, 0x0216, -1, 1000, 100, 0xc40c2000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0034, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x35, 0x0155, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, 0x0216, -1, 1000, 100, 0xc40c2008, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0035, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x38, 0x0158, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, 0x0217, -1, 1000, 7, 0xc40c2400, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0038, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x39, 0x0159, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, 0x0217, -1, 1000, 7, 0xc40c2000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0039, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x3a, 0x015a, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, 0x0217, -1, 1000, 100, 0xc40c2000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x003a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x3b, 0x015b, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, 0x0217, -1, 1000, 100, 0xc40c2000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x003b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x36, 0x0156, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, 0x0218, -1, 1000, 100, 0xc00c8609, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0036, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x37, 0x0157, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, 0x0218, -1, 1000, 100, 0xc00c8601, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0037, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x51, 0x0002, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0405, -1, -1, 1000, 100, 0x8c000000, 0x02000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0051, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x52, 0x0027, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0405, -1, -1, 1000, 100, 0xc8000000, 0x02000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0052, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x53, 0x0028, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0405, -1, -1, 1000, 100, 0xa8800000, 0x02000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0053, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x57, 0x00df, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 100, 0xcc080000, 0x02000000, 0x80, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0057, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x58, 0x00dc, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 100, 0xcc080000, 0x02000000, 0x80, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0058, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x59, 0x00eb, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 100, 0xcc080000, 0x02000000, 0x80, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0059, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x5a, 0x00e8, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 100, 0xcc080000, 0x02000000, 0x80, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x005a, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x5b, 0x0142, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, 0x0213, -1, 100, 100, 0x8d002000, 0x00004000, 0x80, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x005b, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x5c, 0x0143, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, 0x0213, -1, 100, 100, 0x8d002000, 0x00004000, 0x80, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x005c, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x5d, 0x0144, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, 0x0213, -1, 100, 100, 0x8d002000, 0x00004000, 0x80, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x005d, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x5e, 0x0145, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, 0x0213, -1, 100, 100, 0x8d002000, 0x00004000, 0x80, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x005e, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x03, 0x011f, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0xc0088400, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0003, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x04, 0x0120, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x09, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0004, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x24, 0x0140, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0024, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x25, 0x0141, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0025, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x05, 0x0121, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0005, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x06, 0x0122, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0006, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x07, 0x0123, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0007, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x08, 0x0124, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0008, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x09, 0x0125, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x0a, 0x0126, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0b, 0x0127, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x0c, 0x0128, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0d, 0x0129, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x0e, 0x012a, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0f, 0x012b, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x10, 0x012c, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0010, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x11, 0x012d, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0011, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x12, 0x012e, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0012, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x13, 0x012f, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0013, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x14, 0x0130, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x15, 0x0131, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0015, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x16, 0x0132, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0b, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x17, 0x0133, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0017, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x18, 0x0134, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x40082000, 0x00000000, 0x80, 0x0b, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x19, 0x0135, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x40082000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0019, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x1a, 0x0136, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1b, 0x0137, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x001b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x1c, 0x0138, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x001c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1d, 0x0139, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x001d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x1e, 0x013a, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x001e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1f, 0x013b, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x001f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x20, 0x013c, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0020, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x21, 0x013d, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0021, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x22, 0x013e, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x80, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0022, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x23, 0x013f, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 10, 0x50082000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0023, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x2c, 0x014c, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc8008000, 0x00000080, 0x02, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x002c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x2b, 0x014b, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc8008000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x002b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x2a, 0x014a, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc8008000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x002a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x29, 0x0149, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc8008000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0029, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x54, 0x0004, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 100, 100, 0xc8008000, 0x02000000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0054, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x28, 0x0148, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc8008000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0028, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x27, 0x0147, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc8008000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0027, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x26, 0x0146, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc8008000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0026, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x45, 0x0165, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc000c000, 0x00000000, 0x04, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0045, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x46, 0x0166, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc000c000, 0x00000000, 0x04, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0046, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00010400, 0x3c, 0x015c, BODY_PILOTAF1, HEAD_RANDOM, FUNC_INIT_PILOT, -1, -1, 1000, 10, 0x4000c000, 0x00000000, 0x04, 0x02, -1, 0, 0x00000000) + chr(0x00010400, 0x3e, 0x015e, BODY_PILOTAF1, HEAD_RANDOM, FUNC_INIT_PILOT, -1, -1, 1000, 10, 0x4000c000, 0x00000000, 0x04, 0x02, -1, 0, 0x00000000) + chr(0x00010400, 0x3f, 0x015f, BODY_PILOTAF1, HEAD_RANDOM, FUNC_INIT_PILOT, -1, -1, 1000, 10, 0x4000c000, 0x00000000, 0x04, 0x02, -1, 0, 0x00000000) + chr(0x00000200, 0x41, 0x0161, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc000c000, 0x00000000, 0x04, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0041, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x42, 0x0162, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc000c000, 0x00000000, 0x04, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0042, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x43, 0x0163, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc000c000, 0x00000000, 0x04, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0043, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x44, 0x0164, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc000c000, 0x00000000, 0x04, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0044, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x47, 0x0167, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc4080000, 0x00000000, 0x04, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0047, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x48, 0x0168, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc4080000, 0x00000000, 0x04, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0048, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x49, 0x0169, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc4080000, 0x00000000, 0x04, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0049, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x4a, 0x016a, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc4080000, 0x00000000, 0x04, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x004a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x4b, 0x016b, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc4080000, 0x00000000, 0x04, 0x09, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x004b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x4c, 0x016c, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc4080000, 0x00000000, 0x04, 0x09, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x004c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x4d, 0x016d, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_GUARD_UNALERTED, -1, -1, 1000, 100, 0xc4080000, 0x00000080, 0x04, 0x09, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x004d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x55, 0x0012, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0407, -1, -1, 100, 100, 0xc4080000, 0x02000000, 0x04, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0055, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x56, 0x0014, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0407, -1, -1, 100, 100, 0xc4080000, 0x02000000, 0x04, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0056, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00010400, 0x4e, 0x0209, BODY_DD_LABTECH, HEAD_RANDOM, FUNC_INIT_LABTECH1, 0x00d8, -1, 1000, 100, 0xc0008601, 0x00000000, 0x02, 0x0f, -1, 0, 0x00000000) + chr(0x00010400, 0x50, 0x0055, BODY_DD_LABTECH, HEAD_RANDOM, FUNC_INIT_LABTECH2, 0x0089, -1, 1000, 100, 0xc0008601, 0x00000000, 0x02, 0x0f, -1, 0, 0x01000000) + chr(0x00010400, 0x4f, 0x0057, BODY_DD_LABTECH, HEAD_RANDOM, FUNC_INIT_LABTECH3, 0x008b, -1, 1000, 100, 0xc0008601, 0x00000000, 0x02, 0x0f, -1, 0, 0x02000000) + door(0x0100, MODEL_PELAGICDOOR, 0x00f0, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x00f1, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x00f2, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x00f3, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x00f4, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR2, 0x00f5, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x00f6, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x00f7, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x00f8, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x00f9, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x00fa, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x29, 1) + door(0x0100, MODEL_PELAGICDOOR2, 0x00fb, 0x10000400, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000080, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x2a, 1) + door(0x0100, MODEL_PELAGICDOOR2, 0x00fc, 0x10000400, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000080, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x2b, 1) + door(0x0100, MODEL_PELAGICDOOR2, 0x010a, 0x10000400, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000080, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x2c, 1) + door(0x0100, MODEL_PELAGICDOOR2, 0x0112, 0x10000400, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000080, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x2d, 1) + door(0x0100, MODEL_PELAGICDOOR2, 0x0101, 0x10000400, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000080, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x00fd, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x00fe, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x00ff, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x0100, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x18, 2) + tag(0x19, 2) + door(0x0100, MODEL_BIGPELAGICDOOR, 0x0103, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_BIGPELAGICDOOR, 0x0102, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x0104, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x0105, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x0106, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x0107, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x0108, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x0109, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x010b, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x010c, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x010d, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x010e, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x010f, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x0110, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x0111, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x0113, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x0114, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x0115, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x0116, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x0117, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x0118, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x0119, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x011a, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x011c, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_PELAGICDOOR, 0x011b, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00020000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0180, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x017f, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x017e, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x017d, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x017c, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x017b, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x017a, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0179, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0178, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0177, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0176, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0175, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0174, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0173, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0172, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0171, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0170, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x016f, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x016e, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0181, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0182, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0186, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0187, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0185, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0183, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0189, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0188, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x018b, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0184, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x018a, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x018c, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x018d, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x018e, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x018f, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0191, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0192, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0193, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0194, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0195, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0196, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0197, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0198, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0199, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x019a, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x019b, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x019c, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x019d, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x019e, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x019f, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01a0, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01a1, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01a2, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01a3, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01a4, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01a5, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01a6, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01a7, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01a8, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01ab, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01ac, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01ad, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01ae, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01af, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01b0, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01b1, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01b2, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01b3, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01b4, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01b6, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01b7, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01b8, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01b9, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01ba, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01bb, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01bc, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01bd, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01be, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01c1, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01c2, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01c3, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01c4, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01c5, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01c6, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01c7, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01c8, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01d4, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01d5, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01d6, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01d7, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01d8, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01d9, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01da, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01db, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01dc, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01dd, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01de, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01df, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01e0, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01e1, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01e2, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01e3, 0x004001e1, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BLASTSHIELD, 0x01e6, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BLASTSHIELD, 0x01e7, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BLASTSHIELD, 0x01e8, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BLASTSHIELD, 0x01e9, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BLASTSHIELD, 0x01ea, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BLASTSHIELD, 0x01eb, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BLASTSHIELD, 0x01ec, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BLASTSHIELD, 0x01f1, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BLASTSHIELD, 0x01ed, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BLASTSHIELD, 0x01ee, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BLASTSHIELD, 0x01ef, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BLASTSHIELD, 0x01f0, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x00, 8) + tag(0x01, 8) + tag(0x02, 8) + tag(0x03, 8) + tag(0x04, 8) + tag(0x05, 8) + tag(0x06, 8) + tag(0x07, 8) + multimonitor(0x0099, MODEL_COMHUB, 0x01f2, 0x00020002, 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, 0x13131300) + multimonitor(0x0099, MODEL_COMHUB, 0x01f3, 0x00020002, 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, 0x13131300) + multimonitor(0x0099, MODEL_COMHUB, 0x01f4, 0x00020002, 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, 0x13131300) + multimonitor(0x0099, MODEL_COMHUB, 0x01f5, 0x00020002, 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, 0x13131300) + multimonitor(0x0099, MODEL_COMHUB, 0x01f6, 0x00020002, 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, 0x13131300) + multimonitor(0x0099, MODEL_COMHUB, 0x01f7, 0x00020002, 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, 0x13131300) + multimonitor(0x0099, MODEL_COMHUB, 0x01f8, 0x00020002, 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, 0x13131300) + multimonitor(0x0099, MODEL_COMHUB, 0x01f9, 0x00020002, 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, 0x13131300) + tag(0x08, 1) + tag(0x09, 1) + tag(0x0a, 1) + tag(0x0b, 1) + tag(0x0c, 1) + tag(0x0d, 1) + tag(0x0e, 1) + tag(0x0f, 1) + tag(0x13, 1) + multimonitor(0x0099, MODEL_COMHUB, 0x01fa, 0x000000e2, 0x00000001, 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, 0x13131300) + tag(0x14, 1) + key(0x0080, MODEL_CHRBRIEFCASE, 0x004e, 0x01244000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + rename_object(-1, 0x43, 0x1616, 0x1617, 0x1618, 0x1619, 0x161a, 0x0000, 0x0000) // "" + tag(0x15, 1) + key(0x0080, MODEL_CHRBRIEFCASE, 0x0050, 0x01244000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + rename_object(-1, 0x43, 0x1616, 0x1617, 0x1618, 0x1619, 0x161a, 0x0000, 0x0000) // "" + tag(0x16, 1) + key(0x0080, MODEL_CHRBRIEFCASE, 0x004f, 0x01244000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + rename_object(-1, 0x43, 0x1616, 0x1617, 0x1618, 0x1619, 0x161a, 0x0000, 0x0000) // "" + tag(0x21, 5) + tag(0x22, 5) + tag(0x23, 5) + tag(0x24, 5) + tag(0x25, 5) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x01fb, 0x10000002, 0x00204000, 0x00210000, 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, 0xffffff14) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x01fc, 0x10000002, 0x00204000, 0x00210000, 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, 0xffffff14) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x01fd, 0x10000002, 0x00204000, 0x00210000, 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, 0xffffff14) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x01fe, 0x10000002, 0x00204000, 0x00210000, 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, 0xffffff14) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x01ff, 0x10000002, 0x00204000, 0x00210000, 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, 0xffffff14) + tag(0x17, 1) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x0200, 0x10000002, 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, 0xffffff03) + tag(0x1a, 1) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x0201, 0x10000002, 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, 0xffffff03) + camera(0x00c0, MODEL_CCTV_PD, 0x0219, 0x0000000a, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x01f70000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0x00000000, 0x0000001e, 0x00000000, 0x000002bc, 0x00000000) + camera(0x00c0, MODEL_CCTV_PD, 0x021a, 0x0000000a, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x00dd0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0x00000000, 0x0000001e, 0x00000000, 0x000002bc, 0x00000000) + camera(0x00c0, MODEL_CCTV_PD, 0x021b, 0x0000000a, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x000a0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000238e, 0x00000000, 0x00000000, 0x0000001e, 0x00000000, 0x000002bc, 0x00000000) + camera(0x00c0, MODEL_CCTV_PD, 0x021c, 0x0000000a, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x01120000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000002bc, 0x00000000) + tag(0x1b, 1) + stdobject(0x0100, MODEL_SUBMARINE, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x1c, 1) + stdobject(0x0100, MODEL_DD_GRATE, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x1d, 1) + stdobject(0x0065, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x1e, 1) + stdobject(0x0065, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x26, 1) + stdobject(0x0100, MODEL_COREHATCH, 0x011e, 0x004005f1, 0x00004300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x021f, 0x00000062, 0x00002001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0220, 0x00000062, 0x00002001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0221, 0x00000062, 0x00002001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0222, 0x00000062, 0x00002001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0223, 0x00000062, 0x00002001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0224, 0x00000062, 0x00002001, 0x00000000, 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, 0xffffff03) + tag(0x1f, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x021d, 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(0x20, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x021e, 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(0x27, 2) + tag(0x28, 2) + weapon(0x0100, MODEL_CHRFALCON2SCOPE, 0x0034, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SILENCER, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRFALCON2SCOPE, 0x0034, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SILENCER, 0x00ffffff, 0x00000000) + link_collectibles(-1, -2) + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_WETSUIT) + intro_weapon(WEAPON_FALCON2_SILENCER, -1) + ammo(AMMOTYPE_PISTOL, 100) + intro_weapon(WEAPON_LAPTOPGUN, -1) + ammo(AMMOTYPE_SMG, 100) + ammo(AMMOTYPE_NBOMB, 3) + intro_weapon(WEAPON_XRAYSCANNER, -1) + intro_weapon(WEAPON_NBOMB, -1) + spawn(0x0046) + endintro +}; + +s32 path00[] = { + 0x0002, + 0x0001, + 0x0024, + 0x0027, + 0x002b, + 0x0028, + 0x002d, + 0x002e, + 0x002c, + -1, +}; + +s32 path01[] = { + 0x0004, + 0x0008, + 0x000a, + 0x0006, + 0x0007, + 0x000b, + -1, +}; + +s32 path02[] = { + 0x0012, + 0x0010, + 0x0011, + 0x0014, + 0x0015, + 0x0016, + 0x0017, + 0x0013, + -1, +}; + +s32 path03[] = { + 0x00dd, + 0x00de, + 0x00df, + 0x00e0, + 0x00d9, + 0x00db, + 0x00dc, + -1, +}; + +s32 path04[] = { + 0x00e8, + 0x00e7, + 0x00e6, + 0x00e5, + 0x00eb, + 0x00ea, + 0x00e9, + -1, +}; + +struct aipaths paths[] = { + { path00, 0, 1 }, + { path01, 1, 0 }, + { path02, 2, 1 }, + { path03, 3, 1 }, + { path04, 4, 1 }, + { NULL, 0, 0 }, +}; + +u8 func1001_objectives_failed_msg[] = { + yield + set_chr_flag_bank3(CHR_ELVIS, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_ELVIS, CHRFLAG3_01000000) + set_chr_flag_bank3(CHR_LABTECH1, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_LABTECH2, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_LABTECH3, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_PILOT1, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_PILOT2, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_PILOT3, CHRFLAG3_04000000) + set_function(CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG) + endfunction +}; + +u8 func1400_setup_counterop[] = { + yield + set_chr_alliance(CHR_COUNTEROP, ALLIANCE_ENEMY) + set_function(CHR_SELF, GFUNC_REBUILD_GROUPS) + endfunction +}; + +u8 func0408_guard_unalerted[] = { + set_chr_cloaked(CHR_SELF, FALSE, TRUE) + set_chr_dodge_rating(2, 0x0a) + set_accuracy(18) + set_reaction_speed(60) + set_chr_health(CHR_SELF, 70) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func1002_intro[] = { + set_music_track(MUSIC_PELAGIC_INTRO) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + camera_movement(0x02ce) + cmd0175(60) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x02cf, -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(0x02d0, -1, -1, 0x0600, CHR_ELVIS, 4) + set_chr_flag_bank3(CHR_INTRO_GUARD, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_INTRO_GUARD, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_INTRO_GUARD, CHRFLAG2_00020000) + animation(0x02d1, -1, -1, 0x0600, CHR_INTRO_GUARD, 4) + restart_timer + set_cutscene_weapon(CHR_JOANNA, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_JOANNA, WEAPON_FALCON2_SILENCER, WEAPON_NONE) + + #define wait_until(time, loopid) \ + beginloop(loopid) \ + if_controller_button_pressed(/*goto*/ 0x39) \ + if_timer_gt(time, /*goto*/ 0x04) \ + endloop(loopid) \ + label(0x04) + + + + wait_until(342, 0x3b) + play_sound(0x0171, CHANNEL_7) + + wait_until(390, 0x3c) + play_sound(0x0172, CHANNEL_6) + + wait_until(438, 0x3d) + play_sound(0x0173, CHANNEL_5) + + wait_until(484, 0x48) + play_sound(0x0174, CHANNEL_7) + + wait_until(532, 0x4a) + play_sound(0x0175, CHANNEL_5) + + wait_until(574, 0x4b) + play_sound(0x0176, CHANNEL_7) + + wait_until(616, 0x49) + play_sound(0x0177, CHANNEL_6) + + wait_until(660, 0x4c) + play_sound(0x0178, CHANNEL_6) + + wait_until(712, 0x4d) + play_sound(0x0171, CHANNEL_5) + + wait_until(760, 0x4e) + play_sound(0x0172, CHANNEL_7) + + wait_until(812, 0x4f) + play_sound(0x0173, CHANNEL_6) + + wait_until(1386, 0x50) + play_sound(0x0171, CHANNEL_5) + + wait_until(1482, 0x51) + play_sound(0x0172, CHANNEL_7) + + wait_until(1628, 0x52) + play_sound(0x0173, CHANNEL_6) + + wait_until(1698, 0x53) + play_sound(0x0174, CHANNEL_5) + + wait_until(1860, 0x54) + play_sound(0x05a8, CHANNEL_7) + + wait_until(2180, 0x55) + play_sound(0x05a9, CHANNEL_6) + + wait_until(2260, 0x57) + play_sound(0x05aa, CHANNEL_7) + + wait_until(2274, 0x58) + play_sound(0x0175, CHANNEL_6) + + wait_until(2280, 0x59) + play_sound(0x0176, CHANNEL_5) + + wait_until(2294, 0x56) + play_sound(0x0177, CHANNEL_5) + + wait_until(2298, 0x5a) + play_sound(0x0171, CHANNEL_7) + + wait_until(2316, 0x5b) + play_sound(0x0178, CHANNEL_6) + + wait_until(2474, 0x5c) + play_sound(0x0172, CHANNEL_5) + + wait_until(2489, 0x5d) + play_sound(0x01db, CHANNEL_7) + + wait_until(2572, 0x5e) + play_sound(0x0171, CHANNEL_6) + + wait_until(2616, 0x5f) + play_sound(0x0173, CHANNEL_5) + + wait_until(2644, 0x60) + play_sound(0x0172, CHANNEL_5) + + beginloop(0x0b) + if_camera_animating(/*goto*/ 0x07) + goto_next(0x39) + + label(0x07) + if_controller_button_pressed(/*goto*/ 0x39) + label(0x07) + endloop(0x0b) + + label(0x39) + mute_channel(CHANNEL_10) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x02cf, -2, -1, 0x0600, CHR_JOANNA, 2) + unset_chr_flag_bank3(CHR_ELVIS, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_ELVIS, CHRFLAG2_00020000) + animation(0x02d0, -2, -1, 0x0600, CHR_ELVIS, 2) + unset_chr_flag_bank3(CHR_INTRO_GUARD, CHRFLAG3_UNPLAYABLE) + hide_chr(CHR_INTRO_GUARD) + enter_firstperson + yield + set_function(CHR_ELVIS, FUNC_ELVIS_AT_START) + restart_timer + + beginloop(0x0c) + if_timer_gt(60, /*goto*/ 0x04) + endloop(0x0c) + + label(0x04) + restart_default_music + reset_ambience + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0c01_outro[] = { + camera_movement(0x02e2) + set_music_track(MUSIC_PELAGIC_OUTRO) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0xf1, CHRFLAG3_HIDDEN) + set_function(CHR_P1P2, GFUNC_IDLE) + set_chr_flag_bank3(CHR_P1P2, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_P1P2, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_P1P2, CHRFLAG2_00020000) + animation(0x02e3, -1, -1, 0x0600, CHR_P1P2, 4) + set_function(CHR_ELVIS, GFUNC_IDLE) + set_chr_flag_bank3(CHR_ELVIS, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + 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(0x02e4, -1, -1, 0x0600, CHR_ELVIS, 4) + + show_object(OBJ_OUTRO_SUBMARINE) + set_object_flag_bank1(OBJ_OUTRO_SUBMARINE, OBJECTFLAG1_04000000) + set_object_flag_bank2(OBJ_OUTRO_SUBMARINE, OBJECTFLAG2_00000010) + object_do_animation(0x02e5, OBJ_OUTRO_SUBMARINE, 0x04ff, 0xff) + + show_object(OBJ_OUTRO_GRATE) + set_object_flag_bank1(OBJ_OUTRO_GRATE, OBJECTFLAG1_04000000) + set_object_flag_bank2(OBJ_OUTRO_GRATE, OBJECTFLAG2_00000010) + object_do_animation(0x02e6, OBJ_OUTRO_GRATE, 0x04ff, 0xff) + + show_object(OBJ_OUTRO_CRATE1) + set_object_flag_bank1(OBJ_OUTRO_CRATE1, OBJECTFLAG1_04000000) + set_object_flag_bank2(OBJ_OUTRO_CRATE1, OBJECTFLAG2_00000010) + object_do_animation(0x02e7, OBJ_OUTRO_CRATE1, 0x04ff, 0xff) + + show_object(OBJ_OUTRO_CRATE2) + set_object_flag_bank1(OBJ_OUTRO_CRATE2, OBJECTFLAG1_04000000) + set_object_flag_bank2(OBJ_OUTRO_CRATE2, OBJECTFLAG2_00000010) + object_do_animation(0x02e8, OBJ_OUTRO_CRATE2, 0x04ff, 0xff) + + set_cutscene_weapon(CHR_P1P2, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_P1P2, WEAPON_NONE, WEAPON_NONE) + set_cutscene_weapon(CHR_ELVIS, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_ELVIS, WEAPON_NONE, WEAPON_NONE) + show_nonessential_chrs(FALSE) + restart_timer + + wait_until(46, 0x3c) + play_sound(0x0171, CHANNEL_10) + + wait_until(160, 0x3d) + play_sound(0x0172, CHANNEL_10) + play_sound_from_object2(0x0a, OBJ_OUTRO_SUBMARINE, 0x042d, 0x00, 0x00) + + wait_until(180, 0x3b) + speak(CHR_JOANNA, 0x1627, 0x7465, CHANNEL_10, COLOR_06_WHITE) // "Right. The diving operation has been disrupted on ..." + + wait_until(200, 0x48) + play_sound(0x0173, CHANNEL_10) + + wait_until(232, 0x49) + play_sound(0x0174, CHANNEL_10) + + wait_until(254, 0x4a) + play_sound(0x0172, CHANNEL_10) + + wait_until(272, 0x66) + + wait_until(374, 0x4b) + play_sound(0x0172, CHANNEL_10) + + wait_until(415, 0x4c) + play_sound(0x0173, CHANNEL_10) + + wait_until(454, 0x4d) + play_sound(0x0174, CHANNEL_10) + + wait_until(532, 0x4e) + play_sound(0x0171, CHANNEL_10) + + wait_until(570, 0x4f) + speak(CHR_JOANNA, 0x1628, 0x7466, CHANNEL_10, COLOR_09_BLUE) // "I hope the government don't want to use this ship ..." + + wait_until(582, 0x50) + play_sound(0x0171, CHANNEL_10) + + wait_until(666, 0x51) + play_sound(0x0172, CHANNEL_10) + + wait_until(706, 0x52) + play_sound(0x0173, CHANNEL_10) + + wait_until(736, 0x64) + play_sound(0x05a8, CHANNEL_10) + + wait_until(806, 0x53) + play_sound(0x809f, CHANNEL_10) + + wait_until(854, 0x54) + play_sound(0x0174, CHANNEL_10) + + wait_until(876, 0x55) + play_sound(0x0173, CHANNEL_10) + + wait_until(906, 0x56) + play_sound(0x0172, CHANNEL_10) + + wait_until(926, 0x57) + play_sound(0x80a2, CHANNEL_10) + + wait_until(950, 0x58) + speak(CHR_JOANNA, 0x1629, 0x7467, CHANNEL_10, COLOR_06_WHITE) // "Do you think we were a little heavy-handed?" + + wait_until(1088, 0x59) + play_sound(0x80a3, CHANNEL_10) + + wait_until(1152, 0x5a) + play_sound(0x0176, CHANNEL_10) + + wait_until(1190, 0x5b) + speak(CHR_JOANNA, 0x162a, 0x7468, CHANNEL_10, COLOR_09_BLUE) // "Naaahhhh." + + wait_until(1228, 0x5c) + play_sound(0x0174, CHANNEL_10) + + wait_until(1258, 0x5d) + play_sound(0x0172, CHANNEL_10) + + wait_until(1260, 0x5e) + play_sound(0x05b4, CHANNEL_10) + + wait_until(1300, 0x5f) + play_sound(0x05b6, CHANNEL_10) + play_sound(0x0171, CHANNEL_10) + + wait_until(1309, 0x65) + play_sound(0x0172, CHANNEL_10) + + wait_until(1358, 0x60) + play_sound(0x0171, CHANNEL_10) + + wait_until(1382, 0x61) + play_sound(0x8098, CHANNEL_10) + + wait_until(1480, 0x62) + play_sound(0x80a3, CHANNEL_10) + + wait_until(1480, 0x63) + play_sound_from_object2(0x0a, OBJ_OUTRO_GRATE, 0x00c1, 0x00, 0x00) + + wait_until(1500, 0x67) + play_sound_from_object2(0x0a, OBJ_OUTRO_SUBMARINE, 0x042d, 0x00, 0x00) + + wait_until(1590, 0x68) + play_sound_from_object2(0x0a, OBJ_OUTRO_SUBMARINE, 0x0434, 0x00, 0x00) + + beginloop(0x0b) + if_camera_animating(/*goto*/ 0x07) + goto_next(0x39) + + label(0x07) + if_controller_button_pressed(/*goto*/ 0x39) + label(0x07) + endloop(0x0b) + + label(0x39) + unset_chr_flag_bank3(CHR_P1P2, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_P1P2, CHRFLAG2_00020000) + animation(0x02cf, -2, -1, 0x0600, CHR_P1P2, 2) + unset_chr_flag_bank3(CHR_ELVIS, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_ELVIS, CHRFLAG2_00020000) + animation(0x02d0, -2, -1, 0x0600, CHR_ELVIS, 2) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 unregistered_function1[] = { + label(0x00) + yield + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1004_msg_controlledfrom[] = { + restart_timer + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0027, /*goto*/ 0x07) + endloop(0x00) + + label(0x07) + speak(CHR_P1P2, 0x160b, 0x73d1, CHANNEL_6, COLOR_09_BLUE) // "This must be where the sub's controlled from." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1005_msg_withoutautopilot[] = { + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x007e, /*goto*/ 0x07) + endloop(0x00) + + label(0x07) + speak(CHR_P1P2, 0x160c, 0x73d2, CHANNEL_6, COLOR_09_BLUE) // "Without the autopilot and the GPS, the ship will w..." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1006_msg_conductoperations[] = { + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x007f, /*goto*/ 0x07) + endloop(0x00) + + label(0x07) + speak(CHR_P1P2, 0x160d, 0x73d3, CHANNEL_6, COLOR_09_BLUE) // "They'll be unable to conduct any operations withou..." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 unregistered_function2[] = { + // These are invalid object IDs + beginloop(0x00) + if_object_in_good_condition(0x11, /*goto*/ 0x07) + goto_next(0x04) + + label(0x07) + if_object_in_good_condition(0x10, /*goto*/ 0x07) + goto_next(0x04) + + label(0x07) + endloop(0x00) + + label(0x04) + message(CHR_JOANNA, 0x1610) // "Critical mission object has been destroyed." + set_stage_flag(STAGEFLAG_00000400) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1009_open_reactor_hatch[] = { + // Wait for all switches active + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + if_stage_flag_eq(STAGEFLAG_HATCHSWITCH1_ACTIVATED, TRUE, /*goto*/ 0x07) + reloop(0x00) + + label(0x07) + if_stage_flag_eq(STAGEFLAG_HATCHSWITCH2_ACTIVATED, TRUE, /*goto*/ 0x07) + reloop(0x00) + + label(0x07) + if_stage_flag_eq(STAGEFLAG_HATCHSWITCH3_ACTIVATED, TRUE, /*goto*/ 0x07) + reloop(0x00) + + label(0x07) + if_stage_flag_eq(STAGEFLAG_HATCHSWITCH4_ACTIVATED, TRUE, /*goto*/ 0x07) + endloop(0x00) + + label(0x07) + hide_object(OBJ_REACTOR_HATCH) + set_object_flag_bank1(OBJ_REACTOR_HATCH, OBJECTFLAG1_INVISIBLE) + message(CHR_P1P2, 0x1611) // "Reactor shutdown control hatch opened." + set_stage_flag(STAGEFLAG_REACTOR_HATCH_OPEN) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100a_reactor_switch[] = { + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + if_object_in_good_condition(OBJ_REACTOR_SWITCH, /*goto*/ 0x07) + message(CHR_JOANNA, 0x1624) // "Critical mission object has been destroyed." + set_stage_flag(STAGEFLAG_REACTOR_SWITCH_DESTROYED) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x07) + if_chr_activated_object(CHR_P1P2, OBJ_REACTOR_SWITCH, /*goto*/ 0x07) + reloop(0x00) + + label(0x07) + if_stage_flag_eq(STAGEFLAG_REACTOR_HATCH_OPEN, TRUE, /*goto*/ 0x07) + endloop(0x00) + + label(0x07) + mute_channel(CHANNEL_0) + mute_channel(CHANNEL_1) + assign_sound(0x8147, CHANNEL_0) + control_sound_from_object(CHANNEL_0, OBJ_REACTOR_SWITCH, TRUE) + set_lights_state(0x007f, 0x03, 0xff, 0x06, 0x78) + set_object_image(OBJ_REACTOR_SWITCH, 0x00, 0x12) + set_object_image(OBJ_REACTOR_SWITCH, 0x01, 0x12) + set_object_image(OBJ_REACTOR_SWITCH, 0x02, 0x12) + message(CHR_P1P2, 0x1612) // "Reactor has been shut down." + set_stage_flag(STAGEFLAG_REACTOR_SHUT_DOWN) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100b_check_diving_area_located[] = { + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + if_stage_flag_eq(STAGEFLAG_MET_ELVIS, TRUE, /*goto*/ 0x07) + reloop(0x00) + + label(0x07) + if_chr_in_room(CHR_P1P2, 0x00, 0x0064, /*goto*/ 0x07) + reloop(0x00) + + label(0x07) + if_chr_distance_to_pad_lt(CHR_P1P2, 600, 0x0095, /*goto*/ 0x07) + if_chr_distance_to_pad_lt(CHR_P1P2, 600, 0x0096, /*goto*/ 0x07) + endloop(0x00) + + label(0x07) + message(CHR_P1P2, 0x1613) // "Diving control center has been located." + set_stage_flag(STAGEFLAG_LOCATED_DIVING_AREA) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100c_check_end_level[] = { + beginloop(0x6f) + if_objective_complete(0, /*goto*/ 0x07) + reloop(0x6f) + + label(0x07) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x07) + if_objective_complete(1, /*goto*/ 0x07) + reloop(0x6f) + + label(0x07) + if_objective_complete(2, /*goto*/ 0x07) + reloop(0x6f) + + label(0x07) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x07) + if_objective_complete(3, /*goto*/ 0x07) + endloop(0x6f) + + label(0x07) + + beginloop(0x3b) + if_stage_flag_eq(STAGEFLAG_ELVIS_WARPED_FROM_START, TRUE, /*goto*/ 0x07) + endloop(0x3b) + + label(0x07) + if_stage_flag_eq(STAGEFLAG_ELVIS_APPEARED_AT_MOONPOOL, TRUE, /*goto*/ 0x00) + set_stage_flag(STAGEFLAG_ELVIS_APPEARED_AT_MOONPOOL) + unset_chr_flag_bank3(CHR_ELVIS, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_ELVIS, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(CHR_ELVIS, FUNC_ELVIS_AT_MOONPOOL) + + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0064, /*goto*/ 0x07) + reloop(0x00) + + label(0x07) + if_chr_distance_to_pad_lt(CHR_P1P2, 600, 0x0095, /*goto*/ 0x07) + if_chr_distance_to_pad_lt(CHR_P1P2, 600, 0x0096, /*goto*/ 0x07) + reloop(0x00) + + label(0x07) + if_all_objectives_complete(/*goto*/ 0x07) + endloop(0x00) + + label(0x07) + restart_timer + + beginloop(0x0b) + if_timer_gt(120, /*goto*/ 0x07) + endloop(0x0b) + + label(0x07) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x07) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x07) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x07) + goto_next(0x08) + + label(0x07) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x07) + if_chr_dying(CHR_VELVET, /*goto*/ 0x07) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x07) + + // Jo or Velvet alive + label(0x08) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x08) + if_chr_dying(CHR_ELVIS, /*goto*/ 0x08) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x08) + + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x07) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x07) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x07) + goto_next(0x04) + + // Both players dead - this check is redundant + label(0x07) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x07) + if_chr_dying(CHR_VELVET, /*goto*/ 0x07) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x07) + goto_next(0x04) + + // Both players dead + label(0x07) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + + // Mission complete + label(0x04) + set_invincible(CHR_JOANNA) + set_function(CHR_SELF, FUNC_OUTRO) + + // Elvis dead + label(0x08) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100e_check_labtech_dead[] = { + if_difficulty_lt(DIFF_PA, /*goto*/ 0x0b) + + beginloop(0x00) + if_chr_death_animation_finished(CHR_LABTECH1, /*goto*/ 0x07) + if_chr_dying(CHR_LABTECH1, /*goto*/ 0x07) + if_chr_death_animation_finished(CHR_LABTECH2, /*goto*/ 0x07) + if_chr_dying(CHR_LABTECH2, /*goto*/ 0x07) + if_chr_death_animation_finished(CHR_LABTECH3, /*goto*/ 0x07) + if_chr_dying(CHR_LABTECH3, /*goto*/ 0x07) + endloop(0x00) + + label(0x07) + message(CHR_JOANNA, 0x1614) // "Critical mission personnel killed." + set_stage_flag(STAGEFLAG_LABTECH_DEAD) + label(0x0b) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100f_check_researchdata_collected[] = { + beginloop(0x00) + if_chr_has_object(CHR_JOANNA, OBJ_RESEARCHDATA1, /*goto*/ 0x07) + if_chr_has_object(CHR_VELVET, OBJ_RESEARCHDATA1, /*goto*/ 0x07) + reloop(0x00) + + label(0x07) + if_chr_has_object(CHR_JOANNA, OBJ_RESEARCHDATA2, /*goto*/ 0x07) + if_chr_has_object(CHR_VELVET, OBJ_RESEARCHDATA2, /*goto*/ 0x07) + reloop(0x00) + + label(0x07) + if_chr_has_object(CHR_JOANNA, OBJ_RESEARCHDATA3, /*goto*/ 0x07) + if_chr_has_object(CHR_VELVET, OBJ_RESEARCHDATA3, /*goto*/ 0x07) + endloop(0x00) + + label(0x07) + message(CHR_JOANNA, 0x1615) // "Research data has been secured." + set_stage_flag(STAGEFLAG_COLLECTED_RESEARCH_DATA) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +#define init_path(pathid) \ + set_chr_dodge_rating(2, 0x0a) \ + set_accuracy(18) \ + set_reaction_speed(60) \ + set_chr_health(CHR_SELF, 70) \ + set_armor(0) \ + set_recovery_speed(0) \ + set_shield(0) \ + assign_path(pathid) \ + start_path \ + set_function(CHR_SELF, GFUNC_UNALERTED_0004) + + + +u8 func0405_start_path00[] = { + init_path(0) + endfunction +}; + +u8 func0409_start_path03[] = { + set_chr_cloaked(CHR_SELF, FALSE, TRUE) + init_path(3) + endfunction +}; + +u8 func040a_start_path04[] = { + set_chr_cloaked(CHR_SELF, FALSE, TRUE) + init_path(4) + endfunction +}; + +u8 func0406_start_path01[] = { + init_path(1) + endfunction +}; + +u8 func0407_start_path02[] = { + init_path(2) + endfunction +}; + +#define labtech_logic(function, pad1, pad2, pad3) \ + + + + +u8 func040e_init_labtech1[] = { + set_self_flag_bank3(CHRFLAG3_04000000) + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, FUNC_LABTECH1) + endfunction +}; + +u8 func040b_labtech1[] = { + set_onshot_function(FUNC_LABTECH1) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x07) + if_chr_dying(CHR_SELF, /*goto*/ 0x07) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x07) + goto_next(0x04) + + // Dying + label(0x07) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x04) + + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0x0f) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x0f) + if_chr_stopped(/*goto*/ 0x04) + goto_next(0x07) + label(0x04) + if_chr_idle(/*goto*/ 0x07) + call_rng + if_rand_lt(128, /*goto*/ 0x27) + call_rng + if_rand_lt(86, /*goto*/ 0x3b) + if_rand_lt(172, /*goto*/ 0x3c) + + animation(ANIM_OPERATE_0206, -1, -1, 0x0210, CHR_SELF, 2) + goto_next(0x07) + + label(0x3b) + animation(ANIM_OPERATE_0204, -1, -1, 0x0210, CHR_SELF, 2) + goto_next(0x07) + + label(0x3c) + animation(ANIM_OPERATE_0205, -1, -1, 0x0210, CHR_SELF, 2) + goto_next(0x07) + + label(0x27) + call_rng + if_rand_lt(86, /*goto*/ 0x3b) + if_rand_lt(172, /*goto*/ 0x3c) + + if_chr_distance_to_pad_lt(CHR_SELF, 200, 0x0209, /*goto*/ 0x3b) + walk_to_pad(0x0209) + goto_next(0x07) + + label(0x3b) + if_chr_distance_to_pad_lt(CHR_SELF, 200, 0x020a, /*goto*/ 0x3c) + walk_to_pad(0x020a) + goto_next(0x07) + + label(0x3c) + if_chr_distance_to_pad_lt(CHR_SELF, 200, 0x020b, /*goto*/ 0x07) + walk_to_pad(0x020b) + goto_next(0x07) + + label(0x07) + endloop(0x00) + + label(0x0f) + set_function(CHR_SELF, FUNC_LABTECH_ALERTED) + endfunction +}; + +u8 func040f_init_labtech2[] = { + set_self_flag_bank3(CHRFLAG3_04000000) + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, FUNC_LABTECH2) + endfunction +}; + +u8 func040c_labtech2[] = { + set_onshot_function(FUNC_LABTECH2) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x07) + if_chr_dying(CHR_SELF, /*goto*/ 0x07) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x07) + goto_next(0x04) + + // Dying + label(0x07) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x04) + + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0x0f) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x0f) + if_chr_stopped(/*goto*/ 0x04) + goto_next(0x07) + label(0x04) + if_chr_idle(/*goto*/ 0x07) + call_rng + if_rand_lt(128, /*goto*/ 0x27) + call_rng + if_rand_lt(86, /*goto*/ 0x3b) + if_rand_lt(172, /*goto*/ 0x3c) + + animation(ANIM_OPERATE_0206, -1, -1, 0x0210, CHR_SELF, 2) + goto_next(0x07) + + label(0x3b) + animation(ANIM_OPERATE_0204, -1, -1, 0x0210, CHR_SELF, 2) + goto_next(0x07) + + label(0x3c) + animation(ANIM_OPERATE_0205, -1, -1, 0x0210, CHR_SELF, 2) + goto_next(0x07) + + label(0x27) + call_rng + if_rand_lt(86, /*goto*/ 0x3b) + if_rand_lt(172, /*goto*/ 0x3c) + + if_chr_distance_to_pad_lt(CHR_SELF, 200, 0x020c, /*goto*/ 0x3b) + walk_to_pad(0x020c) + goto_next(0x07) + + label(0x3b) + if_chr_distance_to_pad_lt(CHR_SELF, 200, 0x020d, /*goto*/ 0x3c) + walk_to_pad(0x020d) + goto_next(0x07) + + label(0x3c) + if_chr_distance_to_pad_lt(CHR_SELF, 200, 0x020e, /*goto*/ 0x07) + walk_to_pad(0x020e) + goto_next(0x07) + + label(0x07) + endloop(0x00) + + label(0x0f) + set_function(CHR_SELF, FUNC_LABTECH_ALERTED) + endfunction +}; + +u8 func0410_init_labtech3[] = { + set_self_flag_bank3(CHRFLAG3_04000000) + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, FUNC_LABTECH3) + endfunction +}; + +u8 func040d_labtech3[] = { + // @bug: Wrong onshot function. Under normal gameplay this labtech has 1HP + // anyway and will die in one shot. Theroetically, if you use PD mode with + // max health and shoot him with a weak weapon then he will start running to + // lab tech 1's pads. + set_onshot_function(FUNC_LABTECH1) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x07) + if_chr_dying(CHR_SELF, /*goto*/ 0x07) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x07) + goto_next(0x04) + + // Dying + label(0x07) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x04) + + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0x0f) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x10) + if_chr_stopped(/*goto*/ 0x04) + goto_next(0x07) + label(0x04) + if_chr_idle(/*goto*/ 0x07) + call_rng + if_rand_lt(128, /*goto*/ 0x27) + call_rng + if_rand_lt(86, /*goto*/ 0x3b) + if_rand_lt(172, /*goto*/ 0x3c) + + animation(ANIM_OPERATE_0206, -1, -1, 0x0210, CHR_SELF, 2) + goto_next(0x07) + + label(0x3b) + animation(ANIM_OPERATE_0204, -1, -1, 0x0210, CHR_SELF, 2) + goto_next(0x07) + + label(0x3c) + animation(ANIM_OPERATE_0205, -1, -1, 0x0210, CHR_SELF, 2) + goto_next(0x07) + + label(0x27) + call_rng + if_rand_lt(86, /*goto*/ 0x3b) + if_rand_lt(172, /*goto*/ 0x3c) + + if_chr_distance_to_pad_lt(CHR_SELF, 200, 0x020f, /*goto*/ 0x3b) + walk_to_pad(0x020f) + goto_next(0x07) + + label(0x3b) + if_chr_distance_to_pad_lt(CHR_SELF, 200, 0x0210, /*goto*/ 0x3c) + walk_to_pad(0x0210) + goto_next(0x07) + + label(0x3c) + if_chr_distance_to_pad_lt(CHR_SELF, 200, 0x0211, /*goto*/ 0x07) + walk_to_pad(0x0211) + goto_next(0x07) + + label(0x07) + endloop(0x00) + + label(0x10) + set_alertness(100) + + label(0x0f) + set_function(CHR_SELF, FUNC_LABTECH_ALERTED) + endfunction +}; + +u8 func0411_labtech_alerted[] = { + restart_timer + label(0x0b) + try_face_entity(0x0200, 0x0000, /*goto*/ 0x0c) + + beginloop(0x0c) + if_angle_to_target_chr_lt(10, /*goto*/ 0x04) + if_timer_gt(60, /*goto*/ 0x04) + endloop(0x0c) + + label(0x04) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x04) + set_alertness(100) + dprint 'T','A','L','K',' ','1','\n',0, + say_quip(CHR_JOANNA, 0x2a, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00) + animation(ANIM_SURRENDER_002E, 0, -1, 0x1010, CHR_SELF, 2) + + beginloop(0x3e) + if_timer_gt(90, /*goto*/ 0x04) + endloop(0x3e) + + // Already alert (eg. by gunfire) + label(0x04) + try_target_chr_in_same_group(/*goto*/ 0x3f) + goto_next(0x42) + + label(0x3f) + try_run_to_chr(FOLLOW_CHR, /*goto*/ 0x40) + goto_next(0x42) + + beginloop(0x40) + if_detected_chr(FOLLOW_CHR, /*goto*/ 0x41) + if_chr_stopped(/*goto*/ 0x41) + endloop(0x40) + + label(0x41) + set_group_alertness(100) + say_quip(CHR_JOANNA, 0x10, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00) + + label(0x42) + go_to_target_pad(SPEED_RUN) + + beginloop(0x10) + if_chr_stopped(/*goto*/ 0x13) + endloop(0x10) + + label(0x13) + restart_timer + if_chr_sees_player(/*goto*/ 0x07) + goto_next(0x00) + + label(0x07) + set_target_chr(CHR_P1P2) + if_chr_distance_lt(300, /*goto*/ 0x04) + + label(0x00) + animation(ANIM_COWER_0229, -1, -1, 0x100a, CHR_SELF, 2) + + beginloop(0x11) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_timer_gt(1200, /*goto*/ 0x0d) + if_chr_sees_player(/*goto*/ 0x07) + goto_next(0x00) + + label(0x07) + if_chr_distance_lt(300, /*goto*/ 0x04) + label(0x00) + if_chr_stopped(/*goto*/ 0x07) + endloop(0x11) + + label(0x07) + goto_first(0x13) + + label(0x0d) + goto_first(0x42) + + label(0x04) + retreat(0x02, 0x02) + restart_timer + + beginloop(0x14) + if_timer_gt(600, /*goto*/ 0x07) + endloop(0x14) + + label(0x07) + goto_first(0x13) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0412_hide[] = { + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1010_alarm_responders[] = { + yield + yield + set_chr_flag_bank2(0x57, CHRFLAG2_CLOAKED) + set_chr_flag_bank2(0x58, CHRFLAG2_CLOAKED) + set_chr_flag_bank2(0x59, CHRFLAG2_CLOAKED) + set_chr_flag_bank2(0x5a, CHRFLAG2_CLOAKED) + set_chr_flag_bank2(0x5b, CHRFLAG2_CLOAKED) + set_chr_flag_bank2(0x5c, CHRFLAG2_CLOAKED) + set_chr_flag_bank2(0x5d, CHRFLAG2_CLOAKED) + set_chr_flag_bank2(0x5e, CHRFLAG2_CLOAKED) + hide_chr(0x57) + hide_chr(0x58) + hide_chr(0x59) + hide_chr(0x5a) + hide_chr(0x5b) + hide_chr(0x5c) + hide_chr(0x5d) + hide_chr(0x5e) + set_chr_flag_bank2(0x04, CHRFLAG2_CLOAKED) + set_chr_flag_bank2(0x25, CHRFLAG2_CLOAKED) + set_chr_flag_bank2(0x06, CHRFLAG2_CLOAKED) + set_chr_flag_bank2(0x08, CHRFLAG2_CLOAKED) + set_chr_flag_bank2(0x0a, CHRFLAG2_CLOAKED) + set_chr_flag_bank2(0x0c, CHRFLAG2_CLOAKED) + set_chr_flag_bank2(0x0e, CHRFLAG2_CLOAKED) + set_chr_flag_bank2(0x10, CHRFLAG2_CLOAKED) + set_chr_flag_bank2(0x12, CHRFLAG2_CLOAKED) + set_chr_flag_bank2(0x14, CHRFLAG2_CLOAKED) + set_chr_flag_bank2(0x16, CHRFLAG2_CLOAKED) + set_chr_flag_bank2(0x18, CHRFLAG2_CLOAKED) + set_chr_flag_bank2(0x1a, CHRFLAG2_CLOAKED) + set_chr_flag_bank2(0x1c, CHRFLAG2_CLOAKED) + set_chr_flag_bank2(0x1e, CHRFLAG2_CLOAKED) + set_chr_flag_bank2(0x20, CHRFLAG2_CLOAKED) + set_chr_flag_bank2(0x22, CHRFLAG2_CLOAKED) + hide_chr(0x04) + hide_chr(0x25) + hide_chr(0x06) + hide_chr(0x08) + hide_chr(0x0a) + hide_chr(0x0c) + hide_chr(0x0e) + hide_chr(0x10) + hide_chr(0x12) + hide_chr(0x14) + hide_chr(0x16) + hide_chr(0x18) + hide_chr(0x1a) + hide_chr(0x1c) + hide_chr(0x1e) + hide_chr(0x20) + hide_chr(0x22) + + beginloop(0x00) + if_alarm_active(/*goto*/ 0x07) + endloop(0x00) + + label(0x07) + show_chr(0x57) + show_chr(0x58) + show_chr(0x59) + show_chr(0x5a) + show_chr(0x5b) + show_chr(0x5c) + show_chr(0x5d) + show_chr(0x5e) + set_chr_alliance(0x57, ALLIANCE_ENEMY) + set_chr_alliance(0x58, ALLIANCE_ENEMY) + set_chr_alliance(0x59, ALLIANCE_ENEMY) + set_chr_alliance(0x5a, ALLIANCE_ENEMY) + set_chr_alliance(0x5b, ALLIANCE_ENEMY) + set_chr_alliance(0x5c, ALLIANCE_ENEMY) + set_chr_alliance(0x5d, ALLIANCE_ENEMY) + set_chr_alliance(0x5e, ALLIANCE_ENEMY) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + yield + show_chr(0x04) + show_chr(0x25) + show_chr(0x06) + show_chr(0x08) + show_chr(0x0a) + show_chr(0x0c) + show_chr(0x0e) + show_chr(0x10) + show_chr(0x12) + show_chr(0x14) + show_chr(0x16) + show_chr(0x18) + show_chr(0x1a) + show_chr(0x1c) + show_chr(0x1e) + show_chr(0x20) + show_chr(0x22) + set_chr_alliance(0x04, ALLIANCE_ENEMY) + set_chr_alliance(0x25, ALLIANCE_ENEMY) + set_chr_alliance(0x06, ALLIANCE_ENEMY) + set_chr_alliance(0x08, ALLIANCE_ENEMY) + set_chr_alliance(0x0a, ALLIANCE_ENEMY) + set_chr_alliance(0x0c, ALLIANCE_ENEMY) + set_chr_alliance(0x0e, ALLIANCE_ENEMY) + set_chr_alliance(0x10, ALLIANCE_ENEMY) + set_chr_alliance(0x12, ALLIANCE_ENEMY) + set_chr_alliance(0x14, ALLIANCE_ENEMY) + set_chr_alliance(0x16, ALLIANCE_ENEMY) + set_chr_alliance(0x18, ALLIANCE_ENEMY) + set_chr_alliance(0x1a, ALLIANCE_ENEMY) + set_chr_alliance(0x1c, ALLIANCE_ENEMY) + set_chr_alliance(0x1e, ALLIANCE_ENEMY) + set_chr_alliance(0x20, ALLIANCE_ENEMY) + set_chr_alliance(0x22, ALLIANCE_ENEMY) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + yield + set_function(0x57, 0x0409) + set_function(0x58, 0x0409) + set_function(0x59, 0x040a) + set_function(0x5a, 0x040a) + set_function(0x5b, FUNC_GUARD_ALERTED) + set_function(0x5c, FUNC_GUARD_ALERTED) + set_function(0x5d, FUNC_GUARD_ALERTED) + set_function(0x5e, FUNC_GUARD_ALERTED) + set_function(0x04, FUNC_GUARD_UNALERTED) + set_function(0x25, FUNC_GUARD_UNALERTED) + set_function(0x06, FUNC_GUARD_UNALERTED) + set_function(0x08, FUNC_GUARD_UNALERTED) + set_function(0x0a, FUNC_GUARD_UNALERTED) + set_function(0x0c, FUNC_GUARD_UNALERTED) + set_function(0x0e, FUNC_GUARD_UNALERTED) + set_function(0x10, FUNC_GUARD_UNALERTED) + set_function(0x12, FUNC_GUARD_UNALERTED) + set_function(0x14, FUNC_GUARD_UNALERTED) + set_function(0x16, FUNC_GUARD_UNALERTED) + set_function(0x18, FUNC_GUARD_UNALERTED) + set_function(0x1a, FUNC_GUARD_UNALERTED) + set_function(0x1c, FUNC_GUARD_UNALERTED) + set_function(0x1e, FUNC_GUARD_UNALERTED) + set_function(0x20, FUNC_GUARD_UNALERTED) + set_function(0x22, FUNC_GUARD_UNALERTED) + yield + unset_chr_flag_bank3(0x57, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x58, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x59, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x5a, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x5b, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x5c, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x5d, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x5e, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x57, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x58, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x59, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x5a, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x5b, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x5c, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x5d, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x5e, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x04, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x25, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x06, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x08, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x0a, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x0c, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x0e, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x10, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x12, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x14, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x16, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x18, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x1a, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x1c, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x1e, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x20, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x22, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x04, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x25, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x06, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x08, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x0a, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x0c, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x0e, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x10, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x12, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x14, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x16, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x18, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x1a, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x1c, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x1e, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x20, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x22, CHRFLAG3_HIDDEN) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0402_init_pilot[] = { + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, FUNC_PILOT) + endfunction +}; + +u8 func0401_pilot_dying[] = { + unset_stage_flag(STAGEFLAG_SAID_PULLTHEPLUG) + unset_stage_flag(STAGEFLAG_SAID_SWITCHTHINGOFF) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0401_pilot[] = { + set_onshot_function(FUNC_PILOT) + if_chr_dying(CHR_SELF, /*goto*/ 0x07) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x07) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x07) + goto_next(0x00) + + // Dying + label(0x07) + set_function(CHR_SELF, FUNC_PILOT_DYING) + + // Alive - wait for player to arrive + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x07) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x04) + endloop(0x00) + + // Seen player + label(0x07) + say_quip(CHR_JOANNA, 0x08, 0xfe, 0x0a, 0xff, BANK_0, 0x00, 0x00) + + label(0x04) + set_group_alertness(100) + surrender + + beginloop(0x0b) + // Wait for Jo nearby + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_distance_lt(200, /*goto*/ 0x07) + reloop(0x0b) + + // and for Jo's room entry speech to finish + label(0x07) + if_sound_finished(CHANNEL_6, /*goto*/ 0x07) + reloop(0x0b) + + // and for Jo to be in view + label(0x07) + if_chr_in_view(/*goto*/ 0x07) + endloop(0x0b) + + label(0x07) + if_stage_flag_eq(STAGEFLAG_AUTOPILOT_DISABLED, TRUE, /*goto*/ 0x08) + if_stage_flag_eq(STAGEFLAG_SAID_PULLTHEPLUG, FALSE, /*goto*/ 0x07) + goto_next(0x04) + + label(0x08) + if_chr_death_animation_finished(CHR_ANGRY_PILOT, /*goto*/ 0x09) + if_chr_dying(CHR_ANGRY_PILOT, /*goto*/ 0x09) + if_chr_unloaded(CHR_ANGRY_PILOT, /*goto*/ 0x09) + goto_first(0x0b) + + // Angry pilot dead or hasn't been chosen yet + label(0x09) + if_stage_flag_eq(STAGEFLAG_GPS_DISABLED, TRUE, /*goto*/ 0x04) + if_stage_flag_eq(STAGEFLAG_SAID_SWITCHTHINGOFF, FALSE, /*goto*/ 0x08) + + // GPS disabled + label(0x04) + say_quip(CHR_JOANNA, 0x08, 0xfe, 0x0a, 0xff, BANK_0, 0x00, 0x00) + goto_first(0x0b) + + label(0x07) + speak(TARGET_CHR, 0x162b, 0x7325, CHANNEL_7, COLOR_09_BLUE) // "Pull the plug on that now." + set_stage_flag(STAGEFLAG_SAID_PULLTHEPLUG) + goto_next(0x0c) + + label(0x08) + speak(TARGET_CHR, 0x162c, 0x7326, CHANNEL_7, COLOR_09_BLUE) // "Switch this thing off." + set_stage_flag(STAGEFLAG_SAID_SWITCHTHINGOFF) + goto_next(0x0c) + + beginloop(0x0c) + if_sound_finished(CHANNEL_7, /*goto*/ 0x07) + endloop(0x0c) + + label(0x07) + set_self_flag_bankx(CHRFLAG0_08000000, BANK_0) + if_stage_flag_eq(STAGEFLAG_SAID_SWITCHTHINGOFF, FALSE, /*goto*/ 0x07) + speak(TARGET_CHR, 0x162d, 0x128e, CHANNEL_6, COLOR_04_ORANGE) // "I'll shut it down." + goto_next(0x08) + + label(0x07) + speak(TARGET_CHR, 0x162e, 0x1280, CHANNEL_6, COLOR_04_ORANGE) // "Please don't hurt me." + label(0x08) + do_special_animation(-1) + + beginloop(0x0f) + if_sound_finished(CHANNEL_6, /*goto*/ 0x08) + endloop(0x0f) + + // Choose which pad to walk to + label(0x08) + if_stage_flag_eq(STAGEFLAG_SAID_SWITCHTHINGOFF, TRUE, /*goto*/ 0x07) + walk_to_pad(0x015d) + goto_next(0x0d) + + label(0x07) + walk_to_pad(0x0160) + + // Walking to pad + beginloop(0x0d) + if_chr_stopped(/*goto*/ 0x07) + endloop(0x0d) + + // Push button + label(0x07) + animation(ANIM_PUSH_BUTTON, 0, -1, 0x1010, CHR_SELF, 2) + restart_timer + + beginloop(0x0e) + if_chr_stopped(/*goto*/ 0x07) + if_timer_gt(60, /*goto*/ 0x08) + endloop(0x0e) + + label(0x08) + speak(CHR_SELF, -1, 0x8118, CHANNEL_9, COLOR_00_GREEN) + + beginloop(0x10) + if_chr_stopped(/*goto*/ 0x07) + endloop(0x10) + + label(0x07) + if_stage_flag_eq(STAGEFLAG_AUTOPILOT_DISABLED, TRUE, /*goto*/ 0x07) + message(TARGET_CHR, 0x160e) // "Autopilot system has been deactivated." + set_stage_flag(STAGEFLAG_TRIGGER_ANGRY_PILOT) + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + set_stage_flag(STAGEFLAG_AUTOPILOT_DISABLED) + surrender + goto_first(0x0b) + + label(0x07) + message(TARGET_CHR, 0x160f) // "GPS system has been deactivated." + set_stage_flag(STAGEFLAG_GPS_DISABLED) + surrender + goto_first(0x0b) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1011_check_pilots_dead[] = { + beginloop(0x00) + if_stage_flag_eq(STAGEFLAG_00080000, TRUE, /*goto*/ 0x08) + if_chr_dying(CHR_PILOT1, /*goto*/ 0x07) + if_chr_death_animation_finished(CHR_PILOT1, /*goto*/ 0x07) + if_chr_unloaded(CHR_PILOT1, /*goto*/ 0x07) + reloop(0x00) + + label(0x07) + if_chr_dying(CHR_PILOT2, /*goto*/ 0x07) + if_chr_death_animation_finished(CHR_PILOT2, /*goto*/ 0x07) + if_chr_unloaded(CHR_PILOT2, /*goto*/ 0x07) + reloop(0x00) + + label(0x07) + if_chr_dying(CHR_PILOT3, /*goto*/ 0x07) + if_chr_death_animation_finished(CHR_PILOT3, /*goto*/ 0x07) + if_chr_unloaded(CHR_PILOT3, /*goto*/ 0x07) + endloop(0x00) + + // All pilots dead + label(0x07) + + // Flag is set + label(0x08) + if_stage_flag_eq(STAGEFLAG_AUTOPILOT_DISABLED, FALSE, /*goto*/ 0x07) + if_stage_flag_eq(STAGEFLAG_GPS_DISABLED, FALSE, /*goto*/ 0x07) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x07) + message(CHR_JOANNA, 0x161b) // "Critical mission personnel have been killed." + set_stage_flag(STAGEFLAG_PILOT_DEAD) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Choose a pilot to become angry. One of the three is selected at random. If + * the selected pilot is dead, try the next one and so on in order 1, 2, 3. + */ +u8 func1012_choose_angry_pilot[] = { + set_chr_flag_bank3(CHR_PILOT1, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(CHR_PILOT2, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(CHR_PILOT3, CHRFLAG3_KILLCOUNTABLE) + + beginloop(0x00) + if_kill_count_gt(0, /*goto*/ 0x08) + if_stage_flag_eq(STAGEFLAG_TRIGGER_ANGRY_PILOT, TRUE, /*goto*/ 0x07) + endloop(0x00) + + // Triggered + label(0x07) + call_rng + if_rand_lt(86, /*goto*/ 0x3b) + if_rand_lt(172, /*goto*/ 0x3c) + + beginloop(0x03) + if_kill_count_gt(0, /*goto*/ 0x08) + if_chr_dying(CHR_PILOT1, /*goto*/ 0x3b) + if_chr_death_animation_finished(CHR_PILOT1, /*goto*/ 0x3b) + if_chr_unloaded(CHR_PILOT1, /*goto*/ 0x3b) + if_chr_flag_bankx(CHR_PILOT1, CHRFLAG0_08000000, BANK_0, /*goto*/ 0x3b) + set_function(CHR_PILOT1, FUNC_ANGRY_PILOT) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x3b) + if_chr_dying(CHR_PILOT2, /*goto*/ 0x3c) + if_chr_death_animation_finished(CHR_PILOT2, /*goto*/ 0x3c) + if_chr_unloaded(CHR_PILOT2, /*goto*/ 0x3c) + if_chr_flag_bankx(CHR_PILOT2, CHRFLAG0_08000000, BANK_0, /*goto*/ 0x3c) + set_function(CHR_PILOT2, FUNC_ANGRY_PILOT) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x3c) + if_chr_dying(CHR_PILOT3, /*goto*/ 0x04) + if_chr_death_animation_finished(CHR_PILOT3, /*goto*/ 0x04) + if_chr_unloaded(CHR_PILOT3, /*goto*/ 0x04) + if_chr_flag_bankx(CHR_PILOT3, CHRFLAG0_08000000, BANK_0, /*goto*/ 0x04) + set_function(CHR_PILOT3, FUNC_ANGRY_PILOT) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x04) + endloop(0x03) + + // Killed a pilot + label(0x08) + message(CHR_JOANNA, 0x1623) // "Civilians have been killed." + set_stage_flag(STAGEFLAG_JO_KILLED_A_PILOT) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0404_angry_pilot[] = { + set_chr_id(CHR_ANGRY_PILOT) + set_accuracy(90) + set_reaction_speed(100) + set_chr_alliance(CHR_SELF, ALLIANCE_ENEMY) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + unset_self_flag_bankx(CHRFLAG0_00100000, BANK_0) + set_self_flag_bank3(CHRFLAG3_00000040) + set_onshot_function(FUNC_ANGRY_PILOT) + if_chr_dying(CHR_SELF, /*goto*/ 0x07) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x07) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x07) + goto_next(0x04) + + // Dying + label(0x07) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x04) + set_self_flag_bankx(CHRFLAG0_00000004, BANK_0) + speak(TARGET_CHR, 0x162f, 0x14dd, CHANNEL_7, COLOR_04_ORANGE) // "Die, you traitors." + animation(ANIM_DRAW_PISTOL_0245, -1, 120, 0x0600, CHR_SELF, 3) + try_draw_weapon(MODEL_CHRDY357, WEAPON_DY357MAGNUM, 0x00000000, /*goto*/ 0x6c) + + beginloop(0x6c) + if_chr_stopped(/*goto*/ 0x03) + endloop(0x6c) + + label(0x03) + if_kill_count_gt(1, /*goto*/ 0x08) + goto_next(0x04) + + // Jo killed a pilot + label(0x08) + set_stage_flag(STAGEFLAG_00080000) + + // Select another pilot as target + label(0x04) + if_chr_dying(CHR_PILOT1, /*goto*/ 0x3b) + if_chr_death_animation_finished(CHR_PILOT1, /*goto*/ 0x3b) + if_chr_unloaded(CHR_PILOT1, /*goto*/ 0x3b) + if_chr_flag_bankx(CHR_PILOT1, CHRFLAG0_00000004, BANK_0, /*goto*/ 0x3b) + set_target_chr(CHR_PILOT1) + goto_next(0x00) + + label(0x3b) + if_chr_dying(CHR_PILOT2, /*goto*/ 0x3c) + if_chr_death_animation_finished(CHR_PILOT2, /*goto*/ 0x3c) + if_chr_unloaded(CHR_PILOT2, /*goto*/ 0x3c) + if_chr_flag_bankx(CHR_PILOT2, CHRFLAG0_00000004, BANK_0, /*goto*/ 0x3c) + set_target_chr(CHR_PILOT2) + goto_next(0x00) + + label(0x3c) + if_chr_dying(CHR_PILOT3, /*goto*/ 0x04) + if_chr_death_animation_finished(CHR_PILOT3, /*goto*/ 0x04) + if_chr_unloaded(CHR_PILOT3, /*goto*/ 0x04) + if_chr_flag_bankx(CHR_PILOT3, CHRFLAG0_00000004, BANK_0, /*goto*/ 0x04) + set_target_chr(CHR_PILOT3) + goto_next(0x00) + + // No other pilots + label(0x04) + call_rng + if_rand_lt(128, /*goto*/ 0x3b) + set_target_chr(CHR_VELVET) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0x3b) + goto_next(0x00) + label(0x3b) + set_target_chr(CHR_JOANNA) + + // Got target (other pilot or Jo) + label(0x00) + if_chr_lost_track_of_target_maybe(/*goto*/ 0x07) + goto_next(0x04) + label(0x07) + set_onshot_function(GFUNC_ALERTED) + set_function(CHR_SELF, GFUNC_ALERTED) + + label(0x04) + restart_timer + try_run_to_target_chr(/*goto*/ 0x6d) + + beginloop(0x6d) + if_in_disarm_range(/*goto*/ 0x07) + if_timer_gt(120, /*goto*/ 0x04) + endloop(0x6d) + + label(0x04) + goto_first(0x00) + + label(0x07) + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x04) + label(0x04) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x6e) + + beginloop(0x6e) + if_chr_stopped(/*goto*/ 0x07) + endloop(0x6e) + + label(0x07) + goto_first(0x03) + + endfunction +}; + +u8 func1013_lift_switch[] = { + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_LIFT_SWITCH, /*goto*/ 0x07) + endloop(0x00) + + label(0x07) + message(CHR_P1P2, 0x161c) // "Lift door has been unlocked." + unlock_door(0x18, 0x02) + unlock_door(0x19, 0x02) + open_door(0x18) + open_door(0x19) + set_stage_flag(STAGEFLAG_LIFT_UNLOCKED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1014_moonpool_switch[] = { + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + if_object_in_good_condition(OBJ_MOONPOOL_SWITCH, /*goto*/ 0x08) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x10) + message(CHR_P1P2, 0x1624) // "Critical mission object has been destroyed." + set_stage_flag(STAGEFLAG_MOONPOOL_SWITCH_DESTROYED) + + label(0x10) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x08) + if_chr_activated_object(CHR_P1P2, OBJ_MOONPOOL_SWITCH, /*goto*/ 0x07) + endloop(0x00) + + label(0x07) + label(0x07) + message(CHR_P1P2, 0x161d) // "Lift has been activated." + set_stage_flag(STAGEFLAG_MOONPOOL_ACTIVATED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0413_guard_alerted[] = { + set_chr_cloaked(CHR_SELF, FALSE, TRUE) + set_chr_dodge_rating(2, 0x0a) + set_accuracy(18) + set_reaction_speed(60) + set_chr_health(CHR_SELF, 70) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +u8 func1015_shuffle_hatchswitches[] = { + yield + shuffle_pelagic_switches + yield + yield + set_object_image(OBJ_BADHATCHSWITCH1, 0x00, 0x12) + yield + set_object_image(OBJ_BADHATCHSWITCH2, 0x00, 0x12) + yield + set_object_image(OBJ_BADHATCHSWITCH3, 0x00, 0x12) + yield + set_object_image(OBJ_BADHATCHSWITCH4, 0x00, 0x12) + yield + set_object_image(OBJ_HATCHSWITCH1, 0x00, 0x13) + yield + set_object_image(OBJ_HATCHSWITCH2, 0x00, 0x13) + yield + set_object_image(OBJ_HATCHSWITCH3, 0x00, 0x13) + yield + set_object_image(OBJ_HATCHSWITCH4, 0x00, 0x13) + yield + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +#define hatchswitch_logic(switch, flag) \ + yield \ + yield \ + \ + beginloop(0x00) \ + consider_coop_for_p1p2_chr(CHR_SELF) \ + if_chr_activated_object(CHR_P1P2, switch, /*goto*/ 0x07) \ + endloop(0x00) \ + \ + label(0x07) \ + assign_sound(0x043a, CHANNEL_7) \ + control_sound_from_object(CHANNEL_7, switch, TRUE) \ + set_object_image(switch, 0x00, 0x14) \ + set_stage_flag(flag) \ + \ + beginloop(0x0b) \ + if_stage_flag_eq(STAGEFLAG_HATCHSWITCHES_RESETTING, TRUE, /*goto*/ 0x07) \ + endloop(0x0b) \ + \ + label(0x07) \ + set_object_image(switch, 0x00, 0x13) \ + yield \ + yield \ + yield \ + yield \ + yield \ + unset_stage_flag(STAGEFLAG_HATCHSWITCH1_ACTIVATED) \ + unset_stage_flag(STAGEFLAG_HATCHSWITCH2_ACTIVATED) \ + unset_stage_flag(STAGEFLAG_HATCHSWITCH3_ACTIVATED) \ + unset_stage_flag(STAGEFLAG_HATCHSWITCH4_ACTIVATED) \ + goto_first(0x00) + + + +u8 func1016_hatchswitch1[] = { + hatchswitch_logic(OBJ_HATCHSWITCH1, STAGEFLAG_HATCHSWITCH1_ACTIVATED) + endfunction +}; + +u8 func1017_hatchswitch2[] = { + hatchswitch_logic(OBJ_HATCHSWITCH2, STAGEFLAG_HATCHSWITCH2_ACTIVATED) + endfunction +}; + +u8 func1018_hatchswitch3[] = { + hatchswitch_logic(OBJ_HATCHSWITCH3, STAGEFLAG_HATCHSWITCH3_ACTIVATED) + endfunction +}; + +u8 func1019_hatchswitch4[] = { + hatchswitch_logic(OBJ_HATCHSWITCH4, STAGEFLAG_HATCHSWITCH4_ACTIVATED) + endfunction +}; + +u8 func101a_badhatchswitches[] = { + yield + yield + + beginloop(0x00) + if_chr_activated_object(CHR_P1P2, OBJ_BADHATCHSWITCH1, /*goto*/ 0x0b) + if_chr_activated_object(CHR_P1P2, OBJ_BADHATCHSWITCH2, /*goto*/ 0x0c) + if_chr_activated_object(CHR_P1P2, OBJ_BADHATCHSWITCH3, /*goto*/ 0x0d) + if_chr_activated_object(CHR_P1P2, OBJ_BADHATCHSWITCH4, /*goto*/ 0x0e) + endloop(0x00) + + // 1 + label(0x0b) + assign_sound(0x043a, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_BADHATCHSWITCH1, TRUE) + yield + assign_sound(0x01c0, CHANNEL_6) + control_sound_from_object(CHANNEL_6, OBJ_BADHATCHSWITCH1, FALSE) + set_object_image(OBJ_BADHATCHSWITCH1, 0x00, 0x0f) + goto_next(0x04) + + // 2 + label(0x0c) + assign_sound(0x043a, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_BADHATCHSWITCH2, TRUE) + yield + assign_sound(0x01c0, CHANNEL_6) + control_sound_from_object(CHANNEL_6, OBJ_BADHATCHSWITCH2, FALSE) + set_object_image(OBJ_BADHATCHSWITCH2, 0x00, 0x0f) + goto_next(0x04) + + // 3 + label(0x0d) + assign_sound(0x043a, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_BADHATCHSWITCH3, TRUE) + yield + assign_sound(0x01c0, CHANNEL_6) + control_sound_from_object(CHANNEL_6, OBJ_BADHATCHSWITCH3, FALSE) + set_object_image(OBJ_BADHATCHSWITCH3, 0x00, 0x0f) + goto_next(0x04) + + // 4 + label(0x0e) + assign_sound(0x043a, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_BADHATCHSWITCH4, TRUE) + yield + assign_sound(0x01c0, CHANNEL_6) + control_sound_from_object(CHANNEL_6, OBJ_BADHATCHSWITCH4, FALSE) + set_object_image(OBJ_BADHATCHSWITCH4, 0x00, 0x0f) + goto_next(0x04) + + label(0x04) + message(CHR_P1P2, 0x161f) // "Unlocking sequence has been reset." + set_stage_flag(STAGEFLAG_HATCHSWITCHES_RESETTING) + restart_timer + + beginloop(0x10) + if_timer_gt(120, /*goto*/ 0x04) + endloop(0x10) + + label(0x04) + mute_channel(CHANNEL_6) + unset_stage_flag(STAGEFLAG_HATCHSWITCHES_RESETTING) + set_object_image(OBJ_BADHATCHSWITCH1, 0x00, 0x12) + set_object_image(OBJ_BADHATCHSWITCH2, 0x00, 0x12) + set_object_image(OBJ_BADHATCHSWITCH3, 0x00, 0x12) + set_object_image(OBJ_BADHATCHSWITCH4, 0x00, 0x12) + goto_first(0x00) + + endfunction +}; + +u8 func101b_reactor_hum[] = { + yield + assign_sound(0x8146, CHANNEL_1) + play_sound_from_object(CHANNEL_1, OBJ_REACTOR_SWITCH, 0x07d0, 0x0bb8) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0415_elvis_at_start[] = { + set_onshot_function(FUNC_ELVIS_AT_START) + if_chr_dying(CHR_SELF, /*goto*/ 0x07) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x07) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x07) + goto_next(0x04) + + // Dying + label(0x07) + if_sound_finished(CHANNEL_6, /*goto*/ 0x08) + mute_channel(CHANNEL_6) + label(0x08) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x04) + stop_chr + set_chr_health(CHR_SELF, 1) + restart_timer + + beginloop(0x0b) + if_timer_gt(120, /*goto*/ 0x07) + endloop(0x0b) + + label(0x07) + do_special_animation(-1) + speak(TARGET_CHR, 0x1620, 0x14dc, CHANNEL_6, COLOR_06_WHITE) // "You go on ahead, Jo. I'll secure the perimeter. We..." + + beginloop(0x0c) + if_sound_finished(CHANNEL_6, /*goto*/ 0x07) + endloop(0x0c) + + label(0x07) + jog_to_pad(0x0040) + + beginloop(0x0d) + if_chr_stopped(/*goto*/ 0x07) + endloop(0x0d) + + label(0x3b) + restart_timer + label(0x0e) + stop_chr + if_self_flag_bankx_eq(CHRFLAG1_DONE_SEARCH_ANIM, TRUE, BANK_1, /*goto*/ 0x07) + call_rng + if_rand_gt(128, /*goto*/ 0x07) + + // 50% chance of doing an idle animation + call_rng + if_rand_lt(64, /*goto*/ 0x44) + if_rand_lt(128, /*goto*/ 0x45) + if_rand_lt(196, /*goto*/ 0x46) + + set_self_flag_bankx(CHRFLAG1_DONE_SEARCH_ANIM, BANK_1) + animation(ANIM_SMOKE_CIGARETTE, 0, -1, 0x100a, CHR_SELF, 2) + goto_next(0x4c) + + label(0x44) + animation(ANIM_SCRATCH_HEAD, 0, -1, 0x100a, CHR_SELF, 2) + goto_next(0x4c) + + label(0x45) + animation(ANIM_YAWN, 0, -1, 0x100a, CHR_SELF, 2) + goto_next(0x4c) + + label(0x46) + animation(ANIM_GRAB_CROTCH, 0, -1, 0x100a, CHR_SELF, 2) + goto_next(0x4c) + + label(0x47) + animation(ANIM_TWO_GUN_HOLD, 0, 100, 0x100a, CHR_SELF, 2) + goto_next(0x4c) + + // 50% chance + label(0x07) + unset_self_flag_bankx(CHRFLAG1_DONE_SEARCH_ANIM, BANK_1) + if_chr_in_room(CHR_SELF, 0x00, 0x0029, /*goto*/ 0x04) + set_target_pad(0x0040) + goto_next(0x07) + + label(0x04) + call_rng + if_rand_lt(64, /*goto*/ 0x44) + if_rand_lt(128, /*goto*/ 0x45) + if_rand_lt(196, /*goto*/ 0x46) + try_set_target_pad_to_something(0x08, /*goto*/ 0x07) + label(0x44) + try_set_target_pad_to_something(0x02, /*goto*/ 0x07) + label(0x45) + try_set_target_pad_to_something(0x04, /*goto*/ 0x07) + label(0x46) + try_set_target_pad_to_something(0x08, /*goto*/ 0x07) + goto_next(0x4c) + label(0x07) + go_to_target_pad(SPEED_WALK) + + beginloop(0x4c) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0029, /*goto*/ 0x04) + if_chr_in_room(CHR_JOANNA, 0x00, 0x002a, /*goto*/ 0x04) + if_chr_in_room(CHR_JOANNA, 0x00, 0x002b, /*goto*/ 0x04) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0030, /*goto*/ 0x04) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x07) + if_chr_in_room(CHR_VELVET, 0x00, 0x0029, /*goto*/ 0x04) + if_chr_in_room(CHR_VELVET, 0x00, 0x002a, /*goto*/ 0x04) + if_chr_in_room(CHR_VELVET, 0x00, 0x002b, /*goto*/ 0x04) + if_chr_in_room(CHR_VELVET, 0x00, 0x0030, /*goto*/ 0x04) + label(0x07) + goto_next(0x10) + + label(0x04) + if_chr_stopped(/*goto*/ 0x4b) + endloop(0x4c) + + label(0x4b) + goto_first(0x3b) + + label(0x04) + label(0x10) + yield + if_difficulty_lt(DIFF_SA, /*goto*/ 0x07) + + // SA and PA + chr_move_to_pad(CHR_ELVIS, 0x0020, 0x01, /*goto*/ 0x04) + goto_first(0x10) + + // Agent + label(0x07) + chr_move_to_pad(CHR_ELVIS, 0x0096, 0x01, /*goto*/ 0x04) + goto_first(0x10) + + label(0x04) + stop_chr + set_stage_flag(STAGEFLAG_ELVIS_WARPED_FROM_START) + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_armor(2000) + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Elvis leading the way from the moon pool to the diving area. + */ +u8 func0416_elvis_leading[] = { + set_onshot_function(FUNC_ELVIS_LEADING) + if_chr_dying(CHR_SELF, /*goto*/ 0x07) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x07) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x07) + goto_next(0x04) + + // Dying + label(0x07) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x04) + if_just_injured(CHR_SELF, /*goto*/ 0x07) + goto_next(0x04) + + // Injured + label(0x07) + say_quip(CHR_JOANNA, 0x29, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00) + + beginloop(0x3a) + if_chr_stopped(/*goto*/ 0x04) + endloop(0x3a) + + label(0x04) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x0b) + set_target_pad(0x0096) + label(0x12) + label(0x04) + run_to_pad(0x0096) + restart_timer + + beginloop(0x00) + if_timer_gt(1200, /*goto*/ 0x08) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x0b) + label(0x07) + dprint 'G','O',' ','T','O',' ','P','A','D','\n',0, + if_chr_stopped(/*goto*/ 0x04) + endloop(0x00) + + label(0x08) + goto_first(0x12) + + label(0x07) + goto_first(0x03) + + label(0x04) + stop_chr + + beginloop(0x0c) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x0b) + label(0x07) + dprint 'A','T',' ','P','A','D','\n',0, + endloop(0x0c) + + label(0x0b) + dprint 'D','E','T','E','C','T','E','D','\n',0, + call_rng + if_rand_lt(85, /*goto*/ 0x3b) + if_rand_lt(170, /*goto*/ 0x3c) + say_quip(CHR_JOANNA, 0x26, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00) + goto_next(0x07) + + label(0x3b) + say_quip(CHR_JOANNA, 0x27, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00) + goto_next(0x07) + + label(0x3c) + say_quip(CHR_JOANNA, 0x28, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00) + + label(0x07) + set_onshot_function(FUNC_ELVIS_LEADING) + set_return_function(CHR_SELF, FUNC_ELVIS_LEADING) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + endfunction +}; + +u8 func101c_check_elvis_dead[] = { + beginloop(0x00) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x07) + if_chr_dying(CHR_ELVIS, /*goto*/ 0x07) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x07) + endloop(0x00) + + label(0x07) + message(CHR_JOANNA, 0x1621) // "Elvis has been killed." + set_stage_flag(STAGEFLAG_ELVIS_DEAD) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0418_elvis_at_moonpool[] = { + // @bug? If Elvis has enough health, and you can shoot him before he talks, + // he'll jump straight to leading the way without enabling AIVSAI on + // everyone. This may allow him to run past guards without engaging in + // combat. + set_onshot_function(FUNC_ELVIS_LEADING) + + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0x07) + endloop(0x00) + + label(0x07) + if_chr_dying(CHR_SELF, /*goto*/ 0x07) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x07) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x07) + do_special_animation(-1) + set_stage_flag(STAGEFLAG_MET_ELVIS) + speak(CHR_P1P2, 0x1622, 0x81a4, CHANNEL_6, COLOR_06_WHITE) // "Joanna... What took you so long? Follow me - let's..." + + beginloop(0x0b) + if_sound_finished(CHANNEL_6, /*goto*/ 0x07) + endloop(0x0b) + + label(0x07) + set_function(CHR_SELF, FUNC_ELVIS_PREPARE_LEADING) + endfunction +}; + +u8 func0417_elvis_prepare_leading[] = { + // Allow all other chrs to engage in combat with Elvis + set_chr_flag_bankx(0x03, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x04, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x05, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x06, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x07, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x08, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x09, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x0a, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x0b, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x0c, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x0d, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x0e, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x0f, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x10, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x11, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x12, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x13, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x14, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x15, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x16, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x17, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x18, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x19, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x1a, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x1b, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x1c, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x1d, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x1e, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x1f, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x20, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x21, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x22, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x23, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x24, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x25, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x26, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x27, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x28, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x29, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x2a, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x2b, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x2c, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x2d, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x2e, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x2f, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x30, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x31, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x32, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x33, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x34, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x35, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x36, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x37, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x38, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x39, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x3a, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x3b, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(CHR_PILOT1, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x3d, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(CHR_PILOT2, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(CHR_PILOT3, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x40, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x41, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x42, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x43, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x44, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x45, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x46, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x47, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x48, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x49, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x4a, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x4b, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x4c, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x4d, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x51, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x52, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x53, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x54, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x55, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x56, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x57, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x58, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x59, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x5a, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x5b, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x5c, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x5d, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x5e, CHRFLAG0_AIVSAI, BANK_0) + set_function(CHR_SELF, FUNC_ELVIS_LEADING) + endfunction +}; + +u8 func101d_alarm_switches[] = { + beginloop(0x00) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, 0x21, /*goto*/ 0x07) + if_chr_activated_object(CHR_P1P2, 0x22, /*goto*/ 0x07) + if_chr_activated_object(CHR_P1P2, 0x23, /*goto*/ 0x07) + if_chr_activated_object(CHR_P1P2, 0x24, /*goto*/ 0x07) + if_chr_activated_object(CHR_P1P2, 0x25, /*goto*/ 0x07) + endloop(0x00) + + label(0x07) + if_alarm_active(/*goto*/ 0x07) + activate_alarm + message(CHR_P1P2, 0x1625) // "Alarm has been activated." + goto_next(0x0c) + + label(0x07) + deactivate_alarm + message(CHR_JOANNA, 0x1626) // "Alarm has been deactivated." + goto_next(0x0c) + + label(0x0c) + restart_timer + + beginloop(0x0d) + if_timer_gt(120, /*goto*/ 0x07) + endloop(0x0d) + + label(0x07) + goto_first(0x00) + + // @bug: This function is surely not meant to be assigned here. But it has + // no consequences because the function will bail because CHR_SELF doesn't + // exist. + set_function(CHR_SELF, FUNC_ELVIS_LEADING) + endfunction +}; + +u8 func101e_alarm_images[] = { + beginloop(0x00) + if_alarm_active(/*goto*/ 0x07) + endloop(0x00) + + label(0x07) + set_object_flag_bank0(0x27, OBJECTFLAG0_00100000) + set_object_flag_bank0(0x28, OBJECTFLAG0_00100000) + set_object_flag_bank1(0x27, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank1(0x28, OBJECTFLAG1_INVISIBLE) + set_object_image(0x21, 0x00, 0x0f) + set_object_image(0x22, 0x00, 0x0f) + set_object_image(0x23, 0x00, 0x0f) + set_object_image(0x24, 0x00, 0x0f) + set_object_image(0x25, 0x00, 0x0f) + + beginloop(0x0b) + if_alarm_active(/*goto*/ 0x07) + goto_next(0x04) + + label(0x07) + endloop(0x0b) + + label(0x04) + set_object_image(0x21, 0x00, 0x14) + set_object_image(0x22, 0x00, 0x14) + set_object_image(0x23, 0x00, 0x14) + set_object_image(0x24, 0x00, 0x14) + set_object_image(0x25, 0x00, 0x14) + goto_first(0x00) + + endfunction +}; + +u8 func101f_unlock_doors[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x0b) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x0c) + + // PA + unlock_door(0x2c, 0x80) + unlock_door(0x2d, 0x80) + + // SA + PA + label(0x0c) + unlock_door(0x29, 0x80) + unlock_door(0x2a, 0x80) + unlock_door(0x2b, 0x80) + + // A + SA + PA + label(0x0b) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1020_setup_rtracker[] = { + yield + set_object_flag_bank2(0x27, OBJECTFLAG2_RTRACKED_BLUE) + set_object_flag_bank2(0x28, OBJECTFLAG2_RTRACKED_BLUE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1421_setup_lighting[] = { + yield + set_lighting(0x0060, 0x06, 0x01) + set_lighting(0x0061, 0x06, 0x01) + set_lighting(0x0063, 0x05, 0x01) + set_lighting(0x0064, 0x05, 0x01) + set_lighting(0x0064, 0x06, 0x01) + set_lighting(0x0065, 0x05, 0x01) + set_lighting(0x0067, 0x05, 0x01) + set_lighting(0x0067, 0x06, 0x01) + set_lighting(0x0068, 0x05, 0x01) + set_lighting(0x0068, 0x06, 0x01) + set_lighting(0x0069, 0x05, 0x01) + set_lighting(0x0069, 0x06, 0x01) + set_lighting(0x006a, 0x05, 0x01) + set_lighting(0x006a, 0x06, 0x01) + set_lighting(0x006b, 0x05, 0x01) + set_lighting(0x006b, 0x06, 0x01) + set_lighting(0x006d, 0x05, 0x01) + set_lighting(0x006d, 0x06, 0x01) + set_lighting(0x006e, 0x05, 0x01) + set_lighting(0x006e, 0x06, 0x01) + set_lighting(0x006f, 0x05, 0x01) + set_lighting(0x006f, 0x06, 0x01) + set_lighting(0x0070, 0x05, 0x01) + set_lighting(0x0070, 0x06, 0x01) + set_lighting(0x0071, 0x05, 0x01) + set_lighting(0x0071, 0x06, 0x01) + set_lighting(0x0072, 0x05, 0x01) + set_lighting(0x0072, 0x06, 0x01) + set_lighting(0x0073, 0x05, 0x01) + set_lighting(0x0077, 0x05, 0x01) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +struct ailists functions[] = { + { func1400_setup_counterop, 0x1400 }, + { func1001_objectives_failed_msg, 0x1001 }, + { func1002_intro, 0x1002 }, + { func1004_msg_controlledfrom, 0x1004 }, + { func1005_msg_withoutautopilot, 0x1005 }, + { func1006_msg_conductoperations, 0x1006 }, + { func1009_open_reactor_hatch, 0x1009 }, + { func100a_reactor_switch, 0x100a }, + { func100b_check_diving_area_located, 0x100b }, + { func100c_check_end_level, 0x100c }, + { func100e_check_labtech_dead, 0x100e }, + { func100f_check_researchdata_collected, 0x100f }, + { func1010_alarm_responders, 0x1010 }, + { func1011_check_pilots_dead, 0x1011 }, + { func1012_choose_angry_pilot, 0x1012 }, + { func1013_lift_switch, 0x1013 }, + { func1014_moonpool_switch, 0x1014 }, + { func1015_shuffle_hatchswitches, 0x1015 }, + { func1016_hatchswitch1, 0x1016 }, + { func1017_hatchswitch2, 0x1017 }, + { func1018_hatchswitch3, 0x1018 }, + { func1019_hatchswitch4, 0x1019 }, + { func101a_badhatchswitches, 0x101a }, + { func101b_reactor_hum, 0x101b }, + { func101c_check_elvis_dead, 0x101c }, + { func101d_alarm_switches, 0x101d }, + { func101e_alarm_images, 0x101e }, + { func101f_unlock_doors, 0x101f }, + { func1020_setup_rtracker, 0x1020 }, + { func1421_setup_lighting, 0x1421 }, + { func1002_intro, 0x0c00 }, + { func0c01_outro, 0x0c01 }, + { func0408_guard_unalerted, 0x0408 }, + { func0405_start_path00, 0x0405 }, + { func0401_pilot, 0x0401 }, + { func0402_init_pilot, 0x0402 }, + { func0401_pilot_dying, 0x0403 }, + { func0404_angry_pilot, 0x0404 }, + { func0c01_outro, 0x0414 }, + { func0415_elvis_at_start, 0x0415 }, + { func0416_elvis_leading, 0x0416 }, + { func0417_elvis_prepare_leading, 0x0417 }, + { func0418_elvis_at_moonpool, 0x0418 }, + { func0406_start_path01, 0x0406 }, + { func0407_start_path02, 0x0407 }, + { func0409_start_path03, 0x0409 }, + { func040a_start_path04, 0x040a }, + { func040b_labtech1, 0x040b }, + { func040c_labtech2, 0x040c }, + { func040d_labtech3, 0x040d }, + { func040e_init_labtech1, 0x040e }, + { func040f_init_labtech2, 0x040f }, + { func0410_init_labtech3, 0x0410 }, + { func0411_labtech_alerted, 0x0411 }, + { func0412_hide, 0x0412 }, + { func0413_guard_alerted, 0x0413 }, + { NULL, 0 }, +}; + diff --git a/src/setup/setupdepo.c b/src/setup/setupdepo.c new file mode 100644 index 000000000..19823a7ed --- /dev/null +++ b/src/setup/setupdepo.c @@ -0,0 +1,3171 @@ +// +// G5 Building +// + +#include "../include/setup.h" + +// Characters +#define CHR_CLOAK_1A 0x00 // first room +#define CHR_CLOAK_1B 0x01 // first room +#define CHR_LIGHTSWITCH_GUARD 0x02 +#define CHR_CLOAK_2A 0x03 // second room +#define CHR_CLOAK_2B 0x04 // second room +#define CHR_CLOAK_2C 0x05 // second room +#define CHR_CLOAK_2D 0x06 // second room +#define CHR_CASS 0x18 +#define CHR_TRENT 0x19 +#define CHR_STRIPES 0x1a +#define CHR_BLONDE 0x1b +#define CHR_INTRO_VICTIM 0x1d + +// Objects +#define OBJ_GENERATOR 0x01 +#define OBJ_LASERSWITCH1 0x03 +#define OBJ_LASERSWITCH2 0x04 +#define OBJ_LASERSWITCH3 0x05 +#define OBJ_LASERSWITCH4 0x06 +#define OBJ_SAFEDOOR 0x0b +#define OBJ_BACKUPDISK 0x0c +#define OBJ_KEYCARD1 0x0e +#define OBJ_KEYCARD2 0x0f +#define OBJ_DECODER 0x10 +#define OBJ_SAFEKEYPAD 0x11 +#define OBJ_ALARM1 0x12 +#define OBJ_ALARM2 0x13 +#define OBJ_ESCAPEDOOR1 0x18 +#define OBJ_ESCAPEDOOR2 0x1b +#define OBJ_LASER_1A 0x22 +#define OBJ_LASER_1B 0x23 +#define OBJ_LASER_1C 0x24 +#define OBJ_LASER_1D 0x25 +#define OBJ_LASER_2A 0x26 +#define OBJ_LASER_2B 0x27 +#define OBJ_LASER_2C 0x28 +#define OBJ_LASER_2D 0x29 +#define OBJ_LASER_3A 0x2a +#define OBJ_LASER_3B 0x2b +#define OBJ_LASER_3C 0x2c +#define OBJ_LASER_3D 0x2d +#define OBJ_LASER_4A 0x2e +#define OBJ_LASER_4B 0x2f +#define OBJ_LASER_4C 0x30 +#define OBJ_LASER_4D 0x31 +#define OBJ_MINE1 0x38 +#define OBJ_MINE2 0x39 +#define OBJ_NBOMB_CRATE 0x3c +#define OBJ_LIGHTSWITCH 0x3d +#define OBJ_CROSSBOW 0x3e +#define OBJ_CMP150_JOANNA 0x47 +#define OBJ_CMP150_VELVET 0x48 + +// Stage flags +#define STAGEFLAG_CLOAK1_ONE_REMAINING 0x00000002 +#define STAGEFLAG_CLOAK2_ONE_REMAINING 0x00000004 +#define STAGEFLAG_MEETING_FINISHED 0x00000008 +#define STAGEFLAG_CONSPIRATORS_ALERTED 0x00000010 +#define STAGEFLAG_VISITED_TOP_DOOR 0x00000020 +#define STAGEFLAG_SAFEKEYPAD_DESTROYED 0x00000040 +#define STAGEFLAG_LIGHTS_OFF 0x00000080 +#define STAGEFLAG_GENERATOR_SHUT_DOWN 0x00000100 +#define STAGEFLAG_GENERATOR_SHUT_DOWN2 0x00000200 // redundant +#define STAGEFLAG_GENERATOR_DESTROYED 0x00000400 +#define STAGEFLAG_LASERSET1_DISABLED 0x00000800 +#define STAGEFLAG_LASERSET2_DISABLED 0x00001000 +#define STAGEFLAG_00002000 0x00002000 +#define STAGEFLAG_LASERSET4_DISABLED 0x00004000 +#define STAGEFLAG_LASERSWITCH1_DESTROYED 0x00008000 +#define STAGEFLAG_LASERSWITCH2_DESTROYED 0x00010000 +#define STAGEFLAG_LASERSWITCH3_DESTROYED 0x00020000 +#define STAGEFLAG_LASERSWITCH4_DESTROYED 0x00040000 +#define STAGEFLAG_ALL_LASERS_DISABLED 0x00080000 +#define STAGEFLAG_DECODER_ATTACHED 0x00200000 +#define STAGEFLAG_LASERSET3_DISABLED 0x00800000 +#define STAGEFLAG_MEETING_STARTED 0x01000000 +#define STAGEFLAG_BACKUP_COLLECTED 0x08000000 +#define STAGEFLAG_MEETING_HOLOGRAPHED 0x10000000 +#define STAGEFLAG_20000000 0x20000000 +#define STAGEFLAG_ALARM_SOUNDING 0x40000000 +#define STAGEFLAG_EXITED_BUILDING 0x80000000 + +// Functions +#define FUNC_WALK_FROM_MEETING 0x0403 +#define FUNC_RUN_FROM_MEETING 0x0404 +#define FUNC_CLOAK2_HIDE 0x0405 +#define FUNC_INIT_TYPE1_GUARD 0x0406 +#define FUNC_INIT_CLOAK1_GUARD 0x0408 +#define FUNC_INTRO 0x040d +#define FUNC_MEETING_CUTSCENE 0x040e +#define FUNC_OUTRO 0x040f +#define FUNC_CLOAK_GUARD 0x0412 +#define FUNC_CLOAK2_GUARD 0x0414 + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + briefing(0, 0x1801) + briefing(1, 0x1800) + briefing(2, 0x1802) + briefing(3, 0x1803) + + beginobjective(0, 0x1809, (DIFFBIT_PA | DIFFBIT_PD)) // "Disable damping field generator" + complete_flags(STAGEFLAG_GENERATOR_SHUT_DOWN) + fail_flags(STAGEFLAG_GENERATOR_DESTROYED) + endobjective + + beginobjective(1, 0x180a, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Deactivate laser grid systems" + complete_flags(STAGEFLAG_ALL_LASERS_DISABLED) + complete_flags(STAGEFLAG_LASERSET1_DISABLED) + complete_flags(STAGEFLAG_LASERSET2_DISABLED) + complete_flags(STAGEFLAG_LASERSET3_DISABLED) + complete_flags(STAGEFLAG_LASERSET4_DISABLED) + fail_flags(STAGEFLAG_LASERSWITCH1_DESTROYED) + fail_flags(STAGEFLAG_LASERSWITCH2_DESTROYED) + fail_flags(STAGEFLAG_LASERSWITCH3_DESTROYED) + fail_flags(STAGEFLAG_LASERSWITCH4_DESTROYED) + endobjective + + beginobjective(2, 0x180b, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Holograph meeting conspirators" + complete_flags(STAGEFLAG_MEETING_HOLOGRAPHED) + fail_flags(STAGEFLAG_20000000) + fail_flags(STAGEFLAG_CONSPIRATORS_ALERTED) + fail_flags(STAGEFLAG_00002000) + endobjective + + beginobjective(3, 0x180c, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Retrieve Dr. Caroll backup from safe" + complete_flags(STAGEFLAG_BACKUP_COLLECTED) + fail_flags(STAGEFLAG_SAFEKEYPAD_DESTROYED) + endobjective + + beginobjective(4, 0x180d, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Exit building" + complete_flags(STAGEFLAG_EXITED_BUILDING) + endobjective + + // First cloak room + chr(0x00000100, CHR_CLOAK_1A, 0x007e, BODY_G5_SWAT_GUARD, HEAD_RANDOM, GFUNC_IDLE, 0x007e, -1, 200, 100, 0x00000600, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, CHR_CLOAK_1A, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRCROSSBOW, CHR_CLOAK_1A, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CROSSBOW, 0x00ffffff, 0x00000000) + tag(OBJ_CROSSBOW, -1) + + chr(0x00000100, CHR_CLOAK_1B, 0x007f, BODY_G5_SWAT_GUARD, HEAD_RANDOM, GFUNC_IDLE, 0x007f, -1, 200, 100, 0x00000600, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, CHR_CLOAK_1B, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + + tag(OBJ_KEYCARD1, 1) + key(0x0080, MODEL_KEYCARD, CHR_CLOAK_1A, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000004) + rename_object(-1, 0x0045, 0x180e, 0x180f, 0x1810, 0x1811, 0x1812, 0x0000, 0x0000) // "Obtain alpha key card." + + // Between cloak rooms + chr(0x00004a00, 0x02, 0x005f, BODY_G5_GUARD, HEAD_RANDOM, GFUNC_UNALERTED, 0x0080, -1, 2000, 100, 0x80028204, 0x00000100, 0x80, 0x04, -1, 0, 0x00010000) + weapon(0x0100, MODEL_CHRCMP150, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + + // Second cloak room + chr(0x00000000, 0x03, 0x005e, BODY_G5_SWAT_GUARD, HEAD_RANDOM, FUNC_CLOAK2_HIDE, 0x006e, -1, 1, 15, 0x000a8204, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0003, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + + chr(0x00000000, 0x04, 0x005d, BODY_G5_SWAT_GUARD, HEAD_RANDOM, FUNC_CLOAK2_HIDE, 0x006f, -1, 1, 15, 0x000a8204, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0004, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + + chr(0x00000000, 0x05, 0x0072, BODY_G5_SWAT_GUARD, HEAD_RANDOM, FUNC_CLOAK2_HIDE, 0x0070, -1, 1, 10, 0x000a8204, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0005, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + + chr(0x00000000, 0x06, 0x0013, BODY_G5_SWAT_GUARD, HEAD_RANDOM, FUNC_CLOAK2_HIDE, 0x0071, -1, 1, 10, 0x000a8204, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0006, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + + tag(OBJ_KEYCARD2, 1) + key(0x0080, MODEL_KEYCARD, 0x0003, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000010) + rename_object(-1, 0x0046, 0x1813, 0x1814, 0x1815, 0x1816, 0x1817, 0x0000, 0x0000) // "Obtain alpha key card." + + // Rest of stage + chr(0x00000200, 0x08, 0x002f, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, 0x007b, -1, 200, 100, 0x800a8204, 0x00000000, 0x80, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0008, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + + chr(0x00000300, 0x09, 0x0079, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, 0x007c, -1, 200, 100, 0x800a8204, 0x00000000, 0x80, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + + chr(0x00000300, 0x0a, 0x007a, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, 0x007d, -1, 200, 100, 0x800a8204, 0x00000000, 0x80, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + + chr(0x00000200, 0x0b, 0x0026, BODY_G5_GUARD, HEAD_RANDOM, 0x040c, 0x0029, -1, 100, 100, 0x800a8204, 0x00000000, 0x80, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + + chr(0x00000600, 0x07, 0x005c, BODY_G5_GUARD, HEAD_BEAU1, 0x0409, -1, -1, 200, 100, 0xc0008601, 0x00000000, 0x80, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0007, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + + chr(0x00000600, 0x0c, 0x005b, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, 0x0073, -1, 200, 100, 0xc000c680, 0x00008000, 0x80, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + + chr(0x00000600, 0x0d, 0x001f, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, 0x0073, -1, 200, 100, 0xc000c680, 0x00008000, 0x80, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + + chr(0x00000600, 0x0e, 0x0067, BODY_G5_GUARD, HEAD_RANDOM, 0x040a, 0x0073, -1, 200, 100, 0xc000c680, 0x00008000, 0x80, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + + chr(0x00000600, 0x0f, 0x0039, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, 0x0074, -1, 200, 100, 0x8004c080, 0x00000000, 0x80, 0x06, -1, 0, 0x02000700) + weapon(0x0100, MODEL_CHRCMP150, 0x000f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + + chr(0x00000600, 0x10, 0x0068, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, 0x0074, -1, 200, 100, 0x8004c080, 0x00000000, 0x80, 0x06, -1, 0, 0x02000700) + weapon(0x0100, MODEL_CHRCMP150, 0x0010, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + + chr(0x00000600, 0x11, 0x0069, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, 0x0074, -1, 200, 100, 0x8004c080, 0x00000000, 0x80, 0x06, -1, 0, 0x02000700) + weapon(0x0100, MODEL_CHRCMP150, 0x0011, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + + chr(0x00000200, 0x12, 0x003f, BODY_G5_GUARD, HEAD_RANDOM, 0x040b, -1, -1, 200, 100, 0xa080c080, 0x00000000, 0x80, 0x06, -1, 0, 0x02000700) + weapon(0x0100, MODEL_CHRCMP150, 0x0012, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + + chr(0x00000200, 0x13, 0x006a, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 200, 100, 0xa080c080, 0x00000000, 0x80, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0013, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + + chr(0x00000200, 0x14, 0x006b, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 200, 100, 0xc000c080, 0x00000000, 0x80, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + + chr(0x00000200, 0x15, 0x006c, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 200, 100, 0xc000c080, 0x00000000, 0x80, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0015, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + + chr(0x00000200, 0x16, 0x006d, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 200, 100, 0xc000c080, 0x00000000, 0x80, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + + chr(0x00000200, 0x17, 0x0082, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 200, 100, 0xa0802000, 0x00000000, 0x80, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0017, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + + tag(0x0d, 1) + chr(0x00000400, CHR_CASS, 0x0088, BODY_CASSANDRA, HEAD_CASSANDRA, 0x0410, -1, -1, 200, 100, 0x0000c080, 0x00000000, 0x02, 0x02, 0x4a, 0, 0x00010000) + chr(0x00000400, CHR_BLONDE, 0x0087, BODY_MRBLONDE, HEAD_MRBLONDE, 0x0410, -1, -1, 200, 100, 0x0000c080, 0x00000000, 0x02, 0x02, 0x4b, 0, 0x00010000) + chr(0x00000400, CHR_INTRO_VICTIM, 0x0009, BODY_G5_GUARD, HEAD_RANDOM, 0x0410, -1, -1, 1000, 100, 0x0000c200, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, CHR_INTRO_VICTIM, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000500, CHR_TRENT, 0x003b, BODY_TRENT, HEAD_TRENT, 0x0411, -1, -1, 200, 100, 0x0000c080, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + chr(0x00000500, CHR_STRIPES, 0x003c, BODY_STRIPES, HEAD_JON, 0x0411, -1, -1, 200, 100, 0x0000c080, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + tag(OBJ_GENERATOR, 1) + multimonitor(0x0100, MODEL_PD_CONSOLE, 0x00d0, 0x000001e1, 0x00000001, 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, 0x03030000) + tag(0x3f, 1) + door(0x0100, MODEL_DOOR2_G5, 0x009c, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000010, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x009d, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000010, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x40, -1) + door(0x0100, MODEL_DOOR2_G5, 0x00a2, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x00a3, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x00a4, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x00a5, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x00a6, 0x10000000, 0x08000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000020, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x00a7, 0x10000000, 0x10000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000020, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x00a8, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x00a9, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x00b3, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x00b4, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x00aa, 0x10000000, 0x28000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000020, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x00ab, 0x10000000, 0x30000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000020, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x00ac, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x00ad, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x34, 4) + tag(0x35, 4) + tag(0x36, 4) + tag(0x37, 4) + door(0x0100, MODEL_DOOR1A_G5, 0x0099, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR1ATRI_G5, 0x0098, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0001f8ac, 0x0002a0e5, 0x0000434a, 0x0003491f, 0x000010d2, 0x00000000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR1B_G5, 0x009a, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR1ATRI_G5, 0x009b, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0001f8ac, 0x0002a0e5, 0x0000434a, 0x0003491f, 0x000010d2, 0x00000000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffd, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x33, 1) + door(0x0100, MODEL_DOOR1A_G5, 0x00a0, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR1ATRI_G5, 0x00a1, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0001f8ac, 0x0002a0e5, 0x0000434a, 0x0003491f, 0x000010d2, 0x00000000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR1B_G5, 0x009f, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR1ATRI_G5, 0x009e, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0001f8ac, 0x0002a0e5, 0x0000434a, 0x0003491f, 0x000010d2, 0x00000000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffd, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x43, -4) + tag(0x44, -4) + tag(0x45, -4) + tag(0x46, -4) + tag(0x3a, 1) + door(0x0100, MODEL_DOOR4A_G5, 0x00b5, 0x00000400, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0000ffff, 0x00014000, 0x00001999, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR4B_G5, 0x00b6, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0000ffff, 0x00014000, 0x00001999, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x41, 1) + door(0x0100, MODEL_G5CARLIFTDOOR, 0x00b7, 0x00000000, 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, 0x00000020, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_G5CARLIFTDOOR, 0x00b8, 0x00000000, 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, 0x00080000, 0x00000020, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x42, -1) + + tag(OBJ_BACKUPDISK, 1) + stdobject(0x0100, MODEL_ZIGGYCARD, 0x004c, 0x012404e8, 0x00004000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + rename_object(-1, 0x0044, 0x181e, 0x181f, 0x1820, 0x1821, 0x1822, 0x0000, 0x0000) // "Obtain DAT tape." + + tag(OBJ_DECODER, 1) + stdobject(0x0200, MODEL_CHRDOORDECODER, 0x0050, 0x00420408, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + + tag(OBJ_LIGHTSWITCH, 1) + singlemonitor(0x0019, MODEL_G5_LASER_SWITCH, 0x00ed, 0x00000002, 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, 0xffffff06) + tag(0x03, 1) + singlemonitor(0x0019, MODEL_G5_LASER_SWITCH, 0x00e6, 0x00000002, 0x00000001, 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, 0xffffff13) + tag(0x04, 1) + singlemonitor(0x0019, MODEL_G5_LASER_SWITCH, 0x00e8, 0x00000002, 0x00000001, 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, 0xffffff13) + tag(0x05, 1) + singlemonitor(0x0019, MODEL_G5_LASER_SWITCH, 0x00e9, 0x00000002, 0x00000001, 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, 0xffffff13) + tag(0x06, 1) + singlemonitor(0x0019, MODEL_G5_LASER_SWITCH, 0x00ea, 0x00000002, 0x00000001, 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, 0xffffff13) + tag(0x12, 1) + singlemonitor(0x0019, MODEL_G5_ALARM, 0x00e7, 0x00000002, 0x00204000, 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, 0xffffff04) + tag(0x13, 1) + singlemonitor(0x0019, MODEL_G5_ALARM, 0x00eb, 0x00000002, 0x00204000, 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, 0xffffff04) + tag(OBJ_SAFEKEYPAD, 1) + singlemonitor(0x0019, MODEL_G5_LASER_SWITCH, 0x00ec, 0x00000002, 0x00000001, 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, 0xffffff01) + tag(OBJ_SAFEDOOR, 1) + door(0x0100, MODEL_G5SAFEDOOR, 0x00c2, 0x10000010, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x00500000, 0x00500000, 0x00001999, 0x00000005, 0x00000040, 0x00000e10, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + + tag(OBJ_CMP150_JOANNA, 1) + weapon(0x0100, MODEL_CHRCMP150, 0xffff, 0x40000000, 0x00000000, 0x00400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REMOTEMINE, 0x00ffffff, 0x00000000) + rename_object(-1, 0x0022, 0x1842, 0x1843, 0x1844, 0x1845, 0x1846, 0x0000, 0x0000) // "" + + tag(OBJ_CMP150_VELVET, 1) + weapon(0x0100, MODEL_CHRCMP150, 0xffff, 0x40000000, 0x00000000, 0x00400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REMOTEMINE, 0x00ffffff, 0x00000000) + rename_object(-1, 0x0022, 0x1842, 0x1843, 0x1844, 0x1845, 0x1846, 0x0000, 0x0000) // "" + + glass(0x0100, MODEL_WINDOW, 0x00c0, 0x00000f62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x00c1, 0x00000f62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x00be, 0x00000f62, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x22, 4) + tag(0x23, 4) + tag(0x24, 4) + tag(0x25, 4) + door(0x0100, MODEL_LASDOOR, 0x00d1, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x00d2, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x00d3, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x00d4, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x26, 4) + tag(0x27, 4) + tag(0x28, 4) + tag(0x29, 4) + door(0x0100, MODEL_LASDOOR, 0x00d5, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x00d6, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x00d7, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x00d8, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x2a, 4) + tag(0x2b, 4) + tag(0x2c, 4) + tag(0x2d, 4) + door(0x0100, MODEL_LASDOOR, 0x00d9, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x00da, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x00db, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x00dc, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x2e, 4) + tag(0x2f, 4) + tag(0x30, 4) + tag(0x31, 4) + door(0x0100, MODEL_LASDOOR, 0x00dd, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x00de, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x00df, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x00e0, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffd, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(OBJ_ESCAPEDOOR1, 2) + link_scenery(1, 0, 2) + door(0x0100, MODEL_G5_ESCDOORUP, 0x00f0, 0x13500d00, 0x20304300, 0x00000000, 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) + stdobject(0x0100, MODEL_G5_ESCDOORUPBOOM, 0x00f1, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(OBJ_ESCAPEDOOR2, 2) + link_scenery(1, 0, 2) + door(0x0100, MODEL_G5_ESCDOORDOWN, 0x00ee, 0x13500d00, 0x20304300, 0x00000000, 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) + stdobject(0x0100, MODEL_G5_ESCDOORDOWNBOOM, 0x00ef, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + + tag(OBJ_MINE1, 1) + remote_mine(0x0100, MODEL_CHRREMOTEMINE, 0x0077, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x22000000, 0x00000001, 0x00000000) + + tag(OBJ_MINE2, 1) + remote_mine(0x0100, MODEL_CHRREMOTEMINE, 0x0078, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x22000000, 0x00000001, 0x00000000) + + stdobject(0x0100, MODEL_DUMPSTER, 0x00f9, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DUMPSTER, 0x00fa, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DUMPSTER, 0x00fb, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DUMPSTER, 0x00fc, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0028, MODEL_BAFTA, 0x004d, 0x002000e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0133, MODEL_G5SMALLCHAIR, 0x00f3, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0133, MODEL_G5SMALLCHAIR, 0x00f4, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0133, MODEL_G5SMALLCHAIR, 0x00f5, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0133, MODEL_G5SMALLCHAIR, 0x00f6, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0133, MODEL_G5SMALLCHAIR, 0x00f7, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x4a, 1) + stdobject(0x0185, MODEL_G5BIGCHAIR, 0x00f8, 0x000004e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x4b, 1) + stdobject(0x0133, MODEL_G5SMALLCHAIR, 0x00f2, 0x000004e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x00c8, 0x000005e1, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x00c9, 0x000005e1, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x00ca, 0x000005e1, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x00cb, 0x000005e1, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x00cc, 0x000005e1, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x00cd, 0x000005e1, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x00ce, 0x000005e1, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x00cf, 0x000005e1, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000) + + tag(0x3c, 1) + weapon(0x0080, MODEL_MULTI_AMMO_CRATE, 0x0095, 0x00000101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_NBOMB, 0x00ffffff, 0x00000000) + + tag(0x3b, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x0096, 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(0x49, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x0056, 0x00000001, 0x000000c0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000) + endprops +}; + +u8 intro[] = { + intro_weapon(WEAPON_FALCON2_SILENCER, -1) + ammo(AMMOTYPE_PISTOL, 100) + ammo(AMMOTYPE_NBOMB, 6) + outfit(OUTFIT_LEATHER) + intro_weapon(WEAPON_DOORDECODER, -1) + intro_weapon(WEAPON_CAMSPY, -1) + spawn(0x0083) + endintro +}; + +s32 path00[] = { + 0x0015, + 0x0014, + 0x0019, + 0x0018, + 0x0019, + 0x0014, + -1, +}; + +s32 path01[] = { + 0x0023, + 0x0025, + 0x0020, + 0x001a, + 0x001c, + 0x001a, + 0x0020, + 0x0025, + -1, +}; + +s32 path02[] = { + 0x0037, + 0x003f, + 0x0043, + 0x0041, + 0x0040, + 0x0042, + 0x0045, + 0x0046, + 0x0045, + 0x0042, + 0x0040, + 0x0041, + 0x0043, + 0x003f, + -1, +}; + +s32 path03[] = { + 0x0027, + 0x0028, + 0x0029, + 0x002a, + 0x002d, + 0x002e, + 0x002d, + 0x002a, + 0x0029, + 0x0028, + 0x0027, + 0x0026, + -1, +}; + +u8 func0409_start_path00[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(5) + set_reaction_speed(30) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + assign_path(0) + start_path + set_function(CHR_SELF, GFUNC_UNALERTED_0004) + endfunction +}; + +u8 func040a_start_path01[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(5) + set_reaction_speed(30) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + assign_path(1) + start_path + set_function(CHR_SELF, GFUNC_UNALERTED_0004) + endfunction +}; + +u8 func040b_start_path02[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(5) + set_reaction_speed(30) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + assign_path(2) + start_path + set_function(CHR_SELF, GFUNC_UNALERTED_0004) + endfunction +}; + +u8 func040c_start_path03[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(5) + set_reaction_speed(30) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + assign_path(3) + start_path + set_function(CHR_SELF, GFUNC_UNALERTED_0004) + endfunction +}; + +u8 func1008_check_generator[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_GENERATOR, /*goto*/ 0x08) + if_object_in_good_condition(OBJ_GENERATOR, /*goto*/ 0x2c) + if_stage_flag_eq(STAGEFLAG_GENERATOR_SHUT_DOWN, TRUE, /*goto*/ 0x2c) + + // Destroyed + mute_channel(CHANNEL_4) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x06) + message(CHR_JOANNA, 0x1818) // "Mission critical object destroyed." + set_stage_flag(STAGEFLAG_GENERATOR_DESTROYED) + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2c) + reloop(0x04) + + // Generator activated + label(0x08) + if_stage_flag_eq(STAGEFLAG_GENERATOR_SHUT_DOWN2, TRUE, /*goto*/ 0x09) + set_object_image(OBJ_GENERATOR, 0x00, 0x14) + set_object_image(OBJ_GENERATOR, 0x01, 0x14) + mute_channel(CHANNEL_4) + mute_channel(CHANNEL_0) + assign_sound(0x8147, CHANNEL_0) + control_sound_from_object(CHANNEL_0, OBJ_GENERATOR, TRUE) + message(CHR_P1P2, 0x1819) // "Damping field generator shut down." + set_stage_flag(STAGEFLAG_GENERATOR_SHUT_DOWN2) + set_stage_flag(STAGEFLAG_GENERATOR_SHUT_DOWN) + reloop(0x04) + + label(0x09) + message(CHR_P1P2, 0x181a) // "Generator cannot be restarted." + endloop(0x04) + + endfunction +}; + +u8 func1003_laser_switch_1[] = { + assign_sound(0x8119, CHANNEL_0) + play_sound_from_object(CHANNEL_0, OBJ_LASER_1A, 0x012c, 0x0190) + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_LASERSWITCH1, /*goto*/ 0x08) + if_object_in_good_condition(OBJ_LASERSWITCH1, /*goto*/ 0x2c) + if_stage_flag_eq(STAGEFLAG_LASERSET1_DISABLED, TRUE, /*goto*/ 0x2c) + message(CHR_JOANNA, 0x1818) // "Mission critical object destroyed." + set_stage_flag(STAGEFLAG_LASERSWITCH1_DESTROYED) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2c) + reloop(0x04) + + // Activated/deactivated + label(0x08) + if_stage_flag_eq(STAGEFLAG_LASERSET1_DISABLED, TRUE, /*goto*/ 0x09) + + // Deactivated + set_object_image(OBJ_LASERSWITCH1, 0x00, 0x14) + message(CHR_P1P2, 0x181b) // "Laser grid unit shut down." + set_stage_flag(STAGEFLAG_LASERSET1_DISABLED) + open_door(OBJ_LASER_1A) + open_door(OBJ_LASER_1B) + open_door(OBJ_LASER_1C) + open_door(OBJ_LASER_1D) + yield + set_object_flag_bank0(OBJ_LASER_1A, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_LASER_1B, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_LASER_1C, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_LASER_1D, OBJECTFLAG0_40000000) + assign_sound(0x043f, CHANNEL_7) + play_sound_from_entity(CHANNEL_7, OBJ_LASERSWITCH1, 0x012c, 0x0190, 0x00) + mute_channel(CHANNEL_0) + assign_sound(0x01cd, CHANNEL_0) + play_sound_from_entity(CHANNEL_0, OBJ_LASER_1A, 0x012c, 0x0190, 0x00) + goto_next(0x0a) + + // Activated + label(0x09) + message(CHR_P1P2, 0x181c) // "Laser grid unit activated." + unset_stage_flag(STAGEFLAG_LASERSET1_DISABLED) + set_object_image(OBJ_LASERSWITCH1, 0x00, 0x13) + close_door(OBJ_LASER_1A) + close_door(OBJ_LASER_1B) + close_door(OBJ_LASER_1C) + close_door(OBJ_LASER_1D) + assign_sound(0x043f, CHANNEL_7) + play_sound_from_entity(CHANNEL_7, OBJ_LASERSWITCH1, 0x012c, 0x0190, 0x00) + assign_sound(0x8119, CHANNEL_0) + play_sound_from_object(CHANNEL_0, OBJ_LASER_1A, 0x012c, 0x0190) + goto_next(0x0a) + label(0x0a) + restart_timer + + beginloop(0x0b) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x0b) + + label(0x06) + endloop(0x04) + + endfunction +}; + +u8 func1004_laser_switch_2[] = { + assign_sound(0x8119, CHANNEL_1) + play_sound_from_object(CHANNEL_1, OBJ_LASER_2A, 0x012c, 0x0190) + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_LASERSWITCH2, /*goto*/ 0x08) + if_object_in_good_condition(OBJ_LASERSWITCH2, /*goto*/ 0x2c) + if_stage_flag_eq(STAGEFLAG_LASERSET2_DISABLED, TRUE, /*goto*/ 0x2c) + message(CHR_JOANNA, 0x1818) // "Mission critical object destroyed." + set_stage_flag(STAGEFLAG_LASERSWITCH2_DESTROYED) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2c) + reloop(0x04) + + // Activated/deactivated + label(0x08) + dprint 'S','W','I','T','C','H',' ','2',0, + if_stage_flag_eq(STAGEFLAG_LASERSET2_DISABLED, TRUE, /*goto*/ 0x09) + + // Deactivated + set_object_image(OBJ_LASERSWITCH2, 0x00, 0x14) + message(CHR_P1P2, 0x181b) // "Laser grid unit shut down." + set_stage_flag(STAGEFLAG_LASERSET2_DISABLED) + open_door(OBJ_LASER_2A) + open_door(OBJ_LASER_2B) + open_door(OBJ_LASER_2C) + open_door(OBJ_LASER_2D) + yield + set_object_flag_bank0(OBJ_LASER_2A, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_LASER_2B, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_LASER_2C, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_LASER_2D, OBJECTFLAG0_40000000) + assign_sound(0x043f, CHANNEL_7) + play_sound_from_entity(CHANNEL_7, OBJ_LASERSWITCH2, 0x012c, 0x0190, 0x00) + mute_channel(CHANNEL_1) + assign_sound(0x01cd, CHANNEL_1) + play_sound_from_entity(CHANNEL_1, OBJ_LASER_2A, 0x012c, 0x0190, 0x00) + goto_next(0x0a) + + // Activated + label(0x09) + set_object_image(OBJ_LASERSWITCH2, 0x00, 0x13) + message(CHR_P1P2, 0x181c) // "Laser grid unit activated." + unset_stage_flag(STAGEFLAG_LASERSET2_DISABLED) + close_door(OBJ_LASER_2A) + close_door(OBJ_LASER_2B) + close_door(OBJ_LASER_2C) + close_door(OBJ_LASER_2D) + assign_sound(0x043f, CHANNEL_7) + play_sound_from_entity(CHANNEL_7, OBJ_LASERSWITCH2, 0x012c, 0x0190, 0x00) + assign_sound(0x8119, CHANNEL_1) + play_sound_from_object(CHANNEL_1, OBJ_LASER_2A, 0x012c, 0x0190) + goto_next(0x0a) + label(0x0a) + restart_timer + + beginloop(0x0b) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x0b) + + label(0x06) + endloop(0x04) + + endfunction +}; + +u8 func1005_laser_switch_3[] = { + assign_sound(0x8119, CHANNEL_2) + play_sound_from_object(CHANNEL_2, OBJ_LASER_3A, 0x012c, 0x0190) + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_LASERSWITCH3, /*goto*/ 0x08) + if_object_in_good_condition(OBJ_LASERSWITCH3, /*goto*/ 0x2c) + if_stage_flag_eq(STAGEFLAG_LASERSET3_DISABLED, TRUE, /*goto*/ 0x2c) + message(CHR_JOANNA, 0x1818) // "Mission critical object destroyed." + set_stage_flag(STAGEFLAG_LASERSWITCH3_DESTROYED) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2c) + reloop(0x04) + + // Activated/deactivated + label(0x08) + if_stage_flag_eq(STAGEFLAG_LASERSET3_DISABLED, TRUE, /*goto*/ 0x09) + + // Deactivated + set_object_image(OBJ_LASERSWITCH3, 0x00, 0x14) + message(CHR_P1P2, 0x181b) // "Laser grid unit shut down." + set_stage_flag(STAGEFLAG_LASERSET3_DISABLED) + open_door(OBJ_LASER_3A) + open_door(OBJ_LASER_3B) + open_door(OBJ_LASER_3C) + open_door(OBJ_LASER_3D) + yield + set_object_flag_bank0(OBJ_LASER_3A, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_LASER_3B, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_LASER_3C, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_LASER_3D, OBJECTFLAG0_40000000) + assign_sound(0x043f, CHANNEL_7) + play_sound_from_entity(CHANNEL_7, OBJ_LASERSWITCH3, 0x012c, 0x0190, 0x00) + mute_channel(CHANNEL_2) + assign_sound(0x01cd, CHANNEL_2) + play_sound_from_entity(CHANNEL_2, OBJ_LASER_3A, 0x012c, 0x0190, 0x00) + goto_next(0x0a) + + // Activated + label(0x09) + set_object_image(OBJ_LASERSWITCH3, 0x00, 0x13) + message(CHR_P1P2, 0x181c) // "Laser grid unit activated." + unset_stage_flag(STAGEFLAG_LASERSET3_DISABLED) + close_door(OBJ_LASER_3A) + close_door(OBJ_LASER_3B) + close_door(OBJ_LASER_3C) + close_door(OBJ_LASER_3D) + assign_sound(0x043f, CHANNEL_7) + play_sound_from_entity(CHANNEL_7, OBJ_LASERSWITCH3, 0x012c, 0x0190, 0x00) + assign_sound(0x8119, CHANNEL_2) + play_sound_from_object(CHANNEL_2, OBJ_LASER_3A, 0x012c, 0x0190) + goto_next(0x0a) + label(0x0a) + restart_timer + + beginloop(0x0b) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x0b) + + label(0x06) + endloop(0x04) + + endfunction +}; + +u8 func1006_laser_switch_4[] = { + assign_sound(0x811a, CHANNEL_3) + play_sound_from_object(CHANNEL_3, OBJ_LASER_4A, 0x012c, 0x0190) + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_LASERSWITCH4, /*goto*/ 0x08) + if_object_in_good_condition(OBJ_LASERSWITCH4, /*goto*/ 0x2c) + if_stage_flag_eq(STAGEFLAG_LASERSET4_DISABLED, TRUE, /*goto*/ 0x2c) + message(CHR_JOANNA, 0x1818) // "Mission critical object destroyed." + set_stage_flag(STAGEFLAG_LASERSWITCH4_DESTROYED) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2c) + reloop(0x04) + + // Activated/deactivated + label(0x08) + if_stage_flag_eq(STAGEFLAG_LASERSET4_DISABLED, TRUE, /*goto*/ 0x09) + + // Deactivated + set_object_image(OBJ_LASERSWITCH4, 0x00, 0x14) + message(CHR_P1P2, 0x181b) // "Laser grid unit shut down." + set_stage_flag(STAGEFLAG_LASERSET4_DISABLED) + open_door(OBJ_LASER_4A) + open_door(OBJ_LASER_4B) + open_door(OBJ_LASER_4C) + open_door(OBJ_LASER_4D) + yield + set_object_flag_bank0(OBJ_LASER_4A, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_LASER_4B, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_LASER_4C, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_LASER_4D, OBJECTFLAG0_40000000) + assign_sound(0x043f, CHANNEL_7) + play_sound_from_entity(CHANNEL_7, OBJ_LASERSWITCH4, 0x012c, 0x0190, 0x00) + mute_channel(CHANNEL_3) + assign_sound(0x01cd, CHANNEL_3) + play_sound_from_entity(CHANNEL_3, OBJ_LASER_4A, 0x012c, 0x0190, 0x00) + goto_next(0x0a) + + // Activated + label(0x09) + set_object_image(OBJ_LASERSWITCH4, 0x00, 0x13) + message(CHR_P1P2, 0x181c) // "Laser grid unit activated." + unset_stage_flag(STAGEFLAG_LASERSET4_DISABLED) + close_door(OBJ_LASER_4A) + close_door(OBJ_LASER_4B) + close_door(OBJ_LASER_4C) + close_door(OBJ_LASER_4D) + assign_sound(0x043f, CHANNEL_7) + play_sound_from_entity(CHANNEL_7, OBJ_LASERSWITCH4, 0x012c, 0x0190, 0x00) + assign_sound(0x811a, CHANNEL_3) + play_sound_from_object(CHANNEL_3, OBJ_LASER_4A, 0x012c, 0x0190) + goto_next(0x0a) + label(0x0a) + restart_timer + + beginloop(0x0b) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x0b) + + label(0x06) + endloop(0x04) + + endfunction +}; + +u8 func1007_init_lasers[] = { + yield + + // Wait for cutscene to finish + beginloop(0x8f) + if_camera_animating(/*goto*/ 0x2c) + goto_next(0x06) + label(0x2c) + endloop(0x8f) + + label(0x06) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x0d) + + // SA/PA - bring up lasers + close_door(OBJ_LASER_1A) + close_door(OBJ_LASER_2A) + close_door(OBJ_LASER_3A) + close_door(OBJ_LASER_4A) + close_door(OBJ_LASER_1B) + close_door(OBJ_LASER_2B) + close_door(OBJ_LASER_3B) + close_door(OBJ_LASER_4B) + close_door(OBJ_LASER_1C) + close_door(OBJ_LASER_2C) + close_door(OBJ_LASER_3C) + close_door(OBJ_LASER_4C) + close_door(OBJ_LASER_1D) + close_door(OBJ_LASER_2D) + close_door(OBJ_LASER_3D) + close_door(OBJ_LASER_4D) + + // Wait until all lasers disabled, show message and set flag + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_LASERSET1_DISABLED, FALSE, /*goto*/ 0x2c) + if_stage_flag_eq(STAGEFLAG_LASERSET2_DISABLED, FALSE, /*goto*/ 0x2c) + if_stage_flag_eq(STAGEFLAG_LASERSET3_DISABLED, FALSE, /*goto*/ 0x2c) + if_stage_flag_eq(STAGEFLAG_LASERSET4_DISABLED, FALSE, /*goto*/ 0x2c) + if_stage_flag_eq(STAGEFLAG_ALL_LASERS_DISABLED, TRUE, /*goto*/ 0x2c) + message(CHR_JOANNA, 0x181d) // "All laser grid systems shut down." + set_stage_flag(STAGEFLAG_ALL_LASERS_DISABLED) + label(0x2c) + endloop(0x04) + + // Agent - take down lasers + label(0x0d) + set_object_image(OBJ_LASERSWITCH1, 0x00, 0x14) + set_object_image(OBJ_LASERSWITCH2, 0x00, 0x14) + set_object_image(OBJ_LASERSWITCH3, 0x00, 0x14) + set_object_image(OBJ_LASERSWITCH4, 0x00, 0x14) + open_door(OBJ_LASER_1A) + open_door(OBJ_LASER_2A) + open_door(OBJ_LASER_3A) + open_door(OBJ_LASER_4A) + open_door(OBJ_LASER_1B) + open_door(OBJ_LASER_2B) + open_door(OBJ_LASER_3B) + open_door(OBJ_LASER_4B) + open_door(OBJ_LASER_1C) + open_door(OBJ_LASER_2C) + open_door(OBJ_LASER_3C) + open_door(OBJ_LASER_4C) + open_door(OBJ_LASER_1D) + open_door(OBJ_LASER_2D) + open_door(OBJ_LASER_3D) + open_door(OBJ_LASER_4D) + yield + set_object_flag_bank0(OBJ_LASER_1A, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_LASER_2A, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_LASER_3A, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_LASER_4A, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_LASER_1B, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_LASER_2B, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_LASER_3B, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_LASER_4B, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_LASER_1C, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_LASER_2C, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_LASER_3C, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_LASER_4C, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_LASER_1D, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_LASER_2D, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_LASER_3D, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_LASER_4D, OBJECTFLAG0_40000000) + set_stage_flag(STAGEFLAG_LASERSET1_DISABLED) + set_stage_flag(STAGEFLAG_LASERSET2_DISABLED) + set_stage_flag(STAGEFLAG_LASERSET3_DISABLED) + set_stage_flag(STAGEFLAG_LASERSET4_DISABLED) + set_stage_flag(STAGEFLAG_ALL_LASERS_DISABLED) + label(0x0e) + yield + open_door(OBJ_LASER_1A) + open_door(OBJ_LASER_2A) + open_door(OBJ_LASER_3A) + open_door(OBJ_LASER_4A) + open_door(OBJ_LASER_1B) + open_door(OBJ_LASER_2B) + open_door(OBJ_LASER_3B) + open_door(OBJ_LASER_4B) + open_door(OBJ_LASER_1C) + open_door(OBJ_LASER_2C) + open_door(OBJ_LASER_3C) + open_door(OBJ_LASER_4C) + open_door(OBJ_LASER_1D) + open_door(OBJ_LASER_2D) + open_door(OBJ_LASER_3D) + open_door(OBJ_LASER_4D) + yield + mute_channel(CHANNEL_0) + mute_channel(CHANNEL_1) + mute_channel(CHANNEL_2) + mute_channel(CHANNEL_3) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1009_spawner_during_decode[] = { + // Wait for alarm or decoder attached + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_DECODER_ATTACHED, TRUE, /*goto*/ 0x06) + if_alarm_active(/*goto*/ 0x61) + endloop(0x04) + + // Decoder is attached + label(0x06) + yield + yield + + // Wait 8.3 seconds + restart_timer + + beginloop(0x08) + if_timer_gt(500, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + activate_alarm + + // Spawn two swat guards + label(0x61) + try_spawn_chr(BODY_G5_SWAT_GUARD, HEAD_RANDOM, 0x0058, 0x0401, 0x00000200, /*goto*/ 0x06) + label(0x06) + try_spawn_chr(BODY_G5_SWAT_GUARD, HEAD_RANDOM, 0x003f, 0x0402, 0x00000200, /*goto*/ 0x06) + label(0x06) + + // Every half second, use RNG to decide whether to consider spawning more. + // 55/255 chance of passing. + label(0x09) + restart_timer + call_rng + + beginloop(0x0a) + if_rand_gt(200, /*goto*/ 0x06) + if_timer_gt(30, /*goto*/ 0x2c) + endloop(0x0a) + + label(0x2c) + reloop(0x09) + + label(0x06) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x55) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x56) + if_num_chrs_in_group_gt(5, 0x09, /*goto*/ 0x2c) + if_kill_count_gt(50, /*goto*/ 0x2c) + goto_next(0x57) + + // Agent + label(0x55) + if_num_chrs_in_group_gt(3, 0x09, /*goto*/ 0x2c) + if_kill_count_gt(50, /*goto*/ 0x2c) + goto_next(0x57) + + // Special Agent + label(0x56) + if_num_chrs_in_group_gt(4, 0x09, /*goto*/ 0x2c) + if_kill_count_gt(50, /*goto*/ 0x2c) + goto_next(0x57) + + // All difficulties + label(0x57) + call_rng + if_rand_gt(128, /*goto*/ 0x0b) + if_stage_flag_eq(STAGEFLAG_VISITED_TOP_DOOR, TRUE, /*goto*/ 0x2c) + try_spawn_chr(BODY_G5_SWAT_GUARD, HEAD_RANDOM, 0x0058, 0x0401, 0x00000200, /*goto*/ 0x06) + label(0x06) + goto_next(0x0d) + + label(0x2c) + dprint 'S','Q','U','A','D',' ','F','U','L','L',0, + reloop(0x09) + + label(0x0b) + try_spawn_chr(BODY_G5_SWAT_GUARD, HEAD_RANDOM, 0x003f, 0x0402, 0x00000200, /*goto*/ 0x06) + label(0x06) + label(0x0d) + restart_timer + + beginloop(0x0e) + if_timer_gt(30, /*goto*/ 0x06) + endloop(0x0e) + + label(0x06) + endloop(0x09) + + endfunction +}; + +#define init_swat \ + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_00400000) \ + set_self_flag_bankx(CHRFLAG1_00080000, BANK_1) \ + set_chr_dodge_rating(2, 0x0a) \ + set_accuracy(15) \ + set_reaction_speed(25) \ + set_chr_health(CHR_SELF, 40) \ + set_armor(0) \ + set_recovery_speed(0) \ + set_shield(0) \ + try_draw_weapon(MODEL_CHRDY357, WEAPON_DY357MAGNUM, 0x10000000, /*goto*/ 0x06) \ + label(0x06) \ + set_chr_alliance(CHR_SELF, ALLIANCE_ENEMY) \ + set_group(0x09) \ + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_KILLCOUNTABLE) \ + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) \ + set_self_flag_bankx(CHRFLAG0_00008000, BANK_0) \ + set_alertness(90) \ + set_self_flag_bank3(CHRFLAG3_00000200) \ + cmd0145_rebuild_groups \ + cmd0146_rebuild_groups \ + run_to_pad(0x004e) + + + +u8 func0401_init_swat1[] = { + init_swat + + beginloop(0x08) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0x2c) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x2c) + if_chr_in_room(CHR_SELF, 0x00, 0x0050, /*goto*/ 0x06) + endloop(0x08) + + label(0x2c) + set_function(CHR_SELF, GFUNC_UNALERTED) + + label(0x06) + set_return_function(CHR_SELF, GFUNC_UNALERTED) + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +/** + * Same as above, but guards with this function will become unalerted if they + * lose sight of Jo regardless of what room they're in. + */ +u8 func0402_init_swat2[] = { + init_swat + + beginloop(0x08) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0x2c) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x2c) + if_chr_in_room(CHR_SELF, 0x00, 0x0050, /*goto*/ 0x06) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x08) + + label(0x2c) + set_function(CHR_SELF, GFUNC_UNALERTED) + + label(0x06) + set_return_function(CHR_SELF, GFUNC_UNALERTED) + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +u8 func100a_give_keycards[] = { + set_object_flag_bank0(OBJ_KEYCARD1, OBJECTFLAG0_00100000) + set_object_flag_bank1(OBJ_KEYCARD1, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank0(OBJ_KEYCARD2, OBJECTFLAG0_00100000) + set_object_flag_bank1(OBJ_KEYCARD2, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank1(OBJ_CROSSBOW, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank0(OBJ_CROSSBOW, OBJECTFLAG0_00100000) + + set_chr_flag_bank3(CHR_CLOAK_1A, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(CHR_CLOAK_1B, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(CHR_CLOAK_2A, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(CHR_CLOAK_2B, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(CHR_CLOAK_2C, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(CHR_CLOAK_2D, CHRFLAG3_KILLCOUNTABLE) + + // Wait for trigger + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_CLOAK1_ONE_REMAINING, TRUE, /*goto*/ 0x2c) + endloop(0x04) + + label(0x2c) + if_chr_dying(CHR_CLOAK_1A, /*goto*/ 0x06) + if_chr_death_animation_finished(CHR_CLOAK_1A, /*goto*/ 0x06) + if_chr_unloaded(CHR_CLOAK_1A, /*goto*/ 0x06) + + // First cloacked guard is alive + give_object_to_chr(OBJ_KEYCARD1, CHR_CLOAK_1A) + give_object_to_chr(OBJ_CROSSBOW, CHR_CLOAK_1A) + set_target_chr(CHR_CLOAK_1A) + goto_next(0x2c) + + // First cloaked guard is dead + label(0x06) + give_object_to_chr(OBJ_KEYCARD1, CHR_CLOAK_1B) + give_object_to_chr(OBJ_CROSSBOW, CHR_CLOAK_1B) + set_target_chr(CHR_CLOAK_1B) + + label(0x2c) + unset_object_flag_bank0(OBJ_KEYCARD1, OBJECTFLAG0_00100000) + unset_object_flag_bank1(OBJ_KEYCARD1, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank1(OBJ_CROSSBOW, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank0(OBJ_CROSSBOW, OBJECTFLAG0_00100000) + + // Wait for the chr who holds the keycard to die + beginloop(0x55) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0x08) + if_chr_dying(TARGET_CHR, /*goto*/ 0x2c) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0x2c) + endloop(0x55) + + label(0x2c) + set_object_flag_bank1(OBJ_CROSSBOW, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank0(OBJ_CROSSBOW, OBJECTFLAG0_00100000) + hide_object(OBJ_CROSSBOW) + + beginloop(0x08) + dprint 'C','H','E','C','K',' ','D','E','A','D',0, + if_stage_flag_eq(STAGEFLAG_CLOAK2_ONE_REMAINING, TRUE, /*goto*/ 0x2c) + endloop(0x08) + + // Second room + label(0x2c) + if_chr_dying(CHR_CLOAK_2A, /*goto*/ 0x06) + if_chr_death_animation_finished(CHR_CLOAK_2A, /*goto*/ 0x06) + if_chr_unloaded(CHR_CLOAK_2A, /*goto*/ 0x06) + + // 2A alive + give_object_to_chr(OBJ_KEYCARD2, CHR_CLOAK_2A) + dprint 'G','I','V','E',' ','T','O','4',0, + goto_next(0x2c) + + // 2A dead + label(0x06) + if_chr_dying(CHR_CLOAK_2B, /*goto*/ 0x06) + if_chr_death_animation_finished(CHR_CLOAK_2B, /*goto*/ 0x06) + if_chr_unloaded(CHR_CLOAK_2B, /*goto*/ 0x06) + give_object_to_chr(OBJ_KEYCARD2, CHR_CLOAK_2B) + dprint 'G','I','V','E',' ','T','O','5',0, + goto_next(0x2c) + + // 2B dead + label(0x06) + if_chr_dying(CHR_CLOAK_2C, /*goto*/ 0x06) + if_chr_death_animation_finished(CHR_CLOAK_2C, /*goto*/ 0x06) + if_chr_unloaded(CHR_CLOAK_2C, /*goto*/ 0x06) + give_object_to_chr(OBJ_KEYCARD2, CHR_CLOAK_2C) + dprint 'G','I','V','E',' ','T','O','6',0, + goto_next(0x2c) + + // 2C dead + label(0x06) + give_object_to_chr(OBJ_KEYCARD2, CHR_CLOAK_2D) + dprint 'G','I','V','E',' ','T','O','7',0, + + label(0x2c) + unset_object_flag_bank0(OBJ_KEYCARD2, OBJECTFLAG0_00100000) + unset_object_flag_bank1(OBJ_KEYCARD2, OBJECTFLAG1_INVISIBLE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100b_check_backup_collected[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_has_object(CHR_P1P2, OBJ_BACKUPDISK, /*goto*/ 0x2c) + endloop(0x04) + + label(0x2c) + set_stage_flag(STAGEFLAG_BACKUP_COLLECTED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1002_set_ai[] = { + set_function(CHR_SELF, GFUNC_REBUILD_GROUPS) + endfunction +}; + +u8 func1400_setup_counterop[] = { + yield + set_chr_alliance(CHR_COUNTEROP, ALLIANCE_ENEMY) + + // On counterop SA and PA, give Joanna a CMP150 + if_difficulty_lt(DIFF_SA, /*goto*/ 0x06) + give_object_to_chr(OBJ_CMP150_JOANNA, CHR_JOANNA) + give_object_to_chr(OBJ_CMP150_VELVET, CHR_VELVET) + label(0x06) + set_function(CHR_SELF, GFUNC_REBUILD_GROUPS) + endfunction +}; + +u8 func100e_check_conspirators_alerted[] = { + // Wait for alarm + beginloop(0x04) + if_alarm_active(/*goto*/ 0x06) + reloop(0x04) + + // These objects are doors + label(0x06) + unset_object_flag_bank1(0x3f, OBJECTFLAG1_20000000) + unset_object_flag_bank1(0x40, OBJECTFLAG1_20000000) + unset_object_flag_bank1(0x41, OBJECTFLAG1_20000000) + unset_object_flag_bank1(0x42, OBJECTFLAG1_20000000) + unset_object_flag_bank1(0x43, OBJECTFLAG1_20000000) + unset_object_flag_bank1(0x44, OBJECTFLAG1_20000000) + unset_object_flag_bank1(0x45, OBJECTFLAG1_20000000) + unset_object_flag_bank1(0x46, OBJECTFLAG1_20000000) + unset_object_flag_bank1(0x34, OBJECTFLAG1_20000000) + unset_object_flag_bank1(0x35, OBJECTFLAG1_20000000) + unset_object_flag_bank1(0x36, OBJECTFLAG1_20000000) + unset_object_flag_bank1(0x37, OBJECTFLAG1_20000000) + + set_stage_flag(STAGEFLAG_ALARM_SOUNDING) + if_stage_flag_eq(STAGEFLAG_MEETING_STARTED, TRUE, /*goto*/ 0x06) + set_stage_flag(STAGEFLAG_CONSPIRATORS_ALERTED) + set_function(CHR_CASS, FUNC_RUN_FROM_MEETING) + set_function(0x1c, FUNC_RUN_FROM_MEETING) // chr doesn't exist + set_function(CHR_BLONDE, FUNC_RUN_FROM_MEETING) + message(CHR_JOANNA, 0x1829) // "Conspirators have been alerted." + + // Wait until alarm not active + label(0x06) + + beginloop(0x55) + if_alarm_active(/*goto*/ 0x2c) + goto_next(0x06) + label(0x2c) + endloop(0x55) + + label(0x06) + unset_stage_flag(STAGEFLAG_ALARM_SOUNDING) + endloop(0x04) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100f_alarm_switches[] = { + // Wait until player activated alarm switch + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_ALARM1, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, OBJ_ALARM2, /*goto*/ 0x2c) + reloop(0x04) + + label(0x2c) + if_stage_flag_eq(STAGEFLAG_ALARM_SOUNDING, TRUE, /*goto*/ 0x06) + message(CHR_P1P2, 0x182a) // "Alarm activated." + set_stage_flag(STAGEFLAG_ALARM_SOUNDING) + activate_alarm + reloop(0x04) + + label(0x06) + message(CHR_P1P2, 0x182b) // "Alarm deactivated." + unset_stage_flag(STAGEFLAG_ALARM_SOUNDING) + deactivate_alarm + endloop(0x04) + + endfunction +}; + +u8 func1010_safe_cracking[] = { + // Wait for player to activate keypad or for it to be destroyed + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_object_in_good_condition(OBJ_SAFEKEYPAD, /*goto*/ 0x2c) + message(CHR_JOANNA, 0x1840) // "Mission critical object destroyed." + set_stage_flag(STAGEFLAG_SAFEKEYPAD_DESTROYED) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2c) + if_chr_activated_object(CHR_P1P2, OBJ_SAFEKEYPAD, /*goto*/ 0x2c) + reloop(0x04) + + label(0x2c) + if_chr_weapon_equipped(CHR_P1P2, WEAPON_DOORDECODER, /*goto*/ 0x2c) + message(CHR_P1P2, 0x182c) // "Safe door is locked." + endloop(0x04) + + label(0x2c) + message(CHR_P1P2, 0x182d) // "Door Decoder attached." + remove_weapon_from_inventory(WEAPON_DOORDECODER) + move_object_to_pad(OBJ_DECODER, 0x0075) + set_stage_flag(STAGEFLAG_DECODER_ATTACHED) + assign_sound(0x8144, CHANNEL_1) + play_sound_from_object(CHANNEL_1, OBJ_SAFEKEYPAD, 0x012c, 0x0190) + restart_timer + + beginloop(0x09) + if_timer_gt(180, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + speak(CHR_JOANNA, 0x1826, 0x7754, CHANNEL_5, COLOR_00_GREEN) // "INTRUDER ALERT - all security to the vault." + play_x_music(CHANNEL_10, 180) + yield + set_countdown_timer(60) + message(CHR_P1P2, 0x1824) // "Initiating cracking routines." + yield + show_countdown_timer + start_countdown_timer + restart_timer + + beginloop(0x5e) + if_timer_gt(180, /*goto*/ 0x2c) + endloop(0x5e) + + label(0x2c) + activate_alarm + + beginloop(0x08) + if_object_in_good_condition(OBJ_SAFEKEYPAD, /*goto*/ 0x2c) + message(CHR_JOANNA, 0x1840) // "Mission critical object destroyed." + set_stage_flag(STAGEFLAG_SAFEKEYPAD_DESTROYED) + hide_countdown_timer + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2c) + if_countdown_timer_lt(1, /*goto*/ 0x06) + endloop(0x08) + + // Unlock + label(0x06) + mute_channel(CHANNEL_1) + assign_sound(0x8145, CHANNEL_1) + control_sound_from_object(CHANNEL_1, OBJ_SAFEKEYPAD, TRUE) + message(CHR_P1P2, 0x1825) // "Door Decoder finished - door unlocked." + unlock_door(OBJ_SAFEDOOR, 0x40) + unset_object_flag_bank1(OBJ_SAFEDOOR, OBJECTFLAG1_20000000) + open_door(OBJ_SAFEDOOR) + hide_countdown_timer + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1012_check_for_end[] = { + // Wait until player on ending catwalk + beginloop(0x08) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0060, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0061, /*goto*/ 0x06) + reloop(0x08) + + label(0x06) + if_chr_death_animation_finished(CHR_P1P2, /*goto*/ 0x2c) + if_chr_dying(CHR_P1P2, /*goto*/ 0x2c) + if_chr_unloaded(CHR_P1P2, /*goto*/ 0x2c) + goto_next(0x06) + label(0x2c) + endloop(0x08) + + label(0x06) + set_stage_flag(STAGEFLAG_EXITED_BUILDING) + dprint 'I','N',' ','T','H','E',' ','E','L','E','V','A','T','O','R','\n',0, + set_invincible(CHR_JOANNA) + yield + yield + revoke_control(CHR_JOANNA, 4) + hide_countdown_timer + stop_countdown_timer + if_all_objectives_complete(/*goto*/ 0x53) + message(CHR_JOANNA, 0x1833) // "Objectives incomplete - MISSION FAILED." + label(0x2c) + restart_timer + + beginloop(0x52) + if_timer_gt(280, /*goto*/ 0x2c) + endloop(0x52) + + label(0x2c) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + + // Objectives complete + label(0x53) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x2c) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x2c) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x2c) + goto_next(0x06) + + label(0x2c) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x2c) + if_chr_dying(CHR_VELVET, /*goto*/ 0x2c) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x2c) + goto_next(0x06) + + label(0x2c) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + + // Mission complete + label(0x06) + set_function(CHR_SELF, FUNC_OUTRO) + endfunction +}; + +u8 func1013_check_escape_doors[] = { + beginloop(0x04) + if_object_in_good_condition(OBJ_ESCAPEDOOR1, /*goto*/ 0x06) + goto_next(0x2c) + label(0x06) + if_object_in_good_condition(OBJ_ESCAPEDOOR2, /*goto*/ 0x06) + label(0x2c) + dprint 'S','T','A','R','T',' ','A','L','A','R','M','\n',0, + activate_alarm + set_function(CHR_SELF, GFUNC_IDLE) + reloop(0x04) + + label(0x06) + endloop(0x04) + + endfunction +}; + +u8 func1014_check_camspy_location[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(0x00, /*camspy*/ 0x02, 0x0094, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + if_stage_flag_eq(STAGEFLAG_CONSPIRATORS_ALERTED, TRUE, /*goto*/ 0x2c) + set_stage_flag(STAGEFLAG_MEETING_HOLOGRAPHED) + + label(0x2c) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100c_check_for_meeting_trigger[] = { + // Wait until meeting started then start cutscene + beginloop(0x00) + if_stage_flag_eq(STAGEFLAG_MEETING_HOLOGRAPHED, TRUE, /*goto*/ 0x06) + endloop(0x00) + + label(0x06) + dprint 's','h','o','t',' ','1',0, + set_function(CHR_SELF, FUNC_MEETING_CUTSCENE) + endfunction +}; + +u8 func0403_walk_from_meeting[] = { + walk_to_pad(0x0085) + + beginloop(0x04) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x04) + + label(0x06) + remove_chr(CHR_SELF) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0404_run_from_meeting[] = { + run_to_pad(0x0085) + + beginloop(0x04) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x04) + + label(0x06) + remove_chr(CHR_SELF) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1001_objectives_failed_msg[] = { + yield + set_function(CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG) + endfunction +}; + +/** + * Monitor the laser states and unset the stage flags when they become enabled + * (ie. door is closed). This seems redundant because the flags are unset when + * the switches are used. Maybe they close after a long timeout or something. + */ +u8 func1017_check_lasers_closed[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_ALL_LASERS_DISABLED, TRUE, /*goto*/ 0x08) + if_stage_flag_eq(STAGEFLAG_MEETING_HOLOGRAPHED, TRUE, /*goto*/ 0x08) + if_door_state(OBJ_LASER_1A, (DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING), /*goto*/ 0x2c) + unset_stage_flag(STAGEFLAG_LASERSET1_DISABLED) + label(0x2c) + if_door_state(OBJ_LASER_2A, (DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING), /*goto*/ 0x2c) + unset_stage_flag(STAGEFLAG_LASERSET2_DISABLED) + label(0x2c) + if_door_state(OBJ_LASER_3A, (DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING), /*goto*/ 0x2c) + unset_stage_flag(STAGEFLAG_LASERSET3_DISABLED) + label(0x2c) + if_door_state(OBJ_LASER_4A, (DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING), /*goto*/ 0x2c) + unset_stage_flag(STAGEFLAG_LASERSET4_DISABLED) + label(0x2c) + endloop(0x04) + + label(0x08) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040d_intro[] = { + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_music_track(MUSIC_G5_INTRO) + camera_movement(0x0165) + cmd0175(60) + + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x0166, -1, -1, 0x0600, CHR_JOANNA, 4) + + set_chr_flag_bank3(CHR_INTRO_VICTIM, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_INTRO_VICTIM, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_INTRO_VICTIM, CHRFLAG2_00020000) + animation(0x0167, -1, -1, 0x0600, CHR_INTRO_VICTIM, 4) + + restart_timer + set_cutscene_weapon(CHR_JOANNA, WEAPON_FALCON2_SILENCER, WEAPON_NONE) + fade_to_color(0x000000ff, 0) + fade_to_color(0x00000000, 110) + + beginloop(0x55) + if_controller_button_pressed(/*goto*/ 0x54) + if_timer_gt(74, /*goto*/ 0x06) + endloop(0x55) + + label(0x06) + play_sound(0x0161, CHANNEL_7) + + beginloop(0x56) + if_controller_button_pressed(/*goto*/ 0x54) + if_timer_gt(100, /*goto*/ 0x06) + endloop(0x56) + + label(0x06) + play_sound(0x0085, CHANNEL_7) + + beginloop(0x57) + if_controller_button_pressed(/*goto*/ 0x54) + if_timer_gt(172, /*goto*/ 0x06) + endloop(0x57) + + label(0x06) + play_sound(0x0163, CHANNEL_7) + + beginloop(0x58) + if_controller_button_pressed(/*goto*/ 0x54) + if_timer_gt(173, /*goto*/ 0x06) + endloop(0x58) + + label(0x06) + play_sound(0x0164, CHANNEL_6) + + beginloop(0x59) + if_controller_button_pressed(/*goto*/ 0x54) + if_timer_gt(278, /*goto*/ 0x06) + endloop(0x59) + + label(0x06) + play_sound(0x0161, CHANNEL_7) + + beginloop(0x5a) + if_controller_button_pressed(/*goto*/ 0x54) + if_timer_gt(312, /*goto*/ 0x06) + endloop(0x5a) + + label(0x06) + play_sound(0x0162, CHANNEL_7) + + beginloop(0x5b) + if_controller_button_pressed(/*goto*/ 0x54) + if_timer_gt(356, /*goto*/ 0x06) + endloop(0x5b) + + label(0x06) + play_sound(0x0163, CHANNEL_7) + + beginloop(0x5c) + if_controller_button_pressed(/*goto*/ 0x54) + if_timer_gt(396, /*goto*/ 0x06) + endloop(0x5c) + + label(0x06) + play_sound(0x0164, CHANNEL_7) + + beginloop(0x5d) + if_controller_button_pressed(/*goto*/ 0x54) + if_timer_gt(434, /*goto*/ 0x06) + endloop(0x5d) + + label(0x06) + play_sound(0x0161, CHANNEL_7) + + beginloop(0x5e) + if_controller_button_pressed(/*goto*/ 0x54) + if_timer_gt(478, /*goto*/ 0x06) + endloop(0x5e) + + label(0x06) + play_sound(0x0162, CHANNEL_7) + + beginloop(0x60) + if_controller_button_pressed(/*goto*/ 0x54) + if_timer_gt(515, /*goto*/ 0x06) + endloop(0x60) + + label(0x06) + play_sound(0x0163, CHANNEL_7) + + beginloop(0x61) + if_controller_button_pressed(/*goto*/ 0x54) + if_timer_gt(560, /*goto*/ 0x06) + endloop(0x61) + + label(0x06) + play_sound(0x0164, CHANNEL_7) + + beginloop(0x65) + if_controller_button_pressed(/*goto*/ 0x54) + if_timer_gt(568, /*goto*/ 0x06) + endloop(0x65) + + label(0x06) + play_sound(0x0162, CHANNEL_6) + + beginloop(0x62) + if_controller_button_pressed(/*goto*/ 0x54) + if_timer_gt(595, /*goto*/ 0x06) + endloop(0x62) + + label(0x06) + play_sound(0x0161, CHANNEL_7) + + beginloop(0x63) + if_controller_button_pressed(/*goto*/ 0x54) + if_timer_gt(630, /*goto*/ 0x06) + endloop(0x63) + + label(0x06) + play_sound(0x0162, CHANNEL_7) + + beginloop(0x66) + if_controller_button_pressed(/*goto*/ 0x54) + if_timer_gt(638, /*goto*/ 0x06) + endloop(0x66) + + label(0x06) + play_sound(0x0163, CHANNEL_6) + + beginloop(0x68) + if_controller_button_pressed(/*goto*/ 0x54) + if_timer_gt(670, /*goto*/ 0x06) + endloop(0x68) + + label(0x06) + play_sound(0x002e, CHANNEL_7) + + beginloop(0x67) + if_controller_button_pressed(/*goto*/ 0x54) + if_timer_gt(670, /*goto*/ 0x06) + endloop(0x67) + + label(0x06) + play_sound(0x0045, CHANNEL_6) + chr_drop_weapon(CHR_INTRO_VICTIM) + + beginloop(0x69) + if_controller_button_pressed(/*goto*/ 0x54) + if_timer_gt(672, /*goto*/ 0x06) + endloop(0x69) + + label(0x06) + play_sound(0x0087, CHANNEL_5) + + beginloop(0x64) + if_controller_button_pressed(/*goto*/ 0x54) + if_timer_gt(702, /*goto*/ 0x06) + endloop(0x64) + + label(0x06) + play_sound(0x0164, CHANNEL_6) + + beginloop(0x6a) + if_controller_button_pressed(/*goto*/ 0x54) + if_timer_gt(718, /*goto*/ 0x06) + endloop(0x6a) + + label(0x06) + play_sound(0x007a, CHANNEL_7) + + beginloop(0x6b) + if_controller_button_pressed(/*goto*/ 0x54) + if_timer_gt(722, /*goto*/ 0x06) + endloop(0x6b) + + label(0x06) + play_sound(0x007c, CHANNEL_6) + + beginloop(0x6c) + if_controller_button_pressed(/*goto*/ 0x54) + if_timer_gt(764, /*goto*/ 0x06) + endloop(0x6c) + + label(0x06) + play_sound(0x0082, CHANNEL_5) + + beginloop(0x08) + if_camera_animating(/*goto*/ 0x2c) + goto_next(0x54) + label(0x2c) + if_controller_button_pressed(/*goto*/ 0x54) + label(0x2c) + endloop(0x08) + + label(0x54) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x0166, -2, -1, 0x0600, CHR_JOANNA, 2) + + unset_chr_flag_bank3(CHR_INTRO_VICTIM, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_INTRO_VICTIM, CHRFLAG2_00020000) + set_chr_flag_bank3(CHR_INTRO_VICTIM, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_INTRO_VICTIM, CHRFLAG3_00010000) + animation(0x0167, -2, -1, 0x0600, CHR_INTRO_VICTIM, 2) + + restart_default_music + reset_ambience + enter_firstperson + animation(0x022a, -1, -1, 0x0600, CHR_INTRO_VICTIM, 2) + chr_drop_weapon(CHR_INTRO_VICTIM) + yield + set_function(CHR_CLOAK_1A, FUNC_INIT_CLOAK1_GUARD) + set_function(CHR_CLOAK_1B, FUNC_INIT_CLOAK1_GUARD) + yield + kill(CHR_INTRO_VICTIM) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +// Used in both mid and outro cutscenes +#define wait_until(time, loopid) \ + beginloop(loopid) \ + if_controller_button_pressed(/*goto*/ 0x54) \ + if_timer_gt(time, /*goto*/ 0x06) \ + endloop(loopid) \ + \ + label(0x06) + + + +u8 func040e_meeting_cutscene[] = { + deactivate_alarm + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_music_track(MUSIC_G5_MIDCUTSCENE) + camera_movement(0x0191) + set_stage_flag(STAGEFLAG_MEETING_STARTED) + set_function(CHR_BLONDE, GFUNC_IDLE) + set_function(CHR_CASS, GFUNC_IDLE) + set_function(CHR_TRENT, GFUNC_IDLE) + set_function(CHR_STRIPES, GFUNC_IDLE) + + set_chr_flag_bank3(CHR_BLONDE, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_BLONDE, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_BLONDE, CHRFLAG2_00020000) + animation(0x0192, -1, -1, 0x0600, CHR_BLONDE, 4) + + set_chr_flag_bank3(CHR_CASS, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_CASS, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_CASS, CHRFLAG2_00020000) + animation(0x0193, -1, -1, 0x0600, CHR_CASS, 4) + + set_chr_flag_bank3(CHR_TRENT, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_TRENT, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_TRENT, CHRFLAG2_00020000) + animation(0x0194, -1, -1, 0x0600, CHR_TRENT, 4) + + set_chr_flag_bank3(CHR_STRIPES, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_STRIPES, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_STRIPES, CHRFLAG2_00020000) + animation(0x0195, -1, -1, 0x0600, CHR_STRIPES, 4) + restart_timer + + beginloop(0x55) + if_timer_gt(240, /*goto*/ 0x06) + endloop(0x55) + + label(0x06) + speak(CHR_JOANNA, 0x1848, 0x740c, CHANNEL_5, COLOR_04_ORANGE) // "We've recovered the sapient from Carrington and al..." + + wait_until(752, 0x56) + play_sound(0x0161, CHANNEL_6) + + wait_until(760, 0x57) + speak(CHR_JOANNA, 0x1849, 0x740d, CHANNEL_7, COLOR_03_RED) // "This will reduce its efficiency. My team will have..." + + wait_until(813, 0x58) + play_sound(0x0162, CHANNEL_6) + + wait_until(864, 0x59) + play_sound(0x0163, CHANNEL_5) + + wait_until(1183, 0x5a) + play_sound(0x0164, CHANNEL_6) + + wait_until(1466, 0x5b) + play_sound(0x0161, CHANNEL_6) + + // Someone screwed up the labelling here... + // 5c was probably supposed to go here. + yield + if_controller_button_pressed(/*goto*/ 0x54) + if_timer_gt(1594, /*goto*/ 0x06) + goto_first(0x5c) + label(0x06) + play_sound(0x0162, CHANNEL_6) + + wait_until(1638, 0x5c) + play_sound(0x0593, CHANNEL_6) + + wait_until(1684, 0x5d) + speak(CHR_JOANNA, 0x184a, 0x740e, CHANNEL_5, COLOR_04_ORANGE) // "No one could have predicted that! And I resent bei..." + + wait_until(1780, 0x5e) + play_sound_from_object2(CHANNEL_6, 0x3a, 0x01d5, 0x00, 0x00) + + wait_until(2050, 0x60) + play_sound_from_object2(CHANNEL_7, 0x3a, 0x00ec, 0x00, 0x00) + + wait_until(2070, 0x5f) + open_door(0x3a) + play_sound_from_object2(0x0a, 0x3a, 0x81b0, 0x00, 0x00) + + wait_until(2195, 0x61) + play_sound(0x0171, CHANNEL_6) + + wait_until(2227, 0x62) + play_sound(0x0172, CHANNEL_5) + + wait_until(2272, 0x63) + play_sound(0x0173, CHANNEL_7) + + wait_until(2291, 0x64) + play_sound(0x0161, CHANNEL_7) + + wait_until(2316, 0x65) + speak(CHR_JOANNA, 0x184b, 0x740f, CHANNEL_7, COLOR_03_RED) // "The President turned down your request for the loa..." + + wait_until(2342, 0x67) + play_sound(0x0162, CHANNEL_6) + close_door(0x3a) + + wait_until(2387, 0x68) + play_sound(0x0163, CHANNEL_5) + + wait_until(2406, 0x69) + play_sound(0x0163, CHANNEL_6) + + wait_until(2521, 0x6a) + play_sound(0x0161, CHANNEL_5) + + wait_until(2547, 0x6b) + play_sound(0x0162, CHANNEL_6) + + wait_until(2584, 0x6c) + play_sound(0x0163, CHANNEL_7) + + wait_until(2586, 0x6d) + play_sound(0x0164, CHANNEL_5) + + wait_until(2617, 0x6e) + play_sound(0x0164, CHANNEL_5) + + wait_until(2662, 0x70) + play_sound(0x0162, CHANNEL_6) + + wait_until(2668, 0x71) + play_sound(0x0161, CHANNEL_5) + + wait_until(2692, 0x6f) + speak(CHR_JOANNA, 0x184c, 0x7410, CHANNEL_7, COLOR_03_RED) // "Could it be you overestimated your influence over ..." + + wait_until(2705, 0x72) + play_sound(0x0161, CHANNEL_6) + + wait_until(2713, 0x73) + play_sound(0x0162, CHANNEL_5) + + wait_until(2796, 0x74) + play_sound(0x0161, CHANNEL_6) + + wait_until(2937, 0x75) + play_sound(0x0164, CHANNEL_6) + + wait_until(2971, 0x76) + play_sound(0x0162, CHANNEL_6) + + wait_until(3000, 0x77) + play_sound(0x0162, CHANNEL_6) + + wait_until(3046, 0x78) + play_sound(0x0163, CHANNEL_5) + + wait_until(3048, 0x79) + speak(CHR_JOANNA, 0x184d, 0x7411, CHANNEL_7, COLOR_05_GREEN) // "No! Perhaps I underestimated his resolve. We have ..." + + wait_until(3186, 0x7a) + play_sound(0x0164, CHANNEL_6) + + wait_until(3378, 0x7b) + play_sound(0x0162, CHANNEL_6) + + wait_until(3429, 0x7c) + play_sound(0x0161, CHANNEL_6) + + wait_until(3481, 0x7d) + play_sound(0x0162, CHANNEL_6) + + wait_until(3557, 0x7e) + play_sound(0x0164, CHANNEL_6) + + wait_until(3628, 0x7f) + play_sound(0x0163, CHANNEL_6) + + wait_until(3813, 0x80) + play_sound(0x0161, CHANNEL_6) + + wait_until(3916, 0x81) + play_sound(0x0162, CHANNEL_6) + + wait_until(4070, 0x82) + speak(CHR_JOANNA, 0x184e, 0x7412, CHANNEL_7, COLOR_04_ORANGE) // "Ha! Assuming you don't get any interference. If Ca..." + + wait_until(4312, 0x84) + play_sound(0x0163, CHANNEL_6) + + wait_until(4370, 0x85) + play_sound(0x0164, CHANNEL_5) + + wait_until(4440, 0x86) + play_sound(0x0161, CHANNEL_6) + + wait_until(4510, 0x87) + play_sound(0x0162, CHANNEL_6) + + wait_until(4555, 0x88) + play_sound(0x0161, CHANNEL_7) + + wait_until(4560, 0x83) + speak(CHR_JOANNA, 0x184f, 0x7413, CHANNEL_5, COLOR_05_GREEN) // "There will be no outside help for Mr. Carrington. ..." + + wait_until(4636, 0x89) + play_sound(0x0163, CHANNEL_7) + + wait_until(5017, 0x8a) + play_sound(0x0164, CHANNEL_7) + + wait_until(5272, 0x8b) + speak(CHR_JOANNA, 0x1850, 0x7414, CHANNEL_5, COLOR_03_RED) // "Then the devices we gave you are working correctly..." + + wait_until(5360, 0x8c) + play_sound(0x0163, CHANNEL_6) + + wait_until(5509, 0x8d) + play_sound(0x0164, CHANNEL_6) + + wait_until(5897, 0x8e) + play_sound(0x0161, CHANNEL_6) + + beginloop(0x08) + if_camera_animating(/*goto*/ 0x2c) + goto_next(0x54) + label(0x2c) + label(0x2c) + endloop(0x08) + + label(0x54) + label(0x06) + restart_default_music + reset_ambience + enter_firstperson + set_stage_flag(STAGEFLAG_MEETING_FINISHED) + mute_channel(CHANNEL_10) + mute_channel(CHANNEL_7) + mute_channel(CHANNEL_6) + mute_channel(CHANNEL_5) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + restart_timer + label(0x06) + set_function(CHR_CASS, FUNC_WALK_FROM_MEETING) + + beginloop(0x0e) + if_timer_gt(140, /*goto*/ 0x06) + endloop(0x0e) + + label(0x06) + set_function(CHR_TRENT, FUNC_WALK_FROM_MEETING) + + beginloop(0x0f) + if_timer_gt(300, /*goto*/ 0x06) + endloop(0x0f) + + label(0x06) + chr_move_to_pad(0x1e, 0x003c, 0x01, /*goto*/ 0x2c) // invalid chr? + label(0x2c) + set_function(CHR_BLONDE, FUNC_WALK_FROM_MEETING) + set_function(CHR_STRIPES, FUNC_WALK_FROM_MEETING) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040f_outro_from_menu[] = { + hide_object(OBJ_MINE1) + hide_object(OBJ_MINE2) + set_function(CHR_SELF, FUNC_OUTRO) + endfunction +}; + +u8 func040f_outro[] = { + camera_movement(0x0196) + set_music_track(MUSIC_G5_OUTRO) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0xf1, CHRFLAG3_HIDDEN) + set_function(CHR_P1P2, GFUNC_IDLE) + set_chr_flag_bank3(CHR_P1P2, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_P1P2, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_P1P2, CHRFLAG2_00020000) + animation(0x0197, -1, -1, 0x0600, CHR_P1P2, 4) + set_chr_hud_visible(CHR_P1P2, TRUE) + restart_timer + deactivate_alarm + show_nonessential_chrs(FALSE) + set_cutscene_weapon(CHR_P1P2, -1, -1) + yield + set_cutscene_weapon(CHR_P1P2, -1, 0x03) + + wait_until(20, 0x55) + play_sound(0x0171, CHANNEL_6) + + wait_until(38, 0x57) + play_sound(0x0173, CHANNEL_7) + + wait_until(69, 0x58) + play_sound(0x0174, CHANNEL_6) + + wait_until(88, 0x5a) + play_sound(0x0172, CHANNEL_6) + + wait_until(103, 0x5b) + play_sound(0x0173, CHANNEL_7) + + wait_until(134, 0x5c) + play_sound(0x0174, CHANNEL_6) + + wait_until(142, 0x5e) + + wait_until(162, 0x60) + play_sound(0x0173, CHANNEL_7) + + wait_until(185, 0x61) + play_sound(0x0174, CHANNEL_6) + + wait_until(204, 0x62) + play_sound(0x0171, CHANNEL_7) + + wait_until(220, 0x63) + play_sound(0x0172, CHANNEL_6) + + wait_until(256, 0x64) + play_sound(0x0173, CHANNEL_7) + + wait_until(262, 0x65) + play_sound(0x0174, CHANNEL_6) + + enable_rain(2) + wait_until(273, 0x68) + play_sound(0x0172, CHANNEL_7) + + wait_until(318, 0x6a) + play_sound(0x0174, CHANNEL_6) + + wait_until(344, 0x6b) + play_sound(0x0171, CHANNEL_7) + + wait_until(362, 0x6c) + play_sound(0x0172, CHANNEL_6) + + wait_until(390, 0x6d) + play_sound(0x0163, CHANNEL_7) + + wait_until(404, 0x6e) + play_sound(0x0161, CHANNEL_6) + + wait_until(420, 0x70) + play_sound(0x0162, CHANNEL_6) + + wait_until(468, 0x71) + play_sound(0x0163, CHANNEL_7) + + wait_until(488, 0x72) + play_sound(0x0164, CHANNEL_6) + + wait_until(679, 0x74) + play_sound(0x0161, CHANNEL_6) + + wait_until(728, 0x56) + + wait_until(768, 0x73) + speak(CHR_P1P2, 0x1851, 0x7415, CHANNEL_7, COLOR_09_BLUE) // "Agent Dark reporting in! Prepare to receive a down..." + + wait_until(1280, 0x59) + + wait_until(1310, 0x75) + speak(CHR_P1P2, 0x1852, 0x7416, CHANNEL_7, COLOR_06_WHITE) // "No time for that now, Agent Dark. There's been a d..." + + wait_until(1780, 0x76) + play_sound(0x0162, CHANNEL_6) + + wait_until(1841, 0x77) + play_sound(0x0163, CHANNEL_6) + + wait_until(1883, 0x78) + play_sound(0x0164, CHANNEL_6) + + wait_until(2600, 0x5d) + + wait_until(2630, 0x79) + speak(CHR_P1P2, 0x1853, 0x7417, CHANNEL_7, COLOR_09_BLUE) // "Area 51? But what about the President?" + + beginloop(0x08) + if_camera_animating(/*goto*/ 0x2c) + goto_next(0x54) + label(0x2c) + if_controller_button_pressed(/*goto*/ 0x54) + label(0x2c) + endloop(0x08) + + label(0x54) + label(0x06) + set_chr_hud_visible(CHR_P1P2, FALSE) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1018_intro_from_menu[] = { + set_return_function(CHR_SELF, GFUNC_END_CINEMA) + set_function(CHR_SELF, FUNC_INTRO) + endfunction +}; + +u8 func1019_generator_hum[] = { + yield + assign_sound(0x8146, CHANNEL_4) + play_sound_from_object(CHANNEL_4, OBJ_GENERATOR, 0x0640, 0x0898) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Not entirely sure what this does. It's probably the guards in the laser + * switch area, and it probably controls which ones will run for the alarm. + */ +u8 func101a_init_laser_switch_guards[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x08) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x09) + + // Perfect Agent + set_chr_flag_bankx(0x0c, CHRFLAG0_CAN_RUN_FOR_ALARM, BANK_0) + set_chr_flag_bankx(0x0d, CHRFLAG0_CAN_RUN_FOR_ALARM, BANK_0) + set_chr_flag_bankx(0x0e, CHRFLAG0_CAN_RUN_FOR_ALARM, BANK_0) + goto_next(0x06) + + // Agent + label(0x08) + set_chr_flag_bankx(0x0e, CHRFLAG0_CAN_RUN_FOR_ALARM, BANK_0) + set_chr_flag_bankx(0x0e, CHRFLAG0_UNSURPRISABLE, BANK_0) + goto_next(0x06) + + // Special Agent + label(0x09) + set_chr_flag_bankx(0x0e, CHRFLAG0_CAN_RUN_FOR_ALARM, BANK_0) + set_chr_flag_bankx(0x0d, CHRFLAG0_CAN_RUN_FOR_ALARM, BANK_0) + + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0412_cloak_guard[] = { + set_var_a(0) + set_onshot_function(FUNC_CLOAK_GUARD) + set_chr_cloaked(CHR_SELF, TRUE, FALSE) + 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(0x03) + + // Dead + label(0x06) + goto_next(0x10) + + // Choose target + label(0x03) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + label(0x06) + restart_timer + cmd0139(70, 0x02, TRUE) + + // Wait 3 seconds or until stopped + beginloop(0x55) + if_timer_gt(180, /*goto*/ 0x06) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x55) + + // 50% chance of attacking immediately, 50% at 2 seconds + label(0x06) + stop_chr + call_rng + if_rand_gt(128, /*goto*/ 0x06) + restart_timer + + beginloop(0x0e) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x0e) + + // Attacking + label(0x06) + if_var_a_lt(3, /*goto*/ 0x2c) + goto_next(0x06) + + label(0x2c) + if_player_looking_at_something_maybe(0x0f, 0x01, 0x00, /*goto*/ 0x0e) + label(0x06) + if_in_disarm_range(/*goto*/ 0x2c) + goto_next(0x0d) + label(0x0e) + add_var_a(1) + label(0x2c) + restart_timer + set_chr_cloaked(CHR_SELF, FALSE, TRUE) + label(0x0a) + label(0x2c) + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x2c) + label(0x2c) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x0b) + + beginloop(0x0b) + if_chr_stopped(/*goto*/ 0x0c) + endloop(0x0b) + + label(0x0c) + set_var_a(0) + set_chr_cloaked(CHR_SELF, TRUE, TRUE) + label(0x0d) + goto_first(0x03) + + label(0x10) + if_chr_flag_bank2(CHR_SELF, CHRFLAG2_CLOAKED, /*goto*/ 0x2c) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2c) + set_chr_cloaked(CHR_SELF, FALSE, TRUE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0413_cloak1_guard[] = { + yield + set_onshot_function(FUNC_CLOAK_GUARD) + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + label(0x06) + set_reaction_speed(100) + set_onshot_function(FUNC_CLOAK_GUARD) + restart_timer + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_distance_lt(400, /*goto*/ 0x06) + if_distance_to_target_chr_lt(30, /*goto*/ 0x06) + if_chr_in_view(/*goto*/ 0x06) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2c) + if_timer_gt(180, /*goto*/ 0x06) + label(0x2c) + endloop(0x04) + + label(0x06) + unset_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_00040000) + set_chr_cloaked(CHR_SELF, TRUE, TRUE) + set_function(CHR_SELF, FUNC_CLOAK_GUARD) + endfunction +}; + +u8 func0414_init_cloak2_guard[] = { + stop_chr + set_onshot_function(FUNC_CLOAK_GUARD) + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_dodge_rating(2, 0x0a) + set_accuracy(5) + set_reaction_speed(25) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + unset_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_00040000) + set_chr_cloaked(CHR_SELF, TRUE, TRUE) + set_function(CHR_SELF, FUNC_CLOAK_GUARD) + endfunction +}; + +u8 func101b_cloak2_entry[] = { + // Wait until in glass area of second cloak room + beginloop(0x08) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x001a, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + lock_door(0x34, 0x10) + lock_door(0x35, 0x10) + lock_door(0x36, 0x10) + lock_door(0x37, 0x10) + set_object_flag_bank1(0x34, OBJECTFLAG1_10000000) + set_object_flag_bank1(0x35, OBJECTFLAG1_10000000) + set_object_flag_bank1(0x36, OBJECTFLAG1_08000000) + set_object_flag_bank1(0x37, OBJECTFLAG1_10000000) + close_door(0x34) + close_door(0x35) + close_door(0x36) + close_door(0x37) + if_stage_flag_eq(STAGEFLAG_LIGHTS_OFF, TRUE, /*goto*/ 0x2c) + play_sound(0x8147, -1) + restart_timer + set_lights_state(0x000b, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x000c, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x000d, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x000e, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0010, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x000f, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0011, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0012, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0013, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0014, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0015, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0017, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0018, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0001, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0003, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0004, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0005, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0006, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0007, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0008, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0009, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x000a, 0x03, 0xff, 0x06, 0x78) + + // Wait 2 seconds + beginloop(0x09) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + set_lights_state(0x000b, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x000c, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x000d, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x000e, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0010, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x000f, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0011, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0012, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0013, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0014, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0015, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0017, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0018, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0001, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0003, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0004, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0005, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0006, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0007, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0008, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0009, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x000a, 0x01, 0x0a, 0x00, 0x00) + goto_next(0x07) + + label(0x2c) + play_sound(0x8148, -1) + set_lights_state(0x000b, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x000c, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x000d, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x000e, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0010, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x000f, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0011, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0012, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0013, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0014, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0015, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0017, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0018, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0001, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0003, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0004, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0005, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0006, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0007, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0008, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0009, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x000a, 0x03, 0x06, 0xff, 0x78) + + // Wait 2 seconds + restart_timer + + beginloop(0x0a) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x0a) + + label(0x06) + set_lights_state(0x000b, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x000c, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x000d, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x000e, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0010, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x000f, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0011, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0012, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0013, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0014, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0015, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0017, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0018, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0001, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0003, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0004, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0005, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0006, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0007, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0008, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0009, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x000a, 0x01, 0xff, 0x00, 0x00) + + label(0x07) + unset_chr_flag_bank3(CHR_CLOAK_2A, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_CLOAK_2B, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_CLOAK_2C, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_CLOAK_2D, CHRFLAG3_HIDDEN) + set_function(CHR_CLOAK_2A, FUNC_CLOAK2_GUARD) + set_function(CHR_CLOAK_2B, FUNC_CLOAK2_GUARD) + set_function(CHR_CLOAK_2C, FUNC_CLOAK2_GUARD) + set_function(CHR_CLOAK_2D, FUNC_CLOAK2_GUARD) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0405_cloak2_hide[] = { + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101c_check_visited_top_door[] = { + // Wait until decoder attached + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_DECODER_ATTACHED, TRUE, /*goto*/ 0x08) + endloop(0x04) + + // Wait until player gone near top fire escape door + beginloop(0x08) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_distance_to_pad_lt(CHR_P1P2, 400, 0x0058, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + set_stage_flag(STAGEFLAG_VISITED_TOP_DOOR) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101d_init_mines[] = { + yield + set_object_flag_bank1(OBJ_MINE1, OBJECTFLAG1_00020000) + set_object_flag_bank1(OBJ_MINE2, OBJECTFLAG1_00020000) + set_object_flag_bank1(OBJ_MINE1, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank1(OBJ_MINE2, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank0(OBJ_MINE1, OBJECTFLAG0_00000100) + unset_object_flag_bank0(OBJ_MINE2, OBJECTFLAG0_00000100) + set_chr_alliance(CHR_COUNTEROP, ALLIANCE_ENEMY) + + label(0x06) + if_eeprom_flag_is_unset(EEPROMFLAG_G5_MINE, /*goto*/ 0x06) + + hide_object(OBJ_MINE1) + dprint 'E','P','R','O','M','F','L','A','G',' ','N','O','T','S','E','T',0, + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x06) + dprint 'E','P','R','O','M','F','L','A','G',' ','S','E','T',0, + hide_object(OBJ_MINE2) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +#define init_guard(accuracy, reaction, function) \ + set_chr_dodge_rating(2, 0x0a) \ + set_accuracy(accuracy) \ + set_reaction_speed(reaction) \ + set_chr_health(CHR_SELF, 40) \ + set_armor(0) \ + set_recovery_speed(0) \ + set_shield(0) \ + set_function(CHR_SELF, function) + + + +u8 func0406_init_type1_guard[] = { + init_guard(5, 30, GFUNC_UNALERTED) + endfunction +}; + +// Never assigned +u8 func0407_init_type2_guard[] = { + init_guard(15, 25, GFUNC_UNALERTED) + endfunction +}; + +u8 func0408_init_cloak1_guard[] = { + init_guard(5, 25, 0x0413) + endfunction +}; + +u8 func101e_msg_nowaythrough[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_stage_flag_eq(STAGEFLAG_LASERSET1_DISABLED, FALSE, /*goto*/ 0x2c) + if_stage_flag_eq(STAGEFLAG_LASERSET2_DISABLED, FALSE, /*goto*/ 0x2c) + if_stage_flag_eq(STAGEFLAG_LASERSET3_DISABLED, FALSE, /*goto*/ 0x2c) + if_stage_flag_eq(STAGEFLAG_LASERSET4_DISABLED, FALSE, /*goto*/ 0x2c) + reloop(0x04) + + label(0x2c) + if_chr_in_room(CHR_P1P2, 0x00, 0x002f, /*goto*/ 0x2c) + endloop(0x04) + + label(0x2c) + speak(CHR_P1P2, 0x183c, 0x73b4, CHANNEL_6, COLOR_09_BLUE) // "There's no way through while those lasers are acti..." + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101f_msg_meetingroomahead[] = { + restart_timer + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_MEETING_HOLOGRAPHED, TRUE, /*goto*/ 0x0d) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x004c, /*goto*/ 0x2c) + reloop(0x04) + + label(0x2c) + if_chr_y(CHR_P1P2, 300, OPERATOR_LESS_THAN, /*goto*/ 0x06) + goto_next(0x2c) + label(0x06) + endloop(0x04) + + label(0x2c) + speak(CHR_P1P2, 0x183d, 0x73b5, CHANNEL_6, COLOR_09_BLUE) // "That must be the meeting room up ahead. Time to us..." + + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1020_msg_heavilyencrypted[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0050, /*goto*/ 0x2c) + endloop(0x04) + + label(0x2c) + speak(CHR_P1P2, 0x183e, 0x817c, CHANNEL_6, COLOR_09_BLUE) // "The safe's heavily encrypted. The decoder's gonna ..." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1021_blow_mines[] = { + // Wait for backup collected + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_stage_flag_eq(STAGEFLAG_BACKUP_COLLECTED, TRUE, /*goto*/ 0x2c) + endloop(0x04) + + // Wait 2 seconds + label(0x2c) + restart_timer + + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x2c) + endloop(0x08) + + label(0x2c) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2c) + speak(CHR_P1P2, 0x183f, 0x73b7, CHANNEL_6, COLOR_09_BLUE) // "Time to leave! Let's get to the door I set up earl..." + set_function(CHR_SELF, GFUNC_IDLE) + + // Agent + label(0x2c) + if_object_in_good_condition(OBJ_ESCAPEDOOR1, /*goto*/ 0x2c) + goto_next(0x0d) + + label(0x2c) + if_object_in_good_condition(OBJ_ESCAPEDOOR2, /*goto*/ 0x2c) + goto_next(0x0d) + + label(0x2c) + speak(CHR_P1P2, 0x1841, 0x81a2, CHANNEL_6, COLOR_09_BLUE) // "Stand back, Joanna. We'll create your escape route..." + restart_timer + + beginloop(0x09) + if_timer_gt(120, /*goto*/ 0x2c) + endloop(0x09) + + label(0x2c) + destroy_object(OBJ_MINE1) + destroy_object(OBJ_MINE2) + restart_timer + + beginloop(0x0a) + if_timer_gt(240, /*goto*/ 0x2c) + endloop(0x0a) + + label(0x2c) + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1022_light_switch[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_LIGHTSWITCH, /*goto*/ 0x2c) + reloop(0x04) + + label(0x2c) + if_stage_flag_eq(STAGEFLAG_LIGHTS_OFF, TRUE, /*goto*/ 0x2c) + + // Turning lights off + set_stage_flag(STAGEFLAG_LIGHTS_OFF) + assign_sound(0x043f, CHANNEL_7) + play_sound_from_entity(CHANNEL_7, OBJ_LIGHTSWITCH, 0x012c, 0x0190, 0x00) + yield + set_object_image(OBJ_LIGHTSWITCH, 0x00, 0x14) + play_sound(0x8147, -1) + set_lights_state(0x000b, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x000c, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x000d, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x000e, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0010, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x000f, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0011, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0012, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0013, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0014, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0015, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0017, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0018, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0001, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0003, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0004, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0005, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0006, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0007, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0008, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x0009, 0x03, 0xff, 0x06, 0x78) + set_lights_state(0x000a, 0x03, 0xff, 0x06, 0x78) + + restart_timer + + beginloop(0x09) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + set_lights_state(0x000b, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x000c, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x000d, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x000e, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0010, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x000f, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0011, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0012, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0013, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0014, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0015, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0017, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0018, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0001, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0003, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0004, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0005, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0006, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0007, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0008, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x0009, 0x01, 0x0a, 0x00, 0x00) + set_lights_state(0x000a, 0x01, 0x0a, 0x00, 0x00) + goto_first(0x04) + + // Turning lights on + label(0x2c) + unset_stage_flag(STAGEFLAG_LIGHTS_OFF) + assign_sound(0x043f, CHANNEL_7) + play_sound_from_entity(CHANNEL_7, OBJ_LIGHTSWITCH, 0x012c, 0x0190, 0x00) + yield + play_sound(0x8148, -1) + set_object_image(0x3d, 0x00, 0x06) + set_lights_state(0x000b, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x000c, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x000d, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x000e, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0010, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x000f, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0011, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0012, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0013, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0014, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0015, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0017, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0018, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0001, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0003, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0004, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0005, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0006, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0007, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0008, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x0009, 0x03, 0x06, 0xff, 0x78) + set_lights_state(0x000a, 0x03, 0x06, 0xff, 0x78) + + restart_timer + + beginloop(0x0a) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x0a) + + label(0x06) + set_lights_state(0x000b, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x000c, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x000d, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x000e, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0010, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x000f, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0011, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0012, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0013, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0014, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0015, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0017, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0018, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0001, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0003, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0004, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0005, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0006, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0007, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0008, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0009, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x000a, 0x01, 0xff, 0x00, 0x00) + endloop(0x04) + + endfunction +}; + +u8 func1023_hide_nbomb_crate[] = { + if_eeprom_flag_is_unset(EEPROMFLAG_G5_MINE, /*goto*/ 0x06) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x06) + hide_object(OBJ_NBOMB_CRATE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Opens the laser doors in response to the stageflags changing. + */ +u8 unregistered_function[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_LASERSET1_DISABLED, FALSE, /*goto*/ 0x2c) + if_door_state(OBJ_LASER_1A, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x2c) + open_door(OBJ_LASER_1A) + open_door(OBJ_LASER_1B) + open_door(OBJ_LASER_1C) + open_door(OBJ_LASER_1D) + label(0x2c) + if_stage_flag_eq(STAGEFLAG_LASERSET2_DISABLED, FALSE, /*goto*/ 0x2c) + if_door_state(OBJ_LASER_2A, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x2c) + open_door(OBJ_LASER_2A) + open_door(OBJ_LASER_2B) + open_door(OBJ_LASER_2C) + open_door(OBJ_LASER_2D) + label(0x2c) + if_stage_flag_eq(STAGEFLAG_LASERSET3_DISABLED, FALSE, /*goto*/ 0x2c) + if_door_state(OBJ_LASER_3A, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x2c) + open_door(OBJ_LASER_3A) + open_door(OBJ_LASER_3B) + open_door(OBJ_LASER_3C) + open_door(OBJ_LASER_3D) + label(0x2c) + if_stage_flag_eq(STAGEFLAG_LASERSET4_DISABLED, FALSE, /*goto*/ 0x2c) + if_door_state(OBJ_LASER_4A, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x2c) + open_door(OBJ_LASER_4A) + open_door(OBJ_LASER_4B) + open_door(OBJ_LASER_4C) + open_door(OBJ_LASER_4D) + label(0x2c) + endloop(0x04) + + endfunction +}; + +/** + * I'm guessing co op buddies etc would get stuck in locked rooms after the + * player has passed through them. So this just unlocks the doors once they've + * been opened for the first time. + */ +u8 func1026_unlock_doors[] = { + // If Velvet and counter op don't exist, return + yield + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x2c) + goto_next(0x04) + label(0x2c) + if_chr_death_animation_finished(CHR_COUNTEROP, /*goto*/ 0x0a) + + // Wait until some door is not closed (so... opening, I guess?) + beginloop(0x04) + if_door_state(0x43, (DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING), /*goto*/ 0x2c) + if_door_state(0x44, (DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING), /*goto*/ 0x2c) + if_door_state(0x45, (DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING), /*goto*/ 0x2c) + if_door_state(0x46, (DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING), /*goto*/ 0x2c) + endloop(0x04) + + // Unlock those doors + label(0x2c) + unlock_door(0x43, 0x04) + unlock_door(0x44, 0x04) + unlock_door(0x45, 0x04) + unlock_door(0x46, 0x04) + + // New set of doors - wait until not closed + beginloop(0x08) + if_door_state(0x34, (DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING), /*goto*/ 0x2c) + if_door_state(0x35, (DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING), /*goto*/ 0x2c) + if_door_state(0x36, (DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING), /*goto*/ 0x2c) + if_door_state(0x37, (DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING), /*goto*/ 0x2c) + endloop(0x08) + + // Unlock them + label(0x2c) + unlock_door(0x34, 0x04) + unlock_door(0x35, 0x04) + unlock_door(0x36, 0x04) + unlock_door(0x37, 0x04) + + // Third set of doors + beginloop(0x09) + if_door_state(0x3f, (DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING), /*goto*/ 0x2c) + if_door_state(0x40, (DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING), /*goto*/ 0x2c) + endloop(0x09) + + label(0x2c) + unlock_door(0x3f, 0x10) + unlock_door(0x40, 0x10) + + label(0x0a) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0410_invincible[] = { + label(0x04) + yield + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_UNEXPLODABLE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0411_hide[] = { + label(0x04) + yield + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_UNEXPLODABLE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1027_cloak1_check_one_remaining[] = { + // Wait until either cloak guard dying (in first room) + beginloop(0x04) + if_chr_dying(CHR_CLOAK_1A, /*goto*/ 0x2c) + if_chr_death_animation_finished(CHR_CLOAK_1A, /*goto*/ 0x2c) + if_chr_unloaded(CHR_CLOAK_1A, /*goto*/ 0x2c) + if_chr_dying(CHR_CLOAK_1B, /*goto*/ 0x2c) + if_chr_death_animation_finished(CHR_CLOAK_1B, /*goto*/ 0x2c) + if_chr_unloaded(CHR_CLOAK_1B, /*goto*/ 0x2c) + endloop(0x04) + + label(0x2c) + set_stage_flag(STAGEFLAG_CLOAK1_ONE_REMAINING) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1028_cloak2_check_one_remaining[] = { + // Count number of dead cloak guards in second room + beginloop(0x04) + set_var_a(0) + if_chr_dying(CHR_CLOAK_2A, /*goto*/ 0x2c) + if_chr_death_animation_finished(CHR_CLOAK_2A, /*goto*/ 0x2c) + if_chr_unloaded(CHR_CLOAK_2A, /*goto*/ 0x2c) + goto_next(0x06) + + label(0x2c) + add_var_a(1) + label(0x06) + if_chr_dying(CHR_CLOAK_2B, /*goto*/ 0x2c) + if_chr_death_animation_finished(CHR_CLOAK_2B, /*goto*/ 0x2c) + if_chr_unloaded(CHR_CLOAK_2B, /*goto*/ 0x2c) + goto_next(0x06) + + label(0x2c) + add_var_a(1) + label(0x06) + if_chr_dying(CHR_CLOAK_2C, /*goto*/ 0x2c) + if_chr_death_animation_finished(CHR_CLOAK_2C, /*goto*/ 0x2c) + if_chr_unloaded(CHR_CLOAK_2C, /*goto*/ 0x2c) + goto_next(0x06) + + label(0x2c) + add_var_a(1) + label(0x06) + if_chr_dying(CHR_CLOAK_2D, /*goto*/ 0x2c) + if_chr_death_animation_finished(CHR_CLOAK_2D, /*goto*/ 0x2c) + if_chr_unloaded(CHR_CLOAK_2D, /*goto*/ 0x2c) + goto_next(0x06) + + label(0x2c) + add_var_a(1) + label(0x06) + if_var_a_lt(3, /*goto*/ 0x2c) + set_stage_flag(STAGEFLAG_CLOAK2_ONE_REMAINING) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2c) + endloop(0x04) + + endfunction +}; + +u8 func1029_set_secret_weapon_props[] = { + yield + set_object_flag_bank2(OBJ_NBOMB_CRATE, OBJECTFLAG2_RTRACKED_BLUE) + set_object_flag_bank2(OBJ_CROSSBOW, OBJECTFLAG2_RTRACKED_BLUE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func102a_8174[] = { + // Wait until some door opening + beginloop(0x08) + if_door_state(0x3f, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x2c) + endloop(0x08) + + label(0x2c) + set_chr_flag_bank2(0x07, CHRFLAG2_08000000) + set_chr_flag_bank2(0x0c, CHRFLAG2_08000000) + set_chr_flag_bank2(0x0d, CHRFLAG2_08000000) + set_chr_flag_bank2(0x0e, CHRFLAG2_08000000) + set_chr_flag_bank2(0x0f, CHRFLAG2_08000000) + set_chr_flag_bank2(0x10, CHRFLAG2_08000000) + set_chr_flag_bank2(0x11, CHRFLAG2_08000000) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func102b_81bc[] = { + // Wait until some door opening + beginloop(0x08) + if_door_state(0x3f, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x2c) + endloop(0x08) + + label(0x2c) + set_chr_alliance(0x08, ALLIANCE_ENEMY) + set_chr_alliance(0x09, ALLIANCE_ENEMY) + set_chr_alliance(0x0a, ALLIANCE_ENEMY) + set_chr_alliance(0x0b, ALLIANCE_ENEMY) + set_chr_alliance(0x07, ALLIANCE_ENEMY) + set_chr_alliance(0x0c, ALLIANCE_ENEMY) + set_chr_alliance(0x0d, ALLIANCE_ENEMY) + set_chr_alliance(0x0e, ALLIANCE_ENEMY) + set_chr_alliance(0x0f, ALLIANCE_ENEMY) + set_chr_alliance(0x10, ALLIANCE_ENEMY) + set_chr_alliance(0x11, ALLIANCE_ENEMY) + set_chr_alliance(0x12, ALLIANCE_ENEMY) + set_chr_alliance(0x13, ALLIANCE_ENEMY) + set_chr_alliance(0x14, ALLIANCE_ENEMY) + set_chr_alliance(0x15, ALLIANCE_ENEMY) + set_chr_alliance(0x16, ALLIANCE_ENEMY) + set_chr_alliance(0x17, ALLIANCE_ENEMY) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * I suspect Rare screwed up here. I think the lightswitch guard starts off as + * an ally so that he won't respond to Jo making noise in the first cloak room. + * Then when he becomes alerted to you (such as you shooting near him) he'd + * become an enemy. + * + * However, it's checking if the alertness is less than, so this condition + * passes immediately and he becomes an enemy. This could be why he's sometimes + * left his pad by the time you leave the first room. + */ +u8 func102c_set_lightswitch_guard_alliance[] = { + beginloop(0x08) + if_chr_alertness_lt(99, CHR_LIGHTSWITCH_GUARD, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + set_chr_alliance(CHR_LIGHTSWITCH_GUARD, ALLIANCE_ENEMY) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +struct ailists functions[] = { + { func0401_init_swat1, 0x0401 }, + { func0402_init_swat2, 0x0402 }, + { func0403_walk_from_meeting, 0x0403 }, + { func0404_run_from_meeting, 0x0404 }, + { func0405_cloak2_hide, 0x0405 }, + { func0406_init_type1_guard, 0x0406 }, + { func0407_init_type2_guard, 0x0407 }, + { func0408_init_cloak1_guard, 0x0408 }, + { func0409_start_path00, 0x0409 }, + { func040a_start_path01, 0x040a }, + { func040b_start_path02, 0x040b }, + { func040c_start_path03, 0x040c }, + { func1400_setup_counterop, 0x1400 }, + { func1001_objectives_failed_msg, 0x1001 }, + { func1002_set_ai, 0x1002 }, + { func1003_laser_switch_1, 0x1003 }, + { func1004_laser_switch_2, 0x1004 }, + { func1005_laser_switch_3, 0x1005 }, + { func1006_laser_switch_4, 0x1006 }, + { func1007_init_lasers, 0x1007 }, + { func1008_check_generator, 0x1008 }, + { func1009_spawner_during_decode, 0x1009 }, + { func100a_give_keycards, 0x100a }, + { func100b_check_backup_collected, 0x100b }, + { func100c_check_for_meeting_trigger, 0x100c }, + { func100e_check_conspirators_alerted, 0x100e }, + { func100f_alarm_switches, 0x100f }, + { func1010_safe_cracking, 0x1010 }, + { func1012_check_for_end, 0x1012 }, + { func1013_check_escape_doors, 0x1013 }, + { func1014_check_camspy_location, 0x1014 }, + { func1017_check_lasers_closed, 0x1017 }, + { func1018_intro_from_menu, 0x1018 }, + { func1019_generator_hum, 0x1019 }, + { func101a_init_laser_switch_guards, 0x101a }, + { func101b_cloak2_entry, 0x101b }, + { func101c_check_visited_top_door, 0x101c }, + { func101d_init_mines, 0x101d }, + { func101e_msg_nowaythrough, 0x101e }, + { func101f_msg_meetingroomahead, 0x101f }, + { func1020_msg_heavilyencrypted, 0x1020 }, + { func1021_blow_mines, 0x1021 }, + { func1022_light_switch, 0x1022 }, + { func1023_hide_nbomb_crate, 0x1023 }, + { func1026_unlock_doors, 0x1026 }, + { func1027_cloak1_check_one_remaining, 0x1027 }, + { func1028_cloak2_check_one_remaining, 0x1028 }, + { func1029_set_secret_weapon_props, 0x1029 }, + { func102a_8174, 0x102a }, + { func102b_81bc, 0x102b }, + { func102c_set_lightswitch_guard_alliance, 0x102c }, + { func040d_intro, 0x040d }, + { func040e_meeting_cutscene, 0x040e }, + { func040f_outro, 0x040f }, + { func0410_invincible, 0x0410 }, + { func0411_hide, 0x0411 }, + { func0412_cloak_guard, 0x0412 }, + { func0413_cloak1_guard, 0x0413 }, + { func0414_init_cloak2_guard, 0x0414 }, + { func1018_intro_from_menu, 0x0c00 }, + { func040e_meeting_cutscene, 0x0c01 }, + { func040f_outro_from_menu, 0x0c02 }, + { NULL, 0 }, +}; + +struct aipaths paths[] = { + { path00, 0, 1 }, + { path01, 1, 1 }, + { path02, 2, 1 }, + { path03, 3, 1 }, + { NULL, 0, 0 }, +}; + diff --git a/src/setup/setupdest.c b/src/setup/setupdest.c new file mode 100644 index 000000000..829eeaf8c --- /dev/null +++ b/src/setup/setupdest.c @@ -0,0 +1,39 @@ +// +// Stage ID 0x1a +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setupdish.c b/src/setup/setupdish.c new file mode 100644 index 000000000..a3d5bfc40 --- /dev/null +++ b/src/setup/setupdish.c @@ -0,0 +1,6129 @@ +// +// CI Training +// + +#include "../include/setup.h" + +// Characters +#define CHR_CARRINGTON 0x00 + +// Objects +#define OBJ_CAMSPY 0x26 +#define OBJ_LIGHTSWITCH 0x34 +#define OBJ_HOVERCRATE 0x93 + +// Stage flags +#define STAGEFLAG_IN_TRAINING 0x00000001 +#define STAGEFLAG_HOLO_FAILED 0x00000002 +#define STAGEFLAG_DEVICE_ABORTING 0x00000004 +#define STAGEFLAG_TRIGGER_DEVICE_SUCCESS 0x00000008 +#define STAGEFLAG_TRIGGER_DEVICE_FAILURE 0x00000010 +#define STAGEFLAG_HOLO_ABORTING 0x00000020 +#define STAGEFLAG_TRIGGER_HOLO_SUCCESS 0x00000040 +#define STAGEFLAG_TRIGGER_HOLO_FAILURE 0x00000080 +#define STAGEFLAG_TRIGGER_UPLINK 0x00000100 +#define STAGEFLAG_TRIGGER_ECMMINE 0x00000200 +#define STAGEFLAG_TRIGGER_CAMSPY 0x00000400 +#define STAGEFLAG_TRIGGER_NIGHTVISION 0x00000800 +#define STAGEFLAG_TRIGGER_DOORDECODER 0x00001000 +#define STAGEFLAG_TRIGGER_RTRACKER 0x00002000 +#define STAGEFLAG_TRIGGER_IR 0x00004000 +#define STAGEFLAG_TRIGGER_XRAY 0x00008000 +#define STAGEFLAG_TRIGGER_DISGUISE 0x00010000 +#define STAGEFLAG_TRIGGER_CLOAK 0x00020000 +#define STAGEFLAG_IN_HOLO1 0x00040000 +#define STAGEFLAG_IN_HOLO2 0x00080000 +#define STAGEFLAG_IN_HOLO3 0x00100000 +#define STAGEFLAG_IN_HOLO4 0x00200000 +#define STAGEFLAG_IN_HOLO5 0x00400000 +#define STAGEFLAG_IN_HOLO6 0x00800000 +#define STAGEFLAG_IN_HOLO7 0x01000000 +#define STAGEFLAG_GENERAL_PURPOSE 0x02000000 +#define STAGEFLAG_TRIGGER_CANNOTEXIT_MSG 0x04000000 +#define STAGEFLAG_CONSIDER_WARP 0x08000000 +#define STAGEFLAG_CLOAK_COMPLETE 0x10000000 +#define STAGEFLAG_CLOAK_FAILED 0x20000000 +#define STAGEFLAG_DISGUISE_FAILED 0x40000000 +#define STAGEFLAG_DISGUISE_COMPLETE 0x80000000 + +// Functions +#define FUNC_MOVE_TO_DEVICEROOM 0x0401 +#define FUNC_MOVE_TO_HOLOROOM 0x0402 +#define FUNC_HOLO4_GUARD1 0x0403 +#define FUNC_HOLO4_GUARD2 0x0404 +#define FUNC_HOLO4_GUARD3 0x0405 +#define FUNC_HOLO5_INIT_GUARD1 0x0406 +#define FUNC_HOLO5_GUARD1 0x0407 +#define FUNC_HOLO5_INIT_GUARD2 0x0408 +#define FUNC_HOLO5_GUARD2 0x0409 +#define FUNC_HOLO5_INIT_GUARD3 0x040a +#define FUNC_HOLO5_GUARD3 0x040b +#define FUNC_HOLO6_INIT_GUARD1 0x040c +#define FUNC_HOLO6_INIT_GUARD2 0x040d +#define FUNC_HOLO6_INIT_GUARD3 0x040e +#define FUNC_HOLO6_INIT_GUARD4 0x040f +#define FUNC_HOLO7_INIT_GUARD4 0x0410 +#define FUNC_HOLO7_INIT_GUARD5 0x0411 +#define FUNC_HOLO7_INIT_GUARD1 0x0412 +#define FUNC_HOLO7_INIT_GUARD2 0x0413 +#define FUNC_HOLO7_INIT_GUARD3 0x0414 +#define FUNC_HOLO_GUARD_UNARMED_UNALERT 0x0415 +#define FUNC_HOLO_GUARD_UNARMED_ALERT 0x0416 +#define FUNC_HOLO_GUARD_UNARMED_ALERT2 0x0417 +#define FUNC_HOLO_GUARD_ARMED_UNALERT 0x0418 +#define FUNC_HOLO_GUARD_ARMED_ALERT 0x0419 +#define FUNC_HOLO3_CHECK_DONE 0x041c +#define FUNC_INIT_COLLEAGUE_WHEN_SIGHTED 0x041d +#define FUNC_COLLEAGUE 0x041e +#define FUNC_GRIMSHAW_DISGUISE 0x0429 +#define FUNC_CARRINGTON_CLOAK 0x042a +#define FUNC_INIT_CARRINGTON 0x042b +#define FUNC_CARRINGTON_TOUR 0x042c +#define FUNC_DEVICEGIRL_REPLY_TO_CARRINGTON 0x042e +#define FUNC_HOLO1_CHECK_DONE 0x0430 +#define FUNC_HOLO3_OBJECT1 0x0435 +#define FUNC_HOLO3_OBJECT2 0x0436 +#define FUNC_HOLO1_SWITCH1 0x0437 +#define FUNC_HOLO1_SWITCH2 0x0438 +#define FUNC_HOLO1_SWITCH3 0x0439 +#define FUNC_HOLO1_MONITOR_SWITCHES 0x043a + +// Pads +#define PAD_OUTSIDE_JO_OFFICE 0x0053 +#define PAD_CARRINGTON_OFFICE 0x00f6 +#define PAD_DEVICEROOM 0x0121 +#define PAD_HOLOROOM 0x0273 + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + door(0x0100, MODEL_INSTFRONTDOOR, 0x018d, 0x10000600, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_INSTFRONTDOOR, 0x018e, 0x10000600, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_INSTFRONTDOOR, 0x018f, 0x10000600, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_INSTFRONTDOOR, 0x0190, 0x10000600, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CIDOOR1_REF, 0x0156, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CIDOOR1_REF, 0x0157, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x75, 2) + tag(0x76, 2) + door(0x0100, MODEL_CIDOOR1_REF, 0x0158, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CIDOOR1_REF, 0x0159, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x8a, 1) + door(0x0100, MODEL_CIDOOR1_REF, 0x015b, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CIDOOR1_REF, 0x015c, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x31, 1) + door(0x0100, MODEL_CIDOOR1_REF, 0x015a, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x89, 1) + door(0x0100, MODEL_CIDOOR1_REF, 0x015d, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x91, 2) + tag(0x92, 1) + door(0x0100, MODEL_DD_LIFTDOOR, 0x018c, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + stdobject(0x0100, MODEL_CI_SOFA, 0x0212, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_CI_SOFA, 0x0213, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_CI_SOFA, 0x0214, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_CI_SOFA, 0x0215, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_CI_SOFA, 0x0216, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_CI_SOFA, 0x0217, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_CI_SOFA, 0x0218, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_CI_SOFA, 0x0219, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AIRBASE_SAFEDOOR, 0x025b, 0x000205e8, 0x00200002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000fa0, 0x00000000, 0x00000000, 0x0fff0000) + glass(0x0100, MODEL_WINDOW, 0x019f, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x019e, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x019d, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x019c, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01a0, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01a1, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01a2, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01a3, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01a8, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01a9, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01aa, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01ab, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01ac, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01ad, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01ae, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01af, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01b7, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01b8, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01b9, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01ba, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01bb, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01bc, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01bd, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01be, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01bf, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01c3, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01c4, 0x04020362, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01c5, 0x04020362, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01c6, 0x04020362, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01c7, 0x04020362, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01d1, 0x04000362, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x80, 6) + tag(0x81, 6) + tag(0x82, 6) + tag(0x83, 6) + tag(0x43, 1) + lift(0x0100, MODEL_CI_LIFT, 0x0193, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0193, 0x0194, 0xffffffff, 0x00000001, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x015e, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x015f, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x0160, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x0161, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-4, -5, 0, 0) + link_objects(-4, -6, 0, 0) + link_objects(-4, -7, 0, 1) + link_objects(-4, -8, 0, 1) + tag(0x84, 6) + tag(0x85, 6) + tag(0x86, 6) + tag(0x87, 6) + tag(0x44, 1) + lift(0x0100, MODEL_CI_LIFT, 0x0195, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0195, 0x0196, 0xffffffff, 0x00000001, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x0164, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x0165, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x0162, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x0163, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-4, -5, 0, 0) + link_objects(-4, -6, 0, 0) + link_objects(-4, -7, 0, 1) + link_objects(-4, -8, 0, 1) + tag(0x00, 1) + stdobject(0x0100, MODEL_DD_CHAIR, 0x021b, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x021a, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x1b, 1) + singlemonitor(0x0100, MODEL_GOODPC, 0x021c, 0x000204e1, 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, 0xffffff03) + tag(0x01, 1) + stdobject(0x0100, MODEL_DD_CHAIR, 0x021f, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x021d, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x10, 1) + singlemonitor(0x0100, MODEL_GOODPC, 0x021e, 0x000004e1, 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, 0xffffff03) + tag(0x02, 1) + stdobject(0x00b3, MODEL_DD_CHAIR, 0x0220, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x0222, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x0f, 1) + singlemonitor(0x0100, MODEL_GOODPC, 0x0221, 0x000004e1, 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, 0xffffff03) + tag(0x33, -1) + tag(0x0d, 1) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0223, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x0225, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x0e, 1) + singlemonitor(0x0100, MODEL_GOODPC, 0x0224, 0x000004e1, 0x00020000, 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, 0xffffff03) + tag(0x7f, 1) + singlemonitor(0x0100, MODEL_GOODPC, 0x022d, 0x000204e1, 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, 0xffffff03) + require_object_holographed(0x0000000e, 0x00000000, 0x00000000) + tag(0x05, 18) + tag(0x06, 18) + tag(0x07, 18) + tag(0x08, 18) + tag(0x09, 18) + tag(0x0a, 18) + tag(0x0b, 18) + tag(0x0c, 18) + tag(0x11, 18) + tag(0x12, 18) + tag(0x13, 18) + tag(0x14, 18) + tag(0x15, 18) + tag(0x16, 18) + tag(0x17, 18) + tag(0x18, 18) + tag(0x19, 18) + tag(0x1a, 18) + stdobject(0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0019, MODEL_TARGET, 0x00d6, 0x000005e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + chr(0x00002000, 0x00, PAD_CARRINGTON_OFFICE, BODY_CARRINGTON, HEAD_CARRINGTON, FUNC_INIT_CARRINGTON, -1, -1, 1000, 4, 0x00000000, 0x00000000, 0x20, 0x05, -1, 0, 0x02000000) + chr(0x00002000, 0x01, 0x00f8, BODY_CIFEMTECH, HEAD_SECRETARY, 0x0420, -1, -1, 1000, 4, 0x00000000, 0x00000000, 0x20, 0x05, -1, 0, 0x02000000) + chr(0x00002000, 0x02, 0x00fa, BODY_CILABTECH, HEAD_CHRIST, 0x0424, -1, -1, 1000, 4, 0x00000000, 0x00000000, 0x20, 0x05, -1, 0, 0x02000000) + chr(0x00002000, 0x03, 0x00f7, BODY_CILABTECH, HEAD_MARK2, 0x0421, -1, -1, 1000, 6, 0x00000000, 0x00000000, 0x20, 0x05, -1, 0, 0x02000000) + chr(0x00002000, 0x04, 0x00f9, BODY_CIFEMTECH, HEAD_SECRETARY, 0x0422, -1, -1, 1000, 6, 0x00000000, 0x00000000, 0x20, 0x05, -1, 0, 0x02000000) + chr(0x00002000, 0x05, 0x00fb, BODY_CILABTECH, HEAD_BRIAN, 0x0423, -1, -1, 1000, 6, 0x00000000, 0x00000000, 0x20, 0x05, -1, 0, 0x02000000) + chr(0x00006000, 0x06, 0x00fd, BODY_CILABTECH, HEAD_RUSS, 0x0425, -1, -1, 0, 0, 0xc8000000, 0x00000100, 0x02, 0x0d, 0x01, 0, 0x00020000) + chr(0x00006000, 0x07, 0x00fc, BODY_CILABTECH, HEAD_BEAU1, 0x0426, -1, -1, 0, 0, 0xc8000000, 0x00000100, 0x02, 0x0d, 0x00, 0, 0x00020000) + chr(0x00006000, 0x08, 0x00fe, BODY_CIFEMTECH, HEAD_SECRETARY, 0x0427, -1, -1, 0, 0, 0xc8000000, 0x00000100, 0x02, 0x0d, 0x02, 0, 0x00020000) + tag(0x1e, 8) + tag(0x1f, 8) + tag(0x20, 8) + tag(0x21, 8) + tag(0x22, 8) + tag(0x23, 8) + tag(0x24, 8) + tag(0x25, 8) + weapon(0x0100, MODEL_CHRWPPK, 0x0115, 0x00100008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRTT33, 0x0116, 0x00100008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRSKORPION, 0x0117, 0x00100008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRKALASH, 0x0118, 0x00100008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRUZI, 0x0119, 0x00100008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRMP5K, 0x011a, 0x00100008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRM16, 0x011b, 0x00100008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRFNP90, 0x011c, 0x00100008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000) + tag(0x7a, 1) + glass(0x0100, MODEL_DD_WINDOW, 0x01c8, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x79, 1) + glass(0x0100, MODEL_DD_WINDOW, 0x01c9, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x78, 1) + glass(0x0100, MODEL_DD_WINDOW, 0x01ca, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x7e, 1) + glass(0x0100, MODEL_DD_WINDOW, 0x01cb, 0x04020962, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x7b, 1) + glass(0x0100, MODEL_DD_WINDOW, 0x01cc, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x7c, 1) + glass(0x0100, MODEL_DD_WINDOW, 0x01cd, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x7d, 1) + glass(0x0100, MODEL_DD_WINDOW, 0x01ce, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x77, 1) + glass(0x0100, MODEL_DD_WINDOW, 0x01cf, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01d0, 0x04020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + stdobject(0x0100, MODEL_DD_DESK, 0x0229, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x2f, 1) + weapon(0x0100, MODEL_CHRDATATHIEF, 0xffff, 0x00100008, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DATAUPLINK, 0x00ffffff, 0x00000000) + stdobject(0x0100, MODEL_DD_DESK, 0x0228, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0226, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x30, 1) + singlemonitor(0x0180, MODEL_GOODPC, 0x0227, 0x000004e1, 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, 0xffffff03) + tag(0x2e, 1) + weapon(0x0180, MODEL_CHRECMMINE, 0xffff, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_ECMMINE, 0x00ffffff, 0x00000000) + tag(0x32, 1) + multimonitor(0x0140, MODEL_CIHUB, 0x0239, 0x00000002, 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, 0x03000000) + tag(0x26, 1) + weapon(0x0100, MODEL_CHREYESPY, 0xffff, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CAMSPY, 0x00ffffff, 0x00000000) + tag(0x27, 1) + weapon(0x0180, MODEL_CHRNIGHTSIGHT, 0xffff, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_NIGHTVISION, 0x00ffffff, 0x00000000) + tag(0x34, 1) + stdobject(0x0100, MODEL_LIGHTSWITCH, 0x023a, 0x10000002, 0x00080000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x28, 1) + weapon(0x0200, MODEL_CHRDOORDECODER, 0xffff, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DOORDECODER, 0x00ffffff, 0x00000000) + tag(0x35, 1) + multimonitor(0x0100, MODEL_CIHUB, 0x023b, 0x00000002, 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, 0x03000000) + tag(0x88, 1) + stdobject(0x0200, MODEL_CHRDOORDECODER, 0x0130, 0x00020408, 0x00080001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x2c, 1) + weapon(0x0180, MODEL_RUSSDAR, 0xffff, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_RTRACKER, 0x00ffffff, 0x00000000) + tag(0x36, 1) + weapon(0x0180, MODEL_MISC_IRSPECS, 0xffff, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_IRSCANNER, 0x00ffffff, 0x00000000) + tag(0x29, 1) + weapon(0x0180, MODEL_XRAYSPECS, 0xffff, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_XRAYSCANNER, 0x00ffffff, 0x00000000) + tag(0x38, 1) + multimonitor(0x0099, MODEL_CIHUB, 0x023c, 0x00000002, 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, 0x03000000) + tag(0x39, 1) + multimonitor(0x0099, MODEL_CIHUB, 0x023d, 0x00000002, 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, 0x03000000) + tag(0x2a, 1) + weapon(0x0180, MODEL_CHRBRIEFCASE, 0xffff, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DISGUISE41, 0x00ffffff, 0x00000000) + tag(0x2b, 1) + weapon(0x0180, MODEL_MISC_IRSPECS, 0xffff, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_IRSCANNER, 0x00ffffff, 0x00000000) + tag(0x2d, 1) + weapon(0x0180, MODEL_CHRCLOAKER, 0xffff, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CLOAKINGDEVICE, 0x00ffffff, 0x00000000) + tag(0x3c, 1) + weapon(0x0180, MODEL_CHRCLOAKER, 0x0003, 0x00104001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CLOAKINGDEVICE, 0x00ffffff, 0x00000000) + tag(0x3d, 1) + door(0x0100, MODEL_DD_GRATE, 0x0185, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00100005, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x3e, 1) + door(0x0100, MODEL_DEVICESECRETDOOR, 0x0186, 0x36000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00100005, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x3f, 1) + door(0x0100, MODEL_DD_GRATE, 0x0187, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00100005, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x40, 1) + door(0x0100, MODEL_CARRINGTONSECRETDOOR, 0x0188, 0x16000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00100005, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x3a, 1) + door(0x0100, MODEL_LASDOOR, 0x0189, 0x06000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0400000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x3b, 1) + door(0x0100, MODEL_LASDOOR, 0x018a, 0x06000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0400000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + camera(0x00c0, MODEL_CCTV_PD, 0x027b, 0x30020102, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x011f0000, 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) + tag(0x41, 1) + door(0x0100, MODEL_DD_GRATE, 0x018b, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00007fff, 0x00014000, 0x00000666, 0x000c0004, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x37, 1) + door(0x0100, MODEL_SECRETINDOOR, 0x0192, 0x10000000, 0x00000000, 0x40000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x93, 1) + hover_prop(0x00eb, MODEL_HOVERCRATE1, 0x0141, 0x35100101, 0x80102300, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x02010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + hoverbike(0x0100, MODEL_HOVBIKE, 0x01f9, 0x05120101, 0x00304300, 0x02000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x01010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x42, 1) + stdobject(0x0100, MODEL_DROPSHIP, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + door(0x0100, MODEL_CH_SHUTTER1, 0x0166, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00007fff, 0x00014000, 0x00000222, 0x00000004, 0x00000020, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000400, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x0167, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x0000e666, 0x00007fff, 0x00014000, 0x00000222, 0x00000004, 0x00000020, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000400, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0168, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0169, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x016a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x016b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x016c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x016d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x016e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x016f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0170, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0171, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0172, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0173, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0174, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0175, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0176, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0177, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0178, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0179, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x017b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x017c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x017d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x017e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x017f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0180, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x0181, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000222, 0x00000004, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000400, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x0182, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000222, 0x00000004, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000400, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0183, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0184, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01d6, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01e1, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01e2, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01e5, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01e6, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01e8, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01e9, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01ea, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01eb, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01ec, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01ed, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01ee, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01ef, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01f0, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01f1, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01f3, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01f4, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01f5, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01f6, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01f7, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01fa, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01fb, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01fc, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01fd, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01fe, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x0200, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x0201, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x0202, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x0204, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x46, 1) + singlemonitor(0x0100, MODEL_GOODPC, 0x022a, 0x000004e1, 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, 0xffffff03) + tag(0x45, 1) + multimonitor(0x0100, MODEL_CIHUB, 0x023e, 0x00000002, 0x00020000, 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, 0x03000000) + tag(0x47, 1) + singlemonitor(0x0100, MODEL_GOODPC, 0x022b, 0x000004e8, 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, 0xffffff03) + tag(0x48, 1) + multimonitor(0x00cc, MODEL_CIHUB, 0x0240, 0x00000002, 0x00020000, 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, 0x14000000) + tag(0x49, 1) + multimonitor(0x00cc, MODEL_CIHUB, 0x0241, 0x00000002, 0x00020000, 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, 0x14000000) + tag(0x4a, 1) + multimonitor(0x00cc, MODEL_CIHUB, 0x0242, 0x00000002, 0x00020000, 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, 0x14000000) + tag(0x4b, 1) + multimonitor(0x00cc, MODEL_CIHUB, 0x0243, 0x00000002, 0x00020000, 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, 0x14000000) + tag(0x4c, 1) + multimonitor(0x0100, MODEL_CIHUB, 0x0247, 0x00000002, 0x00020000, 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, 0x14000000) + tag(0x4d, 1) + multimonitor(0x0100, MODEL_CIHUB, 0x0246, 0x00000002, 0x00020000, 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, 0x14000000) + tag(0x4e, 1) + multimonitor(0x0100, MODEL_CIHUB, 0x0245, 0x00000002, 0x00020000, 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, 0x14000000) + tag(0x4f, 1) + multimonitor(0x0100, MODEL_CIHUB, 0x0244, 0x00000002, 0x00020000, 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, 0x14000000) + tag(0x54, 1) + multimonitor(0x0100, MODEL_CIHUB, 0x024c, 0x00000002, 0x00020000, 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, 0x14000000) + tag(0x55, 1) + multimonitor(0x0100, MODEL_CIHUB, 0x024d, 0x00000002, 0x00020000, 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, 0x14000000) + tag(0x56, 1) + multimonitor(0x0100, MODEL_CIHUB, 0x024e, 0x00000002, 0x00020000, 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, 0x14000000) + tag(0x57, 1) + multimonitor(0x0100, MODEL_CIHUB, 0x024f, 0x00000002, 0x00020000, 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, 0x14000000) + tag(0x58, 15) + tag(0x59, 15) + tag(0x5a, 15) + tag(0x5b, 15) + tag(0x5c, 15) + tag(0x5d, 15) + tag(0x5e, 15) + tag(0x5f, 15) + tag(0x60, 15) + tag(0x61, 15) + tag(0x62, 15) + tag(0x63, 15) + tag(0x64, 15) + tag(0x73, 15) + tag(0x74, 15) + stdobject(0x0100, MODEL_A51_CRATE1, 0x0205, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x0206, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x0207, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x0208, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x0209, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x020a, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x020b, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x020c, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x020d, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x020e, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01d2, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01d3, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x020f, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x0210, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x0211, 0x000205e1, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x67, 12) + tag(0x68, 12) + tag(0x69, 12) + tag(0x6a, 12) + tag(0x6b, 12) + tag(0x6c, 12) + tag(0x6d, 12) + tag(0x6e, 12) + tag(0x6f, 12) + tag(0x70, 12) + tag(0x71, 12) + tag(0x72, 12) + door(0x0100, MODEL_LASDOOR, 0x027c, 0x06000500, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0400000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x027d, 0x06000500, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0400000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x027e, 0x06000500, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0400000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x027f, 0x06000500, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0400000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x0280, 0x06000500, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0400000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x0281, 0x06000500, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0400000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x0282, 0x06000500, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0400000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x0283, 0x06000500, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0400000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x0284, 0x06000500, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0400000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x0285, 0x06000500, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0400000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x0286, 0x06000500, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0400000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x0287, 0x06000500, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0400000b, 0x00000000, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x65, 1) + multimonitor(0x00cc, MODEL_CIHUB, 0x0250, 0x00000002, 0x00020000, 0x00210000, 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, 0x14000000) + tag(0x66, 1) + multimonitor(0x00cc, MODEL_CIHUB, 0x0251, 0x00000002, 0x00020000, 0x00210000, 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, 0x14000000) + tag(0x8b, 1) + autogun(0x00a6, MODEL_CI_ROOFGUN, 0x0235, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00750000, 0x00000000, 0x00005555, 0xffffaaab, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000aaa, 0x00320000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x8c, 1) + autogun(0x00a6, MODEL_CI_ROOFGUN, 0x0234, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x007f0000, 0x00000000, 0x00005555, 0xffffaaab, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000aaa, 0x00320000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x8d, 1) + autogun(0x00a6, MODEL_CI_ROOFGUN, 0x0233, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00970000, 0x00000000, 0x00005555, 0xffffaaab, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000aaa, 0x00320000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x8e, 1) + multimonitor(0x0099, MODEL_CIHUB, 0x0236, 0x00000002, 0x00000001, 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(0x8f, 1) + multimonitor(0x0099, MODEL_CIHUB, 0x0237, 0x00000002, 0x00000001, 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(0x90, 1) + multimonitor(0x0099, MODEL_CIHUB, 0x0238, 0x00000002, 0x00000001, 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) + endprops +}; + +/** + * Wait until seeing player (without cloak) then assign colleague. + */ +u8 func041d_init_collegue_when_sighted[] = { + restart_timer + + beginloop(0x04) + if_chr_sees_player(/*goto*/ 0x2f) + endloop(0x04) + + label(0x2f) + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + if_stage_flag_eq(STAGEFLAG_TRIGGER_CLOAK, TRUE, /*goto*/ 0x2f) + set_function(CHR_SELF, FUNC_COLLEAGUE) + + label(0x2f) + goto_first(0x04) + + endfunction +}; + +u8 func041e_colleague[] = { + set_return_function(CHR_SELF, FUNC_COLLEAGUE) + if_alertness(1, OPERATOR_LESS_THAN, /*goto*/ 0x04) + if_alertness(2, OPERATOR_LESS_THAN, /*goto*/ 0x7c) + if_alertness(3, OPERATOR_LESS_THAN, /*goto*/ 0x7d) + + beginloop(0x04) + // Wait until player in sight and not doing idle animations already + if_target_chr_in_sight(/*goto*/ 0x2f) + if_chr_idle(/*goto*/ 0x06) + if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, FALSE, BANK_1, /*goto*/ 0x7f) + animation(0x0227, 0, -1, 0x1400, CHR_SELF, 2) + reloop(0x04) + + // Player not in sight - 2 in 255 chance of doing a bored animation + label(0x7f) + call_rng + if_rand_gt(1, /*goto*/ 0x06) + set_function(CHR_SELF, GFUNC_DO_BORED_ANIMATION) + label(0x06) + reloop(0x04) + + // Player is in sight - prepare to talk + label(0x2f) + restart_timer + label(0x08) + if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x06) + try_face_entity(0x0200, 0x0000, /*goto*/ 0x09) + + beginloop(0x09) + if_angle_to_target_chr_lt(10, /*goto*/ 0x06) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x7f) + do_special_animation(3) + goto_next(0x2f) + + label(0x7f) + animation(ANIM_SITTING_0265, 0, -1, 0x1400, CHR_SELF, 2) + label(0x2f) + play_chr_specific_quip(BANK_0, CHANNEL_6) + restart_timer + + beginloop(0x57) + if_sound_finished(CHANNEL_6, /*goto*/ 0x06) + endloop(0x57) + + label(0x06) + if_var_a_lt(6, /*goto*/ 0x06) + goto_next(0x7e) + + label(0x06) + restart_timer + stop_chr + try_face_entity(0x0200, 0x0000, /*goto*/ 0x59) + + beginloop(0x59) + if_target_chr_in_sight(/*goto*/ 0x06) + endloop(0x59) + + label(0x06) + if_timer_gt(120, /*goto*/ 0x06) + goto_first(0x59) + + label(0x06) + if_player_looking_at_something_maybe(0x14, 0x01, 0x00, /*goto*/ 0x06) + goto_first(0x59) + + label(0x06) + do_special_animation(-1) + label(0x06) + play_chr_specific_quip(BANK_1, CHANNEL_6) + restart_timer + + beginloop(0x5b) + if_sound_finished(CHANNEL_6, /*goto*/ 0x7e) + endloop(0x5b) + + label(0x7e) + if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x7f) + stop_chr + label(0x7f) + set_alertness(1) + label(0x7c) + restart_timer + + beginloop(0x0a) + if_timer_lt(600, /*goto*/ 0x2f) + if_target_chr_in_sight(/*goto*/ 0x06) + goto_next(0x2f) + + label(0x06) + if_player_looking_at_something_maybe(0x14, 0x01, 0x00, /*goto*/ 0x30) + label(0x2f) + if_chr_idle(/*goto*/ 0x06) + if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, FALSE, BANK_1, /*goto*/ 0x7f) + set_function(CHR_SELF, GFUNC_DO_SITTING_ANIMATION) + reloop(0x04) + + label(0x7f) + call_rng + if_rand_gt(1, /*goto*/ 0x06) + set_function(CHR_SELF, GFUNC_DO_BORED_ANIMATION) + label(0x06) + endloop(0x0a) + + label(0x30) + if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x7f) + do_special_animation(-1) + goto_next(0x06) + + label(0x7f) + animation(ANIM_SITTING_0265, 0, -1, 0x1400, CHR_SELF, 2) + label(0x06) + play_chr_specific_quip(BANK_2, CHANNEL_6) + restart_timer + + beginloop(0x5c) + if_sound_finished(CHANNEL_6, /*goto*/ 0x06) + endloop(0x5c) + + label(0x06) + if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x7f) + stop_chr + label(0x7f) + set_alertness(2) + label(0x7d) + yield + if_chr_idle(/*goto*/ 0x06) + if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, FALSE, BANK_1, /*goto*/ 0x7f) + set_function(CHR_SELF, GFUNC_DO_SITTING_ANIMATION) + endloop(0x04) + + label(0x7f) + call_rng + if_rand_gt(1, /*goto*/ 0x06) + set_function(CHR_SELF, GFUNC_DO_BORED_ANIMATION) + + label(0x06) + goto_first(0x7d) + + endfunction +}; + +u8 func041f_colleague1[] = { + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_UNEXPLODABLE) + set_var_a(0) + set_function(CHR_SELF, FUNC_COLLEAGUE) + endfunction +}; + +u8 func0420_colleague2[] = { + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_UNEXPLODABLE) + set_var_a(1) + set_function(CHR_SELF, FUNC_COLLEAGUE) + endfunction +}; + +u8 func0421_colleague3[] = { + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_UNEXPLODABLE) + set_var_a(2) + set_function(CHR_SELF, FUNC_COLLEAGUE) + endfunction +}; + +u8 func0422_colleague4[] = { + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_UNEXPLODABLE) + set_var_a(3) + set_function(CHR_SELF, FUNC_COLLEAGUE) + endfunction +}; + +u8 func0423_colleague5[] = { + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_UNEXPLODABLE) + set_var_a(4) + set_function(CHR_SELF, FUNC_COLLEAGUE) + endfunction +}; + +u8 func0424_colleague6[] = { + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_UNEXPLODABLE) + set_var_a(5) + set_function(CHR_SELF, FUNC_COLLEAGUE) + endfunction +}; + +u8 func0425_colleague7[] = { + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_UNEXPLODABLE) + set_var_a(6) + set_function(CHR_SELF, FUNC_COLLEAGUE) + endfunction +}; + +u8 func0426_colleague8[] = { + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_UNEXPLODABLE) + set_var_a(7) + set_function(CHR_SELF, FUNC_COLLEAGUE) + endfunction +}; + +u8 func0427_colleague9[] = { + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_UNEXPLODABLE) + set_var_a(8) + set_function(CHR_SELF, FUNC_COLLEAGUE) + endfunction +}; + +u8 func0428_colleague10[] = { + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_UNEXPLODABLE) + set_var_a(9) + set_function(CHR_SELF, FUNC_COLLEAGUE) + endfunction +}; + +u8 func1001_set_jo_alliance[] = { + yield + set_chr_alliance(CHR_JOANNA, 0x32) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1002_devicetraining_camspy[] = { + label(0x80) + beginloop(0x0f) + if_stage_flag_eq(STAGEFLAG_TRIGGER_CAMSPY, TRUE, /*goto*/ 0x81) + endloop(0x0f) + + label(0x81) + hide_object(0x0e) + lock_door(0x31, 0x40) + lock_door(0x8a, 0x40) + lock_door(0x89, 0x40) + show_object(OBJ_CAMSPY) + move_object_to_pad(OBJ_CAMSPY, 0x011d) + unset_object_flag_bank0(OBJ_CAMSPY, OBJECTFLAG0_00100000) + unset_object_flag_bank1(OBJ_CAMSPY, OBJECTFLAG1_INVISIBLE) + unset_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + close_door(0x31) + close_door(0x8a) + close_door(0x89) + yield + show_object(0x0e) + + label(0x8c) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c14) // "Collect CamSpy from table to begin." + restart_timer + + beginloop(0x86) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_chr_has_object(CHR_JOANNA, OBJ_CAMSPY, /*goto*/ 0x2f) + if_timer_gt(1200, /*goto*/ 0x06) + endloop(0x86) + + label(0x06) + goto_first(0x8c) + + label(0x2f) + label(0x8d) + remove_displayed_text + if_chr_weapon_equipped(CHR_JOANNA, WEAPON_CAMSPY, /*goto*/ 0x2f) + display_text(0x01, COLOR_04_ORANGE, 0x1c39) // "Select the CamSpy. - Hold A Button. - Use Control Stick to change selection. - Highlight CamSpy and release A Button." + restart_timer + + beginloop(0x8e) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_has_weapon_equipped(CHR_JOANNA, WEAPON_CAMSPY, /*goto*/ 0x2f) + if_timer_gt(1200, /*goto*/ 0x06) + endloop(0x8e) + + label(0x06) + goto_first(0x8d) + + label(0x2f) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c15) // "Locate Info Room PC and holograph it." + + beginloop(0x82) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_door_state(0x31, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x85) + if_door_state(0x8a, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x85) + if_door_state(0x89, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x85) + if_training_pc_holographed(/*goto*/ 0x09) + endloop(0x82) + + label(0x09) + remove_displayed_text + message(CHR_JOANNA, 0x1c16) // "Info Room PC successfully holographed." + restart_timer + + beginloop(0x0c) + if_timer_gt(240, /*goto*/ 0x83) + endloop(0x0c) + + label(0x85) + dprint 'f','a','i','l',0, + set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_FAILURE) + goto_next(0x84) + + label(0x83) + dprint 'd','o','n','e',0, + yield + set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_SUCCESS) + set_eeprom_flag(EEPROMFLAG_CI_CAMSPY_DONE) + label(0x84) + if_chr_in_room(CHR_JOANNA, 0x00, 0x001e, /*goto*/ 0x90) + label(0x90) + set_stage_flag(STAGEFLAG_CONSIDER_WARP) + unlock_door(0x31, 0x40) + unlock_door(0x8a, 0x40) + unlock_door(0x89, 0x40) + remove_displayed_text + hide_object(OBJ_CAMSPY) + goto_first(0x0f) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1003_devicetraining_nightvision[] = { + label(0x80) + + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_TRIGGER_NIGHTVISION, TRUE, /*goto*/ 0x81) + endloop(0x08) + + label(0x81) + set_lights_state(0x0030, 0x01, 0x00, 0x00, 0x00) + set_lights_state(0x002e, 0x01, 0x00, 0x00, 0x00) + set_lights_state(0x002f, 0x01, 0x00, 0x00, 0x00) + set_lights_state(0x0020, 0x01, 0x00, 0x00, 0x00) + set_lights_state(0x0024, 0x01, 0x00, 0x00, 0x00) + set_lights_state(0x0025, 0x01, 0x00, 0x00, 0x00) + set_lights_state(0x0026, 0x01, 0x00, 0x00, 0x00) + set_lights_state(0x0022, 0x01, 0x00, 0x00, 0x00) + set_stage_flag(STAGEFLAG_IN_TRAINING) + lock_door(0x31, 0x40) + lock_door(0x8a, 0x40) + lock_door(0x89, 0x40) + show_object(0x27) + move_object_to_pad(0x27, 0x011d) + unset_object_flag_bank0(0x27, OBJECTFLAG0_00100000) + unset_object_flag_bank1(0x27, OBJECTFLAG1_INVISIBLE) + unset_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + close_door(0x31) + close_door(0x8a) + close_door(0x89) + + label(0x8c) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c08) // "Collect Night Vision from table to begin." + restart_timer + + beginloop(0x86) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_chr_has_object(CHR_JOANNA, 0x27, /*goto*/ 0x2f) + if_timer_gt(1200, /*goto*/ 0x06) + endloop(0x86) + + label(0x06) + goto_first(0x8c) + + label(0x2f) + label(0x8d) + remove_displayed_text + if_chr_weapon_equipped(CHR_JOANNA, WEAPON_NIGHTVISION, /*goto*/ 0x2f) + display_text(0x01, COLOR_04_ORANGE, 0x1c3a) // "Select the Night Vision. - Hold A Button. - Use Control Stick to change selection. - Highlight Night Vision and release A Button." + restart_timer + + beginloop(0x8e) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_has_weapon_equipped(CHR_JOANNA, WEAPON_NIGHTVISION, /*goto*/ 0x2f) + if_timer_gt(1200, /*goto*/ 0x06) + endloop(0x8e) + + label(0x06) + goto_first(0x8d) + + label(0x2f) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c09) // "Activate the Night Vision. Locate the light switch. Turn the lights back on." + + beginloop(0x82) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_chr_activated_object(CHR_F3, OBJ_LIGHTSWITCH, /*goto*/ 0x2f) + endloop(0x82) + + label(0x2f) + play_sound(0x00ba, -1) + set_lights_state(0x0030, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x002e, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x002f, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0020, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0024, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0025, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0026, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0022, 0x01, 0xff, 0x00, 0x00) + remove_displayed_text + message(CHR_JOANNA, 0x1c17) // "Lights have been reactivated." + restart_timer + + beginloop(0x0d) + if_timer_gt(240, /*goto*/ 0x83) + endloop(0x0d) + + label(0x85) + dprint 'f','a','i','l',0, + set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_FAILURE) + goto_next(0x84) + + label(0x83) + set_eeprom_flag(EEPROMFLAG_CI_NIGHTVISION_DONE) + dprint 'd','o','n','e',0, + set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_SUCCESS) + set_lights_state(0x0030, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x002e, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x002f, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0020, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0024, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0025, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0026, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0022, 0x01, 0xff, 0x00, 0x00) + yield + label(0x84) + if_chr_in_room(CHR_JOANNA, 0x00, 0x001e, /*goto*/ 0x90) + label(0x90) + unlock_door(0x31, 0x40) + unlock_door(0x8a, 0x40) + unlock_door(0x89, 0x40) + set_stage_flag(STAGEFLAG_CONSIDER_WARP) + remove_displayed_text + hide_object(0x27) + + beginloop(0x59) + if_stage_flag_eq(STAGEFLAG_TRIGGER_NIGHTVISION, FALSE, /*goto*/ 0x2f) + endloop(0x59) + + label(0x2f) + goto_first(0x08) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1004_devicetraining_doordecoder[] = { + label(0x80) + + beginloop(0x0f) + if_stage_flag_eq(STAGEFLAG_TRIGGER_DOORDECODER, TRUE, /*goto*/ 0x81) + endloop(0x0f) + + label(0x81) + set_object_flag_bank1(0x88, OBJECTFLAG1_INVISIBLE) + set_stage_flag(STAGEFLAG_IN_TRAINING) + lock_door(0x31, 0x40) + lock_door(0x8a, 0x40) + lock_door(0x89, 0x40) + show_object(0x28) + move_object_to_pad(0x28, 0x011d) + unset_object_flag_bank0(0x28, OBJECTFLAG0_00100000) + unset_object_flag_bank1(0x28, OBJECTFLAG1_INVISIBLE) + unset_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + close_door(0x31) + close_door(0x8a) + close_door(0x89) + label(0x8c) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c18) // "Collect Door Decoder from table to begin." + restart_timer + + beginloop(0x86) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_chr_has_object(CHR_JOANNA, 0x28, /*goto*/ 0x2f) + if_timer_gt(1200, /*goto*/ 0x06) + endloop(0x86) + + label(0x06) + goto_first(0x8c) + + label(0x2f) + label(0x8d) + remove_displayed_text + if_chr_weapon_equipped(CHR_JOANNA, WEAPON_DOORDECODER, /*goto*/ 0x2f) + display_text(0x01, COLOR_04_ORANGE, 0x1c3b) // "Select the Door Decoder. - Hold A Button. - Use Control Stick to change selection. - Highlight Door Decoder and release A Button." + restart_timer + + beginloop(0x8e) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_weapon_equipped(CHR_JOANNA, WEAPON_DOORDECODER, /*goto*/ 0x2f) + if_timer_gt(1200, /*goto*/ 0x06) + endloop(0x8e) + + label(0x06) + goto_first(0x8d) + + label(0x2f) + if_chr_activated_object(CHR_JOANNA, 0x35, /*goto*/ 0x2f) + label(0x2f) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c19) // "Use Decoder on door pad to unlock it." + + beginloop(0x82) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_door_state(0x31, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x85) + if_door_state(0x8a, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x85) + if_door_state(0x89, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x85) + if_chr_activated_object(CHR_JOANNA, 0x35, /*goto*/ 0x09) + endloop(0x82) + + label(0x09) + if_chr_weapon_equipped(CHR_JOANNA, WEAPON_DOORDECODER, /*goto*/ 0x06) + remove_displayed_text + message(CHR_JOANNA, 0x1c1a) // "You need to be holding the Door Decoder." + restart_timer + + beginloop(0x0e) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_timer_gt(60, /*goto*/ 0x2f) + endloop(0x0e) + + label(0x2f) + goto_first(0x82) + + label(0x06) + remove_displayed_text + message(CHR_JOANNA, 0x1c1b) // "Decoder attached. Initiating cracking routines..." + unset_object_flag_bank1(0x88, OBJECTFLAG1_INVISIBLE) + assign_sound(0x8144, CHANNEL_1) + play_sound_from_object(CHANNEL_1, 0x35, 0x012c, 0x0190) + restart_timer + + beginloop(0x0c) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_timer_gt(240, /*goto*/ 0x2f) + endloop(0x0c) + + label(0x2f) + mute_channel(CHANNEL_1) + assign_sound(0x8145, CHANNEL_1) + control_sound_from_object(CHANNEL_1, 0x35, TRUE) + remove_displayed_text + message(CHR_JOANNA, 0x1c1c) // "Decoding complete. Door has been unlocked." + unlock_door(0x41, 0x40) + restart_timer + + beginloop(0x0d) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_timer_gt(240, /*goto*/ 0x83) + endloop(0x0d) + + label(0x85) + dprint 'f','a','i','l',0, + set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_FAILURE) + goto_next(0x84) + + label(0x83) + set_eeprom_flag(EEPROMFLAG_CI_DOORDECODER_DONE) + dprint 'd','o','n','e',0, + yield + set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_SUCCESS) + unset_object_flag_bank1(0x88, OBJECTFLAG1_INVISIBLE) + label(0x84) + if_chr_in_room(CHR_JOANNA, 0x00, 0x001e, /*goto*/ 0x90) + label(0x90) + mute_channel(CHANNEL_1) + unlock_door(0x31, 0x40) + unlock_door(0x8a, 0x40) + unlock_door(0x89, 0x40) + set_stage_flag(STAGEFLAG_CONSIDER_WARP) + remove_displayed_text + hide_object(0x28) + goto_first(0x0f) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1005_devicetraining_xray[] = { + label(0x80) + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_TRIGGER_XRAY, TRUE, /*goto*/ 0x81) + endloop(0x08) + + label(0x81) + lock_door(0x31, 0x40) + lock_door(0x8a, 0x40) + lock_door(0x89, 0x40) + dprint 't','r','a','i','n','i','n','g',0, + show_object(0x29) + move_object_to_pad(0x29, 0x011d) + unset_object_flag_bank0(0x29, OBJECTFLAG0_00100000) + unset_object_flag_bank1(0x29, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank1(0x38, OBJECTFLAG1_00000001) + unset_object_flag_bank1(0x39, OBJECTFLAG1_00000001) + unset_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + close_door(0x31) + close_door(0x8a) + close_door(0x89) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + label(0x8c) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c23) // "Collect X-Ray Scanner from table to begin." + restart_timer + + beginloop(0x86) + if_chr_has_weapon_equipped(CHR_JOANNA, WEAPON_XRAYSCANNER, /*goto*/ 0x2f) + set_object_flag_bank0(0x38, OBJECTFLAG0_02000000) + set_object_flag_bank0(0x39, OBJECTFLAG0_02000000) + goto_next(0x30) + + label(0x2f) + unset_object_flag_bank0(0x38, OBJECTFLAG0_02000000) + unset_object_flag_bank0(0x39, OBJECTFLAG0_02000000) + label(0x30) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_chr_has_object(CHR_JOANNA, 0x29, /*goto*/ 0x2f) + if_timer_gt(1200, /*goto*/ 0x06) + endloop(0x86) + + label(0x06) + goto_first(0x8c) + + label(0x8d) + remove_displayed_text + if_chr_weapon_equipped(CHR_JOANNA, WEAPON_XRAYSCANNER, /*goto*/ 0x2f) + display_text(0x01, COLOR_04_ORANGE, 0x1c3c) // "Select the X-Ray Scanner. - Hold A Button. - Use Control Stick to change selection. - Highlight X-Ray Scanner and release A Button." + restart_timer + + beginloop(0x8e) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_has_weapon_equipped(CHR_JOANNA, WEAPON_XRAYSCANNER, /*goto*/ 0x2f) + if_timer_gt(1200, /*goto*/ 0x06) + endloop(0x8e) + + label(0x06) + goto_first(0x8d) + + label(0x2f) + remove_displayed_text + message(CHR_JOANNA, 0x1c24) // "Find hidden switches to shut down laser grid." + + beginloop(0x82) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_chr_has_weapon_equipped(CHR_JOANNA, WEAPON_XRAYSCANNER, /*goto*/ 0x2f) + set_object_flag_bank0(0x38, OBJECTFLAG0_02000000) + set_object_flag_bank0(0x39, OBJECTFLAG0_02000000) + goto_next(0x30) + + label(0x2f) + unset_object_flag_bank0(0x38, OBJECTFLAG0_02000000) + unset_object_flag_bank0(0x39, OBJECTFLAG0_02000000) + label(0x30) + if_chr_activated_object(CHR_JOANNA, 0x38, /*goto*/ 0x5b) + if_chr_activated_object(CHR_JOANNA, 0x39, /*goto*/ 0x5c) + endloop(0x82) + + label(0x5b) + if_object_flag_bank1(0x38, OBJECTFLAG1_00000001, /*goto*/ 0x87) + remove_displayed_text + message(CHR_JOANNA, 0x1c29) // "Laser Grid 1 has been deactivated." + set_object_image(0x38, 0x00, 0x12) + set_object_flag_bank1(0x38, OBJECTFLAG1_00000001) + open_door(0x3a) + label(0x87) + restart_timer + + beginloop(0x89) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x85) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x85) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x85) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x89) + + label(0x5c) + if_object_flag_bank1(0x39, OBJECTFLAG1_00000001, /*goto*/ 0x88) + set_object_image(0x39, 0x00, 0x12) + remove_displayed_text + message(CHR_JOANNA, 0x1c2a) // "Laser Grid 2 has been deactivated." + set_object_flag_bank1(0x39, OBJECTFLAG1_00000001) + open_door(0x3b) + label(0x88) + restart_timer + + beginloop(0x8a) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x8a) + + label(0x8b) + hide_object(0x3a) + goto_next(0x06) + + label(0x07) + hide_object(0x3b) + goto_next(0x06) + + label(0x06) + if_object_flag_bank1(0x38, OBJECTFLAG1_00000001, /*goto*/ 0x2f) + goto_first(0x82) + + label(0x2f) + if_object_flag_bank1(0x39, OBJECTFLAG1_00000001, /*goto*/ 0x2f) + goto_first(0x82) + + label(0x09) + restart_timer + + beginloop(0x5b) + if_timer_gt(120, /*goto*/ 0x2f) + endloop(0x5b) + + label(0x2f) + remove_displayed_text + message(CHR_JOANNA, 0x1c25) // "All laser grids have been deactivated." + restart_timer + + beginloop(0x0e) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_timer_gt(240, /*goto*/ 0x83) + endloop(0x0e) + + label(0x85) + dprint 'f','a','i','l',0, + set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_FAILURE) + goto_next(0x84) + + label(0x83) + set_eeprom_flag(EEPROMFLAG_CI_XRAY_DONE) + dprint 'd','o','n','e',0, + yield + set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_SUCCESS) + label(0x84) + if_chr_in_room(CHR_JOANNA, 0x00, 0x001e, /*goto*/ 0x90) + label(0x90) + unlock_door(0x31, 0x40) + unlock_door(0x8a, 0x40) + unlock_door(0x89, 0x40) + set_stage_flag(STAGEFLAG_CONSIDER_WARP) + remove_displayed_text + hide_object(0x29) + goto_first(0x08) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1006_devicetraining_disguise[] = { + label(0x80) + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_TRIGGER_DISGUISE, TRUE, /*goto*/ 0x81) + endloop(0x08) + + label(0x81) + unset_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_DISGUISED) + unset_stage_flag(STAGEFLAG_DISGUISE_FAILED) + unset_stage_flag(STAGEFLAG_DISGUISE_COMPLETE) + lock_door(0x31, 0x40) + lock_door(0x8a, 0x40) + lock_door(0x89, 0x40) + dprint 't','r','a','i','n','i','n','g',0, + show_object(0x2a) + move_object_to_pad(0x2a, 0x011d) + unset_object_flag_bank0(0x2a, OBJECTFLAG0_00100000) + unset_object_flag_bank1(0x2a, OBJECTFLAG1_INVISIBLE) + set_function(0x03, FUNC_GRIMSHAW_DISGUISE) + unset_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + close_door(0x31) + close_door(0x8a) + close_door(0x89) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + label(0x8c) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c26) // "Collect Disguise from table to begin." + restart_timer + + beginloop(0x86) + if_stage_flag_eq(STAGEFLAG_DISGUISE_FAILED, TRUE, /*goto*/ 0x0a) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_chr_has_object(CHR_JOANNA, 0x2a, /*goto*/ 0x2f) + if_timer_gt(1200, /*goto*/ 0x06) + endloop(0x86) + + label(0x06) + goto_first(0x8c) + + label(0x2f) + label(0x8d) + remove_displayed_text + if_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_DISGUISED, /*goto*/ 0x2f) + display_text(0x01, COLOR_04_ORANGE, 0x1c3d) // "Select the Disguise. - Hold A Button. - Use Control Stick to change selection. - Highlight Disguise and release A Button." + restart_timer + + beginloop(0x8e) + if_stage_flag_eq(STAGEFLAG_DISGUISE_FAILED, TRUE, /*goto*/ 0x0a) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_DISGUISED, /*goto*/ 0x2f) + if_timer_gt(1200, /*goto*/ 0x06) + endloop(0x8e) + + label(0x06) + goto_first(0x8d) + + label(0x2f) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c27) // "Fool someone into giving you Cloaking Device." + + beginloop(0x82) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_door_state(0x31, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x85) + if_door_state(0x8a, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x85) + if_door_state(0x89, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x85) + if_stage_flag_eq(STAGEFLAG_DISGUISE_COMPLETE, TRUE, /*goto*/ 0x09) + if_stage_flag_eq(STAGEFLAG_DISGUISE_FAILED, TRUE, /*goto*/ 0x0a) + endloop(0x82) + + label(0x09) + remove_displayed_text + message(CHR_JOANNA, 0x1c28) // "Cloaking Device successfully retrieved." + restart_timer + + beginloop(0x0e) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_timer_gt(240, /*goto*/ 0x83) + endloop(0x0e) + + label(0x0a) + remove_displayed_text + message(CHR_JOANNA, 0x1c2f) // "You're meant to use the Disguise, remember?" + restart_timer + + beginloop(0x0f) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + label(0x59) + if_timer_gt(240, /*goto*/ 0x85) + endloop(0x0f) + + label(0x85) + dprint 'f','a','i','l',0, + set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_FAILURE) + goto_next(0x84) + + label(0x83) + set_eeprom_flag(EEPROMFLAG_CI_DISGUISE_DONE) + dprint 'd','o','n','e',0, + yield + set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_SUCCESS) + label(0x84) + if_chr_in_room(CHR_JOANNA, 0x00, 0x001e, /*goto*/ 0x90) + label(0x90) + unlock_door(0x31, 0x40) + unlock_door(0x8a, 0x40) + unlock_door(0x89, 0x40) + set_stage_flag(STAGEFLAG_CONSIDER_WARP) + remove_displayed_text + hide_object(0x2a) + + beginloop(0x6d) + if_stage_flag_eq(STAGEFLAG_TRIGGER_DISGUISE, FALSE, /*goto*/ 0x2f) + endloop(0x6d) + + label(0x2f) + set_function(0x03, FUNC_INIT_COLLEAGUE_WHEN_SIGHTED) + goto_first(0x08) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1007_devicetrainign_ir[] = { + label(0x80) + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_TRIGGER_IR, TRUE, /*goto*/ 0x81) + endloop(0x08) + + label(0x81) + if_chr_activated_object(CHR_JOANNA, 0x37, /*goto*/ 0x2f) + label(0x2f) + lock_door(0x31, 0x40) + lock_door(0x8a, 0x40) + lock_door(0x89, 0x40) + dprint 't','r','a','i','n','i','n','g',0, + show_object(0x2b) + move_object_to_pad(0x2b, 0x011d) + unset_object_flag_bank0(0x2b, OBJECTFLAG0_00100000) + unset_object_flag_bank1(0x2b, OBJECTFLAG1_INVISIBLE) + unset_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + close_door(0x31) + close_door(0x8a) + close_door(0x89) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + label(0x8c) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c20) // "Collect IR Scanner from table to begin." + restart_timer + + beginloop(0x86) + if_chr_has_weapon_equipped(CHR_JOANNA, WEAPON_IRSCANNER, /*goto*/ 0x2f) + set_object_flag_bank0(0x37, OBJECTFLAG0_02000000) + goto_next(0x30) + label(0x2f) + unset_object_flag_bank0(0x37, OBJECTFLAG0_02000000) + label(0x30) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_chr_has_object(CHR_JOANNA, 0x2b, /*goto*/ 0x2f) + if_timer_gt(1200, /*goto*/ 0x06) + endloop(0x86) + + label(0x06) + goto_first(0x8c) + + label(0x2f) + label(0x8d) + remove_displayed_text + if_chr_has_weapon_equipped(CHR_JOANNA, WEAPON_IRSCANNER, /*goto*/ 0x2f) + display_text(0x01, COLOR_04_ORANGE, 0x1c3e) // "Select the IR Scanner. - Hold A Button. - Use Control Stick to change selection. - Highlight IR Scanner and release A Button." + restart_timer + + beginloop(0x8e) + if_chr_has_weapon_equipped(CHR_JOANNA, WEAPON_IRSCANNER, /*goto*/ 0x2f) + set_object_flag_bank0(0x37, OBJECTFLAG0_02000000) + goto_next(0x30) + + label(0x2f) + unset_object_flag_bank0(0x37, OBJECTFLAG0_02000000) + label(0x30) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_has_weapon_equipped(CHR_JOANNA, WEAPON_IRSCANNER, /*goto*/ 0x2f) + if_timer_gt(1200, /*goto*/ 0x06) + endloop(0x8e) + + label(0x06) + goto_first(0x8d) + + label(0x2f) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c21) // "Locate secret door using IR Scanner." + + beginloop(0x82) + if_chr_has_weapon_equipped(CHR_JOANNA, WEAPON_IRSCANNER, /*goto*/ 0x2f) + set_object_flag_bank0(0x37, OBJECTFLAG0_02000000) + goto_next(0x30) + label(0x2f) + unset_object_flag_bank0(0x37, OBJECTFLAG0_02000000) + label(0x30) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_door_state(0x31, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x85) + if_door_state(0x8a, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x85) + if_door_state(0x89, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x85) + if_chr_activated_object(CHR_JOANNA, 0x37, /*goto*/ 0x09) + endloop(0x82) + + label(0x09) + remove_displayed_text + message(CHR_JOANNA, 0x1c22) // "Secret door has been successfully located." + restart_timer + + beginloop(0x0e) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_timer_gt(240, /*goto*/ 0x83) + endloop(0x0e) + + label(0x85) + dprint 'f','a','i','l',0, + set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_FAILURE) + goto_next(0x84) + + label(0x83) + set_eeprom_flag(EEPROMFLAG_CI_IR_DONE) + dprint 'd','o','n','e',0, + yield + set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_SUCCESS) + label(0x84) + if_chr_in_room(CHR_JOANNA, 0x00, 0x001e, /*goto*/ 0x90) + label(0x90) + unlock_door(0x31, 0x40) + unlock_door(0x8a, 0x40) + unlock_door(0x89, 0x40) + set_stage_flag(STAGEFLAG_CONSIDER_WARP) + remove_displayed_text + hide_object(0x2b) + goto_first(0x08) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1008_devicetraining_rtracker[] = { + label(0x80) + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_TRIGGER_RTRACKER, TRUE, /*goto*/ 0x81) + endloop(0x08) + + label(0x81) + lock_door(0x31, 0x40) + lock_door(0x8a, 0x40) + lock_door(0x89, 0x40) + dprint 't','r','a','i','n','i','n','g',0, + show_object(0x2c) + move_object_to_pad(0x2c, 0x011d) + unset_object_flag_bank0(0x2c, OBJECTFLAG0_00100000) + unset_object_flag_bank1(0x2c, OBJECTFLAG1_INVISIBLE) + unset_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + close_door(0x31) + close_door(0x8a) + close_door(0x89) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + label(0x8c) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c1d) // "Collect Tracker from table to begin." + restart_timer + + beginloop(0x86) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_chr_has_object(CHR_JOANNA, 0x2c, /*goto*/ 0x2f) + if_timer_gt(1200, /*goto*/ 0x06) + endloop(0x86) + + label(0x06) + goto_first(0x8c) + + label(0x2f) + label(0x8d) + remove_displayed_text + if_chr_has_weapon_equipped(CHR_JOANNA, WEAPON_RTRACKER, /*goto*/ 0x2f) + display_text(0x01, COLOR_04_ORANGE, 0x1c3f) // "Select the Tracker. - Hold A Button. - Use Control Stick to change selection. - Highlight Tracker and release A Button." + restart_timer + + beginloop(0x8e) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_has_weapon_equipped(CHR_JOANNA, WEAPON_RTRACKER, /*goto*/ 0x2f) + if_timer_gt(1200, /*goto*/ 0x06) + endloop(0x8e) + + label(0x06) + goto_first(0x8d) + + label(0x2f) + unset_object_flag_bank0(0x36, OBJECTFLAG0_00100000) + unset_object_flag_bank1(0x36, OBJECTFLAG1_INVISIBLE) + show_object(0x36) + move_object_to_pad(0x36, 0x011e) + set_object_flag_bank2(0x36, OBJECTFLAG2_RTRACKED_YELLOW) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c1e) // "Locate IR Scanner using Tracker." + + beginloop(0x82) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_door_state(0x31, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x85) + if_door_state(0x8a, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x85) + if_door_state(0x89, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x85) + if_chr_has_object(CHR_JOANNA, 0x36, /*goto*/ 0x09) + endloop(0x82) + + label(0x09) + remove_displayed_text + message(CHR_JOANNA, 0x1c1f) // "IR Scanner has been successfully located." + restart_timer + + beginloop(0x0e) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_timer_gt(240, /*goto*/ 0x83) + endloop(0x0e) + + label(0x85) + dprint 'f','a','i','l',0, + set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_FAILURE) + goto_next(0x84) + + label(0x83) + set_eeprom_flag(EEPROMFLAG_CI_RTRACKER_DONE) + dprint 'd','o','n','e',0, + yield + set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_SUCCESS) + label(0x84) + if_chr_in_room(CHR_JOANNA, 0x00, 0x001e, /*goto*/ 0x90) + label(0x90) + unlock_door(0x31, 0x40) + unlock_door(0x8a, 0x40) + unlock_door(0x89, 0x40) + set_stage_flag(STAGEFLAG_CONSIDER_WARP) + remove_displayed_text + hide_object(0x2c) + hide_object(0x36) + goto_first(0x08) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1009_devicetraining_cloak[] = { + label(0x80) + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_TRIGGER_CLOAK, TRUE, /*goto*/ 0x81) + endloop(0x08) + + label(0x81) + deactivate_alarm + unset_stage_flag(STAGEFLAG_GENERAL_PURPOSE) + lock_door(0x31, 0x40) + lock_door(0x8a, 0x40) + lock_door(0x89, 0x40) + dprint 't','r','a','i','n','i','n','g',0, + restart_timer + show_object(0x2d) + move_object_to_pad(0x2d, 0x011d) + unset_stage_flag(STAGEFLAG_CLOAK_FAILED) + unset_stage_flag(STAGEFLAG_CLOAK_COMPLETE) + unset_object_flag_bank0(0x2d, OBJECTFLAG0_00100000) + unset_object_flag_bank1(0x2d, OBJECTFLAG1_INVISIBLE) + unset_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + close_door(0x31) + close_door(0x8a) + close_door(0x89) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + label(0x8c) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c33) // "Collect Cloaking Device from table to begin." + restart_timer + + beginloop(0x86) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_stage_flag_eq(STAGEFLAG_CLOAK_COMPLETE, TRUE, /*goto*/ 0x09) + if_stage_flag_eq(STAGEFLAG_CLOAK_FAILED, TRUE, /*goto*/ 0x0a) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_chr_has_object(CHR_JOANNA, 0x2d, /*goto*/ 0x2f) + if_timer_gt(1200, /*goto*/ 0x06) + endloop(0x86) + + label(0x06) + goto_first(0x8c) + + label(0x2f) + set_function(CHR_CARRINGTON, FUNC_CARRINGTON_CLOAK) + label(0x8d) + remove_displayed_text + if_chr_has_weapon_equipped(CHR_JOANNA, WEAPON_CLOAKINGDEVICE, /*goto*/ 0x2f) + display_text(0x01, COLOR_04_ORANGE, 0x1c40) // "Select the Cloaking Device. - Hold A Button. - Use Control Stick to change selection. - Highlight Device and release A Button." + restart_timer + + beginloop(0x8e) + if_stage_flag_eq(STAGEFLAG_CLOAK_COMPLETE, TRUE, /*goto*/ 0x09) + if_stage_flag_eq(STAGEFLAG_CLOAK_FAILED, TRUE, /*goto*/ 0x0a) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_has_weapon_equipped(CHR_JOANNA, WEAPON_CLOAKINGDEVICE, /*goto*/ 0x2f) + if_timer_gt(1200, /*goto*/ 0x06) + endloop(0x8e) + + label(0x06) + goto_first(0x8d) + + label(0x2f) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c34) // "Use Cloaking Device and locate Carrington." + + beginloop(0x82) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_door_state(0x31, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x85) + if_door_state(0x8a, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x85) + if_door_state(0x89, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x85) + if_stage_flag_eq(STAGEFLAG_CLOAK_COMPLETE, TRUE, /*goto*/ 0x09) + if_stage_flag_eq(STAGEFLAG_CLOAK_FAILED, TRUE, /*goto*/ 0x0a) + endloop(0x82) + + label(0x09) + remove_displayed_text + message(CHR_JOANNA, 0x1c36) // "Mission complete - Device Training passed!" + restart_timer + + beginloop(0x0e) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_timer_gt(240, /*goto*/ 0x83) + endloop(0x0e) + + label(0x0a) + remove_displayed_text + message(CHR_JOANNA, 0x1c37) // "Mission failed - you have been detected." + restart_timer + + beginloop(0x0f) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_timer_gt(240, /*goto*/ 0x85) + endloop(0x0f) + + label(0x85) + dprint 'f','a','i','l',0, + set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_FAILURE) + goto_next(0x84) + + label(0x83) + set_eeprom_flag(EEPROMFLAG_CI_CLOAK_DONE) + dprint 'd','o','n','e',0, + yield + set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_SUCCESS) + label(0x84) + if_chr_in_room(CHR_JOANNA, 0x00, 0x001e, /*goto*/ 0x90) + label(0x90) + unlock_door(0x31, 0x40) + unlock_door(0x8a, 0x40) + unlock_door(0x89, 0x40) + set_stage_flag(STAGEFLAG_CONSIDER_WARP) + remove_displayed_text + hide_object(0x2d) + + beginloop(0x5c) + if_stage_flag_eq(STAGEFLAG_TRIGGER_CLOAK, FALSE, /*goto*/ 0x2f) + endloop(0x5c) + + label(0x2f) + set_function(CHR_CARRINGTON, FUNC_INIT_COLLEAGUE_WHEN_SIGHTED) + goto_first(0x08) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100a_devicetraining_ecmmine[] = { + label(0x80) + beginloop(0x0f) + if_stage_flag_eq(STAGEFLAG_TRIGGER_ECMMINE, TRUE, /*goto*/ 0x81) + endloop(0x0f) + + label(0x81) + lock_door(0x31, 0x40) + lock_door(0x8a, 0x40) + lock_door(0x89, 0x40) + show_object(0x2e) + move_object_to_pad(0x2e, 0x011d) + unset_object_flag_bank0(0x2e, OBJECTFLAG0_00100000) + unset_object_flag_bank1(0x2e, OBJECTFLAG1_INVISIBLE) + unset_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + close_door(0x31) + close_door(0x8a) + close_door(0x89) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + label(0x8c) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c10) // "Collect ECM Mine from table to begin." + restart_timer + + beginloop(0x86) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_chr_has_object(CHR_JOANNA, 0x2e, /*goto*/ 0x2f) + if_timer_gt(1200, /*goto*/ 0x06) + endloop(0x86) + + label(0x06) + goto_first(0x8c) + + label(0x2f) + label(0x8d) + remove_displayed_text + if_chr_weapon_equipped(CHR_JOANNA, WEAPON_ECMMINE, /*goto*/ 0x2f) + display_text(0x01, COLOR_04_ORANGE, 0x1c41) // "Select the ECM Mine. - Hold A Button. - Use Control Stick to change selection. - Highlight ECM Mine and release A Button." + restart_timer + + beginloop(0x8e) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_weapon_equipped(CHR_JOANNA, WEAPON_ECMMINE, /*goto*/ 0x2f) + if_timer_gt(1200, /*goto*/ 0x06) + endloop(0x8e) + + label(0x06) + goto_first(0x8d) + + label(0x2f) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c11) // "Locate Hub and throw ECM Mine onto Hub." + + beginloop(0x82) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_ammo_quantity_lt(CHR_JOANNA, AMMOTYPE_ECM_MINE, 1, /*goto*/ 0x2f) + endloop(0x82) + + label(0x2f) + yield + yield + yield + yield + yield + if_weapon_thrown(WEAPON_ECMMINE, /*goto*/ 0x06) + goto_first(0x82) + + label(0x06) + restart_timer + + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_weapon_thrown_on_object(WEAPON_ECMMINE, 0x32, /*goto*/ 0x09) + if_timer_gt(120, /*goto*/ 0x0a) + endloop(0x08) + + label(0x09) + remove_displayed_text + message(CHR_JOANNA, 0x1c13) // "ECM Mine has been placed correctly." + restart_timer + + beginloop(0x0c) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_timer_gt(240, /*goto*/ 0x83) + endloop(0x0c) + + label(0x0a) + remove_displayed_text + message(CHR_JOANNA, 0x1c12) // "ECM Mine has been placed incorrectly." + restart_timer + + beginloop(0x0d) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_timer_gt(240, /*goto*/ 0x85) + endloop(0x0d) + + label(0x85) + dprint 'f','a','i','l',0, + set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_FAILURE) + goto_next(0x84) + + label(0x83) + set_eeprom_flag(EEPROMFLAG_CI_ECMMINE_DONE) + dprint 'd','o','n','e',0, + yield + set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_SUCCESS) + label(0x84) + if_chr_in_room(CHR_JOANNA, 0x00, 0x001e, /*goto*/ 0x90) + label(0x90) + unlock_door(0x31, 0x40) + unlock_door(0x8a, 0x40) + unlock_door(0x89, 0x40) + set_stage_flag(STAGEFLAG_CONSIDER_WARP) + remove_displayed_text + hide_object(0x2e) + goto_first(0x0f) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100b_devicetraining_uplink[] = { + label(0x80) + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_TRIGGER_UPLINK, TRUE, /*goto*/ 0x81) + endloop(0x08) + + label(0x81) + lock_door(0x31, 0x40) + lock_door(0x8a, 0x40) + lock_door(0x89, 0x40) + unset_stage_flag(STAGEFLAG_DEVICE_ABORTING) + unset_stage_flag(STAGEFLAG_TRIGGER_DEVICE_SUCCESS) + unset_stage_flag(STAGEFLAG_TRIGGER_DEVICE_FAILURE) + show_object(0x2f) + move_object_to_pad(0x2f, 0x0131) + unset_object_flag_bank0(0x2f, OBJECTFLAG0_00100000) + unset_object_flag_bank1(0x2f, OBJECTFLAG1_INVISIBLE) + dprint 't','r','a','i','n','i','n','g',0, + close_door(0x31) + close_door(0x8a) + close_door(0x89) + unset_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x8c) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x8c) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x8c) + label(0x8c) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c0a) // "Collect Data Uplink from table to begin." + restart_timer + + beginloop(0x86) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_chr_has_object(CHR_JOANNA, 0x2f, /*goto*/ 0x2f) + if_timer_gt(1200, /*goto*/ 0x06) + endloop(0x86) + + label(0x06) + goto_first(0x8c) + + label(0x2f) + label(0x8d) + remove_displayed_text + if_chr_weapon_equipped(CHR_JOANNA, WEAPON_DATAUPLINK, /*goto*/ 0x2f) + display_text(0x01, COLOR_04_ORANGE, 0x1c38) // "Select the Uplink. - Hold A Button. - Use Control Stick to change selection. - Highlight Data Uplink and release A Button." + restart_timer + + beginloop(0x8e) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_weapon_equipped(CHR_JOANNA, WEAPON_DATAUPLINK, /*goto*/ 0x2f) + if_timer_gt(1200, /*goto*/ 0x06) + endloop(0x8e) + + label(0x06) + goto_first(0x8d) + + label(0x2f) + if_chr_activated_object(CHR_JOANNA, 0x30, /*goto*/ 0x2f) + label(0x2f) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c0b) // "Stand next to the terminal and use the Uplink." + + beginloop(0x82) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_activated_object(CHR_JOANNA, 0x30, /*goto*/ 0x2f) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + endloop(0x82) + + label(0x2f) + if_chr_weapon_equipped(CHR_JOANNA, WEAPON_DATAUPLINK, /*goto*/ 0x2f) + play_sound(0x8116, -1) + remove_displayed_text + message(CHR_JOANNA, 0x1c0c) // "You need to be holding the Data Uplink." + goto_first(0x82) + + label(0x2f) + remove_displayed_text + message(CHR_JOANNA, 0x1c0d) // "Connection established..." + restart_timer + + label(0x08) + yield + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + assign_sound(0x01bf, CHANNEL_5) + control_sound_from_object(CHANNEL_5, 0x30, TRUE) + label(0x14) + yield + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_timer_gt(400, /*goto*/ 0x06) + if_chr_distance_to_pad_gt(CHR_JOANNA, 400, 0x0227, /*goto*/ 0x09) + if_chr_weapon_equipped(CHR_JOANNA, WEAPON_DATAUPLINK, /*goto*/ 0x2f) + goto_first(0x09) + + label(0x2f) + goto_first(0x14) + + label(0x06) + restart_timer + mute_channel(CHANNEL_5) + assign_sound(0x01c1, CHANNEL_7) + control_sound_from_object(CHANNEL_7, 0x30, TRUE) + remove_displayed_text + message(TARGET_CHR, 0x1c0e) // "Terminal has been successfully hacked." + + beginloop(0x15) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_timer_gt(240, /*goto*/ 0x06) + endloop(0x15) + + label(0x06) + goto_next(0x83) + + label(0x09) + remove_displayed_text + message(CHR_JOANNA, 0x1c0f) // "Connection broken - too far from PC." + mute_channel(CHANNEL_5) + assign_sound(0x01c0, CHANNEL_6) + control_sound_from_object(CHANNEL_6, 0x30, TRUE) + restart_timer + + beginloop(0x16) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x90) + if_chr_activated_object(CHR_JOANNA, 0x31, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x8a, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x89, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x16) + + label(0x06) + mute_channel(CHANNEL_6) + goto_first(0x82) + + label(0x85) + dprint 'f','a','i','l',0, + set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_FAILURE) + goto_next(0x84) + + label(0x83) + set_eeprom_flag(EEPROMFLAG_CI_UPLINK_DONE) + dprint 'd','o','n','e',0, + set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_SUCCESS) + yield + goto_next(0x84) + + label(0x84) + if_chr_in_room(CHR_JOANNA, 0x00, 0x001e, /*goto*/ 0x90) + label(0x90) + unlock_door(0x31, 0x40) + unlock_door(0x8a, 0x40) + unlock_door(0x89, 0x40) + set_stage_flag(STAGEFLAG_CONSIDER_WARP) + remove_displayed_text + mute_channel(CHANNEL_5) + mute_channel(CHANNEL_6) + mute_channel(CHANNEL_7) + dprint 'a','b','o','r','t','e','d',0, + hide_object(0x2f) + goto_first(0x08) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101a_move_jo_to_training_room[] = { + // Wait for flag to be set while not in training + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_CONSIDER_WARP, TRUE, /*goto*/ 0x2f) + reloop(0x04) + + label(0x2f) + if_stage_flag_eq(STAGEFLAG_TRIGGER_UPLINK, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_TRIGGER_ECMMINE, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_TRIGGER_CAMSPY, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_TRIGGER_NIGHTVISION, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_TRIGGER_DOORDECODER, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_TRIGGER_RTRACKER, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_TRIGGER_IR, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_TRIGGER_XRAY, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_TRIGGER_DISGUISE, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_TRIGGER_CLOAK, TRUE, /*goto*/ 0x2f) + goto_next(0x06) + label(0x2f) + endloop(0x04) + + label(0x06) + unset_stage_flag(STAGEFLAG_CONSIDER_WARP) + if_chr_in_room(CHR_JOANNA, 0x00, 0x001e, /*goto*/ 0x2f) + goto_next(0x30) + + // In room + label(0x2f) + reloop(0x04) + + // Not in room + label(0x30) + revoke_control(CHR_JOANNA, 0) + fade_to_color(0x000000ff, 0) + fade_to_color(0x00000000, 5000) + restart_timer + + beginloop(0x08) + if_timer_gt(30, /*goto*/ 0x2f) + endloop(0x08) + + label(0x2f) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0016, /*goto*/ 0x2f) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0017, /*goto*/ 0x2f) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0018, /*goto*/ 0x2f) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0019, /*goto*/ 0x2f) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0014, /*goto*/ 0x2f) + enter_camera_and_move_to_pad(0x0151) + set_function(CHR_P1P2, FUNC_MOVE_TO_DEVICEROOM) + goto_next(0x06) + + label(0x2f) + enter_camera_and_move_to_pad(0x020a) + set_function(CHR_P1P2, FUNC_MOVE_TO_HOLOROOM) + + label(0x06) + yield + yield + yield + yield + enter_firstperson + fade_to_color(0x000000ff, 0) + fade_to_color(0x00000000, 90) + restart_timer + + beginloop(0x09) + if_timer_gt(90, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + grant_control(CHR_JOANNA) + enter_firstperson + unset_stage_flag(STAGEFLAG_CONSIDER_WARP) + goto_first(0x04) + + endfunction +}; + +u8 func0401_move_to_deviceroom[] = { + chr_move_to_pad(CHR_SELF, PAD_DEVICEROOM, 0x01, /*goto*/ 0x06) + label(0x06) + stop_chr + yield + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0402_move_to_holoroom[] = { + chr_move_to_pad(CHR_SELF, PAD_HOLOROOM, 0x01, /*goto*/ 0x06) + label(0x06) + stop_chr + yield + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0429_grimshaw_disguise[] = { + set_return_function(CHR_SELF, FUNC_GRIMSHAW_DISGUISE) + dprint 'I','n','i','t','i','a','l','i','s','e','a',0, + restart_timer + + beginloop(0x0f) + if_timer_gt(60, /*goto*/ 0x8f) + endloop(0x0f) + + beginloop(0x8f) + if_stage_flag_eq(STAGEFLAG_CONSIDER_WARP, FALSE, /*goto*/ 0x04) + endloop(0x8f) + + // Wait until Jo in sight + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x0d) + if_target_chr_in_sight(/*goto*/ 0x2f) + if_chr_idle(/*goto*/ 0x06) + label(0x7f) + call_rng + if_rand_gt(1, /*goto*/ 0x06) + set_function(CHR_SELF, GFUNC_DO_BORED_ANIMATION) + label(0x06) + endloop(0x04) + + label(0x2f) + dprint 'I','n','i','t','i','a','l','i','s','e','b',0, + restart_timer + label(0x08) + if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x06) + try_face_entity(0x0200, 0x0000, /*goto*/ 0x09) + + beginloop(0x09) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x0d) + if_angle_to_target_chr_lt(10, /*goto*/ 0x06) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + dprint 'I','n','i','t','i','a','l','i','s','e','c',0, + do_special_animation(3) + play_chr_specific_quip(BANK_0, CHANNEL_6) + restart_timer + + beginloop(0x57) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x0d) + if_sound_finished(CHANNEL_6, /*goto*/ 0x06) + endloop(0x57) + + label(0x06) + dprint 'I','n','i','t','i','a','l','i','s','e','d',0, + restart_timer + + beginloop(0x58) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x0d) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x58) + + label(0x06) + speak(CHR_JOANNA, 0x1c2b, 0x1517, CHANNEL_6, COLOR_09_BLUE) // "I'm here to pick up the equipment." + + beginloop(0x59) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x0d) + if_sound_finished(CHANNEL_6, /*goto*/ 0x06) + endloop(0x59) + + label(0x06) + restart_timer + + beginloop(0x5b) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x0d) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x5b) + + label(0x06) + if_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_DISGUISED, /*goto*/ 0x2f) + do_special_animation(-1) + speak(TARGET_CHR, 0x1c2c, 0x1518, CHANNEL_6, COLOR_05_GREEN) // "Go away, Joanna. You're not fooling anybody!" + + beginloop(0x5c) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x0d) + if_sound_finished(CHANNEL_6, /*goto*/ 0x06) + endloop(0x5c) + + label(0x06) + set_stage_flag(STAGEFLAG_DISGUISE_FAILED) + goto_next(0x0d) + + label(0x2f) + do_special_animation(-1) + speak(TARGET_CHR, 0x1c2d, 0x1519, CHANNEL_6, COLOR_05_GREEN) // "Here you go. Don't drop it now." + + beginloop(0x5d) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x0d) + if_sound_finished(CHANNEL_6, /*goto*/ 0x06) + endloop(0x5d) + + label(0x06) + give_object_to_chr(0x3c, CHR_JOANNA) + set_stage_flag(STAGEFLAG_DISGUISE_COMPLETE) + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100c_cloak_detection[] = { + beginloop(0x04) + deactivate_alarm + dprint 'I','N','I','T','Y',0, + if_stage_flag_eq(STAGEFLAG_TRIGGER_CLOAK, TRUE, /*goto*/ 0x8f) + reloop(0x04) + + beginloop(0x8f) + dprint 'L','O','O','P','Y',0, + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x5d) + if_chr_distance_to_pad_lt(CHR_JOANNA, 200, 0x027b, /*goto*/ 0x06) + endloop(0x8f) + + beginloop(0x5d) + dprint 'W','A','I','T','Y',0, + if_stage_flag_eq(STAGEFLAG_TRIGGER_CLOAK, FALSE, /*goto*/ 0x30) + endloop(0x5d) + + label(0x30) + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + endloop(0x04) + + label(0x06) + dprint 'G','O','T','T','H','R','U',0, + if_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_CLOAKED, /*goto*/ 0x30) + activate_alarm + yield + restart_timer + + beginloop(0x09) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x59) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + set_stage_flag(STAGEFLAG_GENERAL_PURPOSE) + speak(TARGET_CHR, 0x1c30, 0x151a, CHANNEL_6, COLOR_05_GREEN) // "You'll have to do better than that, Joanna." + message(CHR_JOANNA, 0x1c32) // "You have been detected by the camera." + restart_timer + + beginloop(0x0a) + if_stage_flag_eq(STAGEFLAG_TRIGGER_CLOAK, FALSE, /*goto*/ 0x30) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x0a) + + label(0x06) + set_stage_flag(STAGEFLAG_CLOAK_FAILED) + restart_timer + + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_TRIGGER_CLOAK, FALSE, /*goto*/ 0x30) + if_timer_gt(120, /*goto*/ 0x59) + endloop(0x08) + + label(0x59) + deactivate_alarm + + beginloop(0x5a) + if_stage_flag_eq(STAGEFLAG_TRIGGER_CLOAK, FALSE, /*goto*/ 0x30) + endloop(0x5a) + + label(0x30) + deactivate_alarm + restart_timer + + beginloop(0x5c) + yield + dprint 'W','A','I','T','F','I','N',0, + if_timer_gt(60, /*goto*/ 0x2f) + endloop(0x5c) + + label(0x2f) + goto_first(0x04) + + label(0x06) + goto_first(0x8f) + + endfunction +}; + +u8 func042a_carrington_cloak[] = { + set_return_function(CHR_SELF, FUNC_CARRINGTON_CLOAK) + + beginloop(0x8f) + chr_move_to_pad(CHR_SELF, PAD_CARRINGTON_OFFICE, 0x01, /*goto*/ 0x06) + endloop(0x8f) + + label(0x06) + dprint 'I','n','i','t','i','a','l','i','s','e','a',0, + + beginloop(0x04) + if_target_chr_in_sight(/*goto*/ 0x2f) + if_chr_idle(/*goto*/ 0x06) + label(0x7f) + call_rng + if_rand_gt(1, /*goto*/ 0x06) + set_function(CHR_SELF, GFUNC_DO_BORED_ANIMATION) + + label(0x06) + endloop(0x04) + + label(0x2f) + set_stage_flag(STAGEFLAG_GENERAL_PURPOSE) + close_door(0x40) + dprint 'I','n','i','t','i','a','l','i','s','e','b',0, + restart_timer + label(0x08) + if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x06) + try_face_entity(0x0200, 0x0000, /*goto*/ 0x09) + + beginloop(0x09) + if_angle_to_target_chr_lt(10, /*goto*/ 0x06) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + dprint 'I','n','i','t','i','a','l','i','s','e','c',0, + restart_timer + animation(ANIM_WALK_BACKWARDS, -1, -1, 0x1010, CHR_SELF, 2) + restart_timer + + beginloop(0x57) + if_timer_gt(30, /*goto*/ 0x06) + endloop(0x57) + + label(0x06) + do_special_animation(-1) + speak(CHR_JOANNA, 0x1c31, 0x151b, CHANNEL_6, COLOR_06_WHITE) // "Joanna, where did you spring from?" + + beginloop(0x59) + if_sound_finished(CHANNEL_6, /*goto*/ 0x06) + endloop(0x59) + + label(0x06) + restart_timer + + beginloop(0x5b) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x5b) + + label(0x06) + do_special_animation(-1) + speak(TARGET_CHR, 0x1c35, 0x151c, CHANNEL_6, COLOR_06_WHITE) // "I think we can safely say your training is now complete!" + + beginloop(0x5c) + if_sound_finished(CHANNEL_6, /*goto*/ 0x06) + endloop(0x5c) + + label(0x06) + stop_chr + set_stage_flag(STAGEFLAG_CLOAK_COMPLETE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100e_training_unlockables[] = { + beginloop(0x04) + if_eeprom_flag_is_set(EEPROMFLAG_CI_UPLINK_DONE, /*goto*/ 0x2f) + endloop(0x04) + + label(0x2f) + unlock_door(0x3e, 0x40) + + beginloop(0x08) + if_eeprom_flag_is_set(EEPROMFLAG_CI_ECMMINE_DONE, /*goto*/ 0x2f) + endloop(0x08) + + label(0x2f) + unlock_door(0x3d, 0x40) + unlock_door(0x3f, 0x40) + goto_next(0x2f) + + beginloop(0x09) + if_eeprom_flag_is_set(EEPROMFLAG_CI_CAMSPY_DONE, /*goto*/ 0x2f) + endloop(0x09) + + label(0x2f) + unset_object_flag_bank1(OBJ_LIGHTSWITCH, OBJECTFLAG1_INVISIBLE) + + beginloop(0x0a) + if_eeprom_flag_is_set(EEPROMFLAG_CI_NIGHTVISION_DONE, /*goto*/ 0x2f) + endloop(0x0a) + + label(0x2f) + set_lights_state(0x0030, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x002e, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x002f, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0020, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0024, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0025, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0026, 0x01, 0xff, 0x00, 0x00) + set_lights_state(0x0022, 0x01, 0xff, 0x00, 0x00) + + beginloop(0x0b) + if_eeprom_flag_is_set(EEPROMFLAG_CI_DOORDECODER_DONE, /*goto*/ 0x2f) + endloop(0x0b) + + label(0x2f) + unlock_door(0x41, 0x40) + + beginloop(0x0e) + if_eeprom_flag_is_set(EEPROMFLAG_CI_IR_DONE, /*goto*/ 0x2f) + endloop(0x0e) + + label(0x2f) + unlock_door(0x37, 0x40) + + beginloop(0x0f) + if_eeprom_flag_is_set(EEPROMFLAG_CI_XRAY_DONE, /*goto*/ 0x2f) + endloop(0x0f) + + label(0x2f) + hide_object(0x3a) + hide_object(0x3b) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +#define do_door_proxy(eepromflag, pad, door) \ + /* If training flag is done, open/close a door automatically as Jo nears it */ \ + beginloop(0x04) \ + if_eeprom_flag_is_set(eepromflag, /*goto*/ 0x2f) \ + reloop(0x04) \ + \ + label(0x2f) \ + if_chr_distance_to_pad_lt(CHR_JOANNA, 350, pad, /*goto*/ 0x06) \ + close_door(door) \ + reloop(0x04) \ + \ + label(0x06) \ + if_door_state(door, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x2f) \ + open_door(door) \ + set_object_flag_bank0(door, OBJECTFLAG0_40000000) \ + restart_timer \ + \ + beginloop(0x08) \ + if_timer_gt(120, /*goto*/ 0x2f) \ + endloop(0x08) \ + \ + label(0x2f) \ + endloop(0x04) + + + +u8 func100f_doorproxy_unused1[] = { + set_function(CHR_SELF, GFUNC_IDLE) + + // Unreachable + do_door_proxy(EEPROMFLAG_CI_ECMMINE_DONE, 0x0185, 0x3d) + endfunction +}; + +u8 func1010_doorproxy[] = { + do_door_proxy(EEPROMFLAG_CI_UPLINK_DONE, 0x0186, 0x3e) + endfunction +}; + +u8 func1010_doorproxy_unused2[] = { + set_function(CHR_SELF, GFUNC_IDLE) + + // Unreachable + do_door_proxy(EEPROMFLAG_CI_ECMMINE_DONE, 0x0187, 0x3f) + endfunction +}; + +u8 func1012_cloak_doorproxy[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_TRIGGER_CLOAK, TRUE, /*goto*/ 0x2f) + reloop(0x04) + + label(0x2f) + if_stage_flag_eq(STAGEFLAG_CLOAK_FAILED, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_TRIGGER_DEVICE_SUCCESS, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_TRIGGER_DEVICE_FAILURE, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x2f) + if_chr_distance_to_pad_lt(CHR_JOANNA, 350, 0x0188, /*goto*/ 0x06) + close_door(0x40) + label(0x2f) + endloop(0x04) + + label(0x06) + if_door_state(0x40, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x2f) + open_door(0x40) + set_object_flag_bank0(0x40, OBJECTFLAG0_40000000) + restart_timer + + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x2f) + endloop(0x08) + + label(0x2f) + goto_first(0x04) + + endfunction +}; + +u8 func101b_ir_door[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_TRIGGER_IR, TRUE, /*goto*/ 0x06) + if_eeprom_flag_is_set(EEPROMFLAG_CI_IR_DONE, /*goto*/ 0x2f) + label(0x06) + reloop(0x04) + + label(0x2f) + if_chr_distance_to_pad_lt(CHR_JOANNA, 350, 0x0192, /*goto*/ 0x06) + close_door(0x37) + endloop(0x04) + + label(0x06) + if_door_state(0x37, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x2f) + open_door(0x37) + set_object_flag_bank0(0x37, OBJECTFLAG0_40000000) + restart_timer + + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x2f) + endloop(0x08) + + label(0x2f) + goto_first(0x04) + + endfunction +}; + +u8 func042b_init_carrington[] = { + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_UNEXPLODABLE) + yield + set_var_a(0) + if_eeprom_flag_is_unset(EEPROMFLAG_CI_TOUR_STARTED, /*goto*/ 0x06) + set_eeprom_flag(EEPROMFLAG_CI_TOUR_DONE) + dprint 'E','E','P','R','O','M',' ','S','E','T',0, + + beginloop(0x08) + chr_move_to_pad(CHR_SELF, PAD_CARRINGTON_OFFICE, 0x01, /*goto*/ 0x2f) + endloop(0x08) + + label(0x2f) + set_function(CHR_SELF, 0x041e) + + label(0x06) + dprint 'E','E','P','R','O','M',' ','N','O','T','S','E','T',0, + if_eeprom_flag_is_unset(EEPROMFLAG_CI_TOUR_DONE, /*goto*/ 0x8f) + goto_first(0x08) + + beginloop(0x8f) + chr_move_to_pad(CHR_SELF, PAD_OUTSIDE_JO_OFFICE, 0x01, /*goto*/ 0x2f) + endloop(0x8f) + + label(0x2f) + stop_chr + set_function(CHR_SELF, FUNC_CARRINGTON_TOUR) + endfunction +}; + +u8 func1019_setup_carrington[] = { + beginloop(0x04) + if_chr_flag_bank2(CHR_CARRINGTON, CHRFLAG2_10000000, /*goto*/ 0x06) + if_eeprom_flag_is_set(EEPROMFLAG_CI_TOUR_STARTED, /*goto*/ 0x2f) + endloop(0x04) + + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2f) + set_function(CHR_CARRINGTON, FUNC_INIT_CARRINGTON) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func042c_carrington_tour[] = { + set_return_function(CHR_SELF, FUNC_CARRINGTON_TOUR) + set_self_flag_bank3(CHRFLAG3_00040000) + restart_timer + try_face_entity(ENTITYTYPE_PAD, 0x0054, /*goto*/ 0x04) + + beginloop(0x04) + dprint 'F','A','C','E',' ','P','A','D',0, + if_timer_gt(1200, /*goto*/ 0x2f) + if_chr_sees_player(/*goto*/ 0x2f) + if_chr_idle(/*goto*/ 0x06) + label(0x7f) + call_rng + if_rand_gt(1, /*goto*/ 0x06) + set_function(CHR_SELF, GFUNC_DO_BORED_ANIMATION) + + label(0x06) + endloop(0x04) + + label(0x2f) + if_chr_sees_player(/*goto*/ 0x06) + try_run_to_target_chr_with_hand_up(/*goto*/ 0x08) + + beginloop(0x08) + if_chr_sees_player(/*goto*/ 0x06) + endloop(0x08) + + label(0x06) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_10000000) + set_eeprom_flag(EEPROMFLAG_CI_TOUR_STARTED) + do_special_animation(-1) + remove_displayed_text + speak(TARGET_CHR, 0x1c42, 0x8029, CHANNEL_6, COLOR_06_WHITE) // "Joanna, it's good to see you." + restart_timer + + beginloop(0x57) + if_sound_finished(CHANNEL_6, /*goto*/ 0x06) + endloop(0x57) + + label(0x06) + do_special_animation(-1) + speak(TARGET_CHR, 0x1c43, 0x151d, CHANNEL_6, COLOR_06_WHITE) // "Come with me. I'll walk you round the training rooms." + restart_timer + + beginloop(0x59) + if_sound_finished(CHANNEL_6, /*goto*/ 0x06) + endloop(0x59) + + label(0x06) + walk_to_pad(0x0064) + + beginloop(0x5b) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x5b) + + label(0x06) + stop_chr + restart_timer + try_face_entity(ENTITYTYPE_PAD, 0x0068, /*goto*/ 0x5c) + + beginloop(0x5c) + if_timer_lt(60, /*goto*/ 0x06) + if_chr_sees_player(/*goto*/ 0x2f) + label(0x06) + endloop(0x5c) + + label(0x2f) + if_chr_distance_lt(500, /*goto*/ 0x2f) + goto_first(0x5c) + + label(0x2f) + do_special_animation(-1) + remove_displayed_text + speak(TARGET_CHR, 0x1c44, 0x1520, CHANNEL_6, COLOR_06_WHITE) // "The information center is through this door." + restart_timer + + beginloop(0x5d) + if_sound_finished(CHANNEL_6, /*goto*/ 0x06) + endloop(0x5d) + + label(0x06) + walk_to_pad(0x0065) + + beginloop(0x62) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x62) + + label(0x06) + stop_chr + + beginloop(0x63) + if_chr_sees_player(/*goto*/ 0x2f) + endloop(0x63) + + label(0x2f) + if_chr_distance_lt(500, /*goto*/ 0x2f) + goto_first(0x63) + + label(0x2f) + set_function(0x01, GFUNC_IDLE) + do_special_animation(-1) + speak(TARGET_CHR, 0x1c45, 0x151f, CHANNEL_6, COLOR_06_WHITE) // "In here we have the device lab." + restart_timer + + beginloop(0x64) + if_sound_finished(CHANNEL_6, /*goto*/ 0x06) + endloop(0x64) + + label(0x06) + restart_timer + try_face_entity(ENTITYTYPE_CHR, 0x01, /*goto*/ 0x65) + + beginloop(0x65) + if_timer_gt(40, /*goto*/ 0x06) + endloop(0x65) + + label(0x06) + do_special_animation(-1) + play_sound(0x8028, CHANNEL_6) + set_function(0x01, FUNC_DEVICEGIRL_REPLY_TO_CARRINGTON) + restart_timer + + beginloop(0x66) + if_timer_gt(20, /*goto*/ 0x06) + if_sound_finished(CHANNEL_6, /*goto*/ 0x06) + endloop(0x66) + + label(0x06) + mute_channel(CHANNEL_6) + stop_chr + yield + yield + + beginloop(0x68) + if_sound_finished(CHANNEL_6, /*goto*/ 0x06) + endloop(0x68) + + label(0x06) + walk_to_pad(0x0020) + + beginloop(0x69) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x69) + + label(0x06) + stop_chr + + beginloop(0x6a) + if_chr_sees_player(/*goto*/ 0x2f) + endloop(0x6a) + + label(0x2f) + if_chr_distance_lt(500, /*goto*/ 0x2f) + goto_first(0x6a) + + label(0x2f) + do_special_animation(-1) + speak(TARGET_CHR, 0x1c46, 0x1521, CHANNEL_6, COLOR_06_WHITE) // "This leads to the simulant training room." + restart_timer + + beginloop(0x6b) + if_sound_finished(CHANNEL_6, /*goto*/ 0x06) + endloop(0x6b) + + label(0x06) + stop_chr + yield + yield + + beginloop(0x6c) + if_sound_finished(CHANNEL_6, /*goto*/ 0x06) + endloop(0x6c) + + label(0x06) + walk_to_pad(0x0010) + + beginloop(0x6d) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x6d) + + label(0x06) + stop_chr + + beginloop(0x6e) + if_chr_sees_player(/*goto*/ 0x2f) + endloop(0x6e) + + label(0x2f) + if_chr_distance_lt(500, /*goto*/ 0x2f) + goto_first(0x6e) + + label(0x2f) + do_special_animation(-1) + speak(TARGET_CHR, 0x1c47, 0x151e, CHANNEL_6, COLOR_06_WHITE) // "This is the firing range, Jo." + restart_timer + + beginloop(0x6f) + if_sound_finished(CHANNEL_6, /*goto*/ 0x06) + endloop(0x6f) + + label(0x06) + restart_timer + try_face_entity(ENTITYTYPE_CHR, 0x01, /*goto*/ 0x70) + + beginloop(0x70) + if_timer_gt(40, /*goto*/ 0x06) + endloop(0x70) + + label(0x06) + restart_timer + + beginloop(0x71) + if_sound_finished(CHANNEL_6, /*goto*/ 0x06) + endloop(0x71) + + label(0x06) + stop_chr + yield + yield + + beginloop(0x72) + if_sound_finished(CHANNEL_6, /*goto*/ 0x06) + endloop(0x72) + + label(0x06) + label(0x06) + walk_to_pad(0x0009) + + beginloop(0x73) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x73) + + label(0x06) + stop_chr + + beginloop(0x74) + if_chr_sees_player(/*goto*/ 0x2f) + endloop(0x74) + + label(0x2f) + if_chr_distance_lt(500, /*goto*/ 0x2f) + goto_first(0x74) + + label(0x2f) + do_special_animation(-1) + speak(TARGET_CHR, 0x1c48, 0x1522, CHANNEL_6, COLOR_06_WHITE) // "This corridor leads down to the hangar." + restart_timer + + beginloop(0x75) + if_sound_finished(CHANNEL_6, /*goto*/ 0x06) + endloop(0x75) + + label(0x06) + restart_timer + set_target_chr(CHR_JOANNA) + try_face_entity(0x0200, 0x0000, /*goto*/ 0x79) + + beginloop(0x79) + if_timer_gt(120, /*goto*/ 0x2f) + endloop(0x79) + + label(0x2f) + do_special_animation(-1) + speak(TARGET_CHR, 0x1c7c, 0x17dc, CHANNEL_6, COLOR_06_WHITE) // "Okay, Jo, I'll leave you to prepare for the mission." + + beginloop(0x7a) + if_sound_finished(CHANNEL_6, /*goto*/ 0x2f) + endloop(0x7a) + + label(0x2f) + set_eeprom_flag(EEPROMFLAG_CI_TOUR_DONE) + walk_to_pad(PAD_CARRINGTON_OFFICE) + + beginloop(0x76) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x76) + + label(0x06) + set_function(CHR_SELF, 0x041e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func042d_unused[] = { + set_alertness(1) + set_self_flag_bank3(CHRFLAG3_00040000) + restart_timer + try_face_entity(ENTITYTYPE_CHR, CHR_CARRINGTON, /*goto*/ 0x5f) + + beginloop(0x5f) + if_timer_gt(40, /*goto*/ 0x06) + endloop(0x5f) + + label(0x06) + + beginloop(0x60) + if_sound_finished(CHANNEL_6, /*goto*/ 0x06) + endloop(0x60) + + label(0x06) + assign_sound(0x802d, CHANNEL_6) + play_sound_from_entity(CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01) + + beginloop(0x61) + if_sound_finished(CHANNEL_6, /*goto*/ 0x06) + endloop(0x61) + + label(0x06) + set_function(CHR_SELF, 0x041e) + endfunction +}; + +u8 func042e_devicegirl_reply_to_carrington[] = { + set_alertness(1) + set_self_flag_bank3(CHRFLAG3_00040000) + restart_timer + try_face_entity(ENTITYTYPE_CHR, CHR_CARRINGTON, /*goto*/ 0x5f) + + beginloop(0x5f) + if_timer_gt(40, /*goto*/ 0x06) + endloop(0x5f) + + label(0x06) + + beginloop(0x60) + if_sound_finished(CHANNEL_6, /*goto*/ 0x06) + endloop(0x60) + + label(0x06) + yield + yield + yield + assign_sound(0x177d, CHANNEL_6) + play_sound_from_entity(CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01) + + beginloop(0x61) + if_sound_finished(CHANNEL_6, /*goto*/ 0x06) + endloop(0x61) + + label(0x06) + set_function(CHR_SELF, 0x041e) + endfunction +}; + +u8 func1013_msg_hovercrate[] = { + if_eeprom_flag_is_unset(EEPROMFLAG_CI_TOUR_STARTED, /*goto*/ 0x04) + set_function(CHR_SELF, GFUNC_IDLE) + + beginloop(0x04) + if_eeprom_flag_is_set(EEPROMFLAG_CI_TOUR_STARTED, /*goto*/ 0x06) + if_chr_distance_to_pad_lt(CHR_JOANNA, 250, 0x0141, /*goto*/ 0x2f) + endloop(0x04) + + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2f) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c49) // "HOVERCRATE Press B Button next to Hovcrate to grab it..." + restart_timer + + beginloop(0x08) + if_timer_gt(240, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c4a) // "Press B Button when crate grabbed to release it." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1014_msg_hoverbike[] = { + if_eeprom_flag_is_unset(EEPROMFLAG_CI_TOUR_STARTED, /*goto*/ 0x04) + set_function(CHR_SELF, GFUNC_IDLE) + + beginloop(0x04) + if_eeprom_flag_is_set(EEPROMFLAG_CI_TOUR_STARTED, /*goto*/ 0x06) + if_chr_distance_to_pad_lt(CHR_JOANNA, 250, 0x01f9, /*goto*/ 0x2f) + endloop(0x04) + + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2f) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c4b) // "HOVERBIKE Double tap B Button next to Hovbike to ride it..." + restart_timer + + beginloop(0x08) + if_timer_gt(240, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c4c) // "Double tap B Button when on Hovbike to dismount." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1015_msg_doors[] = { + if_eeprom_flag_is_unset(EEPROMFLAG_CI_TOUR_STARTED, /*goto*/ 0x04) + set_function(CHR_SELF, GFUNC_IDLE) + + beginloop(0x04) + if_eeprom_flag_is_set(EEPROMFLAG_CI_TOUR_STARTED, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2f) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c4d) // "OPENING DOORS Press B Button next to door to open it." + restart_timer + + beginloop(0x08) + if_timer_gt(240, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c4e) // "B Button will also activate any object nearby." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1016_msg_elevators[] = { + if_eeprom_flag_is_unset(EEPROMFLAG_CI_TOUR_STARTED, /*goto*/ 0x04) + set_function(CHR_SELF, GFUNC_IDLE) + + beginloop(0x04) + if_eeprom_flag_is_set(EEPROMFLAG_CI_TOUR_STARTED, /*goto*/ 0x06) + if_chr_distance_to_pad_lt(CHR_JOANNA, 250, 0x0160, /*goto*/ 0x2f) + if_chr_distance_to_pad_lt(CHR_JOANNA, 250, 0x0162, /*goto*/ 0x2f) + endloop(0x04) + + label(0x2f) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c4f) // "ELEVATORS Press B Button next to door to call elevator." + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1017_msg_terminals[] = { + if_eeprom_flag_is_unset(EEPROMFLAG_CI_TOUR_STARTED, /*goto*/ 0x04) + set_function(CHR_SELF, GFUNC_IDLE) + + beginloop(0x04) + if_eeprom_flag_is_set(EEPROMFLAG_CI_TOUR_STARTED, /*goto*/ 0x06) + if_chr_distance_to_pad_lt(CHR_JOANNA, 250, 0x0227, /*goto*/ 0x2f) + if_chr_distance_to_pad_lt(CHR_JOANNA, 250, 0x022a, /*goto*/ 0x2f) + if_chr_distance_to_pad_lt(CHR_JOANNA, 250, 0x021c, /*goto*/ 0x2f) + if_chr_distance_to_pad_lt(CHR_JOANNA, 250, 0x021e, /*goto*/ 0x2f) + if_chr_distance_to_pad_lt(CHR_JOANNA, 250, 0x0221, /*goto*/ 0x2f) + if_chr_distance_to_pad_lt(CHR_JOANNA, 250, 0x0224, /*goto*/ 0x2f) + if_chr_distance_to_pad_lt(CHR_JOANNA, 250, 0x023e, /*goto*/ 0x2f) + endloop(0x04) + + label(0x2f) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c72) // "TERMINALS - Press B Button next to terminal to use it." + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1018_lightswitch[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_TRIGGER_NIGHTVISION, FALSE, /*goto*/ 0x2f) + if_chr_has_weapon_equipped(CHR_JOANNA, WEAPON_NIGHTVISION, /*goto*/ 0x2f) + set_object_flag_bank1(OBJ_LIGHTSWITCH, OBJECTFLAG1_INVISIBLE) + reloop(0x04) + + label(0x2f) + unset_object_flag_bank1(OBJ_LIGHTSWITCH, OBJECTFLAG1_INVISIBLE) + endloop(0x04) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101c_holo1_main[] = { + label(0x80) + hide_object(0x48) + hide_object(0x49) + hide_object(0x4a) + hide_object(0x4b) + hide_object(0x4c) + hide_object(0x4d) + hide_object(0x4e) + hide_object(0x4f) + + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_IN_HOLO1, TRUE, /*goto*/ 0x81) + endloop(0x08) + + label(0x81) + set_stage_flag(STAGEFLAG_CONSIDER_WARP) + restart_timer + + beginloop(0x13) + if_timer_gt(30, /*goto*/ 0x2f) + endloop(0x13) + + label(0x2f) + lock_door(0x75, 0x40) + lock_door(0x76, 0x40) + close_door(0x75) + unset_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + if_chr_activated_object(CHR_JOANNA, 0x75, /*goto*/ 0x2f) + if_chr_activated_object(CHR_JOANNA, 0x76, /*goto*/ 0x2f) + label(0x2f) + unset_stage_flag(STAGEFLAG_HOLO_ABORTING) + unset_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) + unset_stage_flag(STAGEFLAG_TRIGGER_HOLO_FAILURE) + unset_stage_flag(STAGEFLAG_GENERAL_PURPOSE) + hide_object(0x45) + show_object(0x48) + show_object(0x49) + show_object(0x4a) + show_object(0x4b) + show_object(0x4c) + show_object(0x4d) + show_object(0x4e) + show_object(0x4f) + unset_object_flag_bank1(0x48, OBJECTFLAG1_00000001) + unset_object_flag_bank1(0x49, OBJECTFLAG1_00000001) + unset_object_flag_bank1(0x4a, OBJECTFLAG1_00000001) + unset_object_flag_bank1(0x4b, OBJECTFLAG1_00000001) + unset_object_flag_bank1(0x4c, OBJECTFLAG1_00000001) + unset_object_flag_bank1(0x4d, OBJECTFLAG1_00000001) + unset_object_flag_bank1(0x4e, OBJECTFLAG1_00000001) + unset_object_flag_bank1(0x4f, OBJECTFLAG1_00000001) + hide_chr(0x04) + dprint 't','r','a','i','n','i','n','g',0, + label(0x91) + if_object_flag_bank1(0x4c, OBJECTFLAG1_00000001, /*goto*/ 0x2f) + goto_next(0x06) + + label(0x2f) + if_object_flag_bank1(0x4d, OBJECTFLAG1_00000001, /*goto*/ 0x2f) + goto_next(0x06) + + label(0x2f) + if_object_flag_bank1(0x4e, OBJECTFLAG1_00000001, /*goto*/ 0x2f) + goto_next(0x06) + + label(0x2f) + if_object_flag_bank1(0x4f, OBJECTFLAG1_00000001, /*goto*/ 0x2f) + label(0x06) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c64) // "Get the access codes by examining terminals. - Use the codes on the wall terminals." + goto_next(0x06) + + label(0x2f) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c73) // "Now activate the red terminals on the wall." + label(0x06) + restart_timer + + beginloop(0x82) + if_stage_flag_eq(STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x90) + if_stage_flag_eq(STAGEFLAG_TRIGGER_HOLO_SUCCESS, TRUE, /*goto*/ 0x83) + if_stage_flag_eq(STAGEFLAG_TRIGGER_HOLO_FAILURE, TRUE, /*goto*/ 0x85) + if_chr_activated_object(CHR_JOANNA, 0x75, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x76, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_timer_gt(1200, /*goto*/ 0x2f) + endloop(0x82) + + label(0x2f) + goto_first(0x91) + + label(0x85) + dprint 'f','a','i','l',0, + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_FAILURE) + goto_next(0x84) + + label(0x83) + set_eeprom_flag(EEPROMFLAG_CI_HOLO1_DONE) + dprint 'd','o','n','e',0, + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) + yield + goto_next(0x84) + + label(0x84) + if_chr_in_room(CHR_JOANNA, 0x00, 0x001e, /*goto*/ 0x90) + label(0x90) + set_stage_flag(STAGEFLAG_CONSIDER_WARP) + unlock_door(0x75, 0x40) + unlock_door(0x76, 0x40) + remove_displayed_text + mute_channel(CHANNEL_5) + mute_channel(CHANNEL_6) + mute_channel(CHANNEL_7) + show_chr(0x04) + dprint 'a','b','o','r','t','e','d',0, + hide_object(0x48) + hide_object(0x49) + hide_object(0x4a) + hide_object(0x4b) + hide_object(0x4c) + hide_object(0x4d) + hide_object(0x4e) + hide_object(0x4f) + show_object(0x45) + remove_displayed_text + goto_first(0x08) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +#define holo1_some_terminal(object, function) \ + beginloop(0x8f) \ + if_stage_flag_eq(STAGEFLAG_IN_HOLO1, TRUE, /*goto*/ 0x2f) \ + endloop(0x8f) \ + \ + label(0x2f) \ + set_object_image(object, 0x00, 0x12) \ + unset_object_flag_bank1(object, OBJECTFLAG1_00040000) \ + \ + beginloop(0x04) \ + if_chr_activated_object(CHR_F3, object, /*goto*/ 0x2f) \ + reloop(0x04) \ + \ + label(0x2f) \ + if_object_flag_bank1(object, OBJECTFLAG1_00000001, /*goto*/ 0x2f) \ + endloop(0x04) \ + \ + label(0x2f) \ + set_object_image(object, 0x00, 0x13) \ + set_object_flag_bank1(object, OBJECTFLAG1_00040000) \ + assign_sound(0x043a, CHANNEL_7) \ + control_sound_from_object(CHANNEL_7, object, TRUE) \ + set_return_function(CHR_SELF, function) \ + set_function(CHR_SELF, FUNC_HOLO1_CHECK_DONE) + + + +u8 func101d_holo1_switch1[] = { + holo1_some_terminal(0x4c, FUNC_HOLO1_SWITCH1) + endfunction +}; + +u8 func101e_holo1_switch2[] = { + holo1_some_terminal(0x4d, FUNC_HOLO1_SWITCH2) + endfunction +}; + +u8 func101f_holo1_switch3[] = { + holo1_some_terminal(0x4e, FUNC_HOLO1_SWITCH3) + endfunction +}; + +u8 func1020_holo1_monitor_switches[] = { + beginloop(0x8f) + if_stage_flag_eq(STAGEFLAG_IN_HOLO1, TRUE, /*goto*/ 0x2f) + endloop(0x8f) + + label(0x2f) + set_object_image(0x4f, 0x00, 0x12) + unset_object_flag_bank1(0x4f, OBJECTFLAG1_00040000) + + beginloop(0x04) + if_chr_activated_object(CHR_F3, 0x4f, /*goto*/ 0x2f) + reloop(0x04) + + label(0x2f) + if_object_flag_bank1(0x4f, OBJECTFLAG1_00000001, /*goto*/ 0x2f) + endloop(0x04) + + label(0x2f) + set_object_image(0x4f, 0x00, 0x13) + set_object_flag_bank1(0x4f, OBJECTFLAG1_00040000) + assign_sound(0x043a, CHANNEL_7) + control_sound_from_object(CHANNEL_7, 0x4f, TRUE) + set_return_function(CHR_SELF, FUNC_HOLO1_MONITOR_SWITCHES) + set_function(CHR_SELF, FUNC_HOLO1_CHECK_DONE) + endfunction +}; + +#define holo1_code_thing_p1(object1, object2, pad) \ + yield \ + yield \ + yield \ + \ + beginloop(0x04) \ + if_stage_flag_eq(STAGEFLAG_IN_HOLO1, TRUE, /*goto*/ 0x2f) \ + reloop(0x04) \ + \ + label(0x2f) \ + if_object_in_good_condition(object1, /*goto*/ 0x2f) \ + reloop(0x04) \ + \ + label(0x2f) \ + if_object_flag_bank1(object1, OBJECTFLAG1_00000001, /*goto*/ 0x2f) \ + if_chr_distance_to_pad_lt(CHR_JOANNA, 400, pad, /*goto*/ 0x09) \ + label(0x2f) \ + if_chr_looking_at_object(CHR_JOANNA, object1, /*goto*/ 0x2f) \ + endloop(0x04) \ + \ + label(0x09) + + + +#define holo1_code_thing_p2(object1, object2, hint, msg) \ + remove_displayed_text \ + display_text(0x01, COLOR_04_ORANGE, hint) \ + goto_first(0x04) \ + \ + label(0x2f) \ + set_object_image(object2, 0x00, 0x12) \ + set_object_image(object1, 0x00, 0x13) \ + remove_displayed_text \ + message(CHR_JOANNA, msg) \ + assign_sound(0x81b0, CHANNEL_7) \ + control_sound_from_object(CHANNEL_7, object1, TRUE) \ + restart_timer \ + \ + beginloop(0x57) \ + if_timer_gt(60, /*goto*/ 0x2f) \ + goto_first(0x57) \ + \ + label(0x2f) \ + set_object_flag_bank1(object2, OBJECTFLAG1_00000001) \ + \ + beginloop(0x59) \ + if_stage_flag_eq(STAGEFLAG_TRIGGER_HOLO_SUCCESS, TRUE, /*goto*/ 0x2f) \ + if_stage_flag_eq(STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x2f) \ + reloop(0x59) \ + \ + label(0x2f) \ + if_stage_flag_eq(STAGEFLAG_IN_HOLO1, FALSE, /*goto*/ 0x2f) \ + endloop(0x59) \ + \ + label(0x2f) \ + goto_first(0x8f) + + + +u8 func1021_holo1_code1[] = { + label(0x8f) + set_object_image(0x48, 0x00, 0x12) + unset_object_flag_bank1(0x4c, OBJECTFLAG1_00000001) + + holo1_code_thing_p1(0x48, 0x4c, 0x0240) + + set_object_flag_bank1(0x48, OBJECTFLAG1_00000001) + set_object_flag_bank1(0x4c, OBJECTFLAG1_00000001) + + // 0x1c55 = "LOOK UP - Press Down C Button to look up at the target." + // 0x1c65 = "Code 1 has been obtained." + holo1_code_thing_p2(0x48, 0x4c, 0x1c55, 0x1c65) + + endfunction +}; + +u8 func1021_holo1_code2[] = { + label(0x8f) + set_object_image(0x49, 0x00, 0x12) + unset_object_flag_bank1(0x4d, OBJECTFLAG1_00000001) + + holo1_code_thing_p1(0x49, 0x4d, 0x0241) + + set_object_flag_bank1(0x49, OBJECTFLAG1_00000001) + + // 0x1c56 = "LOOK DOWN - Press Up C Button to look down at the target." + // 0x1c66 = "Code 2 has been obtained." + holo1_code_thing_p2(0x49, 0x4d, 0x1c56, 0x1c66) + endfunction +}; + +u8 func1021_holo1_code3[] = { + label(0x8f) + unset_object_flag_bank1(0x4e, OBJECTFLAG1_00000001) + set_object_image(0x4a, 0x00, 0x12) + + holo1_code_thing_p1(0x4a, 0x4e, 0x0242) + + set_object_flag_bank1(0x4a, OBJECTFLAG1_00000001) + + // 0x1c55 = "LOOK UP - Press Down C Button to look up at the target." + // 0x1c67 = "Code 3 has been obtained." + holo1_code_thing_p2(0x4a, 0x4e, 0x1c55, 0x1c67) + endfunction +}; + +u8 func1021_holo1_code4[] = { + label(0x8f) + unset_object_flag_bank1(0x4f, OBJECTFLAG1_00000001) + set_object_image(0x4b, 0x00, 0x12) + + holo1_code_thing_p1(0x4b, 0x4f, 0x0243) + + set_object_flag_bank1(0x4b, OBJECTFLAG1_00000001) + + // 0x1c55 = "LOOK UP - Press Down C Button to look up at the target." + // 0x1c68 = "Code 4 has been obtained." + holo1_code_thing_p2(0x4b, 0x4f, 0x1c55, 0x1c68) + endfunction +}; + +u8 func0430_holo1_check_done[] = { + label(0x04) + yield + if_object_flag_bank1(0x4c, OBJECTFLAG1_00040000, /*goto*/ 0x2f) + goto_next(0x06) + + label(0x2f) + dprint 'D','O','H','1',0, + if_object_flag_bank1(0x4d, OBJECTFLAG1_00040000, /*goto*/ 0x2f) + goto_next(0x06) + + label(0x2f) + dprint 'D','O','H','2',0, + if_object_flag_bank1(0x4e, OBJECTFLAG1_00040000, /*goto*/ 0x2f) + goto_next(0x06) + + label(0x2f) + dprint 'D','O','H','3',0, + if_object_flag_bank1(0x4f, OBJECTFLAG1_00040000, /*goto*/ 0x2f) + goto_next(0x06) + + // All flags are set + label(0x2f) + dprint 'D','O','H','4',0, + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c6a) // "Holoprogram 1 has been completed successfully." + restart_timer + + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x2f) + endloop(0x08) + + label(0x2f) + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) + + label(0x06) + + beginloop(0x57) + if_stage_flag_eq(STAGEFLAG_IN_HOLO1, FALSE, /*goto*/ 0x2f) + endloop(0x57) + + label(0x2f) + return + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1022_holo2_main[] = { + label(0x80) + hide_object(0x54) + hide_object(0x55) + hide_object(0x56) + hide_object(0x57) + + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_IN_HOLO2, TRUE, /*goto*/ 0x81) + endloop(0x08) + + label(0x81) + set_stage_flag(STAGEFLAG_CONSIDER_WARP) + restart_timer + + beginloop(0x13) + if_timer_gt(30, /*goto*/ 0x2f) + endloop(0x13) + + label(0x2f) + lock_door(0x75, 0x40) + lock_door(0x76, 0x40) + close_door(0x75) + unset_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + if_chr_activated_object(CHR_JOANNA, 0x75, /*goto*/ 0x2f) + if_chr_activated_object(CHR_JOANNA, 0x76, /*goto*/ 0x2f) + label(0x2f) + unset_object_flag_bank1(0x54, OBJECTFLAG1_00000001) + unset_object_flag_bank1(0x55, OBJECTFLAG1_00000001) + unset_object_flag_bank1(0x56, OBJECTFLAG1_00000001) + unset_object_flag_bank1(0x57, OBJECTFLAG1_00000001) + set_object_image(0x54, 0x00, 0x14) + set_object_image(0x55, 0x00, 0x14) + set_object_image(0x56, 0x00, 0x14) + set_object_image(0x57, 0x00, 0x14) + unset_stage_flag(STAGEFLAG_HOLO_ABORTING) + unset_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) + unset_stage_flag(STAGEFLAG_TRIGGER_HOLO_FAILURE) + unset_stage_flag(STAGEFLAG_GENERAL_PURPOSE) + hide_object(0x45) + show_object(0x54) + show_object(0x55) + show_object(0x56) + show_object(0x57) + hide_chr(0x04) + dprint 't','r','a','i','n','i','n','g',0, + label(0x2f) + label(0x91) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c63) // "Activate all of the wall switches. - Be quick, as they will quickly reset." + restart_timer + + beginloop(0x82) + if_stage_flag_eq(STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x90) + if_stage_flag_eq(STAGEFLAG_TRIGGER_HOLO_FAILURE, TRUE, /*goto*/ 0x85) + if_stage_flag_eq(STAGEFLAG_TRIGGER_HOLO_SUCCESS, TRUE, /*goto*/ 0x83) + if_chr_activated_object(CHR_JOANNA, 0x75, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x76, /*goto*/ 0x57) + goto_next(0x59) + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_timer_gt(1200, /*goto*/ 0x2f) + endloop(0x82) + + label(0x2f) + goto_first(0x91) + + label(0x85) + dprint 'f','a','i','l',0, + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_FAILURE) + goto_next(0x90) + + label(0x83) + set_eeprom_flag(EEPROMFLAG_CI_HOLO2_DONE) + dprint 'd','o','n','e',0, + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) + yield + goto_next(0x84) + + label(0x84) + remove_displayed_text + label(0x90) + set_stage_flag(STAGEFLAG_CONSIDER_WARP) + unlock_door(0x75, 0x40) + unlock_door(0x76, 0x40) + mute_channel(CHANNEL_5) + mute_channel(CHANNEL_6) + mute_channel(CHANNEL_7) + show_chr(0x04) + dprint 'a','b','o','r','t','e','d',0, + hide_object(0x54) + hide_object(0x55) + hide_object(0x56) + hide_object(0x57) + show_object(0x45) + restart_timer + + beginloop(0x09) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + remove_displayed_text + goto_first(0x08) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +#define holo2_do_thing(object, function) \ + restart_timer \ + beginloop(0x04) \ + if_chr_activated_object(CHR_F3, object, /*goto*/ 0x2f) \ + if_object_flag_bank1(object, OBJECTFLAG1_00000001, /*goto*/ 0x06) \ + reloop(0x04) \ + \ + label(0x06) \ + if_timer_gt(300, /*goto*/ 0x06) \ + reloop(0x04) \ + \ + label(0x06) \ + set_object_image(object, 0x00, 0x14) \ + unset_object_flag_bank1(object, OBJECTFLAG1_00000001) \ + endloop(0x04) \ + \ + label(0x2f) \ + assign_sound(0x043a, CHANNEL_7) \ + control_sound_from_object(CHANNEL_7, object, TRUE) \ + set_object_image(object, 0x00, 0x13) \ + set_object_flag_bank1(object, OBJECTFLAG1_00000001) \ + set_return_function(CHR_SELF, function) \ + set_function(CHR_SELF, 0x041b) + + + +u8 func1023_holo2_object1[] = { + holo2_do_thing(0x54, 0x0431) + endfunction +}; + +u8 func1024_holo2_object2[] = { + holo2_do_thing(0x55, 0x0432) + endfunction +}; + +u8 func1025_holo2_object3[] = { + holo2_do_thing(0x56, 0x0433) + endfunction +}; + +u8 func1026_holo2_object4[] = { + holo2_do_thing(0x57, 0x0434) + endfunction +}; + +u8 func041b_holo2_part1[] = { + beginloop(0x8f) + if_stage_flag_eq(STAGEFLAG_IN_HOLO2, TRUE, /*goto*/ 0x04) + endloop(0x8f) + + label(0x04) + yield + if_object_flag_bank1(0x54, OBJECTFLAG1_00000001, /*goto*/ 0x2f) + goto_next(0x06) + + label(0x2f) + if_object_flag_bank1(0x55, OBJECTFLAG1_00000001, /*goto*/ 0x2f) + goto_next(0x06) + + label(0x2f) + if_object_flag_bank1(0x56, OBJECTFLAG1_00000001, /*goto*/ 0x2f) + goto_next(0x06) + + label(0x2f) + if_object_flag_bank1(0x57, OBJECTFLAG1_00000001, /*goto*/ 0x2f) + goto_next(0x06) + + label(0x2f) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c57) // "Holoprogram 2 has been completed successfully." + restart_timer + + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x2f) + endloop(0x08) + + label(0x2f) + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) + label(0x06) + return + endfunction +}; + +u8 func042f_holo2_part2[] = { + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_IN_HOLO2, TRUE, /*goto*/ 0x04) + endloop(0x08) + + beginloop(0x04) + if_player_looking_at_something_maybe(0x14, 0x01, 0x00, /*goto*/ 0x06) + goto_next(0x2f) + + label(0x06) + endloop(0x04) + + label(0x2f) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x09) + set_stage_flag(STAGEFLAG_GENERAL_PURPOSE) + set_stage_flag(STAGEFLAG_HOLO_FAILED) + restart_timer + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c69) // "Training failed - you must face forward." + set_function(CHR_SELF, GFUNC_IDLE) + set_object_image(0x54, 0x00, 0x12) + set_object_image(0x55, 0x00, 0x12) + set_object_image(0x56, 0x00, 0x12) + set_object_image(0x57, 0x00, 0x12) + + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x2f) + endloop(0x08) + + label(0x2f) + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_FAILURE) + + beginloop(0x09) + if_stage_flag_eq(STAGEFLAG_IN_HOLO2, FALSE, /*goto*/ 0x2f) + endloop(0x09) + + label(0x2f) + goto_first(0x08) + + endfunction +}; + +u8 func1027_holo3_main[] = { + label(0x80) + hide_object(0x58) + hide_object(0x59) + hide_object(0x5a) + hide_object(0x5b) + hide_object(0x5c) + hide_object(0x5d) + hide_object(0x5e) + hide_object(0x5f) + hide_object(0x60) + hide_object(0x61) + hide_object(0x62) + hide_object(0x63) + hide_object(0x64) + hide_object(0x73) + hide_object(0x74) + hide_object(0x65) + hide_object(0x66) + hide_object(0x67) + hide_object(0x68) + hide_object(0x69) + hide_object(0x6a) + hide_object(0x6b) + hide_object(0x6c) + hide_object(0x6d) + hide_object(0x6e) + hide_object(0x6f) + hide_object(0x70) + hide_object(0x71) + hide_object(0x72) + + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_IN_HOLO3, TRUE, /*goto*/ 0x81) + endloop(0x08) + + label(0x81) + set_stage_flag(STAGEFLAG_CONSIDER_WARP) + restart_timer + + beginloop(0x13) + if_timer_gt(30, /*goto*/ 0x2f) + endloop(0x13) + + label(0x2f) + lock_door(0x75, 0x40) + lock_door(0x76, 0x40) + close_door(0x75) + unset_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + if_chr_activated_object(CHR_JOANNA, 0x75, /*goto*/ 0x2f) + if_chr_activated_object(CHR_JOANNA, 0x76, /*goto*/ 0x2f) + label(0x2f) + unset_object_flag_bank1(0x65, OBJECTFLAG1_00000001) + unset_object_flag_bank1(0x66, OBJECTFLAG1_00000001) + set_object_image(0x65, 0x00, 0x14) + set_object_image(0x66, 0x00, 0x14) + unset_stage_flag(STAGEFLAG_HOLO_ABORTING) + unset_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) + unset_stage_flag(STAGEFLAG_TRIGGER_HOLO_FAILURE) + unset_stage_flag(STAGEFLAG_GENERAL_PURPOSE) + hide_object(0x45) + show_object(0x58) + show_object(0x59) + show_object(0x5a) + show_object(0x5b) + show_object(0x5c) + show_object(0x5d) + show_object(0x5e) + show_object(0x5f) + show_object(0x60) + show_object(0x61) + show_object(0x62) + show_object(0x63) + show_object(0x64) + show_object(0x73) + show_object(0x74) + show_object(0x65) + show_object(0x66) + show_object(0x67) + show_object(0x68) + show_object(0x69) + show_object(0x6a) + show_object(0x6b) + show_object(0x6c) + show_object(0x6d) + show_object(0x6e) + show_object(0x6f) + show_object(0x70) + show_object(0x71) + show_object(0x72) + hide_chr(0x04) + open_door(0x67) + open_door(0x68) + open_door(0x69) + open_door(0x6a) + open_door(0x6b) + open_door(0x6c) + open_door(0x6d) + open_door(0x6e) + open_door(0x6f) + open_door(0x70) + open_door(0x71) + open_door(0x72) + yield + close_door(0x67) + close_door(0x68) + close_door(0x69) + close_door(0x6a) + close_door(0x6b) + close_door(0x6c) + close_door(0x6d) + close_door(0x6e) + close_door(0x6f) + close_door(0x70) + close_door(0x71) + close_door(0x72) + dprint 't','r','a','i','n','i','n','g',0, + label(0x2f) + label(0x91) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c62) // "Activate all the switches." + restart_timer + + beginloop(0x82) + if_stage_flag_eq(STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x90) + if_stage_flag_eq(STAGEFLAG_TRIGGER_HOLO_FAILURE, TRUE, /*goto*/ 0x85) + if_stage_flag_eq(STAGEFLAG_TRIGGER_HOLO_SUCCESS, TRUE, /*goto*/ 0x83) + if_chr_activated_object(CHR_JOANNA, 0x75, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x76, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_timer_gt(1200, /*goto*/ 0x2f) + endloop(0x82) + + label(0x2f) + goto_first(0x91) + + label(0x85) + dprint 'f','a','i','l',0, + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_FAILURE) + goto_next(0x84) + + label(0x83) + set_eeprom_flag(EEPROMFLAG_CI_HOLO3_DONE) + dprint 'd','o','n','e',0, + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) + yield + goto_next(0x84) + + label(0x84) + label(0x90) + set_stage_flag(STAGEFLAG_CONSIDER_WARP) + unlock_door(0x75, 0x40) + unlock_door(0x76, 0x40) + remove_displayed_text + mute_channel(CHANNEL_5) + mute_channel(CHANNEL_6) + mute_channel(CHANNEL_7) + show_chr(0x04) + dprint 'a','b','o','r','t','e','d',0, + hide_object(0x58) + hide_object(0x59) + hide_object(0x5a) + hide_object(0x5b) + hide_object(0x5c) + hide_object(0x5d) + hide_object(0x5e) + hide_object(0x5f) + hide_object(0x60) + hide_object(0x61) + hide_object(0x62) + hide_object(0x63) + hide_object(0x64) + hide_object(0x73) + hide_object(0x74) + hide_object(0x65) + hide_object(0x66) + hide_object(0x67) + hide_object(0x68) + hide_object(0x69) + hide_object(0x6a) + hide_object(0x6b) + hide_object(0x6c) + hide_object(0x6d) + hide_object(0x6e) + hide_object(0x6f) + hide_object(0x70) + hide_object(0x71) + hide_object(0x72) + show_object(0x45) + restart_timer + + beginloop(0x09) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + remove_displayed_text + goto_first(0x08) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func102a_holo3_part1[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_IN_HOLO3, TRUE, /*goto*/ 0x2f) + reloop(0x04) + + label(0x2f) + if_chr_distance_to_pad_lt(CHR_JOANNA, 300, 0x0123, /*goto*/ 0x09) + endloop(0x04) + + label(0x09) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x06) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c5f) // "DUCK - Hold R Button, then press Down C Button to duck." + restart_timer + + beginloop(0x0a) + if_timer_gt(1200, /*goto*/ 0x06) + endloop(0x0a) + + label(0x06) + goto_first(0x04) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func102b_holo3_part2[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_IN_HOLO3, TRUE, /*goto*/ 0x2f) + reloop(0x04) + + label(0x2f) + if_chr_distance_to_pad_lt(CHR_JOANNA, 300, 0x0124, /*goto*/ 0x09) + endloop(0x04) + + label(0x09) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x06) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c60) // "CROUCH - When ducking, hold R Button, then press Down C Button to duck." + restart_timer + + beginloop(0x0a) + if_timer_gt(1200, /*goto*/ 0x06) + endloop(0x0a) + + label(0x06) + goto_first(0x04) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func102c_holo3_object1[] = { + beginloop(0x04) + if_chr_activated_object(CHR_F3, 0x65, /*goto*/ 0x2f) + endloop(0x04) + + label(0x2f) + assign_sound(0x043a, CHANNEL_7) + control_sound_from_object(CHANNEL_7, 0x65, TRUE) + set_object_image(0x65, 0x00, 0x13) + set_object_flag_bank1(0x65, OBJECTFLAG1_00000001) + set_return_function(CHR_SELF, FUNC_HOLO3_OBJECT1) + set_function(CHR_SELF, FUNC_HOLO3_CHECK_DONE) + endfunction +}; + +u8 func102d_holo3_object2[] = { + beginloop(0x04) + if_chr_activated_object(CHR_F3, 0x66, /*goto*/ 0x2f) + endloop(0x04) + + label(0x2f) + assign_sound(0x043a, CHANNEL_7) + control_sound_from_object(CHANNEL_7, 0x65, TRUE) + set_object_image(0x66, 0x00, 0x13) + set_object_flag_bank1(0x66, OBJECTFLAG1_00000001) + set_return_function(CHR_SELF, FUNC_HOLO3_OBJECT2) + set_function(CHR_SELF, FUNC_HOLO3_CHECK_DONE) + endfunction +}; + +u8 func041c_holo3_check_done[] = { + label(0x04) + yield + if_object_flag_bank1(0x65, OBJECTFLAG1_00000001, /*goto*/ 0x2f) + goto_next(0x06) + + label(0x2f) + if_object_flag_bank1(0x66, OBJECTFLAG1_00000001, /*goto*/ 0x2f) + goto_next(0x06) + + label(0x2f) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x06) + set_stage_flag(STAGEFLAG_GENERAL_PURPOSE) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c61) // "Holoprogram 3 has been completed successfully." + restart_timer + + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x2f) + endloop(0x08) + + label(0x2f) + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) + label(0x06) + return + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1028_holo4_main[] = { + label(0x80) + + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_IN_HOLO4, TRUE, /*goto*/ 0x81) + endloop(0x08) + + label(0x81) + set_stage_flag(STAGEFLAG_CONSIDER_WARP) + lock_door(0x75, 0x40) + lock_door(0x76, 0x40) + close_door(0x75) + unset_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + if_chr_activated_object(CHR_JOANNA, 0x75, /*goto*/ 0x2f) + if_chr_activated_object(CHR_JOANNA, 0x76, /*goto*/ 0x2f) + label(0x2f) + unset_stage_flag(STAGEFLAG_HOLO_ABORTING) + unset_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) + unset_stage_flag(STAGEFLAG_TRIGGER_HOLO_FAILURE) + unset_stage_flag(STAGEFLAG_GENERAL_PURPOSE) + hide_object(0x45) + hide_chr(0x04) + try_spawn_chr(BODY_DDSHOCK, HEAD_RANDOM, 0x0274, FUNC_HOLO4_GUARD1, 0x00002210, /*goto*/ 0x08) + label(0x08) + dprint 't','r','a','i','n','i','n','g',0, + label(0x91) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x2f) + remove_displayed_text + if_chr_flag_bank3(0x0d, CHRFLAG3_00000040, /*goto*/ 0x61) + display_text(0x01, COLOR_04_ORANGE, 0x1c6b) // "Unarmed combat - knock out the target. - Press Z Button repeatedly to punch." + goto_next(0x2f) + + label(0x61) + if_chr_flag_bank3(0x0e, CHRFLAG3_00000040, /*goto*/ 0x62) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c6c) // "Now try against a moving target..." + goto_next(0x2f) + + label(0x62) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c6d) // "And finally against a target that fights back." + goto_next(0x2f) + + label(0x2f) + restart_timer + + beginloop(0x82) + if_stage_flag_eq(STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x90) + if_stage_flag_eq(STAGEFLAG_TRIGGER_HOLO_FAILURE, TRUE, /*goto*/ 0x85) + if_stage_flag_eq(STAGEFLAG_TRIGGER_HOLO_SUCCESS, TRUE, /*goto*/ 0x83) + if_chr_activated_object(CHR_JOANNA, 0x75, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x76, /*goto*/ 0x57) + goto_next(0x59) + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_timer_gt(1200, /*goto*/ 0x2f) + endloop(0x82) + + label(0x2f) + goto_first(0x91) + + label(0x85) + dprint 'f','a','i','l',0, + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_FAILURE) + goto_next(0x84) + + label(0x83) + set_eeprom_flag(EEPROMFLAG_CI_HOLO4_DONE) + dprint 'd','o','n','e',0, + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) + yield + goto_next(0x84) + label(0x84) + label(0x90) + set_stage_flag(STAGEFLAG_CONSIDER_WARP) + unlock_door(0x75, 0x40) + unlock_door(0x76, 0x40) + remove_displayed_text + mute_channel(CHANNEL_5) + mute_channel(CHANNEL_6) + mute_channel(CHANNEL_7) + show_chr(0x04) + remove_chr(0x0d) + remove_chr(0x0e) + remove_chr(0x0f) + dprint 'a','b','o','r','t','e','d',0, + show_object(0x45) + label(0x06) + remove_displayed_text + + beginloop(0x6d) + if_stage_flag_eq(STAGEFLAG_IN_HOLO4, FALSE, /*goto*/ 0x2f) + endloop(0x6d) + + label(0x2f) + goto_first(0x08) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0403_holo4_guard1[] = { + set_chr_id(0x0d) + set_onshot_function(FUNC_HOLO4_GUARD1) + + beginloop(0x04) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2f) + if_chr_dying(CHR_SELF, /*goto*/ 0x2f) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2f) + endloop(0x04) + + label(0x2f) + set_self_flag_bank3(CHRFLAG3_00000040) + try_spawn_chr(BODY_DDSHOCK, HEAD_RANDOM, 0x0277, FUNC_HOLO4_GUARD2, 0x00002210, /*goto*/ 0x08) + label(0x08) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c6c) // "Now try against a moving target..." + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0404_holo4_guard2[] = { + set_chr_id(0x0e) + set_onshot_function(FUNC_HOLO4_GUARD2) + label(0x04) + yield + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2f) + if_chr_dying(CHR_SELF, /*goto*/ 0x2f) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2f) + goto_next(0x06) + + label(0x2f) + set_self_flag_bank3(CHRFLAG3_00000040) + try_spawn_chr(BODY_DDSHOCK, HEAD_RANDOM, 0x027a, FUNC_HOLO4_GUARD3, 0x00002210, /*goto*/ 0x0a) + label(0x0a) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c6d) // "And finally against a target that fights back." + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x06) + if_chr_distance_lt(500, /*goto*/ 0x2f) + try_face_entity(0x0200, 0x0000, /*goto*/ 0x08) + + beginloop(0x08) + if_chr_distance_lt(500, /*goto*/ 0x2f) + endloop(0x08) + + label(0x2f) + restart_timer + retreat(0x02, 0x01) + + beginloop(0x09) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + goto_first(0x04) + + endfunction +}; + +u8 func0405_holo4_guard3[] = { + set_chr_id(0x0f) + set_onshot_function(FUNC_HOLO4_GUARD3) + restart_timer + + beginloop(0x04) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + set_function(CHR_SELF, FUNC_HOLO_GUARD_UNARMED_UNALERT) + endfunction +}; + +u8 func1033_holo4_part1[] = { + beginloop(0x8f) + if_stage_flag_eq(STAGEFLAG_IN_HOLO4, TRUE, /*goto*/ 0x04) + endloop(0x8f) + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x57) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x57) + if_chr_death_animation_finished(0x0d, /*goto*/ 0x2f) + if_chr_dying(0x0d, /*goto*/ 0x2f) + if_chr_unloaded(0x0d, /*goto*/ 0x2f) + endloop(0x04) + + label(0x2f) + yield + yield + yield + yield + yield + if_stage_flag_eq(STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x57) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x57) + if_chr_death_animation_finished(0x0e, /*goto*/ 0x2f) + if_chr_dying(0x0e, /*goto*/ 0x2f) + if_chr_unloaded(0x0e, /*goto*/ 0x2f) + goto_first(0x04) + + label(0x2f) + yield + yield + yield + yield + yield + if_stage_flag_eq(STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x57) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x57) + if_chr_death_animation_finished(0x0f, /*goto*/ 0x2f) + if_chr_dying(0x0f, /*goto*/ 0x2f) + if_chr_unloaded(0x0f, /*goto*/ 0x2f) + goto_first(0x04) + + label(0x2f) + restart_timer + set_stage_flag(STAGEFLAG_GENERAL_PURPOSE) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c58) // "Holoprogram 4 has been completed successfully." + + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x57) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) + + beginloop(0x57) + if_stage_flag_eq(STAGEFLAG_IN_HOLO4, FALSE, /*goto*/ 0x2f) + endloop(0x57) + + label(0x2f) + goto_first(0x8f) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1029_holo5_main[] = { + label(0x80) + + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_IN_HOLO5, TRUE, /*goto*/ 0x81) + endloop(0x08) + + label(0x81) + set_stage_flag(STAGEFLAG_CONSIDER_WARP) + lock_door(0x75, 0x40) + lock_door(0x76, 0x40) + close_door(0x75) + unset_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + if_chr_activated_object(CHR_JOANNA, 0x75, /*goto*/ 0x2f) + if_chr_activated_object(CHR_JOANNA, 0x76, /*goto*/ 0x2f) + label(0x2f) + unset_stage_flag(STAGEFLAG_HOLO_ABORTING) + unset_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) + unset_stage_flag(STAGEFLAG_TRIGGER_HOLO_FAILURE) + unset_stage_flag(STAGEFLAG_GENERAL_PURPOSE) + hide_object(0x45) + hide_chr(0x04) + try_spawn_chr(BODY_DDSHOCK, HEAD_RANDOM, 0x0126, FUNC_HOLO5_INIT_GUARD1, 0x00002210, /*goto*/ 0x06) + label(0x06) + yield + dprint 't','r','a','i','n','i','n','g',0, + label(0x91) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x2f) + remove_displayed_text + if_chr_flag_bank3(0x10, CHRFLAG3_00000040, /*goto*/ 0x61) + display_text(0x01, COLOR_04_ORANGE, 0x1c5c) // "Disarm this live target if you can." + goto_next(0x2f) + + label(0x61) + if_chr_flag_bank3(0x11, CHRFLAG3_00000040, /*goto*/ 0x62) + display_text(0x01, COLOR_04_ORANGE, 0x1c5d) // "Knock out this target - stealth is the key." + goto_next(0x2f) + + label(0x62) + display_text(0x01, COLOR_04_ORANGE, 0x1c5e) // "And the final guard..." + goto_next(0x2f) + + label(0x2f) + restart_timer + + beginloop(0x82) + if_stage_flag_eq(STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x90) + if_stage_flag_eq(STAGEFLAG_TRIGGER_HOLO_FAILURE, TRUE, /*goto*/ 0x85) + if_stage_flag_eq(STAGEFLAG_TRIGGER_HOLO_SUCCESS, TRUE, /*goto*/ 0x83) + if_chr_activated_object(CHR_JOANNA, 0x75, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x76, /*goto*/ 0x57) + goto_next(0x59) + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_timer_gt(1200, /*goto*/ 0x2f) + endloop(0x82) + + label(0x2f) + goto_first(0x91) + + label(0x2f) + goto_first(0x82) + + label(0x85) + dprint 'f','a','i','l',0, + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_FAILURE) + goto_next(0x84) + + label(0x83) + set_eeprom_flag(EEPROMFLAG_CI_HOLO5_DONE) + dprint 'd','o','n','e',0, + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) + yield + goto_next(0x84) + + label(0x84) + label(0x90) + set_stage_flag(STAGEFLAG_CONSIDER_WARP) + unlock_door(0x75, 0x40) + unlock_door(0x76, 0x40) + remove_displayed_text + mute_channel(CHANNEL_5) + mute_channel(CHANNEL_6) + mute_channel(CHANNEL_7) + show_chr(0x04) + remove_chr(0x10) + remove_chr(0x11) + remove_chr(0x12) + dprint 'a','b','o','r','t','e','d',0, + show_object(0x45) + remove_displayed_text + + beginloop(0x6d) + if_stage_flag_eq(STAGEFLAG_IN_HOLO5, FALSE, /*goto*/ 0x2f) + endloop(0x6d) + + label(0x2f) + goto_first(0x08) + + endfunction +}; + +u8 func0406_holo5_init_guard1[] = { + set_alertness(100) + set_chr_id(0x10) + try_draw_weapon(MODEL_CHRFALCON2, WEAPON_FALCON2, 0x40000000, /*goto*/ 0x06) + label(0x06) + set_function(CHR_SELF, FUNC_HOLO5_GUARD1) + endfunction +}; + +u8 func0407_holo5_guard1[] = { + set_self_flag_bankx(CHRFLAG0_80000000, BANK_0) + dprint 'C','R','E','A','T','E','D',' ','4',0, + set_onshot_function(FUNC_HOLO5_GUARD1) + set_chr_health(CHR_SELF, 300) + set_armor(300) + label(0x04) + yield + label(0x2f) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x30) + if_chr_dying(CHR_SELF, /*goto*/ 0x30) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x30) + if_has_gun(CHR_SELF, /*goto*/ 0x06) + label(0x2f) + set_self_flag_bankx(CHRFLAG0_00008000, BANK_0) + set_self_flag_bank3(CHRFLAG3_00000040) + set_onshot_function(GFUNC_IDLE) + goto_next(0x0a) + label(0x30) + restart_timer + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + + beginloop(0x62) + if_timer_gt(60, /*goto*/ 0x63) + endloop(0x62) + + label(0x63) + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_FAILURE) + set_stage_flag(STAGEFLAG_GENERAL_PURPOSE) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x0a) + set_self_flag_bank3(CHRFLAG3_00000040) + set_self_flag_bankx(CHRFLAG0_00008000, BANK_0) + surrender + message(CHR_JOANNA, 0x1c5a) // "Guard has been successfully disarmed." + + beginloop(0x59) + try_spawn_chr(BODY_DDSHOCK, HEAD_RANDOM, 0x0272, FUNC_HOLO5_INIT_GUARD2, 0x00002210, /*goto*/ 0x2f) + endloop(0x59) + + label(0x2f) + set_onshot_function(GFUNC_IDLE) + + beginloop(0x0b) + endloop(0x0b) + + label(0x06) + if_chr_distance_lt(300, /*goto*/ 0x2f) + try_face_entity(0x0200, 0x0000, /*goto*/ 0x08) + + beginloop(0x08) + if_chr_distance_lt(300, /*goto*/ 0x2f) + endloop(0x08) + + label(0x2f) + restart_timer + retreat(0x02, 0x01) + + beginloop(0x09) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + goto_first(0x04) + + endfunction +}; + +u8 func0408_holo5_init_guard2[] = { + set_chr_health(CHR_SELF, 200) + set_alertness(100) + set_chr_id(0x11) + try_draw_weapon(MODEL_CHRFALCON2, WEAPON_FALCON2, 0x40000000, /*goto*/ 0x06) + label(0x06) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c5d) // "Knock out this target - stealth is the key." + set_function(CHR_SELF, FUNC_HOLO5_GUARD2) + endfunction +}; + +u8 func0409_holo5_guard2[] = { + dprint 'C','R','E','A','T','E','D',' ','5',0, + set_onshot_function(FUNC_HOLO5_GUARD2) + label(0x04) + yield + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2f) + if_chr_dying(CHR_SELF, /*goto*/ 0x2f) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2f) + restart_timer + assign_path(0) + start_path + label(0x08) + yield + dprint 'O','n',' ','P','a','t','r','o','l',0, + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2f) + if_chr_dying(CHR_SELF, /*goto*/ 0x2f) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2f) + if_target_chr_in_sight(/*goto*/ 0x09) + unset_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_alertness(0) + goto_first(0x08) + + label(0x06) + label(0x09) + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + try_face_entity(0x0200, 0x0000, /*goto*/ 0x0a) + + beginloop(0x0a) + if_chr_sees_player(/*goto*/ 0x06) + goto_first(0x04) + + label(0x06) + endloop(0x0a) + + label(0x2f) + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_00000040) + + beginloop(0x57) + try_spawn_chr(BODY_DDSHOCK, HEAD_RANDOM, 0x0125, FUNC_HOLO5_INIT_GUARD3, 0x00002210, /*goto*/ 0x06) + endloop(0x57) + + label(0x06) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040a_holo5_init_guard3[] = { + set_reaction_speed(100) + set_chr_id(0x12) + try_draw_weapon(MODEL_CHRFALCON2, WEAPON_FALCON2, 0x40000000, /*goto*/ 0x06) + label(0x06) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c5e) // "And the final guard..." + set_alertness(100) + set_function(CHR_SELF, FUNC_HOLO5_GUARD3) + endfunction +}; + +u8 func040b_holo5_guard3[] = { + dprint 'C','R','E','A','T','E','D',' ','6',0, + set_onshot_function(FUNC_HOLO_GUARD_ARMED_UNALERT) + restart_timer + + beginloop(0x08) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + set_function(CHR_SELF, FUNC_HOLO_GUARD_ARMED_UNALERT) + + beginloop(0x04) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2f) + if_chr_dying(CHR_SELF, /*goto*/ 0x2f) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2f) + endloop(0x04) + + label(0x2f) + restart_timer + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c59) // "Holoprogram 5 has been completed successfully." + + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1034_holo5_part1[] = { + beginloop(0x8f) + if_stage_flag_eq(STAGEFLAG_IN_HOLO5, TRUE, /*goto*/ 0x2f) + endloop(0x8f) + + label(0x2f) + yield + yield + yield + yield + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d) + if_chr_flag_bankx(0x10, CHRFLAG0_00008000, BANK_0, /*goto*/ 0x2f) + dprint 'C','H','R',' ','4','F','D',0, + label(0x06) + endloop(0x04) + + label(0x2f) + yield + yield + yield + yield + if_stage_flag_eq(STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x0d) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d) + if_chr_death_animation_finished(0x11, /*goto*/ 0x2f) + if_chr_dying(0x11, /*goto*/ 0x2f) + if_chr_unloaded(0x11, /*goto*/ 0x2f) + goto_first(0x04) + + label(0x2f) + dprint 'C','H','R',' ','5','F','D',0, + yield + yield + yield + yield + if_stage_flag_eq(STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x0d) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d) + if_chr_death_animation_finished(0x12, /*goto*/ 0x2f) + if_chr_dying(0x12, /*goto*/ 0x2f) + if_chr_unloaded(0x12, /*goto*/ 0x2f) + goto_first(0x04) + + label(0x2f) + dprint 'C','H','R',' ','6','F','D',0, + restart_timer + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d) + set_stage_flag(STAGEFLAG_GENERAL_PURPOSE) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c59) // "Holoprogram 5 has been completed successfully." + + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x0d) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) + + beginloop(0x0d) + if_stage_flag_eq(STAGEFLAG_IN_HOLO5, FALSE, /*goto*/ 0x2f) + endloop(0x0d) + + label(0x2f) + goto_first(0x8f) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func102e_holo6_main[] = { + label(0x80) + + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_IN_HOLO6, TRUE, /*goto*/ 0x81) + endloop(0x08) + + label(0x81) + set_stage_flag(STAGEFLAG_CONSIDER_WARP) + lock_door(0x75, 0x40) + lock_door(0x76, 0x40) + close_door(0x75) + unset_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + if_chr_activated_object(CHR_JOANNA, 0x75, /*goto*/ 0x2f) + if_chr_activated_object(CHR_JOANNA, 0x76, /*goto*/ 0x2f) + label(0x2f) + unset_stage_flag(STAGEFLAG_HOLO_ABORTING) + unset_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) + unset_stage_flag(STAGEFLAG_TRIGGER_HOLO_FAILURE) + unset_stage_flag(STAGEFLAG_GENERAL_PURPOSE) + hide_object(0x45) + hide_chr(0x04) + + beginloop(0x57) + try_spawn_chr(BODY_DDSHOCK, HEAD_RANDOM, 0x0127, FUNC_HOLO6_INIT_GUARD1, 0x00002210, /*goto*/ 0x59) + endloop(0x57) + + beginloop(0x59) + try_spawn_chr(BODY_DDSHOCK, HEAD_RANDOM, 0x0128, FUNC_HOLO6_INIT_GUARD2, 0x00002210, /*goto*/ 0x5b) + endloop(0x59) + + beginloop(0x5b) + try_spawn_chr(BODY_DDSHOCK, HEAD_RANDOM, 0x0129, FUNC_HOLO6_INIT_GUARD3, 0x00002210, /*goto*/ 0x5c) + endloop(0x5b) + + beginloop(0x5c) + try_spawn_chr(BODY_DDSHOCK, HEAD_RANDOM, 0x012a, FUNC_HOLO6_INIT_GUARD4, 0x00002210, /*goto*/ 0x5d) + endloop(0x5c) + + label(0x5d) + dprint 't','r','a','i','n','i','n','g',0, + label(0x2f) + label(0x91) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x2f) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c6e) // "Defeat all enemies without getting hit." + label(0x2f) + restart_timer + + beginloop(0x82) + if_stage_flag_eq(STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x90) + if_stage_flag_eq(STAGEFLAG_TRIGGER_HOLO_FAILURE, TRUE, /*goto*/ 0x85) + if_stage_flag_eq(STAGEFLAG_TRIGGER_HOLO_SUCCESS, TRUE, /*goto*/ 0x83) + if_chr_activated_object(CHR_JOANNA, 0x75, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x76, /*goto*/ 0x57) + goto_next(0x59) + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_timer_gt(1200, /*goto*/ 0x2f) + endloop(0x82) + + label(0x2f) + goto_first(0x91) + + label(0x85) + dprint 'f','a','i','l',0, + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_FAILURE) + goto_next(0x84) + + label(0x83) + set_eeprom_flag(EEPROMFLAG_CI_HOLO6_DONE) + dprint 'd','o','n','e',0, + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) + yield + goto_next(0x84) + + label(0x84) + label(0x90) + set_stage_flag(STAGEFLAG_CONSIDER_WARP) + unlock_door(0x75, 0x40) + unlock_door(0x76, 0x40) + remove_displayed_text + mute_channel(CHANNEL_5) + mute_channel(CHANNEL_6) + mute_channel(CHANNEL_7) + show_chr(0x04) + remove_chr(0x13) + remove_chr(0x14) + remove_chr(0x15) + remove_chr(0x16) + dprint 'a','b','o','r','t','e','d',0, + show_object(0x45) + label(0x06) + remove_displayed_text + + beginloop(0x6d) + if_stage_flag_eq(STAGEFLAG_IN_HOLO6, FALSE, /*goto*/ 0x2f) + endloop(0x6d) + + label(0x2f) + goto_first(0x08) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040c_holo6_init_guard1[] = { + set_chr_id(0x13) + set_function(CHR_SELF, FUNC_HOLO_GUARD_UNARMED_UNALERT) + endfunction +}; + +u8 func040d_holo6_init_guard2[] = { + set_chr_id(0x14) + set_function(CHR_SELF, FUNC_HOLO_GUARD_UNARMED_UNALERT) + endfunction +}; + +u8 func040e_holo6_init_guard3[] = { + set_chr_id(0x15) + set_function(CHR_SELF, FUNC_HOLO_GUARD_UNARMED_UNALERT) + endfunction +}; + +u8 func040f_holo6_init_guard4[] = { + set_chr_id(0x16) + set_function(CHR_SELF, FUNC_HOLO_GUARD_UNARMED_UNALERT) + endfunction +}; + +u8 func0415_holo_guard_unarmed_unalert[] = { + set_alertness(100) + set_chr_health(CHR_SELF, 100) + yield + yield + yield + cmd0145_rebuild_groups + cmd0146_rebuild_groups + yield + yield + yield + yield + set_action(ACTION_SCAN, FALSE) + set_onshot_function(FUNC_HOLO_GUARD_UNARMED_ALERT) + restart_timer + + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x04) + if_player_looking_at_something_maybe(0x28, 0x01, 0x00, /*goto*/ 0x04) + endloop(0x08) + + beginloop(0x04) + if_chr_distance_lt(500, /*goto*/ 0x06) + call_rng + if_rand_lt(1, /*goto*/ 0x06) + label(0x2f) + endloop(0x04) + + label(0x06) + set_function(CHR_SELF, FUNC_HOLO_GUARD_UNARMED_ALERT) + endfunction +}; + +u8 func0416_holo_guard_unarmed_alert[] = { + set_onshot_function(FUNC_HOLO_GUARD_UNARMED_ALERT) + set_action(ACTION_HAND_COMBAT, FALSE) + if_chr_injured_target(CHR_SELF, /*goto*/ 0x09) + label(0x8f) + restart_timer + try_run_to_target_chr(/*goto*/ 0x08) + + beginloop(0x08) + if_chr_stopped(/*goto*/ 0x06) + if_chr_distance_lt(300, /*goto*/ 0x2f) + if_timer_gt(15, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + goto_first(0x8f) + + label(0x2f) + set_return_function(CHR_SELF, FUNC_HOLO_GUARD_UNARMED_ALERT) + set_function(CHR_SELF, FUNC_HOLO_GUARD_UNARMED_ALERT2) + + label(0x09) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0a) + set_stage_flag(STAGEFLAG_GENERAL_PURPOSE) + set_stage_flag(STAGEFLAG_HOLO_FAILED) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c6f) // "Training failed - you have been hit." + restart_timer + set_function(CHR_SELF, GFUNC_IDLE) + + beginloop(0x5e) + if_stage_flag_eq(STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x2f) + if_timer_gt(180, /*goto*/ 0x2f) + endloop(0x5e) + + label(0x2f) + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_FAILURE) + label(0x0a) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0416_holo_guard_unarmed_alert2[] = { + set_action(ACTION_HAND_COMBAT, FALSE) + restart_timer + + beginloop(0x04) + if_chr_dying(TARGET_CHR, /*goto*/ 0x57) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0x57) + if_chr_distance_gt(100, /*goto*/ 0x2f) + if_in_disarm_range(/*goto*/ 0x2f) + if_timer_gt(120, /*goto*/ 0x10) + endloop(0x04) + + label(0x2f) + if_chr_distance_gt(400, /*goto*/ 0x10) + if_chr_distance_lt(100, /*goto*/ 0x06) + restart_timer + try_run_to_target_chr(/*goto*/ 0x08) + + beginloop(0x08) + if_chr_dying(TARGET_CHR, /*goto*/ 0x57) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0x57) + if_timer_gt(20, /*goto*/ 0x10) + if_chr_stopped(/*goto*/ 0x10) + if_chr_lost_track_of_target_maybe(/*goto*/ 0x0e) + label(0x0e) + if_chr_distance_gt(400, /*goto*/ 0x10) + if_chr_distance_lt(100, /*goto*/ 0x06) + endloop(0x08) + + label(0x2f) + restart_timer + goto_first(0x04) + + label(0x06) + restart_timer + 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_dying(TARGET_CHR, /*goto*/ 0x57) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0x57) + if_chr_distance_gt(400, /*goto*/ 0x10) + if_angle_to_target_chr_lt(10, /*goto*/ 0x06) + cmd004f(246, /*goto*/ 0x06) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x09) + + label(0x2f) + restart_timer + goto_first(0x04) + + label(0x06) + try_punch_or_kick(/*goto*/ 0x2f) + restart_timer + goto_first(0x04) + + label(0x2f) + + beginloop(0x0a) + if_timer_gt(180, /*goto*/ 0x06) + if_chr_injured_target(CHR_SELF, /*goto*/ 0x2f) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x0a) + + label(0x06) + if_chr_injured_target(CHR_SELF, /*goto*/ 0x2f) + say_quip(CHR_JOANNA, 0x16, 0x19, 0x03, 0x00, BANK_0, 0x00, 0x00) + say_quip(CHR_JOANNA, 0x17, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00) + goto_next(0x06) + + label(0x2f) + say_quip(CHR_JOANNA, 0x15, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00) + say_quip(CHR_JOANNA, 0x15, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0f) + set_stage_flag(STAGEFLAG_GENERAL_PURPOSE) + set_stage_flag(STAGEFLAG_HOLO_FAILED) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c6f) // "Training failed - you have been hit." + restart_timer + set_function(CHR_SELF, GFUNC_IDLE) + + beginloop(0x5e) + if_timer_gt(180, /*goto*/ 0x2f) + endloop(0x5e) + + label(0x2f) + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_FAILURE) + label(0x0f) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x06) + label(0x57) + label(0x10) + return + endfunction +}; + +u8 func041a_handle_holo_failure[] = { + beginloop(0x8f) + if_stage_flag_eq(STAGEFLAG_HOLO_FAILED, TRUE, /*goto*/ 0x2f) + endloop(0x8f) + + label(0x2f) + restart_timer + + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x2f) + if_timer_gt(180, /*goto*/ 0x2f) + endloop(0x08) + + label(0x2f) + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_FAILURE) + label(0x09) + unset_stage_flag(STAGEFLAG_HOLO_FAILED) + goto_first(0x8f) + + endfunction +}; + +u8 func102f_holo1_part1[] = { + beginloop(0x8f) + if_stage_flag_eq(STAGEFLAG_IN_HOLO6, TRUE, /*goto*/ 0x04) + endloop(0x8f) + + beginloop(0x04) + yield + yield + yield + dprint 'N','O',' ','D','E','A','D',0, + if_stage_flag_eq(STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x0d) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d) + if_chr_dying(0x13, /*goto*/ 0x2f) + if_chr_death_animation_finished(0x13, /*goto*/ 0x2f) + if_chr_unloaded(0x13, /*goto*/ 0x2f) + endloop(0x04) + + label(0x2f) + yield + yield + yield + yield + dprint 'C','H','R',' ','7','F','D',0, + if_stage_flag_eq(STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x0d) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d) + if_chr_dying(0x14, /*goto*/ 0x2f) + if_chr_death_animation_finished(0x14, /*goto*/ 0x2f) + if_chr_unloaded(0x14, /*goto*/ 0x2f) + goto_first(0x04) + + label(0x2f) + yield + yield + yield + yield + dprint 'C','H','R',' ','8','F','D',0, + if_stage_flag_eq(STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x0d) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d) + if_chr_dying(0x15, /*goto*/ 0x2f) + if_chr_death_animation_finished(0x15, /*goto*/ 0x2f) + if_chr_unloaded(0x15, /*goto*/ 0x2f) + goto_first(0x04) + + label(0x2f) + yield + yield + yield + yield + dprint 'C','H','R',' ','9','F','D',0, + if_stage_flag_eq(STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x0d) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d) + if_chr_dying(0x16, /*goto*/ 0x2f) + if_chr_death_animation_finished(0x16, /*goto*/ 0x2f) + if_chr_unloaded(0x16, /*goto*/ 0x2f) + goto_first(0x04) + + label(0x2f) + dprint 'C','H','R',' ','1','0','F','D',0, + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d) + set_stage_flag(STAGEFLAG_GENERAL_PURPOSE) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c70) // "Holoprogram 6 has been completed successfully." + restart_timer + + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x2f) + endloop(0x08) + + label(0x2f) + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) + + beginloop(0x0d) + if_stage_flag_eq(STAGEFLAG_IN_HOLO6, FALSE, /*goto*/ 0x2f) + endloop(0x0d) + + label(0x2f) + goto_first(0x8f) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1030_holo7_main[] = { + label(0x80) + + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_IN_HOLO7, TRUE, /*goto*/ 0x81) + endloop(0x08) + + label(0x81) + set_stage_flag(STAGEFLAG_CONSIDER_WARP) + lock_door(0x75, 0x40) + lock_door(0x76, 0x40) + close_door(0x75) + unset_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + if_chr_activated_object(CHR_JOANNA, 0x75, /*goto*/ 0x2f) + if_chr_activated_object(CHR_JOANNA, 0x76, /*goto*/ 0x2f) + label(0x2f) + unset_stage_flag(STAGEFLAG_HOLO_ABORTING) + unset_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) + unset_stage_flag(STAGEFLAG_TRIGGER_HOLO_FAILURE) + unset_stage_flag(STAGEFLAG_GENERAL_PURPOSE) + hide_object(0x45) + hide_chr(0x04) + + beginloop(0x57) + try_spawn_chr(BODY_DDSHOCK, HEAD_RANDOM, 0x012b, FUNC_HOLO7_INIT_GUARD1, 0x00002210, /*goto*/ 0x59) + endloop(0x57) + + beginloop(0x59) + try_spawn_chr(BODY_DDSHOCK, HEAD_RANDOM, 0x012c, FUNC_HOLO7_INIT_GUARD2, 0x00002210, /*goto*/ 0x5b) + endloop(0x59) + + beginloop(0x5b) + try_spawn_chr(BODY_DDSHOCK, HEAD_RANDOM, 0x012d, FUNC_HOLO7_INIT_GUARD3, 0x00002210, /*goto*/ 0x5c) + endloop(0x5b) + + beginloop(0x5c) + try_spawn_chr(BODY_DDSHOCK, HEAD_RANDOM, 0x012e, FUNC_HOLO7_INIT_GUARD4, 0x00002210, /*goto*/ 0x5d) + endloop(0x5c) + + beginloop(0x5d) + try_spawn_chr(BODY_DDSHOCK, HEAD_RANDOM, 0x012f, FUNC_HOLO7_INIT_GUARD5, 0x00002210, /*goto*/ 0x5e) + endloop(0x5d) + + label(0x5e) + dprint 't','r','a','i','n','i','n','g',0, + label(0x2f) + label(0x91) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x2f) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c6e) // "Defeat all enemies without getting hit." + label(0x2f) + restart_timer + + beginloop(0x82) + dprint 't','r','a','n',' ','l','o','o','p',0, + if_stage_flag_eq(STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x90) + if_stage_flag_eq(STAGEFLAG_TRIGGER_HOLO_FAILURE, TRUE, /*goto*/ 0x85) + if_stage_flag_eq(STAGEFLAG_TRIGGER_HOLO_SUCCESS, TRUE, /*goto*/ 0x83) + if_chr_activated_object(CHR_JOANNA, 0x75, /*goto*/ 0x57) + if_chr_activated_object(CHR_JOANNA, 0x76, /*goto*/ 0x57) + goto_next(0x59) + + label(0x57) + set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG) + label(0x59) + if_timer_gt(1200, /*goto*/ 0x2f) + endloop(0x82) + + label(0x2f) + goto_first(0x91) + + label(0x85) + dprint 'f','a','i','l',0, + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_FAILURE) + goto_next(0x84) + + label(0x83) + set_eeprom_flag(EEPROMFLAG_CI_HOLO7_DONE) + dprint 'd','o','n','e',0, + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) + yield + goto_next(0x84) + + label(0x84) + label(0x90) + set_stage_flag(STAGEFLAG_CONSIDER_WARP) + unlock_door(0x75, 0x40) + unlock_door(0x76, 0x40) + remove_displayed_text + mute_channel(CHANNEL_5) + mute_channel(CHANNEL_6) + mute_channel(CHANNEL_7) + show_chr(0x04) + remove_chr(0x19) + remove_chr(0x1a) + remove_chr(0x1b) + remove_chr(0x17) + remove_chr(0x18) + dprint 'a','b','o','r','t','e','d',0, + show_object(0x45) + remove_displayed_text + + beginloop(0x6d) + if_stage_flag_eq(STAGEFLAG_IN_HOLO7, FALSE, /*goto*/ 0x2f) + endloop(0x6d) + + label(0x2f) + goto_first(0x08) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0412_holo7_init_guard1[] = { + set_self_flag_bankx(CHRFLAG0_80000000, BANK_0) + set_chr_id(0x19) + try_draw_weapon(MODEL_CHRFALCON2, WEAPON_FALCON2, 0x00000000, /*goto*/ 0x06) + label(0x06) + set_function(CHR_SELF, FUNC_HOLO_GUARD_ARMED_UNALERT) + endfunction +}; + +u8 func0413_holo7_init_guard2[] = { + set_self_flag_bankx(CHRFLAG0_80000000, BANK_0) + set_chr_id(0x1a) + try_draw_weapon(MODEL_CHRFALCON2, WEAPON_FALCON2, 0x00000000, /*goto*/ 0x06) + label(0x06) + set_function(CHR_SELF, FUNC_HOLO_GUARD_ARMED_UNALERT) + endfunction +}; + +u8 func0414_holo7_init_guard3[] = { + set_self_flag_bankx(CHRFLAG0_80000000, BANK_0) + set_chr_id(0x1b) + try_draw_weapon(MODEL_CHRFALCON2, WEAPON_FALCON2, 0x00000000, /*goto*/ 0x06) + label(0x06) + set_function(CHR_SELF, FUNC_HOLO_GUARD_ARMED_UNALERT) + endfunction +}; + +u8 func0410_holo7_init_guard4[] = { + set_chr_id(0x17) + set_function(CHR_SELF, FUNC_HOLO_GUARD_UNARMED_UNALERT) + endfunction +}; + +u8 func0411_holo7_init_guard5[] = { + set_chr_id(0x18) + set_function(CHR_SELF, FUNC_HOLO_GUARD_UNARMED_UNALERT) + endfunction +}; + +u8 func0418_holo_guard_armed_unalert[] = { + set_accuracy(50) + set_reaction_speed(20) + set_chr_health(CHR_SELF, 40) + yield + yield + yield + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_action(ACTION_SCAN, FALSE) + set_onshot_function(FUNC_HOLO_GUARD_UNARMED_ALERT) + restart_timer + + beginloop(0x04) + if_chr_distance_lt(500, /*goto*/ 0x06) + if_timer_gt(300, /*goto*/ 0x2f) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x06) + endloop(0x04) + + label(0x2f) + call_rng + goto_next(0x06) + + label(0x2f) + goto_first(0x04) + + label(0x06) + set_function(CHR_SELF, FUNC_HOLO_GUARD_ARMED_ALERT) + endfunction +}; + +u8 func0419_holo_guard_armed_alert[] = { + set_onshot_function(FUNC_HOLO_GUARD_ARMED_ALERT) + if_has_gun(CHR_SELF, /*goto*/ 0x2f) + set_group_alertness(100) + set_return_function(CHR_SELF, FUNC_HOLO_GUARD_UNARMED_ALERT) + set_function(CHR_SELF, FUNC_HOLO_GUARD_UNARMED_ALERT) + label(0x2f) + label(0x8f) + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x04) + + beginloop(0x04) + if_in_disarm_range(/*goto*/ 0x2f) + endloop(0x04) + + label(0x2f) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x08) + + beginloop(0x08) + if_chr_injured_target(CHR_SELF, /*goto*/ 0x2f) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x08) + + label(0x06) + goto_first(0x8f) + + say_quip(CHR_JOANNA, 0x15, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00) + say_quip(CHR_JOANNA, 0x15, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00) + label(0x2f) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d) + set_stage_flag(STAGEFLAG_GENERAL_PURPOSE) + set_stage_flag(STAGEFLAG_HOLO_FAILED) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c6f) // "Training failed - you have been hit." + restart_timer + set_function(CHR_SELF, GFUNC_IDLE) + + beginloop(0x5e) + if_stage_flag_eq(STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x2f) + if_timer_gt(180, /*goto*/ 0x2f) + endloop(0x5e) + + label(0x2f) + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_FAILURE) + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1031_holo7_part1[] = { + beginloop(0x8f) + if_stage_flag_eq(STAGEFLAG_IN_HOLO7, TRUE, /*goto*/ 0x04) + endloop(0x8f) + + beginloop(0x04) + yield + yield + yield + yield + if_stage_flag_eq(STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x0d) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d) + if_chr_dying(0x19, /*goto*/ 0x2f) + if_chr_death_animation_finished(0x19, /*goto*/ 0x2f) + if_chr_unloaded(0x19, /*goto*/ 0x2f) + endloop(0x04) + + label(0x2f) + yield + yield + yield + yield + yield + if_stage_flag_eq(STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x0d) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d) + if_chr_dying(0x1a, /*goto*/ 0x2f) + if_chr_death_animation_finished(0x1a, /*goto*/ 0x2f) + if_chr_unloaded(0x1a, /*goto*/ 0x2f) + goto_first(0x04) + + label(0x2f) + yield + yield + yield + yield + yield + if_stage_flag_eq(STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x0d) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d) + if_chr_dying(0x1b, /*goto*/ 0x2f) + if_chr_death_animation_finished(0x1b, /*goto*/ 0x2f) + if_chr_unloaded(0x1b, /*goto*/ 0x2f) + goto_first(0x04) + + label(0x2f) + yield + yield + yield + yield + yield + if_stage_flag_eq(STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x0d) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d) + if_chr_dying(0x17, /*goto*/ 0x2f) + if_chr_death_animation_finished(0x17, /*goto*/ 0x2f) + if_chr_unloaded(0x17, /*goto*/ 0x2f) + goto_first(0x04) + + label(0x2f) + yield + yield + yield + yield + yield + if_stage_flag_eq(STAGEFLAG_HOLO_ABORTING, TRUE, /*goto*/ 0x0d) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d) + if_chr_dying(0x18, /*goto*/ 0x2f) + if_chr_death_animation_finished(0x18, /*goto*/ 0x2f) + if_chr_unloaded(0x18, /*goto*/ 0x2f) + goto_first(0x04) + + label(0x2f) + if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d) + set_stage_flag(STAGEFLAG_GENERAL_PURPOSE) + remove_displayed_text + display_text(0x01, COLOR_04_ORANGE, 0x1c71) // "Holoprogram 7 has been completed successfully." + restart_timer + + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x2f) + endloop(0x08) + + label(0x2f) + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) + + beginloop(0x0d) + if_stage_flag_eq(STAGEFLAG_IN_HOLO7, FALSE, /*goto*/ 0x2f) + endloop(0x0d) + + label(0x2f) + goto_first(0x8f) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1035_manage_music[] = { + beginloop(0x8f) + if_stage_flag_eq(STAGEFLAG_IN_TRAINING, TRUE, /*goto*/ 0x2f) + reloop(0x8f) + + label(0x2f) + play_music_track(MUSIC_CI_TRAINING) + + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_IN_TRAINING, FALSE, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + restart_music + reset_ambience + endloop(0x8f) + + endfunction +}; + +#define do_gun_msg(object, text) \ + beginloop(0x03) \ + if_chr_activated_object(CHR_F3, object, /*goto*/ 0x2f) \ + reloop(0x03) \ + \ + label(0x2f) \ + message(CHR_JOANNA, text) \ + restart_timer \ + \ + beginloop(0x08) \ + if_timer_gt(120, /*goto*/ 0x06) \ + endloop(0x08) \ + \ + label(0x06) \ + endloop(0x03) + + + +u8 func1038_msg_pp7[] = { + do_gun_msg(0x1e, 0x1c74) // "PP7" + endfunction +}; + +u8 func1039_msg_tt33[] = { + do_gun_msg(0x1f, 0x1c75) // "TT33" + endfunction +}; + +u8 func103a_msg_skorpion[] = { + do_gun_msg(0x20, 0x1c76) // "Skorpion" + endfunction +}; + +u8 func103b_msg_ak47[] = { + do_gun_msg(0x21, 0x1c77) // "AK47" + endfunction +}; + +u8 func103c_msg_uzi9mm[] = { + do_gun_msg(0x22, 0x1c78) // "Uzi 9mm" + endfunction +}; + +u8 func103d_msg_mp5k[] = { + do_gun_msg(0x23, 0x1c79) // "MP5K" + endfunction +}; + +u8 func103e_msg_m16[] = { + do_gun_msg(0x24, 0x1c7a) // "M-16" + endfunction +}; + +u8 func103f_msg_fnp90[] = { + do_gun_msg(0x25, 0x1c7b) // "FNP90" + endfunction +}; + +u8 func1000_jo_typing[] = { + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + camera_movement(0x0484) + cmd0175(60) + if_controller_button_pressed(/*goto*/ 0x7b) + set_music_track(MUSIC_CI_INTRO) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x0485, -1, -1, 0x0600, CHR_JOANNA, 4) + restart_timer + fade_to_color(0x000000ff, 0) + fade_to_color(0x00000000, 110) + + beginloop(0x57) + if_controller_button_pressed(/*goto*/ 0x7b) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x57) + + label(0x06) + play_sound(0x8116, CHANNEL_5) + + beginloop(0x59) + if_controller_button_pressed(/*goto*/ 0x7b) + if_timer_gt(175, /*goto*/ 0x06) + endloop(0x59) + + label(0x06) + play_sound(0x8118, CHANNEL_6) + + beginloop(0x08) + if_camera_animating(/*goto*/ 0x2f) + goto_next(0x7b) + + label(0x2f) + if_controller_button_pressed(/*goto*/ 0x7b) + label(0x2f) + endloop(0x08) + + label(0x7b) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x0485, -2, -1, 0x0600, CHR_JOANNA, 2) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + enter_firstperson + passive_mode(TRUE) + fade_to_color(0x00000000, 0) + yield + yield + yield + yield + restart_default_music + reset_ambience + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1040_lift_door_sounds[] = { + // Disable autoguns + yield + set_autoturret_type(0x8b, 0x02) + set_autoturret_type(0x8c, 0x02) + set_autoturret_type(0x8d, 0x02) + restart_timer + + beginloop(0x57) + if_timer_gt(120, /*goto*/ 0x2f) + endloop(0x57) + + label(0x2f) + set_object_flag_bank0(0x8b, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(0x8c, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(0x8d, OBJECTFLAG0_DEACTIVATED) + + // Play sounds when lift doors activated + beginloop(0x8f) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, 0x80, /*goto*/ 0x2f) + if_chr_activated_object(CHR_P1P2, 0x81, /*goto*/ 0x2f) + if_chr_activated_object(CHR_P1P2, 0x82, /*goto*/ 0x2f) + if_chr_activated_object(CHR_P1P2, 0x83, /*goto*/ 0x2f) + if_chr_activated_object(CHR_P1P2, 0x84, /*goto*/ 0x2f) + if_chr_activated_object(CHR_P1P2, 0x85, /*goto*/ 0x2f) + if_chr_activated_object(CHR_P1P2, 0x86, /*goto*/ 0x2f) + if_chr_activated_object(CHR_P1P2, 0x87, /*goto*/ 0x2f) + reloop(0x8f) + + label(0x2f) + play_sound(0x81b0, -1) + restart_timer + + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + endloop(0x8f) + + endfunction +}; + +u8 intro[] = { + spawn(0x00f5) + outfit(OUTFIT_DEFAULT) + endintro +}; + +s32 path00[] = { + 0x002f, + 0x002d, + -1, +}; + +u8 func1032_setup_lifts[] = { + activate_lift(1, 0x43) + activate_lift(2, 0x44) + set_lights_state(0x0007, 0x01, 0x32, 0x00, 0x00) + set_lights_state(0x0008, 0x01, 0x32, 0x00, 0x00) + set_lights_state(0x0009, 0x01, 0x32, 0x00, 0x00) + set_lights_state(0x000a, 0x01, 0x19, 0x00, 0x00) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1042_check_jo_in_training_room[] = { + beginloop(0x04) + // Wait until player in training + dprint 'C','H','K','1',0, + if_stage_flag_eq(STAGEFLAG_TRIGGER_UPLINK, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_TRIGGER_ECMMINE, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_TRIGGER_CAMSPY, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_TRIGGER_NIGHTVISION, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_TRIGGER_DOORDECODER, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_TRIGGER_RTRACKER, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_TRIGGER_IR, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_TRIGGER_XRAY, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_TRIGGER_DISGUISE, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_TRIGGER_CLOAK, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_IN_HOLO1, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_IN_HOLO2, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_IN_HOLO3, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_IN_HOLO4, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_IN_HOLO5, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_IN_HOLO6, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_IN_HOLO7, TRUE, /*goto*/ 0x2f) + reloop(0x04) + + // And has exited the training rooms + // 0x0014 = lobby outside holo room + // 0x001d = entry to device training room + // 0x001a = entry to information room + // 0x000b = entry to carrington's office + label(0x2f) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0014, /*goto*/ 0x30) + if_chr_in_room(CHR_JOANNA, 0x00, 0x001d, /*goto*/ 0x2f) + if_chr_in_room(CHR_JOANNA, 0x00, 0x001a, /*goto*/ 0x2f) + if_chr_in_room(CHR_JOANNA, 0x00, 0x000b, /*goto*/ 0x2f) + reloop(0x04) + + label(0x30) + set_stage_flag(STAGEFLAG_TRIGGER_HOLO_FAILURE) + label(0x2f) + set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_FAILURE) + label(0x06) + dprint 'C','H','K','2',0, + yield + yield + yield + yield + + label(0x57) + dprint 'C','H','K','3',0, + yield + if_stage_flag_eq(STAGEFLAG_CONSIDER_WARP, TRUE, /*goto*/ 0x2f) + goto_first(0x57) + + label(0x2f) + label(0x59) + dprint 'C','H','K','4',0, + yield + if_stage_flag_eq(STAGEFLAG_CONSIDER_WARP, FALSE, /*goto*/ 0x2f) + goto_first(0x59) + + label(0x2f) + dprint 'C','H','K','5',0, + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + endloop(0x04) + + // Unreachable + label(0x5b) + restart_timer + label(0x5c) + dprint 'C','H','K','6',0, + yield + if_timer_gt(60, /*goto*/ 0x2f) + goto_first(0x5c) + label(0x2f) + goto_first(0x04) + + endfunction +}; + +u8 func1041_setup_lighting[] = { + yield + set_lighting(0x0045, 0x06, 0x01) + set_lighting(0x0046, 0x06, 0x01) + set_lighting(0x0047, 0x06, 0x01) + set_lighting(0x0048, 0x06, 0x01) + set_lighting(0x0055, 0x06, 0x01) + set_lighting(0x0056, 0x06, 0x01) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1043_remove_hovercrate[] = { + yield + beginloop(0x8f) + if_object_in_room(OBJ_HOVERCRATE, 0x0016, /*goto*/ 0x08) + if_object_in_room(OBJ_HOVERCRATE, 0x0017, /*goto*/ 0x08) + if_object_in_room(OBJ_HOVERCRATE, 0x0018, /*goto*/ 0x08) + if_object_in_room(OBJ_HOVERCRATE, 0x0019, /*goto*/ 0x08) + goto_first(0x8f) + + label(0x08) + if_stage_flag_eq(STAGEFLAG_IN_HOLO1, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_IN_HOLO2, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_IN_HOLO3, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_IN_HOLO4, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_IN_HOLO5, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_IN_HOLO6, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_IN_HOLO7, TRUE, /*goto*/ 0x2f) + goto_first(0x8f) + + label(0x2f) + move_object_to_pad(OBJ_HOVERCRATE, 0x0141) + endloop(0x8f) + + endfunction +}; + +struct ailists functions[] = { + { func1000_jo_typing, 0x1000 }, + { func1001_set_jo_alliance, 0x1001 }, + { func1002_devicetraining_camspy, 0x1002 }, + { func1003_devicetraining_nightvision, 0x1003 }, + { func1004_devicetraining_doordecoder, 0x1004 }, + { func1005_devicetraining_xray, 0x1005 }, + { func1006_devicetraining_disguise, 0x1006 }, + { func1007_devicetrainign_ir, 0x1007 }, + { func1008_devicetraining_rtracker, 0x1008 }, + { func1009_devicetraining_cloak, 0x1009 }, + { func100a_devicetraining_ecmmine, 0x100a }, + { func100b_devicetraining_uplink, 0x100b }, + { func100c_cloak_detection, 0x100c }, + { func100e_training_unlockables, 0x100e }, + { func100f_doorproxy_unused1, 0x100f }, + { func1010_doorproxy, 0x1010 }, + { func1010_doorproxy_unused2, 0x1011 }, + { func1012_cloak_doorproxy, 0x1012 }, + { func1013_msg_hovercrate, 0x1013 }, + { func1014_msg_hoverbike, 0x1014 }, + { func1015_msg_doors, 0x1015 }, + { func1016_msg_elevators, 0x1016 }, + { func1017_msg_terminals, 0x1017 }, + { func1018_lightswitch, 0x1018 }, + { func1019_setup_carrington, 0x1019 }, + { func101a_move_jo_to_training_room, 0x101a }, + { func101b_ir_door, 0x101b }, + { func101c_holo1_main, 0x101c }, + { func101d_holo1_switch1, 0x101d }, + { func101e_holo1_switch2, 0x101e }, + { func101f_holo1_switch3, 0x101f }, + { func1020_holo1_monitor_switches, 0x1020 }, + { func1021_holo1_code1, 0x1021 }, + { func1021_holo1_code2, 0x1021 }, + { func1021_holo1_code3, 0x1021 }, + { func1021_holo1_code4, 0x1021 }, + { func1022_holo2_main, 0x1022 }, + { func1023_holo2_object1, 0x1023 }, + { func1024_holo2_object2, 0x1024 }, + { func1025_holo2_object3, 0x1025 }, + { func1026_holo2_object4, 0x1026 }, + { func1027_holo3_main, 0x1027 }, + { func1028_holo4_main, 0x1028 }, + { func1029_holo5_main, 0x1029 }, + { func102a_holo3_part1, 0x102a }, + { func102b_holo3_part2, 0x102b }, + { func102c_holo3_object1, 0x102c }, + { func102d_holo3_object2, 0x102d }, + { func102e_holo6_main, 0x102e }, + { func102f_holo1_part1, 0x102f }, + { func1030_holo7_main, 0x1030 }, + { func1031_holo7_part1, 0x1031 }, + { func1032_setup_lifts, 0x1032 }, + { func1033_holo4_part1, 0x1033 }, + { func1034_holo5_part1, 0x1034 }, + { func1035_manage_music, 0x1035 }, + { func041a_handle_holo_failure, 0x1037 }, + { func1038_msg_pp7, 0x1038 }, + { func1039_msg_tt33, 0x1039 }, + { func103a_msg_skorpion, 0x103a }, + { func103b_msg_ak47, 0x103b }, + { func103c_msg_uzi9mm, 0x103c }, + { func103d_msg_mp5k, 0x103d }, + { func103e_msg_m16, 0x103e }, + { func103f_msg_fnp90, 0x103f }, + { func1040_lift_door_sounds, 0x1040 }, + { func1041_setup_lighting, 0x1041 }, + { func1042_check_jo_in_training_room, 0x1042 }, + { func1043_remove_hovercrate, 0x1043 }, + { func041b_holo2_part1, 0x041b }, + { func041c_holo3_check_done, 0x041c }, + { func0430_holo1_check_done, 0x0430 }, + { func0401_move_to_deviceroom, 0x0401 }, + { func0402_move_to_holoroom, 0x0402 }, + { func041e_colleague, 0x041e }, + { func041d_init_collegue_when_sighted, 0x041d }, + { func041f_colleague1, 0x041f }, + { func0420_colleague2, 0x0420 }, + { func0421_colleague3, 0x0421 }, + { func0422_colleague4, 0x0422 }, + { func0423_colleague5, 0x0423 }, + { func0424_colleague6, 0x0424 }, + { func0425_colleague7, 0x0425 }, + { func0426_colleague8, 0x0426 }, + { func0427_colleague9, 0x0427 }, + { func0428_colleague10, 0x0428 }, + { func0429_grimshaw_disguise, 0x0429 }, + { func042a_carrington_cloak, 0x042a }, + { func042b_init_carrington, 0x042b }, + { func042c_carrington_tour, 0x042c }, + { func042f_holo2_part2, 0x042f }, + { func042d_unused, 0x042d }, + { func042e_devicegirl_reply_to_carrington, 0x042e }, + { func0403_holo4_guard1, 0x0403 }, + { func0404_holo4_guard2, 0x0404 }, + { func0405_holo4_guard3, 0x0405 }, + { func0406_holo5_init_guard1, 0x0406 }, + { func0407_holo5_guard1, 0x0407 }, + { func0408_holo5_init_guard2, 0x0408 }, + { func0409_holo5_guard2, 0x0409 }, + { func040a_holo5_init_guard3, 0x040a }, + { func040b_holo5_guard3, 0x040b }, + { func040c_holo6_init_guard1, 0x040c }, + { func040d_holo6_init_guard2, 0x040d }, + { func040e_holo6_init_guard3, 0x040e }, + { func040f_holo6_init_guard4, 0x040f }, + { func0410_holo7_init_guard4, 0x0410 }, + { func0411_holo7_init_guard5, 0x0411 }, + { func0412_holo7_init_guard1, 0x0412 }, + { func0413_holo7_init_guard2, 0x0413 }, + { func0414_holo7_init_guard3, 0x0414 }, + { func0415_holo_guard_unarmed_unalert, 0x0415 }, + { func0416_holo_guard_unarmed_alert, 0x0416 }, + { func0416_holo_guard_unarmed_alert2, 0x0417 }, + { func0418_holo_guard_armed_unalert, 0x0418 }, + { func0419_holo_guard_armed_alert, 0x0419 }, + { func041a_handle_holo_failure, 0x041a }, + { func1023_holo2_object1, 0x0431 }, + { func1024_holo2_object2, 0x0432 }, + { func1025_holo2_object3, 0x0433 }, + { func1026_holo2_object4, 0x0434 }, + { func102c_holo3_object1, 0x0435 }, + { func102d_holo3_object2, 0x0436 }, + { func101d_holo1_switch1, 0x0437 }, + { func101e_holo1_switch2, 0x0438 }, + { func101f_holo1_switch3, 0x0439 }, + { func1020_holo1_monitor_switches, 0x043a }, + { NULL, 0 }, +}; + +struct aipaths paths[] = { + { path00, 0, 1 }, + { NULL, 0, 0 }, +}; + diff --git a/asm/setup/setupear.s b/src/setup/setupear.c similarity index 52% rename from asm/setup/setupear.s rename to src/setup/setupear.c index 9de0cfe81..9bec61978 100644 --- a/asm/setup/setupear.s +++ b/src/setup/setupear.c @@ -1,827 +1,864 @@ -# -# Investigation -# +// +// Investigation +// -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" +#include "../include/setup.h" // Characters -.set CHR_DRCAROLL, 0x39 -.set CHR_INTRO_GUARD, 0x3a -.set CHR_K7_GUARD, 0x3b +#define CHR_DRCAROLL 0x39 +#define CHR_INTRO_GUARD 0x3a +#define CHR_K7_GUARD 0x3b // Objects -.set OBJ_CACHETERMINAL, 0x01 -.set OBJ_BOT_ACTIVATION_TERMINAL, 0x02 -.set OBJ_BOT_PROGRAMMING_TERMINAL, 0x03 -.set OBJ_K7AVENGER, 0x04 -.set OBJ_NIGHTVISION, 0x05 -.set OBJ_SHIELD, 0x06 -.set OBJ_GOODTERM1, 0x07 -.set OBJ_GOODTERM2, 0x08 -.set OBJ_GOODTERM3, 0x09 -.set OBJ_UPLINKPC, 0x0a -.set OBJ_ALARMTERM1, 0x0f -.set OBJ_ALARMTERM2, 0x14 -.set OBJ_ALARMTERM3, 0x19 -.set OBJ_UPLINKDOOR, 0x22 -.set OBJ_DATAUPLINK_JOANNA, 0x25 -.set OBJ_YELLOWBOT, 0x37 // opens the secret door -.set OBJ_PURPLEBOT, 0x38 // lasers -.set OBJ_HATCHPC, 0x3a -.set OBJ_DATAUPLINK_VELVET, 0x48 -.set OBJ_CACHEDOOR1, 0x55 -.set OBJ_CACHEDOOR2, 0x56 -.set OBJ_CMP150_1, 0x57 -.set OBJ_CMP150_2, 0x58 -.set OBJ_PROXYMINES, 0x59 +#define OBJ_CACHETERMINAL 0x01 +#define OBJ_BOT_ACTIVATION_TERMINAL 0x02 +#define OBJ_BOT_PROGRAMMING_TERMINAL 0x03 +#define OBJ_K7AVENGER 0x04 +#define OBJ_NIGHTVISION 0x05 +#define OBJ_SHIELD 0x06 +#define OBJ_GOODTERM1 0x07 +#define OBJ_GOODTERM2 0x08 +#define OBJ_GOODTERM3 0x09 +#define OBJ_UPLINKPC 0x0a +#define OBJ_ALARMTERM1 0x0f +#define OBJ_ALARMTERM2 0x14 +#define OBJ_ALARMTERM3 0x19 +#define OBJ_UPLINKDOOR 0x22 +#define OBJ_DATAUPLINK_JOANNA 0x25 +#define OBJ_YELLOWBOT 0x37 // opens the secret door +#define OBJ_PURPLEBOT 0x38 // lasers +#define OBJ_HATCHPC 0x3a +#define OBJ_DATAUPLINK_VELVET 0x48 +#define OBJ_CACHEDOOR1 0x55 +#define OBJ_CACHEDOOR2 0x56 +#define OBJ_CMP150_1 0x57 +#define OBJ_CMP150_2 0x58 +#define OBJ_PROXYMINES 0x59 // Stage flags -.set STAGEFLAG_DRCAROLL_LOCATED, 0x00000001 -.set STAGEFLAG_UPLINK_SEARCHING, 0x00000002 -.set STAGEFLAG_00000004, 0x00000004 -.set STAGEFLAG_00000008, 0x00000008 -.set STAGEFLAG_TRIGGER_OUTRO_AUDIO, 0x00000010 -.set STAGEFLAG_HAS_K7AVENGER, 0x00000020 -.set STAGEFLAG_HAS_NIGHTVISION, 0x00000040 -.set STAGEFLAG_HAS_SHIELD, 0x00000080 -.set STAGEFLAG_ITEMS_UNCOLLECTABLE, 0x00000100 -.set STAGEFLAG_BOT_ACTIVE, 0x00000200 -.set STAGEFLAG_BOT_REPROGRAMMED, 0x00000400 -.set STAGEFLAG_ALL_ITEMS_COLLECTED, 0x00000800 -.set STAGEFLAG_UNACCEPTABLE_CASUALTIES, 0x00001000 -.set STAGEFLAG_CAMSPY_DESTROYED, 0x00002000 -.set STAGEFLAG_SHUT_DOWN_EXPERIMENT1, 0x00004000 -.set STAGEFLAG_SHUT_DOWN_EXPERIMENT2, 0x00008000 -.set STAGEFLAG_SHUT_DOWN_EXPERIMENT3, 0x00010000 -.set STAGEFLAG_UPLINK_FINISHED, 0x00020000 -.set STAGEFLAG_BOT_ACTIVE_MAINTENANCE, 0x00040000 -.set STAGEFLAG_BOT_ACTIVATION_TERMINAL_DESTROYED, 0x00080000 -.set STAGEFLAG_BOT_PROGRAMMING_TERMINAL_DESTROYED, 0x00100000 -.set STAGEFLAG_ONE_SCIENTIST_DONE, 0x00200000 -.set STAGEFLAG_TWO_SCIENTISTS_DONE, 0x00400000 -.set STAGEFLAG_THREE_SCIENTISTS_DONE, 0x00800000 -.set STAGEFLAG_ALARM1_ACTIVE, 0x01000000 -.set STAGEFLAG_ALARM2_ACTIVE, 0x02000000 -.set STAGEFLAG_ALARM3_ACTIVE, 0x04000000 -.set STAGEFLAG_ALARM_RESPONDERS_SPAWNED, 0x08000000 -.set STAGEFLAG_UPLINKPC_DESTROYED, 0x10000000 -.set STAGEFLAG_BOT_ACTIVE_CLEANING, 0x20000000 -.set STAGEFLAG_BOT_ACTIVE_NOPROGRAM, 0x40000000 -.set STAGEFLAG_GOODTERM_DESTROYED, 0x80000000 +#define STAGEFLAG_DRCAROLL_LOCATED 0x00000001 +#define STAGEFLAG_UPLINK_SEARCHING 0x00000002 +#define STAGEFLAG_00000004 0x00000004 +#define STAGEFLAG_00000008 0x00000008 +#define STAGEFLAG_TRIGGER_OUTRO_AUDIO 0x00000010 +#define STAGEFLAG_HAS_K7AVENGER 0x00000020 +#define STAGEFLAG_HAS_NIGHTVISION 0x00000040 +#define STAGEFLAG_HAS_SHIELD 0x00000080 +#define STAGEFLAG_ITEMS_UNCOLLECTABLE 0x00000100 +#define STAGEFLAG_BOT_ACTIVE 0x00000200 +#define STAGEFLAG_BOT_REPROGRAMMED 0x00000400 +#define STAGEFLAG_ALL_ITEMS_COLLECTED 0x00000800 +#define STAGEFLAG_UNACCEPTABLE_CASUALTIES 0x00001000 +#define STAGEFLAG_CAMSPY_DESTROYED 0x00002000 +#define STAGEFLAG_SHUT_DOWN_EXPERIMENT1 0x00004000 +#define STAGEFLAG_SHUT_DOWN_EXPERIMENT2 0x00008000 +#define STAGEFLAG_SHUT_DOWN_EXPERIMENT3 0x00010000 +#define STAGEFLAG_UPLINK_FINISHED 0x00020000 +#define STAGEFLAG_BOT_ACTIVE_MAINTENANCE 0x00040000 +#define STAGEFLAG_BOT_ACTIVATION_TERMINAL_DESTROYED 0x00080000 +#define STAGEFLAG_BOT_PROGRAMMING_TERMINAL_DESTROYED 0x00100000 +#define STAGEFLAG_ONE_SCIENTIST_DONE 0x00200000 +#define STAGEFLAG_TWO_SCIENTISTS_DONE 0x00400000 +#define STAGEFLAG_THREE_SCIENTISTS_DONE 0x00800000 +#define STAGEFLAG_ALARM1_ACTIVE 0x01000000 +#define STAGEFLAG_ALARM2_ACTIVE 0x02000000 +#define STAGEFLAG_ALARM3_ACTIVE 0x04000000 +#define STAGEFLAG_ALARM_RESPONDERS_SPAWNED 0x08000000 +#define STAGEFLAG_UPLINKPC_DESTROYED 0x10000000 +#define STAGEFLAG_BOT_ACTIVE_CLEANING 0x20000000 +#define STAGEFLAG_BOT_ACTIVE_NOPROGRAM 0x40000000 +#define STAGEFLAG_GOODTERM_DESTROYED 0x80000000 // Functions -.set FUNC_K7_GUARD, 0x0402 -.set FUNC_K7_SCIENTIST, 0x0403 -.set FUNC_SCIENTIST, 0x0404 -.set FUNC_INIT_SCIENTIST, 0x0405 -.set FUNC_NASTY_SCIENTIST, 0x0406 -.set FUNC_INIT_NASTY_SCIENTIST, 0x0407 -.set FUNC_ALARM_RESPONDER, 0x0408 -.set FUNC_UPLINK_RESPONDER, 0x0409 -.set FUNC_INIT_BASIC_GUARD, 0x040a -.set FUNC_INIT_SHOCK_GUARD, 0x040b -.set FUNC_PATH00, 0x040c -.set FUNC_PATH01, 0x040d // unused -.set FUNC_PATH02, 0x040e -.set FUNC_PATH03, 0x040f -.set FUNC_PATH04, 0x0410 // unused -.set FUNC_PURPLEBOT_AT_LASERS, 0x0413 -.set FUNC_RADIOACTIVITY, 0x0415 -.set FUNC_OUTRO, 0x0417 +#define FUNC_K7_GUARD 0x0402 +#define FUNC_K7_SCIENTIST 0x0403 +#define FUNC_SCIENTIST 0x0404 +#define FUNC_INIT_SCIENTIST 0x0405 +#define FUNC_NASTY_SCIENTIST 0x0406 +#define FUNC_INIT_NASTY_SCIENTIST 0x0407 +#define FUNC_ALARM_RESPONDER 0x0408 +#define FUNC_UPLINK_RESPONDER 0x0409 +#define FUNC_INIT_BASIC_GUARD 0x040a +#define FUNC_INIT_SHOCK_GUARD 0x040b +#define FUNC_PATH00 0x040c +#define FUNC_PATH01 0x040d // unused +#define FUNC_PATH02 0x040e +#define FUNC_PATH03 0x040f +#define FUNC_PATH04 0x0410 // unused +#define FUNC_PURPLEBOT_AT_LASERS 0x0413 +#define FUNC_RADIOACTIVITY 0x0415 +#define FUNC_OUTRO 0x0417 -props: - briefing 0, 0x1e01 - briefing 1, 0x1e00 - briefing 2, 0x1e02 - briefing 3, 0x1e03 +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; - beginobjective 0, 0x1e0d, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Holograph radioactive isotope" - require_object_holographed 0x39, 0, 0 - fail_flags STAGEFLAG_CAMSPY_DESTROYED +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + briefing(0, 0x1e01) + briefing(1, 0x1e00) + briefing(2, 0x1e02) + briefing(3, 0x1e03) + + beginobjective(0, 0x1e0d, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Holograph radioactive isotope" + require_object_holographed(0x39, 0, 0) + fail_flags(STAGEFLAG_CAMSPY_DESTROYED) endobjective - beginobjective 1, 0x1e0b, DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Start security maintenance cycle" - complete_flags STAGEFLAG_BOT_ACTIVE_MAINTENANCE - fail_flags STAGEFLAG_BOT_ACTIVATION_TERMINAL_DESTROYED - fail_flags STAGEFLAG_BOT_PROGRAMMING_TERMINAL_DESTROYED + beginobjective(1, 0x1e0b, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Start security maintenance cycle" + complete_flags(STAGEFLAG_BOT_ACTIVE_MAINTENANCE) + fail_flags(STAGEFLAG_BOT_ACTIVATION_TERMINAL_DESTROYED) + fail_flags(STAGEFLAG_BOT_PROGRAMMING_TERMINAL_DESTROYED) endobjective - beginobjective 2, 0x1e0a, DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Shut down experiments" - complete_flags STAGEFLAG_SHUT_DOWN_EXPERIMENT1 - complete_flags STAGEFLAG_SHUT_DOWN_EXPERIMENT2 - complete_flags STAGEFLAG_SHUT_DOWN_EXPERIMENT3 - fail_flags STAGEFLAG_GOODTERM_DESTROYED - fail_flags STAGEFLAG_UNACCEPTABLE_CASUALTIES - fail_flags STAGEFLAG_00000008 + beginobjective(2, 0x1e0a, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Shut down experiments" + complete_flags(STAGEFLAG_SHUT_DOWN_EXPERIMENT1) + complete_flags(STAGEFLAG_SHUT_DOWN_EXPERIMENT2) + complete_flags(STAGEFLAG_SHUT_DOWN_EXPERIMENT3) + fail_flags(STAGEFLAG_GOODTERM_DESTROYED) + fail_flags(STAGEFLAG_UNACCEPTABLE_CASUALTIES) + fail_flags(STAGEFLAG_00000008) endobjective - beginobjective 3, 0x1e0c, DIFFBIT_PA | DIFFBIT_PD // "Obtain experimental technologies" - complete_flags STAGEFLAG_ALL_ITEMS_COLLECTED - require_object_collected OBJ_K7AVENGER - require_object_collected OBJ_NIGHTVISION - require_object_collected OBJ_SHIELD + beginobjective(3, 0x1e0c, (DIFFBIT_PA | DIFFBIT_PD)) // "Obtain experimental technologies" + complete_flags(STAGEFLAG_ALL_ITEMS_COLLECTED) + require_object_collected(OBJ_K7AVENGER) + require_object_collected(OBJ_NIGHTVISION) + require_object_collected(OBJ_SHIELD) endobjective - beginobjective 4, 0x1e09, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Locate Dr. Caroll" - complete_flags STAGEFLAG_DRCAROLL_LOCATED - fail_flags STAGEFLAG_UPLINKPC_DESTROYED + beginobjective(4, 0x1e09, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Locate Dr. Caroll" + complete_flags(STAGEFLAG_DRCAROLL_LOCATED) + fail_flags(STAGEFLAG_UPLINKPC_DESTROYED) endobjective - tag 0x60, 1 - lift 0x0100, MODEL_LIFT_PLATFORM, 0x025b, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x025b, 0x025c, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000b6, 0x0010aaaa, 0x15000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_ACCESSDOORUP, 0x019b, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00100004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_ACCESSDOORDN, 0x019c, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_ACCESSDOORUP, 0x019d, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00100004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_ACCESSDOORDN, 0x019e, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_ACCESSDOORUP, 0x019f, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00100004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_ACCESSDOORDN, 0x01a0, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LABDOOR, 0x015a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LABDOOR, 0x015b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LABDOOR, 0x015c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x27, 1 - door 0x0100, MODEL_DD_LAB_DOOR_SEC, 0x015d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x24, 2 - tag 0x40, 2 - door 0x0100, MODEL_DOOR4A_G5, 0x0169, 0x00000400, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000708, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001200, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR4B_G5, 0x0168, 0x00000400, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000708, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_DOOR_WIND, 0x015e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00020004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00c80384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x5b, 1 - door 0x0100, MODEL_DD_LABDOOR, 0x015f, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LABDOOR, 0x016d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x5d, 1 - door 0x0100, MODEL_DD_LABDOOR, 0x016e, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LABDOOR, 0x016f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x5c, 1 - door 0x0100, MODEL_DD_LABDOOR, 0x0170, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x5e, 2 - tag 0x5f, 2 - door 0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x0175, 0x10000010, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_DOORTOP, 0x0176, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x0178, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_DOORTOP, 0x0177, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffd, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x0179, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_DOORTOP, 0x017a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x017c, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_DOORTOP, 0x017b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffd, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x0171, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_SECTOR2TOP, 0x0172, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x0162, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_CAUTIONTOP, 0x0163, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x0164, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_CAUTIONTOP, 0x0165, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x47, 1 - door 0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x0166, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_CAUTIONTOP, 0x0167, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x0173, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_SECTOR2TOP, 0x0174, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x017f, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_DOORTOP, 0x0180, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x0181, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_SECTOR3TOP, 0x0182, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x45, 1 - door 0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x0183, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_DOORTOP, 0x0184, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x44, 1 - door 0x0100, MODEL_DD_LAB_SECTOR3, 0x017d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x40000004, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_SECTOR3, 0x017e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x40000004, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LABDOOR, 0x0185, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LABDOOR, 0x0186, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x22, 1 - door 0x0100, MODEL_DD_LAB_SECTOR3WIND, 0x0187, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00020004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00c80384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_SECTOR3WIND, 0x0188, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00020004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00c80384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x0189, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_RESTRICTED, 0x018a, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x5a, 1 - door 0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x018b, 0x10000010, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000040, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_RESTRICTED, 0x018c, 0x10000010, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000040, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x26, -1 - door 0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x018d, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_RESTRICTED, 0x018e, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x018f, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LAB_SECTOR4TOP, 0x0190, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x23, 1 - door 0x0100, MODEL_DR_CAROLL_DOOR, 0x0199, 0x00000010, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000e666, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000040, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DR_CAROLL_DOOR_MAIN, 0x0198, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00100004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DR_CAROLL_DOOR_LEFT, 0x0196, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DR_CAROLL_DOOR_RIGHT, 0x0197, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DR_CAROLL_DOOR_BMAIN, 0x0195, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DR_CAROLL_DOOR_BLEFT, 0x0193, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DR_CAROLL_DOOR_BRIGHT, 0x0194, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffb, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x28, 5 - tag 0x29, 5 - tag 0x2a, 5 - tag 0x2b, 5 - tag 0x2c, 5 - door 0x0100, MODEL_LASDOOR, 0x01f0, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000002, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x01f1, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000002, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x01f2, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000002, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x01f3, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000002, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x01f4, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000002, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffc, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x2d, 5 - tag 0x2e, 5 - tag 0x2f, 5 - tag 0x30, 5 - tag 0x31, 5 - door 0x0100, MODEL_LASDOOR, 0x01f5, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x01f6, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x01f7, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x01f8, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x01f9, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffc, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x32, 5 - tag 0x33, 5 - tag 0x34, 5 - tag 0x35, 5 - tag 0x36, 5 - door 0x0100, MODEL_LASDOOR, 0x01fa, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x01fb, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x01fc, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x01fd, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_LASDOOR, 0x01fe, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffc, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x3f, 1 - door 0x0100, MODEL_DD_GRATE, 0x016a, 0x00000400, 0xa0000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x08000000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x01, 1 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0213, 0x50000062, 0x00000001, 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, 0xffffff03 - tag 0x02, 1 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0214, 0x50000062, 0x00000001, 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, 0xffffff03 - tag 0x03, 1 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0215, 0x50000062, 0x00000001, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0216, 0x50000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0217, 0x50000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0218, 0x50000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0219, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x021a, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x021b, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - tag 0x3a, 1 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x021c, 0x00000062, 0x00000001, 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, 0xffffff04 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x021d, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x021e, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x021f, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0220, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0221, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0222, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0223, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0224, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0225, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0226, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0227, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0228, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0229, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x022a, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x022b, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x022c, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x022d, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x022e, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x022f, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0230, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0231, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0232, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0233, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0234, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0235, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_TVSCREEN, 0x0236, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03 - singlemonitor 0x0100, MODEL_SINISTERPC, 0x0245, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff23 - chr 0x00000200, 0x2f, 0x0146, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 100, 0x90082400, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x002f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x30, 0x0147, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 100, 0x90082000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0030, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x31, 0x0148, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 100, 0x90082000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0031, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x32, 0x0149, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 100, 0x90082000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0032, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x33, 0x014a, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 100, 0x90086000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0033, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x00, 0x001f, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_PATH00, -1, -1, 1000, 100, 0x80004700, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00004200, 0x01, 0x0135, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, 0x0019, -1, 1000, 100, 0x8000c408, 0x00000100, 0x02, 0x01, 0x3c, 0, 0x00030000 - weapon 0x0100, MODEL_CHRCMP150, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00004200, 0x02, 0x0136, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, 0x001a, -1, 1000, 100, 0x8000c408, 0x00000100, 0x02, 0x01, 0x3d, 0, 0x00030000 - weapon 0x0100, MODEL_CHRCMP150, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00004200, 0x3c, 0x0134, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 1000, 100, 0x80002200, 0x00000100, 0x02, 0x01, -1, 0, 0x00010000 - weapon 0x0100, MODEL_CHRCMP150, 0x003c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00004200, 0x03, 0x0137, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 1000, 100, 0x80004100, 0x00000100, 0x02, 0x02, 0x3e, 0, 0x00020000 - weapon 0x0100, MODEL_CHRCMP150, 0x0003, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x04, 0x0111, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 1000, 100, 0x80004100, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0004, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x05, 0x0112, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 1000, 100, 0x80004100, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0005, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x06, 0x0113, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 1000, 100, 0x80004100, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0006, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0a, 0x0031, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_PATH02, -1, -1, 200, 100, 0x80000100, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0b, 0x0038, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_PATH02, -1, -1, 200, 100, 0x80000100, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0c, 0x0062, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_PATH03, -1, -1, 1000, 100, 0x80002000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0d, 0x006e, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_PATH03, -1, -1, 1000, 100, 0x80002000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0e, 0x0114, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 1, 100, 0x80082000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0f, 0x0115, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, 0x0060, -1, 100, 100, 0x81002000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000f, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00004200, 0x10, 0x0116, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, 0x0060, -1, 100, 100, 0x81002000, 0x00000100, 0x02, 0x06, -1, 0, 0x00010000 - weapon 0x0100, MODEL_CHRCMP150, 0x0010, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00004200, 0x11, 0x0117, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, 0x0065, -1, 100, 100, 0x81002000, 0x00000100, 0x02, 0x06, -1, 0, 0x00010000 - weapon 0x0100, MODEL_CHRCMP150, 0x0011, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x12, 0x0118, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, 0x0065, -1, 100, 100, 0x81002000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0012, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00004200, 0x13, 0x0119, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, 0x0069, -1, 100, 100, 0x81002000, 0x00000100, 0x02, 0x06, -1, 0, 0x00010000 - weapon 0x0100, MODEL_CHRCMP150, 0x0013, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x14, 0x011a, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, 0x0069, -1, 100, 100, 0x81002000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0014, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x15, 0x011b, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 100, 0x80000000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0015, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x16, 0x011c, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 100, 0x80000000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x17, 0x011d, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 100, 0x80000000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0017, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x18, 0x011e, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 100, 0x80000000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x19, 0x011f, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 100, 0x84000100, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0019, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1a, 0x0120, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 100, 0x80000000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1b, 0x0121, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 100, 0x80000000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x001b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1c, 0x0122, BODY_DD_SHOCK_INF, HEAD_DDSHOCK, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 100, 0x80000000, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x001c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1d, 0x0123, BODY_DD_SHOCK_INF, HEAD_DDSHOCK, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 100, 0x80000000, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x001d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00004200, 0x1e, 0x0124, BODY_DD_SHOCK_INF, HEAD_DDSHOCK, FUNC_INIT_BASIC_GUARD, -1, -1, 1000, 20, 0x80084100, 0x00000100, 0x02, 0x0a, -1, 0, 0x00010000 - weapon 0x0100, MODEL_CHRDRAGON, 0x001e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x1f, 0x0125, BODY_DD_SHOCK_INF, HEAD_DDSHOCK, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 20, 0x80004100, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x001f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x20, 0x0126, BODY_DD_SHOCK_INF, HEAD_DDSHOCK, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 20, 0x80004100, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0020, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x21, 0x0127, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 200, 20, 0x80084100, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0021, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x22, 0x0128, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 200, 20, 0x80002000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0022, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x23, 0x0129, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 200, 20, 0x80002000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0023, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x24, 0x012a, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 200, 20, 0x80002000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0024, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 - chr 0x00000400, 0x3b, 0x013b, BODY_DD_SHOCK_INF, HEAD_DDSHOCK, FUNC_K7_GUARD, -1, -1, 1, 20, 0x0000c200, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRAVENGER, 0x003b, 0x00424000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000 - tag 0x04, -1 - chr 0x00010400, 0x38, 0x013c, BODY_DD_LABTECH, HEAD_RANDOM, FUNC_K7_SCIENTIST, 0x0076, -1, 1, 20, 0x00002000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000 - chr 0x00000200, 0x29, 0x0155, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 1000, 100, 0xc0082000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0029, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x2a, 0x0156, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, 0x0060, -1, 1000, 100, 0xc0082000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x002a, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x2b, 0x014b, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 1000, 100, 0xc0082000, 0x00000000, 0x02, 0x0f, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x002b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x2c, 0x014c, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, 0x0060, -1, 1000, 100, 0xc0082000, 0x00000000, 0x02, 0x0f, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x002c, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x2d, 0x0151, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 1000, 100, 0xc0082000, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x002d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x2e, 0x0152, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, 0x0060, -1, 1000, 100, 0xc0082000, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x002e, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00010400, 0x35, 0x0138, BODY_DD_LABTECH, HEAD_JAMIE, FUNC_INIT_SCIENTIST, 0x0076, -1, 1000, 10, 0x00002000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000 - chr 0x00010400, 0x36, 0x0139, BODY_DD_LABTECH, HEAD_JON, FUNC_INIT_SCIENTIST, -1, -1, 1000, 10, 0x00004000, 0x00000000, 0x02, 0x08, -1, 0, 0x01000000 - chr 0x00010400, 0x37, 0x013a, BODY_DD_LABTECH, HEAD_DUNCAN2, FUNC_INIT_SCIENTIST, -1, -1, 1000, 10, 0x00000000, 0x00000000, 0x02, 0x08, -1, 0, 0x02000000 - chr 0x00000400, 0x3a, 0x0106, BODY_DDSHOCK, HEAD_DARLING, GFUNC_IDLE, -1, -1, 1000, 100, 0x0000c200, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000 - chr 0x00010400, 0x39, 0x010c, BODY_DRCARROLL, 0x00, GFUNC_IDLE, -1, -1, 1000, 100, 0x0000c200, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000 - tag 0x0b, 1 - singlemonitor 0x0100, MODEL_SINISTERPC, 0x0246, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03 - tag 0x0c, 1 - singlemonitor 0x0100, MODEL_SINISTERPC, 0x0247, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03 - tag 0x0d, 1 - singlemonitor 0x0100, MODEL_SINISTERPC, 0x0248, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03 - tag 0x0e, 1 - singlemonitor 0x0100, MODEL_SINISTERPC, 0x0249, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03 - tag 0x10, 1 - singlemonitor 0x0100, MODEL_SINISTERPC, 0x024a, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03 - tag 0x11, 1 - singlemonitor 0x0100, MODEL_SINISTERPC, 0x024b, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03 - tag 0x12, 1 - singlemonitor 0x0100, MODEL_SINISTERPC, 0x024c, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03 - tag 0x13, 1 - singlemonitor 0x0100, MODEL_SINISTERPC, 0x024d, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03 - tag 0x08, 3 - tag 0x14, 2 - tag 0x15, 1 - singlemonitor 0x0100, MODEL_SINISTERPC, 0x024e, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03 - tag 0x16, 1 - singlemonitor 0x0100, MODEL_SINISTERPC, 0x024f, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03 - tag 0x17, 1 - singlemonitor 0x0100, MODEL_SINISTERPC, 0x0250, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03 - tag 0x18, 1 - singlemonitor 0x0100, MODEL_SINISTERPC, 0x0251, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03 - tag 0x09, 3 - tag 0x19, 2 - tag 0x1a, 1 - singlemonitor 0x0100, MODEL_SINISTERPC, 0x0252, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03 - tag 0x1b, 1 - singlemonitor 0x0100, MODEL_SINISTERPC, 0x0253, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03 - tag 0x1c, 1 - singlemonitor 0x0100, MODEL_SINISTERPC, 0x0254, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03 - tag 0x1d, 1 - singlemonitor 0x0100, MODEL_SINISTERPC, 0x0255, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03 - tag 0x07, 3 - tag 0x0f, 2 - tag 0x1e, 1 - singlemonitor 0x0100, MODEL_SINISTERPC, 0x0256, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03 - tag 0x1f, 1 - singlemonitor 0x0100, MODEL_SINISTERPC, 0x0257, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03 - tag 0x20, 1 - singlemonitor 0x0100, MODEL_SINISTERPC, 0x0258, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03 - tag 0x21, 1 - singlemonitor 0x0100, MODEL_SINISTERPC, 0x0259, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03 - object 0x0100, MODEL_LAB_TABLE, 0x023c, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x0a, 1 - singlemonitor 0x0100, MODEL_SINISTERPC, 0x025a, 0x010004e1, 0x00000001, 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, 0xffffff03 - tag 0x37, 1 - hover_vehicle 0x00c0, MODEL_HOOVERBOT, 0x0001, 0xe0000008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, 0x00000411, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x38, 1 - hover_vehicle 0x00c0, MODEL_TESTERBOT, 0x003b, 0xc0020008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, 0x00000412, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01b3, 0x04000b62, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01b4, 0x04000b62, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01b8, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01b9, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01ba, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01bb, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01bc, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x01b5, 0x04020b62, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00c80384, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x01b6, 0x04020b62, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00c80384, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_WINDOW, 0x01b7, 0x04020b62, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00c80384, 0x0000ffff, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01bd, 0x04000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01be, 0x04000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01bf, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x3e, 1 - object 0x0100, MODEL_DD_CHAIR, 0x020c, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x020b, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - singlemonitor 0x0100, MODEL_SINISTERPC, 0x020a, 0x000004e1, 0x00000001, 0x00000000, 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, 0xffffff03 - object 0x0100, MODEL_LAB_CHAIR, 0x020d, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_LAB_TABLE, 0x020e, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - singlemonitor 0x0100, MODEL_SINISTERPC, 0x020f, 0x000004e1, 0x00000001, 0x00000000, 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, 0xffffff03 - object 0x0100, MODEL_LAB_CHAIR, 0x0211, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_LAB_TABLE, 0x0210, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - singlemonitor 0x0100, MODEL_SINISTERPC, 0x0212, 0x000004e1, 0x00000001, 0x00000000, 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, 0xffffff03 - glass 0x0100, MODEL_WINDOW, 0x01d4, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01d3, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01d2, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01d1, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01d0, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01cf, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01ce, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01cd, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01c7, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01c6, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01c5, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01c4, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01c3, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01c2, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01c1, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01c0, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01cb, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01ca, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01c9, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01c8, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01cc, 0x04020b62, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01dd, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01e4, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01e3, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01e2, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01e1, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01e0, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01df, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01de, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01e5, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01e6, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01e7, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01e8, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01e9, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01ea, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01eb, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01ec, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01d5, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01d6, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01d7, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01d8, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01d9, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01da, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01db, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01dc, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01ed, 0x04020b62, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01ee, 0x04020b62, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_WINDOW, 0x01ef, 0x04020b62, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag 0x3d, 1 - object 0x0100, MODEL_DD_REDSOFA, 0x01a9, 0x000205e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDARM, 0x01aa, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x3c, 1 - object 0x0100, MODEL_DD_REDARM, 0x01ab, 0x000205e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDARM, 0x01ac, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDSOFA, 0x01ad, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDSOFA, 0x01ae, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDSOFA, 0x01af, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDARM, 0x01b0, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDARM, 0x01b1, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDARM, 0x01b2, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x01a1, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0166, MODEL_DD_PLANTRUBBER, 0x01a2, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x01a3, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0180, MODEL_DD_PLANTSPIKE, 0x01a4, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0180, MODEL_DD_PLANTRUBBER, 0x01a5, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x01a6, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0180, MODEL_DD_PLANTRUBBER, 0x01a7, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0133, MODEL_DD_PLANTSPIKE, 0x01a8, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00e6, MODEL_A51_CRATE2, 0x025d, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00e6, MODEL_A51_CRATE2, 0x025e, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00e6, MODEL_A51_CRATE2, 0x025f, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00e6, MODEL_A51_CRATE2, 0x0260, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00e6, MODEL_A51_CRATE2, 0x0261, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0262, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0263, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0264, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0265, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00e6, MODEL_A51_CRATE2, 0x0266, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00e6, MODEL_A51_CRATE2, 0x0267, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0268, 0x000201e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0033, MODEL_QUADPOD, 0x013d, 0x000005e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x05, 1 - object 0x0100, MODEL_MISC_IRSPECS, 0x013d, 0x014605e1, 0x00004001, 0x00400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - rename_object -1, 0x2d, 0x1e2d, 0x1e2e, 0x1e2f, 0x1e30, 0x1e31, 0x0000, 0x0000 // "Obtain Night Vision." - tag 0x06, 1 - object 0x0100, MODEL_CHRSHIELD, 0x0243, 0x01460501, 0x00004001, 0x00400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - rename_object -1, 0x4f, 0x1e32, 0x1e33, 0x1e34, 0x1e35, 0x1e36, 0x0000, 0x0000 // "Obtain shield tech item." - tag 0x25, 1 - weapon 0x0180, MODEL_CHRDATATHIEF, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DATAUPLINK, 0x00ffffff, 0x00000000 - rename_object -1, 0x36, 0x1e37, 0x1e38, 0x1e39, 0x1e3a, 0x1e3b, 0x0000, 0x0000 // "Obtain Data Uplink." - tag 0x48, 1 - weapon 0x0180, MODEL_CHRDATATHIEF, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DATAUPLINK, 0x00ffffff, 0x00000000 - rename_object -1, 0x36, 0x1e37, 0x1e38, 0x1e39, 0x1e3a, 0x1e3b, 0x0000, 0x0000 // "Obtain Data Uplink." - tag 0x41, 1 - autogun 0x0099, MODEL_ROOFGUN, 0x026b, 0x00000004, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x026e0000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000da, 0x000a0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x42, 1 - autogun 0x0099, MODEL_ROOFGUN, 0x026c, 0x00000004, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x026f0000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000da, 0x000a0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x43, 1 - autogun 0x0099, MODEL_ROOFGUN, 0x026d, 0x00000004, 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x02700000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005b0, 0x000a0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - autogun 0x0099, MODEL_ROOFGUN, 0x026b, 0x00000004, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x026e0000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000e38, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - autogun 0x0099, MODEL_ROOFGUN, 0x026c, 0x00000004, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x026f0000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000e38, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - object 0x0133, MODEL_A51_CRATE2, 0x0269, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0133, MODEL_A51_CRATE2, 0x026a, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x39, 1 - object 0x0400, MODEL_ISOTOPE, 0x0158, 0x04000408, 0x0000c101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0400, MODEL_ISOTOPEEXPERIMENT, 0x0157, 0x04000101, 0x00004101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x49, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x027e, 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 0x4a, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x027f, 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 0x4b, 1 - ammocrate 0x0080, MODEL_MULTI_AMMO_CRATE, 0x0271, 0x000000e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_RIFLE - tag 0x4c, 1 - ammocrate 0x0080, MODEL_MULTI_AMMO_CRATE, 0x0272, 0x000000e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_RIFLE - tag 0x4d, 1 - ammocrate 0x0080, MODEL_MULTI_AMMO_CRATE, 0x0273, 0x000000e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_RIFLE - tag 0x4e, 1 - ammocrate 0x0080, MODEL_MULTI_AMMO_CRATE, 0x0274, 0x000000e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_RIFLE - tag 0x4f, 1 - ammocrate 0x0080, MODEL_MULTI_AMMO_CRATE, 0x0275, 0x000000e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_RIFLE - tag 0x50, 1 - ammocrate 0x0080, MODEL_MULTI_AMMO_CRATE, 0x0276, 0x000000e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_RIFLE - tag 0x51, 1 - ammocrate 0x0080, MODEL_MULTI_AMMO_CRATE, 0x0277, 0x000000e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_RIFLE - tag 0x52, 1 - ammocrate 0x0080, MODEL_MULTI_AMMO_CRATE, 0x0278, 0x000000e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_RIFLE - tag 0x53, 1 - weapon 0x0100, MODEL_CHRCMP150, 0x0279, 0x00000008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - tag 0x54, 1 - weapon 0x0100, MODEL_CHRCMP150, 0x027a, 0x00000008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - tag 0x55, 2 - tag 0x56, 2 - object 0x0100, MODEL_A51_CRATE2, 0x016b, 0x000201e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x016c, 0x000201e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x57, 2 - tag 0x58, 2 - weapon 0x0100, MODEL_CHRCMP150, 0x027b, 0x00100008, 0x00080001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x027c, 0x00100008, 0x00080001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - link_collectibles -1, -2 - tag 0x59, 1 - weapon 0x0080, MODEL_MULTI_AMMO_CRATE, 0x027d, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PROXIMITYMINE, 0x00ffffff, 0x00000000 + tag(0x60, 1) + lift(0x0100, MODEL_LIFT_PLATFORM, 0x025b, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x025b, 0x025c, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000b6, 0x0010aaaa, 0x15000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_ACCESSDOORUP, 0x019b, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00100004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_ACCESSDOORDN, 0x019c, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_ACCESSDOORUP, 0x019d, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00100004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_ACCESSDOORDN, 0x019e, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_ACCESSDOORUP, 0x019f, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00100004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_ACCESSDOORDN, 0x01a0, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LABDOOR, 0x015a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LABDOOR, 0x015b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LABDOOR, 0x015c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x27, 1) + door(0x0100, MODEL_DD_LAB_DOOR_SEC, 0x015d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x24, 2) + tag(0x40, 2) + door(0x0100, MODEL_DOOR4A_G5, 0x0169, 0x00000400, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000708, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001200, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR4B_G5, 0x0168, 0x00000400, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000708, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_DOOR_WIND, 0x015e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00020004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00c80384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x5b, 1) + door(0x0100, MODEL_DD_LABDOOR, 0x015f, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LABDOOR, 0x016d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x5d, 1) + door(0x0100, MODEL_DD_LABDOOR, 0x016e, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LABDOOR, 0x016f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x5c, 1) + door(0x0100, MODEL_DD_LABDOOR, 0x0170, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x5e, 2) + tag(0x5f, 2) + door(0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x0175, 0x10000010, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_DOORTOP, 0x0176, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x0178, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_DOORTOP, 0x0177, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffd, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x0179, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_DOORTOP, 0x017a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x017c, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_DOORTOP, 0x017b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffd, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x0171, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_SECTOR2TOP, 0x0172, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x0162, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_CAUTIONTOP, 0x0163, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x0164, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_CAUTIONTOP, 0x0165, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x47, 1) + door(0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x0166, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_CAUTIONTOP, 0x0167, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x0173, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_SECTOR2TOP, 0x0174, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x017f, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_DOORTOP, 0x0180, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x0181, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_SECTOR3TOP, 0x0182, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x45, 1) + door(0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x0183, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_DOORTOP, 0x0184, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x44, 1) + door(0x0100, MODEL_DD_LAB_SECTOR3, 0x017d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x40000004, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_SECTOR3, 0x017e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x40000004, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LABDOOR, 0x0185, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LABDOOR, 0x0186, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x22, 1) + door(0x0100, MODEL_DD_LAB_SECTOR3WIND, 0x0187, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00020004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00c80384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_SECTOR3WIND, 0x0188, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00020004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00c80384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x0189, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_RESTRICTED, 0x018a, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x5a, 1) + door(0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x018b, 0x10000010, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000040, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_RESTRICTED, 0x018c, 0x10000010, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000040, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x26, -1) + door(0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x018d, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_RESTRICTED, 0x018e, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_SECTOR2BOT, 0x018f, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LAB_SECTOR4TOP, 0x0190, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x23, 1) + door(0x0100, MODEL_DR_CAROLL_DOOR, 0x0199, 0x00000010, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000e666, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000040, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DR_CAROLL_DOOR_MAIN, 0x0198, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00100004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DR_CAROLL_DOOR_LEFT, 0x0196, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DR_CAROLL_DOOR_RIGHT, 0x0197, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DR_CAROLL_DOOR_BMAIN, 0x0195, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DR_CAROLL_DOOR_BLEFT, 0x0193, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DR_CAROLL_DOOR_BRIGHT, 0x0194, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffb, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x28, 5) + tag(0x29, 5) + tag(0x2a, 5) + tag(0x2b, 5) + tag(0x2c, 5) + door(0x0100, MODEL_LASDOOR, 0x01f0, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000002, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x01f1, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000002, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x01f2, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000002, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x01f3, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000002, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x01f4, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000002, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffc, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x2d, 5) + tag(0x2e, 5) + tag(0x2f, 5) + tag(0x30, 5) + tag(0x31, 5) + door(0x0100, MODEL_LASDOOR, 0x01f5, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x01f6, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x01f7, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x01f8, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x01f9, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffc, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x32, 5) + tag(0x33, 5) + tag(0x34, 5) + tag(0x35, 5) + tag(0x36, 5) + door(0x0100, MODEL_LASDOOR, 0x01fa, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x01fb, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x01fc, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x01fd, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x01fe, 0x06000400, 0x22000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffc, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x3f, 1) + door(0x0100, MODEL_DD_GRATE, 0x016a, 0x00000400, 0xa0000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x08000000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x01, 1) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0213, 0x50000062, 0x00000001, 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, 0xffffff03) + tag(0x02, 1) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0214, 0x50000062, 0x00000001, 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, 0xffffff03) + tag(0x03, 1) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0215, 0x50000062, 0x00000001, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0216, 0x50000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0217, 0x50000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0218, 0x50000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0219, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x021a, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x021b, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + tag(0x3a, 1) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x021c, 0x00000062, 0x00000001, 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, 0xffffff04) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x021d, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x021e, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x021f, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0220, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0221, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0222, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0223, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0224, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0225, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0226, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0227, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0228, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0229, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x022a, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x022b, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x022c, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x022d, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x022e, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x022f, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0230, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0231, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0232, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0233, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0234, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0235, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_TVSCREEN, 0x0236, 0x00000062, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_SINISTERPC, 0x0245, 0x000004e1, 0x00000000, 0x00000000, 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, 0xffffff23) + chr(0x00000200, 0x2f, 0x0146, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 100, 0x90082400, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x002f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x30, 0x0147, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 100, 0x90082000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0030, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x31, 0x0148, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 100, 0x90082000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0031, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x32, 0x0149, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 100, 0x90082000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0032, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x33, 0x014a, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 100, 0x90086000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0033, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x00, 0x001f, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_PATH00, -1, -1, 1000, 100, 0x80004700, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00004200, 0x01, 0x0135, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, 0x0019, -1, 1000, 100, 0x8000c408, 0x00000100, 0x02, 0x01, 0x3c, 0, 0x00030000) + weapon(0x0100, MODEL_CHRCMP150, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00004200, 0x02, 0x0136, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, 0x001a, -1, 1000, 100, 0x8000c408, 0x00000100, 0x02, 0x01, 0x3d, 0, 0x00030000) + weapon(0x0100, MODEL_CHRCMP150, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00004200, 0x3c, 0x0134, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 1000, 100, 0x80002200, 0x00000100, 0x02, 0x01, -1, 0, 0x00010000) + weapon(0x0100, MODEL_CHRCMP150, 0x003c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00004200, 0x03, 0x0137, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 1000, 100, 0x80004100, 0x00000100, 0x02, 0x02, 0x3e, 0, 0x00020000) + weapon(0x0100, MODEL_CHRCMP150, 0x0003, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x04, 0x0111, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 1000, 100, 0x80004100, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0004, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x05, 0x0112, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 1000, 100, 0x80004100, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0005, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x06, 0x0113, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 1000, 100, 0x80004100, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0006, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0a, 0x0031, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_PATH02, -1, -1, 200, 100, 0x80000100, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0b, 0x0038, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_PATH02, -1, -1, 200, 100, 0x80000100, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0c, 0x0062, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_PATH03, -1, -1, 1000, 100, 0x80002000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0d, 0x006e, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_PATH03, -1, -1, 1000, 100, 0x80002000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0e, 0x0114, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 1, 100, 0x80082000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0f, 0x0115, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, 0x0060, -1, 100, 100, 0x81002000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000f, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00004200, 0x10, 0x0116, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, 0x0060, -1, 100, 100, 0x81002000, 0x00000100, 0x02, 0x06, -1, 0, 0x00010000) + weapon(0x0100, MODEL_CHRCMP150, 0x0010, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00004200, 0x11, 0x0117, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, 0x0065, -1, 100, 100, 0x81002000, 0x00000100, 0x02, 0x06, -1, 0, 0x00010000) + weapon(0x0100, MODEL_CHRCMP150, 0x0011, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x12, 0x0118, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, 0x0065, -1, 100, 100, 0x81002000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0012, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00004200, 0x13, 0x0119, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, 0x0069, -1, 100, 100, 0x81002000, 0x00000100, 0x02, 0x06, -1, 0, 0x00010000) + weapon(0x0100, MODEL_CHRCMP150, 0x0013, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x14, 0x011a, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, 0x0069, -1, 100, 100, 0x81002000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0014, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x15, 0x011b, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 100, 0x80000000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0015, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x16, 0x011c, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 100, 0x80000000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x17, 0x011d, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 100, 0x80000000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0017, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x18, 0x011e, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 100, 0x80000000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x19, 0x011f, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 100, 0x84000100, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0019, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1a, 0x0120, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 100, 0x80000000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1b, 0x0121, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 100, 0x80000000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x001b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1c, 0x0122, BODY_DD_SHOCK_INF, HEAD_DDSHOCK, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 100, 0x80000000, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x001c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1d, 0x0123, BODY_DD_SHOCK_INF, HEAD_DDSHOCK, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 100, 0x80000000, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x001d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00004200, 0x1e, 0x0124, BODY_DD_SHOCK_INF, HEAD_DDSHOCK, FUNC_INIT_BASIC_GUARD, -1, -1, 1000, 20, 0x80084100, 0x00000100, 0x02, 0x0a, -1, 0, 0x00010000) + weapon(0x0100, MODEL_CHRDRAGON, 0x001e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1f, 0x0125, BODY_DD_SHOCK_INF, HEAD_DDSHOCK, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 20, 0x80004100, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x001f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x20, 0x0126, BODY_DD_SHOCK_INF, HEAD_DDSHOCK, FUNC_INIT_BASIC_GUARD, -1, -1, 200, 20, 0x80004100, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0020, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x21, 0x0127, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 200, 20, 0x80084100, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0021, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x22, 0x0128, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 200, 20, 0x80002000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0022, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x23, 0x0129, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 200, 20, 0x80002000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0023, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x24, 0x012a, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_SHOCK_GUARD, -1, -1, 200, 20, 0x80002000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0024, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000400, 0x3b, 0x013b, BODY_DD_SHOCK_INF, HEAD_DDSHOCK, FUNC_K7_GUARD, -1, -1, 1, 20, 0x0000c200, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x003b, 0x00424000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + tag(0x04, -1) + chr(0x00010400, 0x38, 0x013c, BODY_DD_LABTECH, HEAD_RANDOM, FUNC_K7_SCIENTIST, 0x0076, -1, 1, 20, 0x00002000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000) + chr(0x00000200, 0x29, 0x0155, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 1000, 100, 0xc0082000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0029, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x2a, 0x0156, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, 0x0060, -1, 1000, 100, 0xc0082000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x002a, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x2b, 0x014b, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 1000, 100, 0xc0082000, 0x00000000, 0x02, 0x0f, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x002b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x2c, 0x014c, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, 0x0060, -1, 1000, 100, 0xc0082000, 0x00000000, 0x02, 0x0f, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x002c, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x2d, 0x0151, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, -1, -1, 1000, 100, 0xc0082000, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x002d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x2e, 0x0152, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_BASIC_GUARD, 0x0060, -1, 1000, 100, 0xc0082000, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x002e, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00010400, 0x35, 0x0138, BODY_DD_LABTECH, HEAD_JAMIE, FUNC_INIT_SCIENTIST, 0x0076, -1, 1000, 10, 0x00002000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000) + chr(0x00010400, 0x36, 0x0139, BODY_DD_LABTECH, HEAD_JON, FUNC_INIT_SCIENTIST, -1, -1, 1000, 10, 0x00004000, 0x00000000, 0x02, 0x08, -1, 0, 0x01000000) + chr(0x00010400, 0x37, 0x013a, BODY_DD_LABTECH, HEAD_DUNCAN2, FUNC_INIT_SCIENTIST, -1, -1, 1000, 10, 0x00000000, 0x00000000, 0x02, 0x08, -1, 0, 0x02000000) + chr(0x00000400, 0x3a, 0x0106, BODY_DDSHOCK, HEAD_DARLING, GFUNC_IDLE, -1, -1, 1000, 100, 0x0000c200, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000) + chr(0x00010400, 0x39, 0x010c, BODY_DRCARROLL, 0x00, GFUNC_IDLE, -1, -1, 1000, 100, 0x0000c200, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000) + tag(0x0b, 1) + singlemonitor(0x0100, MODEL_SINISTERPC, 0x0246, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03) + tag(0x0c, 1) + singlemonitor(0x0100, MODEL_SINISTERPC, 0x0247, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03) + tag(0x0d, 1) + singlemonitor(0x0100, MODEL_SINISTERPC, 0x0248, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03) + tag(0x0e, 1) + singlemonitor(0x0100, MODEL_SINISTERPC, 0x0249, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03) + tag(0x10, 1) + singlemonitor(0x0100, MODEL_SINISTERPC, 0x024a, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03) + tag(0x11, 1) + singlemonitor(0x0100, MODEL_SINISTERPC, 0x024b, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03) + tag(0x12, 1) + singlemonitor(0x0100, MODEL_SINISTERPC, 0x024c, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03) + tag(0x13, 1) + singlemonitor(0x0100, MODEL_SINISTERPC, 0x024d, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03) + tag(0x08, 3) + tag(0x14, 2) + tag(0x15, 1) + singlemonitor(0x0100, MODEL_SINISTERPC, 0x024e, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03) + tag(0x16, 1) + singlemonitor(0x0100, MODEL_SINISTERPC, 0x024f, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03) + tag(0x17, 1) + singlemonitor(0x0100, MODEL_SINISTERPC, 0x0250, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03) + tag(0x18, 1) + singlemonitor(0x0100, MODEL_SINISTERPC, 0x0251, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03) + tag(0x09, 3) + tag(0x19, 2) + tag(0x1a, 1) + singlemonitor(0x0100, MODEL_SINISTERPC, 0x0252, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03) + tag(0x1b, 1) + singlemonitor(0x0100, MODEL_SINISTERPC, 0x0253, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03) + tag(0x1c, 1) + singlemonitor(0x0100, MODEL_SINISTERPC, 0x0254, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03) + tag(0x1d, 1) + singlemonitor(0x0100, MODEL_SINISTERPC, 0x0255, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03) + tag(0x07, 3) + tag(0x0f, 2) + tag(0x1e, 1) + singlemonitor(0x0100, MODEL_SINISTERPC, 0x0256, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03) + tag(0x1f, 1) + singlemonitor(0x0100, MODEL_SINISTERPC, 0x0257, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03) + tag(0x20, 1) + singlemonitor(0x0100, MODEL_SINISTERPC, 0x0258, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03) + tag(0x21, 1) + singlemonitor(0x0100, MODEL_SINISTERPC, 0x0259, 0x000004e1, 0x00000001, 0x00210000, 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, 0xffffff03) + stdobject(0x0100, MODEL_LAB_TABLE, 0x023c, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x0a, 1) + singlemonitor(0x0100, MODEL_SINISTERPC, 0x025a, 0x010004e1, 0x00000001, 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, 0xffffff03) + tag(0x37, 1) + hover_vehicle(0x00c0, MODEL_HOOVERBOT, 0x0001, 0xe0000008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, 0x00000411, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x38, 1) + hover_vehicle(0x00c0, MODEL_TESTERBOT, 0x003b, 0xc0020008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, 0x00000412, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01b3, 0x04000b62, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01b4, 0x04000b62, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01b8, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01b9, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01ba, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01bb, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01bc, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x01b5, 0x04020b62, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00c80384, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x01b6, 0x04020b62, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00c80384, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x01b7, 0x04020b62, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00c80384, 0x0000ffff, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01bd, 0x04000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01be, 0x04000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01bf, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x3e, 1) + stdobject(0x0100, MODEL_DD_CHAIR, 0x020c, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x020b, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + singlemonitor(0x0100, MODEL_SINISTERPC, 0x020a, 0x000004e1, 0x00000001, 0x00000000, 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, 0xffffff03) + stdobject(0x0100, MODEL_LAB_CHAIR, 0x020d, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_LAB_TABLE, 0x020e, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + singlemonitor(0x0100, MODEL_SINISTERPC, 0x020f, 0x000004e1, 0x00000001, 0x00000000, 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, 0xffffff03) + stdobject(0x0100, MODEL_LAB_CHAIR, 0x0211, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_LAB_TABLE, 0x0210, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + singlemonitor(0x0100, MODEL_SINISTERPC, 0x0212, 0x000004e1, 0x00000001, 0x00000000, 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, 0xffffff03) + glass(0x0100, MODEL_WINDOW, 0x01d4, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01d3, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01d2, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01d1, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01d0, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01cf, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01ce, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01cd, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01c7, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01c6, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01c5, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01c4, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01c3, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01c2, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01c1, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01c0, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01cb, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01ca, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01c9, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01c8, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01cc, 0x04020b62, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01dd, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01e4, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01e3, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01e2, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01e1, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01e0, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01df, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01de, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01e5, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01e6, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01e7, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01e8, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01e9, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01ea, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01eb, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01ec, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01d5, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01d6, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01d7, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01d8, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01d9, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01da, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01db, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01dc, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01ed, 0x04020b62, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01ee, 0x04020b62, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01ef, 0x04020b62, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x3d, 1) + stdobject(0x0100, MODEL_DD_REDSOFA, 0x01a9, 0x000205e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDARM, 0x01aa, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x3c, 1) + stdobject(0x0100, MODEL_DD_REDARM, 0x01ab, 0x000205e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDARM, 0x01ac, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDSOFA, 0x01ad, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDSOFA, 0x01ae, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDSOFA, 0x01af, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDARM, 0x01b0, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDARM, 0x01b1, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDARM, 0x01b2, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x01a1, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0166, MODEL_DD_PLANTRUBBER, 0x01a2, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x01a3, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0180, MODEL_DD_PLANTSPIKE, 0x01a4, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0180, MODEL_DD_PLANTRUBBER, 0x01a5, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x01a6, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0180, MODEL_DD_PLANTRUBBER, 0x01a7, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0133, MODEL_DD_PLANTSPIKE, 0x01a8, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00e6, MODEL_A51_CRATE2, 0x025d, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00e6, MODEL_A51_CRATE2, 0x025e, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00e6, MODEL_A51_CRATE2, 0x025f, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00e6, MODEL_A51_CRATE2, 0x0260, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00e6, MODEL_A51_CRATE2, 0x0261, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0262, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0263, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0264, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0265, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00e6, MODEL_A51_CRATE2, 0x0266, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00e6, MODEL_A51_CRATE2, 0x0267, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0268, 0x000201e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0033, MODEL_QUADPOD, 0x013d, 0x000005e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x05, 1) + stdobject(0x0100, MODEL_MISC_IRSPECS, 0x013d, 0x014605e1, 0x00004001, 0x00400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + rename_object(-1, 0x2d, 0x1e2d, 0x1e2e, 0x1e2f, 0x1e30, 0x1e31, 0x0000, 0x0000) // "Obtain Night Vision." + tag(0x06, 1) + stdobject(0x0100, MODEL_CHRSHIELD, 0x0243, 0x01460501, 0x00004001, 0x00400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + rename_object(-1, 0x4f, 0x1e32, 0x1e33, 0x1e34, 0x1e35, 0x1e36, 0x0000, 0x0000) // "Obtain shield tech item." + tag(0x25, 1) + weapon(0x0180, MODEL_CHRDATATHIEF, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DATAUPLINK, 0x00ffffff, 0x00000000) + rename_object(-1, 0x36, 0x1e37, 0x1e38, 0x1e39, 0x1e3a, 0x1e3b, 0x0000, 0x0000) // "Obtain Data Uplink." + tag(0x48, 1) + weapon(0x0180, MODEL_CHRDATATHIEF, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DATAUPLINK, 0x00ffffff, 0x00000000) + rename_object(-1, 0x36, 0x1e37, 0x1e38, 0x1e39, 0x1e3a, 0x1e3b, 0x0000, 0x0000) // "Obtain Data Uplink." + tag(0x41, 1) + autogun(0x0099, MODEL_ROOFGUN, 0x026b, 0x00000004, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x026e0000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000da, 0x000a0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x42, 1) + autogun(0x0099, MODEL_ROOFGUN, 0x026c, 0x00000004, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x026f0000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000da, 0x000a0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x43, 1) + autogun(0x0099, MODEL_ROOFGUN, 0x026d, 0x00000004, 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x02700000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005b0, 0x000a0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + autogun(0x0099, MODEL_ROOFGUN, 0x026b, 0x00000004, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x026e0000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000e38, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + autogun(0x0099, MODEL_ROOFGUN, 0x026c, 0x00000004, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x026f0000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000e38, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + stdobject(0x0133, MODEL_A51_CRATE2, 0x0269, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0133, MODEL_A51_CRATE2, 0x026a, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x39, 1) + stdobject(0x0400, MODEL_ISOTOPE, 0x0158, 0x04000408, 0x0000c101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0400, MODEL_ISOTOPEEXPERIMENT, 0x0157, 0x04000101, 0x00004101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x49, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x027e, 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(0x4a, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x027f, 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(0x4b, 1) + ammocrate(0x0080, MODEL_MULTI_AMMO_CRATE, 0x0271, 0x000000e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_RIFLE) + tag(0x4c, 1) + ammocrate(0x0080, MODEL_MULTI_AMMO_CRATE, 0x0272, 0x000000e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_RIFLE) + tag(0x4d, 1) + ammocrate(0x0080, MODEL_MULTI_AMMO_CRATE, 0x0273, 0x000000e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_RIFLE) + tag(0x4e, 1) + ammocrate(0x0080, MODEL_MULTI_AMMO_CRATE, 0x0274, 0x000000e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_RIFLE) + tag(0x4f, 1) + ammocrate(0x0080, MODEL_MULTI_AMMO_CRATE, 0x0275, 0x000000e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_RIFLE) + tag(0x50, 1) + ammocrate(0x0080, MODEL_MULTI_AMMO_CRATE, 0x0276, 0x000000e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_RIFLE) + tag(0x51, 1) + ammocrate(0x0080, MODEL_MULTI_AMMO_CRATE, 0x0277, 0x000000e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_RIFLE) + tag(0x52, 1) + ammocrate(0x0080, MODEL_MULTI_AMMO_CRATE, 0x0278, 0x000000e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_RIFLE) + tag(0x53, 1) + weapon(0x0100, MODEL_CHRCMP150, 0x0279, 0x00000008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + tag(0x54, 1) + weapon(0x0100, MODEL_CHRCMP150, 0x027a, 0x00000008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + tag(0x55, 2) + tag(0x56, 2) + stdobject(0x0100, MODEL_A51_CRATE2, 0x016b, 0x000201e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x016c, 0x000201e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x57, 2) + tag(0x58, 2) + weapon(0x0100, MODEL_CHRCMP150, 0x027b, 0x00100008, 0x00080001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x027c, 0x00100008, 0x00080001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + link_collectibles(-1, -2) + tag(0x59, 1) + weapon(0x0080, MODEL_MULTI_AMMO_CRATE, 0x027d, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PROXIMITYMINE, 0x00ffffff, 0x00000000) endprops +}; -intro: - intro_weapon WEAPON_FALCON2, -1 - ammo AMMOTYPE_PISTOL, 100 - ammo AMMOTYPE_RIFLE, 50 - intro_weapon WEAPON_CAMSPY, -1 - outfit OUTFIT_DEFAULT - spawn 0x001b +u8 intro[] = { + intro_weapon(WEAPON_FALCON2, -1) + ammo(AMMOTYPE_PISTOL, 100) + ammo(AMMOTYPE_RIFLE, 50) + intro_weapon(WEAPON_CAMSPY, -1) + outfit(OUTFIT_DEFAULT) + spawn(0x001b) endintro +}; -path00: - pad 0x001f - pad 0x001e - pad 0x001d - pad 0x001c - pad 0x000c - pad 0x000f - pad 0x0010 - pad 0x000e - pad 0x0004 - pad 0x0003 - pad 0x0001 - pad 0x0012 - pad 0x0011 - pad 0x0013 - pad 0x0014 - pad 0x0015 - endpath +s32 path00[] = { + 0x001f, + 0x001e, + 0x001d, + 0x001c, + 0x000c, + 0x000f, + 0x0010, + 0x000e, + 0x0004, + 0x0003, + 0x0001, + 0x0012, + 0x0011, + 0x0013, + 0x0014, + 0x0015, + -1, +}; -path01: - pad 0x004f - pad 0x004e - pad 0x004d - pad 0x004c - pad 0x004b - pad 0x004a - pad 0x0049 - pad 0x002a - pad 0x002b - pad 0x002c - pad 0x002d - pad 0x002e - pad 0x0029 - pad 0x002a - pad 0x0049 - pad 0x004a - pad 0x004b - pad 0x004c - pad 0x004d - pad 0x004e - endpath +s32 path01[] = { + 0x004f, + 0x004e, + 0x004d, + 0x004c, + 0x004b, + 0x004a, + 0x0049, + 0x002a, + 0x002b, + 0x002c, + 0x002d, + 0x002e, + 0x0029, + 0x002a, + 0x0049, + 0x004a, + 0x004b, + 0x004c, + 0x004d, + 0x004e, + -1, +}; -path02: - pad 0x0031 - pad 0x0034 - pad 0x0033 - pad 0x0032 - pad 0x0035 - pad 0x0036 - pad 0x0038 - pad 0x0039 - pad 0x003a - endpath +s32 path02[] = { + 0x0031, + 0x0034, + 0x0033, + 0x0032, + 0x0035, + 0x0036, + 0x0038, + 0x0039, + 0x003a, + -1, +}; -path03: - pad 0x0062 - pad 0x0061 - pad 0x0063 - pad 0x0065 - pad 0x0066 - pad 0x0067 - pad 0x0069 - pad 0x006a - pad 0x006d - pad 0x006e - endpath +s32 path03[] = { + 0x0062, + 0x0061, + 0x0063, + 0x0065, + 0x0066, + 0x0067, + 0x0069, + 0x006a, + 0x006d, + 0x006e, + -1, +}; -path04: - pad 0x0107 - pad 0x0108 - pad 0x0109 - endpath +s32 path04[] = { + 0x0107, + 0x0108, + 0x0109, + -1, +}; -path05: - pad 0x0001 - pad 0x0002 - pad 0x000c - pad 0x001d - pad 0x001e - pad 0x001f - pad 0x0028 - pad 0x0029 - pad 0x002d - pad 0x002a - pad 0x002e - pad 0x002e - pad 0x002e - endpath +s32 path05[] = { + 0x0001, + 0x0002, + 0x000c, + 0x001d, + 0x001e, + 0x001f, + 0x0028, + 0x0029, + 0x002d, + 0x002a, + 0x002e, + 0x002e, + 0x002e, + -1, +}; -path06: - pad 0x002e - pad 0x0029 - pad 0x0028 - pad 0x001f - pad 0x001e - pad 0x001d - pad 0x000c - pad 0x0002 - pad 0x0002 - pad 0x0002 - endpath +s32 path06[] = { + 0x002e, + 0x0029, + 0x0028, + 0x001f, + 0x001e, + 0x001d, + 0x000c, + 0x0002, + 0x0002, + 0x0002, + -1, +}; -path07: - pad 0x003b - pad 0x0039 - pad 0x003b - pad 0x0039 - endpath +s32 path07[] = { + 0x003b, + 0x0039, + 0x003b, + 0x0039, + -1, +}; -path08: - pad 0x003b - pad 0x003c - pad 0x003b - endpath +s32 path08[] = { + 0x003b, + 0x003c, + 0x003b, + -1, +}; -path09: - pad 0x0038 - pad 0x0035 - pad 0x0033 - pad 0x0034 - pad 0x0031 - pad 0x0030 - pad 0x002b - pad 0x002a - pad 0x0049 - pad 0x004a - pad 0x004b - pad 0x004c - pad 0x004d - pad 0x0050 - pad 0x004e - pad 0x0042 - pad 0x0043 - pad 0x005e - pad 0x0061 - pad 0x0065 - pad 0x0069 - pad 0x006d - pad 0x006b - pad 0x006c - pad 0x00bd - pad 0x00be - endpath +s32 path09[] = { + 0x0038, + 0x0035, + 0x0033, + 0x0034, + 0x0031, + 0x0030, + 0x002b, + 0x002a, + 0x0049, + 0x004a, + 0x004b, + 0x004c, + 0x004d, + 0x0050, + 0x004e, + 0x0042, + 0x0043, + 0x005e, + 0x0061, + 0x0065, + 0x0069, + 0x006d, + 0x006b, + 0x006c, + 0x00bd, + 0x00be, + -1, +}; -path10: - pad 0x00be - pad 0x012e - pad 0x012f - pad 0x0130 - pad 0x00c7 - pad 0x00cd - pad 0x00c8 - pad 0x00c4 - pad 0x0130 - pad 0x012f - pad 0x012e - pad 0x00be - pad 0x00bd - pad 0x011c - pad 0x00be - endpath +s32 path10[] = { + 0x00be, + 0x012e, + 0x012f, + 0x0130, + 0x00c7, + 0x00cd, + 0x00c8, + 0x00c4, + 0x0130, + 0x012f, + 0x012e, + 0x00be, + 0x00bd, + 0x011c, + 0x00be, + -1, +}; -path11: - pad 0x003b - pad 0x003b - pad 0x003b - endpath +s32 path11[] = { + 0x003b, + 0x003b, + 0x003b, + -1, +}; -path12: - pad 0x007f - pad 0x007f - pad 0x007f - endpath +s32 path12[] = { + 0x007f, + 0x007f, + 0x007f, + -1, +}; -path13: - pad 0x0080 - pad 0x0080 - pad 0x0080 - endpath +s32 path13[] = { + 0x0080, + 0x0080, + 0x0080, + -1, +}; -.macro init_path pathid - set_chr_dodge_rating 2, 0x0a - set_accuracy 1 - set_reaction_speed 20 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - assign_path \pathid - start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 -.endm +#define init_path(pathid) \ + set_chr_dodge_rating(2, 0x0a) \ + set_accuracy(1) \ + set_reaction_speed(20) \ + set_chr_health(CHR_SELF, 40) \ + set_armor(0) \ + set_recovery_speed(0) \ + set_shield(0) \ + assign_path(pathid) \ + start_path \ + set_function(CHR_SELF, GFUNC_UNALERTED_0004) -func040c_start_path00: - init_path 0 + + +u8 func040c_start_path00[] = { + init_path(0) endfunction +}; -func040d_start_path01: - init_path 1 +u8 func040d_start_path01[] = { + init_path(1) endfunction +}; -func040e_start_path02: - init_path 2 +u8 func040e_start_path02[] = { + init_path(2) endfunction +}; -func040f_start_path03: - init_path 3 +u8 func040f_start_path03[] = { + init_path(3) endfunction +}; -func0410_start_path04: - init_path 4 +u8 func0410_start_path04[] = { + init_path(4) endfunction +}; /** * @unused @@ -829,458 +866,465 @@ func0410_start_path04: * The function doesn't do any checks for detecting Jo, so the guard would * ignore you if it were assigned. */ -func0414_walk_3_pads: - label 0x03 - walk_to_pad 0x0002 +u8 func0414_walk_3_pads[] = { + label(0x03) + walk_to_pad(0x0002) - beginloop 0x06 - if_chr_stopped /*goto*/ 0x2f - endloop 0x06 + beginloop(0x06) + if_chr_stopped(/*goto*/ 0x2f) + endloop(0x06) - label 0x2f - walk_to_pad 0x0003 + label(0x2f) + walk_to_pad(0x0003) - beginloop 0x04 - if_chr_stopped /*goto*/ 0x08 - endloop 0x04 + beginloop(0x04) + if_chr_stopped(/*goto*/ 0x08) + endloop(0x04) - label 0x08 - walk_to_pad 0x0001 + label(0x08) + walk_to_pad(0x0001) - beginloop 0x09 - if_chr_stopped /*goto*/ 0x0a - endloop 0x09 + beginloop(0x09) + if_chr_stopped(/*goto*/ 0x0a) + endloop(0x09) - label 0x0a - goto_first 0x03 + label(0x0a) + goto_first(0x03) endfunction +}; /** * Unused. */ -func0401_init_chr_with_flag: - set_self_flag_bank3 CHRFLAG3_00000200 - set_function CHR_SELF, GFUNC_UNALERTED_0001 +u8 func0401_init_chr_with_flag[] = { + set_self_flag_bank3(CHRFLAG3_00000200) + set_function(CHR_SELF, GFUNC_UNALERTED_0001) endfunction +}; -func0405_init_scientist: - set_chr_health CHR_SELF, 20 - set_function CHR_SELF, FUNC_SCIENTIST +u8 func0405_init_scientist[] = { + set_chr_health(CHR_SELF, 20) + set_function(CHR_SELF, FUNC_SCIENTIST) endfunction +}; -func0404_scientist: - set_onshot_function FUNC_SCIENTIST - if_chr_dying CHR_SELF, /*goto*/ 0x2f - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2f - if_chr_unloaded CHR_SELF, /*goto*/ 0x2f - goto_next 0x06 +u8 func0404_scientist[] = { + set_onshot_function(FUNC_SCIENTIST) + if_chr_dying(CHR_SELF, /*goto*/ 0x2f) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2f) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2f) + goto_next(0x06) - label 0x2f - dprint "NISDEAD\n" - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE + label(0x2f) + dprint 'N','I','S','D','E','A','D','\n',0, + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) - label 0x06 - dprint "NIS2\n" - if_just_injured CHR_SELF, /*goto*/ 0x2f - goto_next 0x06 + label(0x06) + dprint 'N','I','S','2','\n',0, + if_just_injured(CHR_SELF, /*goto*/ 0x2f) + goto_next(0x06) - label 0x2f - beginloop 0x10 - if_chr_stopped /*goto*/ 0x2f - endloop 0x10 + label(0x2f) + beginloop(0x10) + if_chr_stopped(/*goto*/ 0x2f) + endloop(0x10) - label 0x2f - set_function CHR_SELF, FUNC_INIT_NASTY_SCIENTIST + label(0x2f) + set_function(CHR_SELF, FUNC_INIT_NASTY_SCIENTIST) - label 0x06 + label(0x06) stop_chr - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x2f - if_chr_distance_lt 500, /*goto*/ 0x2f - endloop 0x04 + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x2f) + if_chr_distance_lt(500, /*goto*/ 0x2f) + endloop(0x04) - label 0x2f - if_stage_flag_eq STAGEFLAG_ONE_SCIENTIST_DONE, TRUE, /*goto*/ 0x06 - set_stage_flag STAGEFLAG_ONE_SCIENTIST_DONE - goto_next 0x03 + label(0x2f) + if_stage_flag_eq(STAGEFLAG_ONE_SCIENTIST_DONE, TRUE, /*goto*/ 0x06) + set_stage_flag(STAGEFLAG_ONE_SCIENTIST_DONE) + goto_next(0x03) - label 0x06 - if_stage_flag_eq STAGEFLAG_TWO_SCIENTISTS_DONE, TRUE, /*goto*/ 0x06 - set_stage_flag STAGEFLAG_TWO_SCIENTISTS_DONE - goto_next 0x03 + label(0x06) + if_stage_flag_eq(STAGEFLAG_TWO_SCIENTISTS_DONE, TRUE, /*goto*/ 0x06) + set_stage_flag(STAGEFLAG_TWO_SCIENTISTS_DONE) + goto_next(0x03) - label 0x06 - set_stage_flag STAGEFLAG_THREE_SCIENTISTS_DONE - if_stage_flag_eq STAGEFLAG_THREE_SCIENTISTS_DONE, FALSE, /*goto*/ 0x03 - set_function CHR_SELF, FUNC_INIT_NASTY_SCIENTIST + label(0x06) + set_stage_flag(STAGEFLAG_THREE_SCIENTISTS_DONE) + if_stage_flag_eq(STAGEFLAG_THREE_SCIENTISTS_DONE, FALSE, /*goto*/ 0x03) + set_function(CHR_SELF, FUNC_INIT_NASTY_SCIENTIST) - label 0x03 - if_chr_in_room CHR_P1P2, 0x00, 0x0031, /*goto*/ 0x6a - if_chr_in_room CHR_P1P2, 0x00, 0x0032, /*goto*/ 0x6a - if_chr_in_room CHR_P1P2, 0x00, 0x0042, /*goto*/ 0x6d - if_chr_in_room CHR_P1P2, 0x00, 0x0043, /*goto*/ 0x6d - goto_next 0x06 + label(0x03) + if_chr_in_room(CHR_P1P2, 0x00, 0x0031, /*goto*/ 0x6a) + if_chr_in_room(CHR_P1P2, 0x00, 0x0032, /*goto*/ 0x6a) + if_chr_in_room(CHR_P1P2, 0x00, 0x0042, /*goto*/ 0x6d) + if_chr_in_room(CHR_P1P2, 0x00, 0x0043, /*goto*/ 0x6d) + goto_next(0x06) - label 0x6a - animation ANIM_COWER_0229, -1, -1, 0x100a, CHR_SELF, 2 + label(0x6a) + animation(ANIM_COWER_0229, -1, -1, 0x100a, CHR_SELF, 2) - beginloop 0x6b - if_chr_dying 0x2b, /*goto*/ 0x2f - if_chr_death_animation_finished 0x2b, /*goto*/ 0x2f - if_chr_unloaded 0x2b, /*goto*/ 0x2f - if_chr_stopped /*goto*/ 0x6c - reloop 0x6b + beginloop(0x6b) + if_chr_dying(0x2b, /*goto*/ 0x2f) + if_chr_death_animation_finished(0x2b, /*goto*/ 0x2f) + if_chr_unloaded(0x2b, /*goto*/ 0x2f) + if_chr_stopped(/*goto*/ 0x6c) + reloop(0x6b) - label 0x2f - if_chr_dying 0x2c, /*goto*/ 0x06 - if_chr_death_animation_finished 0x2c, /*goto*/ 0x06 - if_chr_unloaded 0x2c, /*goto*/ 0x06 - if_chr_stopped /*goto*/ 0x6c - endloop 0x6b + label(0x2f) + if_chr_dying(0x2c, /*goto*/ 0x06) + if_chr_death_animation_finished(0x2c, /*goto*/ 0x06) + if_chr_unloaded(0x2c, /*goto*/ 0x06) + if_chr_stopped(/*goto*/ 0x6c) + endloop(0x6b) - label 0x6c - goto_first 0x6a + label(0x6c) + goto_first(0x6a) - label 0x6d - animation ANIM_COWER_0229, -1, -1, 0x100a, CHR_SELF, 2 + label(0x6d) + animation(ANIM_COWER_0229, -1, -1, 0x100a, CHR_SELF, 2) - beginloop 0x6e - if_chr_dying 0x2d, /*goto*/ 0x2f - if_chr_death_animation_finished 0x2d, /*goto*/ 0x2f - if_chr_unloaded 0x2d, /*goto*/ 0x2f - if_chr_stopped /*goto*/ 0x6f - reloop 0x6e + beginloop(0x6e) + if_chr_dying(0x2d, /*goto*/ 0x2f) + if_chr_death_animation_finished(0x2d, /*goto*/ 0x2f) + if_chr_unloaded(0x2d, /*goto*/ 0x2f) + if_chr_stopped(/*goto*/ 0x6f) + reloop(0x6e) - label 0x2f - if_chr_dying 0x2e, /*goto*/ 0x06 - if_chr_death_animation_finished 0x2e, /*goto*/ 0x06 - if_chr_unloaded 0x2e, /*goto*/ 0x06 - if_chr_stopped /*goto*/ 0x6f - endloop 0x6e + label(0x2f) + if_chr_dying(0x2e, /*goto*/ 0x06) + if_chr_death_animation_finished(0x2e, /*goto*/ 0x06) + if_chr_unloaded(0x2e, /*goto*/ 0x06) + if_chr_stopped(/*goto*/ 0x6f) + endloop(0x6e) - label 0x6f - goto_first 0x6d + label(0x6f) + goto_first(0x6d) - label 0x06 + label(0x06) restart_timer - label 0x08 - try_face_entity 0x0200, 0x0000, /*goto*/ 0x09 + label(0x08) + try_face_entity(0x0200, 0x0000, /*goto*/ 0x09) - beginloop 0x09 - if_sound_finished CHANNEL_6, /*goto*/ 0x2f - endloop 0x09 + beginloop(0x09) + if_sound_finished(CHANNEL_6, /*goto*/ 0x2f) + endloop(0x09) - label 0x2f - if_angle_to_target_chr_lt 10, /*goto*/ 0x06 - if_timer_gt 60, /*goto*/ 0x06 - goto_first 0x09 + label(0x2f) + if_angle_to_target_chr_lt(10, /*goto*/ 0x06) + if_timer_gt(60, /*goto*/ 0x06) + goto_first(0x09) - label 0x06 - dprint "TALK 1\n" - say_quip TARGET_CHR, 0x0a, 0xff, 0x00, 0xff, 0x81, 0x03, 0x08 + label(0x06) + dprint 'T','A','L','K',' ','1','\n',0, + say_quip(TARGET_CHR, 0x0a, 0xff, 0x00, 0xff, 0x81, 0x03, 0x08) restart_timer stop_chr - beginloop 0x56 - if_timer_lt 120, /*goto*/ 0x2f - if_chr_in_view /*goto*/ 0x06 - label 0x2f - endloop 0x56 + beginloop(0x56) + if_timer_lt(120, /*goto*/ 0x2f) + if_chr_in_view(/*goto*/ 0x06) + label(0x2f) + endloop(0x56) - label 0x06 - dprint "TALK 1\n" - say_quip TARGET_CHR, 0x0b, 0xff, 0x00, 0xff, 0x81, 0x04, 0x09 + label(0x06) + dprint 'T','A','L','K',' ','1','\n',0, + say_quip(TARGET_CHR, 0x0b, 0xff, 0x00, 0xff, 0x81, 0x04, 0x09) restart_timer - beginloop 0x57 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x57 + beginloop(0x57) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x57) - label 0x06 - label 0x0a - say_quip TARGET_CHR, 0x0c, 0xff, 0x00, 0xff, 0x81, 0x05, 0x08 + label(0x06) + label(0x0a) + say_quip(TARGET_CHR, 0x0c, 0xff, 0x00, 0xff, 0x81, 0x05, 0x08) restart_timer - animation ANIM_SURRENDER_002E, 0, -1, 0x1010, CHR_SELF, 2 + animation(ANIM_SURRENDER_002E, 0, -1, 0x1010, CHR_SELF, 2) - beginloop 0x0b - if_angle_to_target_chr_lt 10, /*goto*/ 0x06 - if_timer_gt 90, /*goto*/ 0x06 - endloop 0x0b + beginloop(0x0b) + if_angle_to_target_chr_lt(10, /*goto*/ 0x06) + if_timer_gt(90, /*goto*/ 0x06) + endloop(0x0b) - label 0x06 - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x06 - if_self_flag_bankx_eq CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x2f - jog_to_object OBJ_GOODTERM3 - goto_next 0x12 + label(0x06) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x06) + if_self_flag_bankx_eq(CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x2f) + jog_to_object(OBJ_GOODTERM3) + goto_next(0x12) - label 0x06 - jog_to_object OBJ_GOODTERM1 - goto_next 0x12 + label(0x06) + jog_to_object(OBJ_GOODTERM1) + goto_next(0x12) - label 0x2f - jog_to_object OBJ_GOODTERM2 - label 0x12 - go_to_target_pad SPEED_JOG + label(0x2f) + jog_to_object(OBJ_GOODTERM2) + label(0x12) + go_to_target_pad(SPEED_JOG) - beginloop 0x0c - if_chr_stopped /*goto*/ 0x06 - endloop 0x0c + beginloop(0x0c) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x0c) - label 0x06 - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x06 - if_self_flag_bankx_eq CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x2f - if_object_in_good_condition OBJ_GOODTERM3, /*goto*/ 0x19 - say_quip TARGET_CHR, 0x10, 0xff, 0x00, 0xff, 0x81, 0x09, 0x08 - display_text_top_middle TARGET_CHR, 0x1e2c, COLOR_00_GREEN // "It appears someone has broken my PC." - goto_next 0x0e + label(0x06) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x06) + if_self_flag_bankx_eq(CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x2f) + if_object_in_good_condition(OBJ_GOODTERM3, /*goto*/ 0x19) + say_quip(TARGET_CHR, 0x10, 0xff, 0x00, 0xff, 0x81, 0x09, 0x08) + display_text_top_middle(TARGET_CHR, 0x1e2c, COLOR_00_GREEN) // "It appears someone has broken my PC." + goto_next(0x0e) - label 0x19 - if_stage_flag_eq STAGEFLAG_SHUT_DOWN_EXPERIMENT3, FALSE, /*goto*/ 0x15 - say_quip TARGET_CHR, 0x0f, 0xff, 0x00, 0xff, 0x81, 0x08, 0x08 - goto_next 0x0e + label(0x19) + if_stage_flag_eq(STAGEFLAG_SHUT_DOWN_EXPERIMENT3, FALSE, /*goto*/ 0x15) + say_quip(TARGET_CHR, 0x0f, 0xff, 0x00, 0xff, 0x81, 0x08, 0x08) + goto_next(0x0e) - label 0x15 - set_stage_flag STAGEFLAG_SHUT_DOWN_EXPERIMENT3 - say_quip TARGET_CHR, 0x0d, 0xff, 0x00, 0xff, 0x81, 0x06, 0x08 - assign_sound 0x01c3, CHANNEL_5 - control_sound_from_object CHANNEL_5, OBJ_GOODTERM3, TRUE - goto_next 0x0f + label(0x15) + set_stage_flag(STAGEFLAG_SHUT_DOWN_EXPERIMENT3) + say_quip(TARGET_CHR, 0x0d, 0xff, 0x00, 0xff, 0x81, 0x06, 0x08) + assign_sound(0x01c3, CHANNEL_5) + control_sound_from_object(CHANNEL_5, OBJ_GOODTERM3, TRUE) + goto_next(0x0f) - label 0x06 - if_object_in_good_condition OBJ_GOODTERM1, /*goto*/ 0x19 - say_quip TARGET_CHR, 0x10, 0xff, 0x00, 0xff, 0x81, 0x09, 0x08 - goto_next 0x0e + label(0x06) + if_object_in_good_condition(OBJ_GOODTERM1, /*goto*/ 0x19) + say_quip(TARGET_CHR, 0x10, 0xff, 0x00, 0xff, 0x81, 0x09, 0x08) + goto_next(0x0e) - label 0x19 - if_stage_flag_eq STAGEFLAG_SHUT_DOWN_EXPERIMENT1, FALSE, /*goto*/ 0x16 - say_quip TARGET_CHR, 0x0f, 0xff, 0x00, 0xff, 0x81, 0x08, 0x08 - goto_next 0x0e + label(0x19) + if_stage_flag_eq(STAGEFLAG_SHUT_DOWN_EXPERIMENT1, FALSE, /*goto*/ 0x16) + say_quip(TARGET_CHR, 0x0f, 0xff, 0x00, 0xff, 0x81, 0x08, 0x08) + goto_next(0x0e) - label 0x16 - set_stage_flag STAGEFLAG_SHUT_DOWN_EXPERIMENT1 - say_quip TARGET_CHR, 0x0d, 0xff, 0x00, 0xff, 0x81, 0x06, 0x08 - assign_sound 0x01c3, CHANNEL_5 - control_sound_from_object CHANNEL_5, OBJ_GOODTERM1, TRUE - goto_next 0x0f + label(0x16) + set_stage_flag(STAGEFLAG_SHUT_DOWN_EXPERIMENT1) + say_quip(TARGET_CHR, 0x0d, 0xff, 0x00, 0xff, 0x81, 0x06, 0x08) + assign_sound(0x01c3, CHANNEL_5) + control_sound_from_object(CHANNEL_5, OBJ_GOODTERM1, TRUE) + goto_next(0x0f) - label 0x2f - if_object_in_good_condition OBJ_GOODTERM1, /*goto*/ 0x19 - say_quip TARGET_CHR, 0x10, 0xff, 0x00, 0xff, 0x81, 0x09, 0x08 - goto_next 0x0e + label(0x2f) + if_object_in_good_condition(OBJ_GOODTERM1, /*goto*/ 0x19) + say_quip(TARGET_CHR, 0x10, 0xff, 0x00, 0xff, 0x81, 0x09, 0x08) + goto_next(0x0e) - label 0x19 - if_stage_flag_eq STAGEFLAG_SHUT_DOWN_EXPERIMENT2, FALSE, /*goto*/ 0x17 - say_quip TARGET_CHR, 0x0f, 0xff, 0x00, 0xff, 0x81, 0x08, 0x08 - goto_next 0x0e + label(0x19) + if_stage_flag_eq(STAGEFLAG_SHUT_DOWN_EXPERIMENT2, FALSE, /*goto*/ 0x17) + say_quip(TARGET_CHR, 0x0f, 0xff, 0x00, 0xff, 0x81, 0x08, 0x08) + goto_next(0x0e) - label 0x17 - set_stage_flag STAGEFLAG_SHUT_DOWN_EXPERIMENT2 - say_quip TARGET_CHR, 0x0d, 0xff, 0x00, 0xff, 0x81, 0x06, 0x08 - assign_sound 0x01c3, CHANNEL_5 - control_sound_from_object CHANNEL_5, OBJ_GOODTERM2, TRUE - goto_next 0x0f + label(0x17) + set_stage_flag(STAGEFLAG_SHUT_DOWN_EXPERIMENT2) + say_quip(TARGET_CHR, 0x0d, 0xff, 0x00, 0xff, 0x81, 0x06, 0x08) + assign_sound(0x01c3, CHANNEL_5) + control_sound_from_object(CHANNEL_5, OBJ_GOODTERM2, TRUE) + goto_next(0x0f) - label 0x0f - message TARGET_CHR, 0x1e1c // "Powering down active systems." - speak TARGET_CHR, 0xffff, 0x8118, CHANNEL_9, COLOR_00_GREEN // unknown text - animation ANIM_STANDING_TYPE_ONE_HAND, 0, 193, 0x1010, CHR_SELF, 2 + label(0x0f) + message(TARGET_CHR, 0x1e1c) // "Powering down active systems." + speak(TARGET_CHR, 0xffff, 0x8118, CHANNEL_9, COLOR_00_GREEN) // unknown text + animation(ANIM_STANDING_TYPE_ONE_HAND, 0, 193, 0x1010, CHR_SELF, 2) - beginloop 0x0d - if_chr_stopped /*goto*/ 0x06 - endloop 0x0d + beginloop(0x0d) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x0d) - label 0x06 - message TARGET_CHR, 0x1e1d // "Experiment has been shut down." + label(0x06) + message(TARGET_CHR, 0x1e1d) // "Experiment has been shut down." stop_chr - beginloop 0x0e - endloop 0x0e + beginloop(0x0e) + endloop(0x0e) endfunction +}; -func0407_init_nasty_scientist: - set_function CHR_SELF, FUNC_NASTY_SCIENTIST +u8 func0407_init_nasty_scientist[] = { + set_function(CHR_SELF, FUNC_NASTY_SCIENTIST) endfunction +}; -func0406_nasty_scientist: - set_onshot_function FUNC_NASTY_SCIENTIST - dprint "NASTY1\n" - if_chr_dying CHR_SELF, /*goto*/ 0x2f - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2f - if_chr_unloaded CHR_SELF, /*goto*/ 0x2f - goto_next 0x06 +u8 func0406_nasty_scientist[] = { + set_onshot_function(FUNC_NASTY_SCIENTIST) + dprint 'N','A','S','T','Y','1','\n',0, + if_chr_dying(CHR_SELF, /*goto*/ 0x2f) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2f) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2f) + goto_next(0x06) - label 0x2f - dprint "NASTY DEAD\n" - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE + label(0x2f) + dprint 'N','A','S','T','Y',' ','D','E','A','D','\n',0, + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) - label 0x06 - dprint "NASTY2\n" - if_just_injured CHR_SELF, /*goto*/ 0x2f - if_num_times_shot_lt 1, /*goto*/ 0x06 - label 0x2f - play_sound 0x128c, CHANNEL_7 + label(0x06) + dprint 'N','A','S','T','Y','2','\n',0, + if_just_injured(CHR_SELF, /*goto*/ 0x2f) + if_num_times_shot_lt(1, /*goto*/ 0x06) + label(0x2f) + play_sound(0x128c, CHANNEL_7) - beginloop 0x10 - if_chr_stopped /*goto*/ 0x06 - endloop 0x10 + beginloop(0x10) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x10) - label 0x06 - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x06 - if_self_flag_bankx_eq CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x2f - jog_to_object OBJ_ALARMTERM3 - goto_next 0x12 + label(0x06) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x06) + if_self_flag_bankx_eq(CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x2f) + jog_to_object(OBJ_ALARMTERM3) + goto_next(0x12) - label 0x06 - jog_to_object OBJ_ALARMTERM1 - goto_next 0x12 + label(0x06) + jog_to_object(OBJ_ALARMTERM1) + goto_next(0x12) - label 0x2f - jog_to_object OBJ_ALARMTERM2 - label 0x12 - if_num_times_shot_lt 1, /*goto*/ 0x13 - go_to_target_pad SPEED_JOG - goto_next 0x55 + label(0x2f) + jog_to_object(OBJ_ALARMTERM2) + label(0x12) + if_num_times_shot_lt(1, /*goto*/ 0x13) + go_to_target_pad(SPEED_JOG) + goto_next(0x55) - label 0x13 - label 0x08 + label(0x13) + label(0x08) restart_timer - try_face_entity 0x0200, 0x0000, /*goto*/ 0x09 + try_face_entity(0x0200, 0x0000, /*goto*/ 0x09) - beginloop 0x09 - if_sound_finished CHANNEL_6, /*goto*/ 0x2f - reloop 0x09 + beginloop(0x09) + if_sound_finished(CHANNEL_6, /*goto*/ 0x2f) + reloop(0x09) - label 0x2f - if_angle_to_target_chr_lt 10, /*goto*/ 0x06 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x09 + label(0x2f) + if_angle_to_target_chr_lt(10, /*goto*/ 0x06) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x09) - label 0x06 - say_quip TARGET_CHR, 0x0a, 0xff, 0x00, 0xff, 0x81, 0x03, 0x08 + label(0x06) + say_quip(TARGET_CHR, 0x0a, 0xff, 0x00, 0xff, 0x81, 0x03, 0x08) restart_timer - beginloop 0x56 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x56 + beginloop(0x56) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x56) - label 0x06 - dprint "TALK 1\n" - say_quip TARGET_CHR, 0x0b, 0xff, 0x00, 0xff, 0x81, 0x04, 0x09 + label(0x06) + dprint 'T','A','L','K',' ','1','\n',0, + say_quip(TARGET_CHR, 0x0b, 0xff, 0x00, 0xff, 0x81, 0x04, 0x09) restart_timer - beginloop 0x57 - if_timer_gt 120, /*goto*/ 0x0a - endloop 0x57 + beginloop(0x57) + if_timer_gt(120, /*goto*/ 0x0a) + endloop(0x57) - label 0x0a + label(0x0a) restart_timer stop_chr - say_quip TARGET_CHR, 0x0c, 0xff, 0x00, 0xff, 0x81, 0x05, 0x08 + say_quip(TARGET_CHR, 0x0c, 0xff, 0x00, 0xff, 0x81, 0x05, 0x08) - beginloop 0x0b - if_timer_gt 90, /*goto*/ 0x55 - endloop 0x0b + beginloop(0x0b) + if_timer_gt(90, /*goto*/ 0x55) + endloop(0x0b) - label 0x55 - go_to_target_pad SPEED_JOG + label(0x55) + go_to_target_pad(SPEED_JOG) - beginloop 0x0c - if_chr_stopped /*goto*/ 0x06 - endloop 0x0c + beginloop(0x0c) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x0c) - label 0x06 - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x06 - if_self_flag_bankx_eq CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x2f - if_object_in_good_condition OBJ_ALARMTERM3, /*goto*/ 0x30 - goto_next 0x11 + label(0x06) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x06) + if_self_flag_bankx_eq(CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x2f) + if_object_in_good_condition(OBJ_ALARMTERM3, /*goto*/ 0x30) + goto_next(0x11) - label 0x30 - set_stage_flag STAGEFLAG_ALARM3_ACTIVE - assign_sound 0x8118, CHANNEL_6 - control_sound_from_object CHANNEL_6, OBJ_GOODTERM3, TRUE - goto_next 0x0f + label(0x30) + set_stage_flag(STAGEFLAG_ALARM3_ACTIVE) + assign_sound(0x8118, CHANNEL_6) + control_sound_from_object(CHANNEL_6, OBJ_GOODTERM3, TRUE) + goto_next(0x0f) - label 0x06 - if_object_in_good_condition OBJ_ALARMTERM1, /*goto*/ 0x30 - goto_next 0x11 + label(0x06) + if_object_in_good_condition(OBJ_ALARMTERM1, /*goto*/ 0x30) + goto_next(0x11) - label 0x30 - set_stage_flag STAGEFLAG_ALARM1_ACTIVE - assign_sound 0x8118, CHANNEL_6 - control_sound_from_object CHANNEL_6, OBJ_GOODTERM1, TRUE - goto_next 0x0f + label(0x30) + set_stage_flag(STAGEFLAG_ALARM1_ACTIVE) + assign_sound(0x8118, CHANNEL_6) + control_sound_from_object(CHANNEL_6, OBJ_GOODTERM1, TRUE) + goto_next(0x0f) - label 0x2f - if_object_in_good_condition OBJ_ALARMTERM2, /*goto*/ 0x30 - goto_next 0x11 + label(0x2f) + if_object_in_good_condition(OBJ_ALARMTERM2, /*goto*/ 0x30) + goto_next(0x11) - label 0x30 - set_stage_flag STAGEFLAG_ALARM2_ACTIVE - assign_sound 0x8118, CHANNEL_6 - control_sound_from_object CHANNEL_6, OBJ_GOODTERM2, TRUE - goto_next 0x0f + label(0x30) + set_stage_flag(STAGEFLAG_ALARM2_ACTIVE) + assign_sound(0x8118, CHANNEL_6) + control_sound_from_object(CHANNEL_6, OBJ_GOODTERM2, TRUE) + goto_next(0x0f) - label 0x11 - say_quip TARGET_CHR, 0x10, 0xff, 0x00, 0xff, 0x81, 0x09, 0x08 - goto_next 0x78 + label(0x11) + say_quip(TARGET_CHR, 0x10, 0xff, 0x00, 0xff, 0x81, 0x09, 0x08) + goto_next(0x78) - label 0x0f - speak TARGET_CHR, 0xffff, 0x8118, CHANNEL_9, COLOR_00_GREEN // unknown text - say_quip TARGET_CHR, 0x0e, 0xff, 0x00, 0xff, 0x81, 0x07, 0x08 - animation ANIM_STANDING_TYPE_ONE_HAND, 0, 193, 0x1010, CHR_SELF, 2 + label(0x0f) + speak(TARGET_CHR, 0xffff, 0x8118, CHANNEL_9, COLOR_00_GREEN) // unknown text + say_quip(TARGET_CHR, 0x0e, 0xff, 0x00, 0xff, 0x81, 0x07, 0x08) + animation(ANIM_STANDING_TYPE_ONE_HAND, 0, 193, 0x1010, CHR_SELF, 2) - beginloop 0x0d - if_chr_stopped /*goto*/ 0x30 - endloop 0x0d + beginloop(0x0d) + if_chr_stopped(/*goto*/ 0x30) + endloop(0x0d) - label 0x30 + label(0x30) activate_alarm - label 0x78 - label 0x06 + label(0x78) + label(0x06) stop_chr - beginloop 0x0e - endloop 0x0e + beginloop(0x0e) + endloop(0x0e) endfunction +}; -func1009_weaponscache: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_activated_object TARGET_CHR, OBJ_CACHETERMINAL, /*goto*/ 0x2f - endloop 0x04 +u8 func1009_weaponscache[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_activated_object(TARGET_CHR, OBJ_CACHETERMINAL, /*goto*/ 0x2f) + endloop(0x04) - label 0x2f - if_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_PSYCHOSISED, /*goto*/ 0x2f - message TARGET_CHR, 0x1e62 // "Secret weapons compartment opened." - play_sound 0x00f7, -1 - assign_sound 0x043b, CHANNEL_5 - control_sound_from_object CHANNEL_5, OBJ_CMP150_1, TRUE - hide_object OBJ_CACHEDOOR1 - hide_object OBJ_CACHEDOOR2 - unset_object_flag_bank0 OBJ_CMP150_1, OBJECTFLAG0_00100000 - unset_object_flag_bank1 OBJ_CMP150_1, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank0 OBJ_CMP150_2, OBJECTFLAG0_00100000 - unset_object_flag_bank1 OBJ_CMP150_2, OBJECTFLAG1_INVISIBLE - set_object_flag_bank1 OBJ_CMP150_1, OBJECTFLAG1_00001000 - set_object_flag_bank1 OBJ_CMP150_2, OBJECTFLAG1_00001000 - set_function CHR_SELF, GFUNC_IDLE + label(0x2f) + if_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_PSYCHOSISED, /*goto*/ 0x2f) + message(TARGET_CHR, 0x1e62) // "Secret weapons compartment opened." + play_sound(0x00f7, -1) + assign_sound(0x043b, CHANNEL_5) + control_sound_from_object(CHANNEL_5, OBJ_CMP150_1, TRUE) + hide_object(OBJ_CACHEDOOR1) + hide_object(OBJ_CACHEDOOR2) + unset_object_flag_bank0(OBJ_CMP150_1, OBJECTFLAG0_00100000) + unset_object_flag_bank1(OBJ_CMP150_1, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank0(OBJ_CMP150_2, OBJECTFLAG0_00100000) + unset_object_flag_bank1(OBJ_CMP150_2, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank1(OBJ_CMP150_1, OBJECTFLAG1_00001000) + set_object_flag_bank1(OBJ_CMP150_2, OBJECTFLAG1_00001000) + set_function(CHR_SELF, GFUNC_IDLE) - label 0x2f - message TARGET_CHR, 0x1e63 // "Enemy detected - weapon cache locked." - play_sound 0x00f7, -1 - unset_stage_flag STAGEFLAG_BOT_ACTIVE - unset_stage_flag STAGEFLAG_BOT_REPROGRAMMED - set_function CHR_SELF, GFUNC_IDLE + label(0x2f) + message(TARGET_CHR, 0x1e63) // "Enemy detected - weapon cache locked." + play_sound(0x00f7, -1) + unset_stage_flag(STAGEFLAG_BOT_ACTIVE) + unset_stage_flag(STAGEFLAG_BOT_REPROGRAMMED) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; /** * The second terminal you're supposed to activate. @@ -1291,73 +1335,74 @@ func1009_weaponscache: * If turning the bot on after reprogramming it will start the maintenance * cycle (lasers). */ -func1002_bot_activation_terminal: - if_difficulty_lt DIFF_SA, /*goto*/ 0x2f - goto_next 0x04 +u8 func1002_bot_activation_terminal[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2f) + goto_next(0x04) - label 0x2f - set_function CHR_SELF, GFUNC_IDLE + label(0x2f) + set_function(CHR_SELF, GFUNC_IDLE) - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_activated_object TARGET_CHR, OBJ_BOT_ACTIVATION_TERMINAL, /*goto*/ 0x2f - reloop 0x04 + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_activated_object(TARGET_CHR, OBJ_BOT_ACTIVATION_TERMINAL, /*goto*/ 0x2f) + reloop(0x04) - label 0x2f - if_objective_failed 1, /*goto*/ 0x0b - if_stage_flag_eq STAGEFLAG_BOT_ACTIVE_MAINTENANCE, TRUE, /*goto*/ 0x08 - if_stage_flag_eq STAGEFLAG_BOT_ACTIVE, TRUE, /*goto*/ 0x0a - if_stage_flag_eq STAGEFLAG_BOT_REPROGRAMMED, TRUE, /*goto*/ 0x2f + label(0x2f) + if_objective_failed(1, /*goto*/ 0x0b) + if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE_MAINTENANCE, TRUE, /*goto*/ 0x08) + if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE, TRUE, /*goto*/ 0x0a) + if_stage_flag_eq(STAGEFLAG_BOT_REPROGRAMMED, TRUE, /*goto*/ 0x2f) // Activating prior to reprogramming - play_sound 0x01ca, -1 - assign_sound 0x01c5, CHANNEL_3 - play_sound_from_object CHANNEL_3, OBJ_PURPLEBOT, 0x0258, 0x0320 - message TARGET_CHR, 0x1e0f // "Maintenance robots activated." - set_stage_flag STAGEFLAG_BOT_ACTIVE - set_stage_flag STAGEFLAG_BOT_ACTIVE_NOPROGRAM - reloop 0x04 + play_sound(0x01ca, -1) + assign_sound(0x01c5, CHANNEL_3) + play_sound_from_object(CHANNEL_3, OBJ_PURPLEBOT, 0x0258, 0x0320) + message(TARGET_CHR, 0x1e0f) // "Maintenance robots activated." + set_stage_flag(STAGEFLAG_BOT_ACTIVE) + set_stage_flag(STAGEFLAG_BOT_ACTIVE_NOPROGRAM) + reloop(0x04) // Activating after reprogramming - label 0x2f - message TARGET_CHR, 0x1e0f // "Maintenance robots activated." - set_stage_flag STAGEFLAG_BOT_ACTIVE + label(0x2f) + message(TARGET_CHR, 0x1e0f) // "Maintenance robots activated." + set_stage_flag(STAGEFLAG_BOT_ACTIVE) yield - play_sound 0x00f7, -1 - message TARGET_CHR, 0x1e12 // "Maintenance cycle activated." - set_stage_flag STAGEFLAG_BOT_ACTIVE_MAINTENANCE - reloop 0x04 + play_sound(0x00f7, -1) + message(TARGET_CHR, 0x1e12) // "Maintenance cycle activated." + set_stage_flag(STAGEFLAG_BOT_ACTIVE_MAINTENANCE) + reloop(0x04) // Attempting to deactivate while bot reprogrammed and running - label 0x08 - play_sound 0x00f7, -1 - message TARGET_CHR, 0x1e14 // "Operation not allowed - robots busy." + label(0x08) + play_sound(0x00f7, -1) + message(TARGET_CHR, 0x1e14) // "Operation not allowed - robots busy." restart_timer - beginloop 0x09 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x09 + beginloop(0x09) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x09) - label 0x06 - reloop 0x04 + label(0x06) + reloop(0x04) // Deactivating - label 0x0a - message TARGET_CHR, 0x1e15 // "Maintenance robots deactivated." - unset_stage_flag STAGEFLAG_BOT_ACTIVE - unset_stage_flag STAGEFLAG_BOT_ACTIVE_CLEANING - unset_stage_flag STAGEFLAG_BOT_ACTIVE_NOPROGRAM - play_sound 0x01c9, -1 - mute_channel CHANNEL_3 - reloop 0x04 + label(0x0a) + message(TARGET_CHR, 0x1e15) // "Maintenance robots deactivated." + unset_stage_flag(STAGEFLAG_BOT_ACTIVE) + unset_stage_flag(STAGEFLAG_BOT_ACTIVE_CLEANING) + unset_stage_flag(STAGEFLAG_BOT_ACTIVE_NOPROGRAM) + play_sound(0x01c9, -1) + mute_channel(CHANNEL_3) + reloop(0x04) - label 0x0b - play_sound 0x00f7, -1 - message TARGET_CHR, 0x1e17 // "Maintenance robot system offline." - endloop 0x04 + label(0x0b) + play_sound(0x00f7, -1) + message(TARGET_CHR, 0x1e17) // "Maintenance robot system offline." + endloop(0x04) endfunction +}; /** * The first terminal you're supposed to activate. @@ -1368,1938 +1413,1988 @@ func1002_bot_activation_terminal: * If activated while the bot is running with no program, the bot is * reprogrammed with the cleaning cycle (up and down the room at medium speed). */ -func1003_bot_programming_terminal: - if_difficulty_lt DIFF_SA, /*goto*/ 0x2f - goto_next 0x04 +u8 func1003_bot_programming_terminal[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2f) + goto_next(0x04) - label 0x2f - set_function CHR_SELF, GFUNC_IDLE + label(0x2f) + set_function(CHR_SELF, GFUNC_IDLE) - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_activated_object TARGET_CHR, OBJ_BOT_PROGRAMMING_TERMINAL, /*goto*/ 0x2f - reloop 0x04 + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_activated_object(TARGET_CHR, OBJ_BOT_PROGRAMMING_TERMINAL, /*goto*/ 0x2f) + reloop(0x04) - label 0x2f - if_objective_failed 1, /*goto*/ 0x0b - if_stage_flag_eq STAGEFLAG_BOT_ACTIVE_MAINTENANCE, TRUE, /*goto*/ 0x09 - if_stage_flag_eq STAGEFLAG_BOT_ACTIVE_CLEANING, TRUE, /*goto*/ 0x09 + label(0x2f) + if_objective_failed(1, /*goto*/ 0x0b) + if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE_MAINTENANCE, TRUE, /*goto*/ 0x09) + if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE_CLEANING, TRUE, /*goto*/ 0x09) // Reprogramming - play_sound 0x00f7, -1 - message TARGET_CHR, 0x1e10 // "Maintenance robots reprogrammed." - set_stage_flag STAGEFLAG_BOT_REPROGRAMMED - if_stage_flag_eq STAGEFLAG_BOT_ACTIVE, TRUE, /*goto*/ 0x2f - reloop 0x04 + play_sound(0x00f7, -1) + message(TARGET_CHR, 0x1e10) // "Maintenance robots reprogrammed." + set_stage_flag(STAGEFLAG_BOT_REPROGRAMMED) + if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE, TRUE, /*goto*/ 0x2f) + reloop(0x04) - label 0x2f + label(0x2f) yield - play_sound 0x00f7, -1 - message TARGET_CHR, 0x1e13 // "Routine cleaning cycle activated." - set_stage_flag STAGEFLAG_BOT_ACTIVE_CLEANING + play_sound(0x00f7, -1) + message(TARGET_CHR, 0x1e13) // "Routine cleaning cycle activated." + set_stage_flag(STAGEFLAG_BOT_ACTIVE_CLEANING) restart_timer - beginloop 0x08 - if_timer_gt 300, /*goto*/ 0x06 - endloop 0x08 + beginloop(0x08) + if_timer_gt(300, /*goto*/ 0x06) + endloop(0x08) - label 0x06 - reloop 0x04 + label(0x06) + reloop(0x04) // Attempting to reprogram while bot already reprogrammed and running - label 0x09 - play_sound 0x00f7, -1 - message TARGET_CHR, 0x1e14 // "Operation not allowed - robots busy." + label(0x09) + play_sound(0x00f7, -1) + message(TARGET_CHR, 0x1e14) // "Operation not allowed - robots busy." restart_timer - beginloop 0x0a - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x0a + beginloop(0x0a) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x0a) - label 0x06 - reloop 0x04 + label(0x06) + reloop(0x04) - label 0x0b - message TARGET_CHR, 0x1e17 // "Maintenance robot system offline." - endloop 0x04 + label(0x0b) + message(TARGET_CHR, 0x1e17) // "Maintenance robot system offline." + endloop(0x04) endfunction +}; -func1004_check_items_collected: +u8 func1004_check_items_collected[] = { yield - set_object_flag_bank2 OBJ_K7AVENGER, OBJECTFLAG2_00400000 - set_object_flag_bank2 OBJ_NIGHTVISION, OBJECTFLAG2_00400000 - set_object_flag_bank2 OBJ_SHIELD, OBJECTFLAG2_00400000 + set_object_flag_bank2(OBJ_K7AVENGER, OBJECTFLAG2_00400000) + set_object_flag_bank2(OBJ_NIGHTVISION, OBJECTFLAG2_00400000) + set_object_flag_bank2(OBJ_SHIELD, OBJECTFLAG2_00400000) - beginloop 0x04 - if_chr_has_object CHR_JOANNA, OBJ_K7AVENGER, /*goto*/ 0x2f - if_chr_has_object CHR_VELVET, OBJ_K7AVENGER, /*goto*/ 0x2f - reloop 0x04 + beginloop(0x04) + if_chr_has_object(CHR_JOANNA, OBJ_K7AVENGER, /*goto*/ 0x2f) + if_chr_has_object(CHR_VELVET, OBJ_K7AVENGER, /*goto*/ 0x2f) + reloop(0x04) - label 0x2f - if_chr_has_object CHR_JOANNA, OBJ_NIGHTVISION, /*goto*/ 0x2f - if_chr_has_object CHR_VELVET, OBJ_NIGHTVISION, /*goto*/ 0x2f - reloop 0x04 + label(0x2f) + if_chr_has_object(CHR_JOANNA, OBJ_NIGHTVISION, /*goto*/ 0x2f) + if_chr_has_object(CHR_VELVET, OBJ_NIGHTVISION, /*goto*/ 0x2f) + reloop(0x04) - label 0x2f - if_chr_has_object CHR_JOANNA, OBJ_SHIELD, /*goto*/ 0x2f - if_chr_has_object CHR_VELVET, OBJ_SHIELD, /*goto*/ 0x2f - endloop 0x04 + label(0x2f) + if_chr_has_object(CHR_JOANNA, OBJ_SHIELD, /*goto*/ 0x2f) + if_chr_has_object(CHR_VELVET, OBJ_SHIELD, /*goto*/ 0x2f) + endloop(0x04) - label 0x2f + label(0x2f) yield - set_stage_flag STAGEFLAG_ALL_ITEMS_COLLECTED - unset_stage_flag STAGEFLAG_ITEMS_UNCOLLECTABLE - set_function CHR_SELF, GFUNC_IDLE + set_stage_flag(STAGEFLAG_ALL_ITEMS_COLLECTED) + unset_stage_flag(STAGEFLAG_ITEMS_UNCOLLECTABLE) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1018_item_pickup_messages: - if_difficulty_lt DIFF_PA, /*goto*/ 0x0d +u8 func1018_item_pickup_messages[] = { + if_difficulty_lt(DIFF_PA, /*goto*/ 0x0d) - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_stage_flag_eq STAGEFLAG_HAS_K7AVENGER, TRUE, /*goto*/ 0x2f - if_chr_has_object CHR_P1P2, OBJ_K7AVENGER, /*goto*/ 0x06 - goto_next 0x2f + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_stage_flag_eq(STAGEFLAG_HAS_K7AVENGER, TRUE, /*goto*/ 0x2f) + if_chr_has_object(CHR_P1P2, OBJ_K7AVENGER, /*goto*/ 0x06) + goto_next(0x2f) - label 0x06 - message CHR_P1P2, 0x1e56 // "Experimental item 1 acquired." - set_stage_flag STAGEFLAG_HAS_K7AVENGER - label 0x2f - if_stage_flag_eq STAGEFLAG_HAS_NIGHTVISION, TRUE, /*goto*/ 0x2f - if_chr_has_object CHR_P1P2, OBJ_NIGHTVISION, /*goto*/ 0x06 - goto_next 0x2f + label(0x06) + message(CHR_P1P2, 0x1e56) // "Experimental item 1 acquired." + set_stage_flag(STAGEFLAG_HAS_K7AVENGER) + label(0x2f) + if_stage_flag_eq(STAGEFLAG_HAS_NIGHTVISION, TRUE, /*goto*/ 0x2f) + if_chr_has_object(CHR_P1P2, OBJ_NIGHTVISION, /*goto*/ 0x06) + goto_next(0x2f) - label 0x06 - message CHR_P1P2, 0x1e57 // "Experimental item 2 acquired." - set_stage_flag STAGEFLAG_HAS_NIGHTVISION - label 0x2f - if_stage_flag_eq STAGEFLAG_HAS_SHIELD, TRUE, /*goto*/ 0x2f - if_chr_has_object CHR_P1P2, OBJ_SHIELD, /*goto*/ 0x06 - goto_next 0x2f + label(0x06) + message(CHR_P1P2, 0x1e57) // "Experimental item 2 acquired." + set_stage_flag(STAGEFLAG_HAS_NIGHTVISION) + label(0x2f) + if_stage_flag_eq(STAGEFLAG_HAS_SHIELD, TRUE, /*goto*/ 0x2f) + if_chr_has_object(CHR_P1P2, OBJ_SHIELD, /*goto*/ 0x06) + goto_next(0x2f) - label 0x06 - message CHR_P1P2, 0x1e58 // "Experimental item 3 acquired." - set_stage_flag STAGEFLAG_HAS_SHIELD - label 0x2f - endloop 0x04 + label(0x06) + message(CHR_P1P2, 0x1e58) // "Experimental item 3 acquired." + set_stage_flag(STAGEFLAG_HAS_SHIELD) + label(0x2f) + endloop(0x04) - label 0x0d - set_function CHR_SELF, GFUNC_IDLE + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1005_check_unacceptable_casualties: - beginloop 0x04 - if_chr_dying 0x35, /*goto*/ 0x08 - if_chr_death_animation_finished 0x35, /*goto*/ 0x08 - if_chr_dying 0x36, /*goto*/ 0x09 - if_chr_death_animation_finished 0x36, /*goto*/ 0x09 - if_chr_dying 0x37, /*goto*/ 0x0a - if_chr_death_animation_finished 0x37, /*goto*/ 0x0a - if_chr_dying 0x38, /*goto*/ 0x0a - if_chr_death_animation_finished 0x38, /*goto*/ 0x0a - reloop 0x04 +u8 func1005_check_unacceptable_casualties[] = { + beginloop(0x04) + if_chr_dying(0x35, /*goto*/ 0x08) + if_chr_death_animation_finished(0x35, /*goto*/ 0x08) + if_chr_dying(0x36, /*goto*/ 0x09) + if_chr_death_animation_finished(0x36, /*goto*/ 0x09) + if_chr_dying(0x37, /*goto*/ 0x0a) + if_chr_death_animation_finished(0x37, /*goto*/ 0x0a) + if_chr_dying(0x38, /*goto*/ 0x0a) + if_chr_death_animation_finished(0x38, /*goto*/ 0x0a) + reloop(0x04) - label 0x08 - if_difficulty_lt DIFF_PA, /*goto*/ 0x2f - goto_next 0x0f + label(0x08) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2f) + goto_next(0x0f) - if_chr_dying 0x36, /*goto*/ 0x0b - if_chr_death_animation_finished 0x36, /*goto*/ 0x0b - if_chr_dying 0x37, /*goto*/ 0x0c - if_chr_death_animation_finished 0x37, /*goto*/ 0x0c - label 0x0b - if_difficulty_lt DIFF_SA, /*goto*/ 0x2f - goto_next 0x0f + if_chr_dying(0x36, /*goto*/ 0x0b) + if_chr_death_animation_finished(0x36, /*goto*/ 0x0b) + if_chr_dying(0x37, /*goto*/ 0x0c) + if_chr_death_animation_finished(0x37, /*goto*/ 0x0c) + label(0x0b) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2f) + goto_next(0x0f) - label 0x2f - if_chr_dying 0x37, /*goto*/ 0x0f - if_chr_death_animation_finished 0x37, /*goto*/ 0x0f - reloop 0x04 + label(0x2f) + if_chr_dying(0x37, /*goto*/ 0x0f) + if_chr_death_animation_finished(0x37, /*goto*/ 0x0f) + reloop(0x04) - label 0x0c - if_difficulty_lt DIFF_SA, /*goto*/ 0x2f - goto_next 0x0f - label 0x2f - reloop 0x04 + label(0x0c) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2f) + goto_next(0x0f) + label(0x2f) + reloop(0x04) - label 0x09 - if_difficulty_lt DIFF_PA, /*goto*/ 0x2f - goto_next 0x0f - label 0x2f - if_difficulty_lt DIFF_SA, /*goto*/ 0x2f - if_chr_dying 0x37, /*goto*/ 0x0f - if_chr_death_animation_finished 0x37, /*goto*/ 0x0f - label 0x2f - endloop 0x04 + label(0x09) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2f) + goto_next(0x0f) + label(0x2f) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2f) + if_chr_dying(0x37, /*goto*/ 0x0f) + if_chr_death_animation_finished(0x37, /*goto*/ 0x0f) + label(0x2f) + endloop(0x04) - label 0x0a - if_difficulty_lt DIFF_PA, /*goto*/ 0x2f - goto_next 0x0f + label(0x0a) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2f) + goto_next(0x0f) - label 0x2f - label 0x0f - set_stage_flag STAGEFLAG_UNACCEPTABLE_CASUALTIES - message CHR_JOANNA, 0x1e1a // "Unacceptable scientist casualties." - set_function CHR_SELF, GFUNC_IDLE + label(0x2f) + label(0x0f) + set_stage_flag(STAGEFLAG_UNACCEPTABLE_CASUALTIES) + message(CHR_JOANNA, 0x1e1a) // "Unacceptable scientist casualties." + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1006_terminal_activation: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_activated_object TARGET_CHR, OBJ_GOODTERM1, /*goto*/ 0x08 - if_chr_activated_object TARGET_CHR, OBJ_ALARMTERM1, /*goto*/ 0x09 - if_chr_activated_object TARGET_CHR, OBJ_GOODTERM2, /*goto*/ 0x0d - if_chr_activated_object TARGET_CHR, OBJ_ALARMTERM2, /*goto*/ 0x0b - if_chr_activated_object TARGET_CHR, OBJ_GOODTERM3, /*goto*/ 0x0f - if_chr_activated_object TARGET_CHR, OBJ_ALARMTERM3, /*goto*/ 0x0c - if_chr_activated_object TARGET_CHR, 0x0b, /*goto*/ 0x2f - if_chr_activated_object TARGET_CHR, 0x0c, /*goto*/ 0x2f - if_chr_activated_object TARGET_CHR, 0x0d, /*goto*/ 0x2f - if_chr_activated_object TARGET_CHR, 0x0e, /*goto*/ 0x2f - if_chr_activated_object TARGET_CHR, 0x10, /*goto*/ 0x2f - if_chr_activated_object TARGET_CHR, 0x11, /*goto*/ 0x2f - if_chr_activated_object TARGET_CHR, 0x12, /*goto*/ 0x2f - if_chr_activated_object TARGET_CHR, 0x13, /*goto*/ 0x2f - if_chr_activated_object TARGET_CHR, 0x15, /*goto*/ 0x2f - if_chr_activated_object TARGET_CHR, 0x16, /*goto*/ 0x2f - if_chr_activated_object TARGET_CHR, 0x17, /*goto*/ 0x2f - if_chr_activated_object TARGET_CHR, 0x18, /*goto*/ 0x2f - if_chr_activated_object TARGET_CHR, 0x1a, /*goto*/ 0x2f - if_chr_activated_object TARGET_CHR, 0x1b, /*goto*/ 0x2f - if_chr_activated_object TARGET_CHR, 0x1c, /*goto*/ 0x2f - if_chr_activated_object TARGET_CHR, 0x1d, /*goto*/ 0x2f - if_chr_activated_object TARGET_CHR, 0x1e, /*goto*/ 0x2f - if_chr_activated_object TARGET_CHR, 0x1f, /*goto*/ 0x2f - if_chr_activated_object TARGET_CHR, 0x20, /*goto*/ 0x2f - if_chr_activated_object TARGET_CHR, 0x21, /*goto*/ 0x2f - endloop 0x04 +u8 func1006_terminal_activation[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_activated_object(TARGET_CHR, OBJ_GOODTERM1, /*goto*/ 0x08) + if_chr_activated_object(TARGET_CHR, OBJ_ALARMTERM1, /*goto*/ 0x09) + if_chr_activated_object(TARGET_CHR, OBJ_GOODTERM2, /*goto*/ 0x0d) + if_chr_activated_object(TARGET_CHR, OBJ_ALARMTERM2, /*goto*/ 0x0b) + if_chr_activated_object(TARGET_CHR, OBJ_GOODTERM3, /*goto*/ 0x0f) + if_chr_activated_object(TARGET_CHR, OBJ_ALARMTERM3, /*goto*/ 0x0c) + if_chr_activated_object(TARGET_CHR, 0x0b, /*goto*/ 0x2f) + if_chr_activated_object(TARGET_CHR, 0x0c, /*goto*/ 0x2f) + if_chr_activated_object(TARGET_CHR, 0x0d, /*goto*/ 0x2f) + if_chr_activated_object(TARGET_CHR, 0x0e, /*goto*/ 0x2f) + if_chr_activated_object(TARGET_CHR, 0x10, /*goto*/ 0x2f) + if_chr_activated_object(TARGET_CHR, 0x11, /*goto*/ 0x2f) + if_chr_activated_object(TARGET_CHR, 0x12, /*goto*/ 0x2f) + if_chr_activated_object(TARGET_CHR, 0x13, /*goto*/ 0x2f) + if_chr_activated_object(TARGET_CHR, 0x15, /*goto*/ 0x2f) + if_chr_activated_object(TARGET_CHR, 0x16, /*goto*/ 0x2f) + if_chr_activated_object(TARGET_CHR, 0x17, /*goto*/ 0x2f) + if_chr_activated_object(TARGET_CHR, 0x18, /*goto*/ 0x2f) + if_chr_activated_object(TARGET_CHR, 0x1a, /*goto*/ 0x2f) + if_chr_activated_object(TARGET_CHR, 0x1b, /*goto*/ 0x2f) + if_chr_activated_object(TARGET_CHR, 0x1c, /*goto*/ 0x2f) + if_chr_activated_object(TARGET_CHR, 0x1d, /*goto*/ 0x2f) + if_chr_activated_object(TARGET_CHR, 0x1e, /*goto*/ 0x2f) + if_chr_activated_object(TARGET_CHR, 0x1f, /*goto*/ 0x2f) + if_chr_activated_object(TARGET_CHR, 0x20, /*goto*/ 0x2f) + if_chr_activated_object(TARGET_CHR, 0x21, /*goto*/ 0x2f) + endloop(0x04) // Inactive terminal - label 0x2f - speak TARGET_CHR, 0xffff, 0x8118, CHANNEL_9, COLOR_00_GREEN // unknown text - message TARGET_CHR, 0x1e1b // "Terminal is not active." + label(0x2f) + speak(TARGET_CHR, 0xffff, 0x8118, CHANNEL_9, COLOR_00_GREEN) // unknown text + message(TARGET_CHR, 0x1e1b) // "Terminal is not active." restart_timer - beginloop 0x56 - if_timer_gt 120, /*goto*/ 0x2f - endloop 0x56 + beginloop(0x56) + if_timer_gt(120, /*goto*/ 0x2f) + endloop(0x56) - label 0x2f - reloop 0x04 + label(0x2f) + reloop(0x04) // Good terminal 0x07 - label 0x08 - speak TARGET_CHR, 0xffff, 0x8118, CHANNEL_9, COLOR_00_GREEN // unknown text - if_stage_flag_eq STAGEFLAG_SHUT_DOWN_EXPERIMENT1, FALSE, /*goto*/ 0x2f + label(0x08) + speak(TARGET_CHR, 0xffff, 0x8118, CHANNEL_9, COLOR_00_GREEN) // unknown text + if_stage_flag_eq(STAGEFLAG_SHUT_DOWN_EXPERIMENT1, FALSE, /*goto*/ 0x2f) restart_timer - beginloop 0x56 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x56 + beginloop(0x56) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x56) - label 0x06 - message TARGET_CHR, 0x1e2a // "Experiment already powered down." - reloop 0x04 + label(0x06) + message(TARGET_CHR, 0x1e2a) // "Experiment already powered down." + reloop(0x04) - label 0x2f - message TARGET_CHR, 0x1e1c // "Powering down active systems." - assign_sound 0x01c3, CHANNEL_5 - control_sound_from_object CHANNEL_5, OBJ_GOODTERM1, TRUE + label(0x2f) + message(TARGET_CHR, 0x1e1c) // "Powering down active systems." + assign_sound(0x01c3, CHANNEL_5) + control_sound_from_object(CHANNEL_5, OBJ_GOODTERM1, TRUE) restart_timer - beginloop 0x0a - if_timer_gt 180, /*goto*/ 0x06 - endloop 0x0a + beginloop(0x0a) + if_timer_gt(180, /*goto*/ 0x06) + endloop(0x0a) - label 0x06 - message TARGET_CHR, 0x1e1d // "Experiment has been shut down." - set_stage_flag STAGEFLAG_SHUT_DOWN_EXPERIMENT1 - reloop 0x04 + label(0x06) + message(TARGET_CHR, 0x1e1d) // "Experiment has been shut down." + set_stage_flag(STAGEFLAG_SHUT_DOWN_EXPERIMENT1) + reloop(0x04) // Good terminal 0x08 - label 0x0d - speak TARGET_CHR, 0xffff, 0x8118, CHANNEL_9, COLOR_00_GREEN // unknown text - if_stage_flag_eq STAGEFLAG_SHUT_DOWN_EXPERIMENT2, FALSE, /*goto*/ 0x2f + label(0x0d) + speak(TARGET_CHR, 0xffff, 0x8118, CHANNEL_9, COLOR_00_GREEN) // unknown text + if_stage_flag_eq(STAGEFLAG_SHUT_DOWN_EXPERIMENT2, FALSE, /*goto*/ 0x2f) restart_timer - beginloop 0x57 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x57 + beginloop(0x57) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x57) - label 0x06 - message TARGET_CHR, 0x1e2a // "Experiment already powered down." - goto_first 0x04 + label(0x06) + message(TARGET_CHR, 0x1e2a) // "Experiment already powered down." + goto_first(0x04) - label 0x2f - message TARGET_CHR, 0x1e1c // "Powering down active systems." - assign_sound 0x01c3, CHANNEL_5 - control_sound_from_object CHANNEL_5, OBJ_GOODTERM2, TRUE + label(0x2f) + message(TARGET_CHR, 0x1e1c) // "Powering down active systems." + assign_sound(0x01c3, CHANNEL_5) + control_sound_from_object(CHANNEL_5, OBJ_GOODTERM2, TRUE) restart_timer - beginloop 0x0e - if_timer_gt 180, /*goto*/ 0x06 - endloop 0x0e + beginloop(0x0e) + if_timer_gt(180, /*goto*/ 0x06) + endloop(0x0e) - label 0x06 - message TARGET_CHR, 0x1e1d // "Experiment has been shut down." - set_stage_flag STAGEFLAG_SHUT_DOWN_EXPERIMENT2 - reloop 0x04 + label(0x06) + message(TARGET_CHR, 0x1e1d) // "Experiment has been shut down." + set_stage_flag(STAGEFLAG_SHUT_DOWN_EXPERIMENT2) + reloop(0x04) // Good terminal 0x09 - label 0x0f - speak TARGET_CHR, 0xffff, 0x8118, CHANNEL_9, COLOR_00_GREEN // unknown text - if_stage_flag_eq STAGEFLAG_SHUT_DOWN_EXPERIMENT3, FALSE, /*goto*/ 0x2f + label(0x0f) + speak(TARGET_CHR, 0xffff, 0x8118, CHANNEL_9, COLOR_00_GREEN) // unknown text + if_stage_flag_eq(STAGEFLAG_SHUT_DOWN_EXPERIMENT3, FALSE, /*goto*/ 0x2f) restart_timer - beginloop 0x58 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x58 + beginloop(0x58) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x58) - label 0x06 - message TARGET_CHR, 0x1e2a // "Experiment already powered down." - reloop 0x04 + label(0x06) + message(TARGET_CHR, 0x1e2a) // "Experiment already powered down." + reloop(0x04) - label 0x2f - message TARGET_CHR, 0x1e1c // "Powering down active systems." - assign_sound 0x01c3, CHANNEL_5 - control_sound_from_object CHANNEL_5, OBJ_GOODTERM3, TRUE + label(0x2f) + message(TARGET_CHR, 0x1e1c) // "Powering down active systems." + assign_sound(0x01c3, CHANNEL_5) + control_sound_from_object(CHANNEL_5, OBJ_GOODTERM3, TRUE) restart_timer - beginloop 0x10 - if_timer_gt 180, /*goto*/ 0x06 - endloop 0x10 + beginloop(0x10) + if_timer_gt(180, /*goto*/ 0x06) + endloop(0x10) - label 0x06 - message TARGET_CHR, 0x1e1d // "Experiment has been shut down." - set_stage_flag STAGEFLAG_SHUT_DOWN_EXPERIMENT3 - reloop 0x04 + label(0x06) + message(TARGET_CHR, 0x1e1d) // "Experiment has been shut down." + set_stage_flag(STAGEFLAG_SHUT_DOWN_EXPERIMENT3) + reloop(0x04) // Alarm terminal 0x0f - label 0x09 - if_alarm_active /*goto*/ 0x06 - speak TARGET_CHR, 0xffff, 0x8118, CHANNEL_9, COLOR_00_GREEN // unknown text - message TARGET_CHR, 0x1e1e // "Alarm activated." - set_stage_flag STAGEFLAG_ALARM1_ACTIVE + label(0x09) + if_alarm_active(/*goto*/ 0x06) + speak(TARGET_CHR, 0xffff, 0x8118, CHANNEL_9, COLOR_00_GREEN) // unknown text + message(TARGET_CHR, 0x1e1e) // "Alarm activated." + set_stage_flag(STAGEFLAG_ALARM1_ACTIVE) activate_alarm - reloop 0x04 + reloop(0x04) - label 0x06 - message TARGET_CHR, 0x1e1f // "Alarm deactivated." - unset_stage_flag STAGEFLAG_ALARM1_ACTIVE + label(0x06) + message(TARGET_CHR, 0x1e1f) // "Alarm deactivated." + unset_stage_flag(STAGEFLAG_ALARM1_ACTIVE) deactivate_alarm - reloop 0x04 + reloop(0x04) // Alarm terminal 0x14 - label 0x0b - if_alarm_active /*goto*/ 0x06 - speak TARGET_CHR, 0xffff, 0x8118, CHANNEL_9, COLOR_00_GREEN // unknown text - message TARGET_CHR, 0x1e1e // "Alarm activated." - set_stage_flag STAGEFLAG_ALARM2_ACTIVE + label(0x0b) + if_alarm_active(/*goto*/ 0x06) + speak(TARGET_CHR, 0xffff, 0x8118, CHANNEL_9, COLOR_00_GREEN) // unknown text + message(TARGET_CHR, 0x1e1e) // "Alarm activated." + set_stage_flag(STAGEFLAG_ALARM2_ACTIVE) activate_alarm - reloop 0x04 + reloop(0x04) - label 0x06 - message TARGET_CHR, 0x1e1f // "Alarm deactivated." - unset_stage_flag STAGEFLAG_ALARM2_ACTIVE + label(0x06) + message(TARGET_CHR, 0x1e1f) // "Alarm deactivated." + unset_stage_flag(STAGEFLAG_ALARM2_ACTIVE) deactivate_alarm - reloop 0x04 + reloop(0x04) // Alarm terminal 0x19 - label 0x0c - if_alarm_active /*goto*/ 0x06 - speak TARGET_CHR, 0xffff, 0x8118, CHANNEL_9, COLOR_00_GREEN // unknown text - message TARGET_CHR, 0x1e1e // "Alarm activated." - set_stage_flag STAGEFLAG_ALARM3_ACTIVE + label(0x0c) + if_alarm_active(/*goto*/ 0x06) + speak(TARGET_CHR, 0xffff, 0x8118, CHANNEL_9, COLOR_00_GREEN) // unknown text + message(TARGET_CHR, 0x1e1e) // "Alarm activated." + set_stage_flag(STAGEFLAG_ALARM3_ACTIVE) activate_alarm - reloop 0x04 + reloop(0x04) - label 0x06 - message TARGET_CHR, 0x1e1f // "Alarm deactivated." - unset_stage_flag STAGEFLAG_ALARM3_ACTIVE + label(0x06) + message(TARGET_CHR, 0x1e1f) // "Alarm deactivated." + unset_stage_flag(STAGEFLAG_ALARM3_ACTIVE) deactivate_alarm - reloop 0x04 + reloop(0x04) - label 0x2f - endloop 0x04 + label(0x2f) + endloop(0x04) endfunction +}; -func1007_uplink: - beginloop 0x04 - if_object_in_good_condition OBJ_UPLINKPC, /*goto*/ 0x30 - goto_next 0x0d +u8 func1007_uplink[] = { + beginloop(0x04) + if_object_in_good_condition(OBJ_UPLINKPC, /*goto*/ 0x30) + goto_next(0x0d) - label 0x30 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_activated_object TARGET_CHR, OBJ_UPLINKPC, /*goto*/ 0x2f - reloop 0x04 + label(0x30) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_activated_object(TARGET_CHR, OBJ_UPLINKPC, /*goto*/ 0x2f) + reloop(0x04) - label 0x2f - if_stage_flag_eq STAGEFLAG_UPLINK_FINISHED, FALSE, /*goto*/ 0x06 + label(0x2f) + if_stage_flag_eq(STAGEFLAG_UPLINK_FINISHED, FALSE, /*goto*/ 0x06) // Activating a second time - speak TARGET_CHR, 0xffff, 0x8116, CHANNEL_9, COLOR_00_GREEN // unknown text - message TARGET_CHR, 0x1e29 // "Security door already unlocked." - reloop 0x04 + speak(TARGET_CHR, 0xffff, 0x8116, CHANNEL_9, COLOR_00_GREEN) // unknown text + message(TARGET_CHR, 0x1e29) // "Security door already unlocked." + reloop(0x04) - label 0x06 - if_chr_weapon_equipped TARGET_CHR, WEAPON_DATAUPLINK, /*goto*/ 0x2f + label(0x06) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_DATAUPLINK, /*goto*/ 0x2f) // Activated computer without uplink - speak TARGET_CHR, 0xffff, 0x8116, CHANNEL_9, COLOR_00_GREEN // unknown text - message TARGET_CHR, 0x1e24 // "ACCESS DENIED - security code required." - reloop 0x04 + speak(TARGET_CHR, 0xffff, 0x8116, CHANNEL_9, COLOR_00_GREEN) // unknown text + message(TARGET_CHR, 0x1e24) // "ACCESS DENIED - security code required." + reloop(0x04) // Uplinking - label 0x2f - message TARGET_CHR, 0x1e3c // "Connection established." + label(0x2f) + message(TARGET_CHR, 0x1e3c) // "Connection established." restart_timer // First second of uplinking - beginloop 0x08 - if_object_in_good_condition OBJ_UPLINKPC, /*goto*/ 0x30 - goto_next 0x0d + beginloop(0x08) + if_object_in_good_condition(OBJ_UPLINKPC, /*goto*/ 0x30) + goto_next(0x0d) - label 0x30 - if_timer_gt 60, /*goto*/ 0x06 - if_chr_distance_to_pad_gt TARGET_CHR, 200, 0x025a, /*goto*/ 0x09 - if_difficulty_lt DIFF_SA, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_SHUT_DOWN_EXPERIMENT1, FALSE, /*goto*/ 0x0b - if_stage_flag_eq STAGEFLAG_SHUT_DOWN_EXPERIMENT2, FALSE, /*goto*/ 0x0b - if_stage_flag_eq STAGEFLAG_SHUT_DOWN_EXPERIMENT3, FALSE, /*goto*/ 0x0b - label 0x2f - if_chr_weapon_equipped TARGET_CHR, WEAPON_DATAUPLINK, /*goto*/ 0x2f - goto_next 0x09 - label 0x2f - endloop 0x08 + label(0x30) + if_timer_gt(60, /*goto*/ 0x06) + if_chr_distance_to_pad_gt(TARGET_CHR, 200, 0x025a, /*goto*/ 0x09) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_SHUT_DOWN_EXPERIMENT1, FALSE, /*goto*/ 0x0b) + if_stage_flag_eq(STAGEFLAG_SHUT_DOWN_EXPERIMENT2, FALSE, /*goto*/ 0x0b) + if_stage_flag_eq(STAGEFLAG_SHUT_DOWN_EXPERIMENT3, FALSE, /*goto*/ 0x0b) + label(0x2f) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_DATAUPLINK, /*goto*/ 0x2f) + goto_next(0x09) + label(0x2f) + endloop(0x08) - label 0x06 - message TARGET_CHR, 0x1e25 // "Searching for password." + label(0x06) + message(TARGET_CHR, 0x1e25) // "Searching for password." restart_timer - set_stage_flag STAGEFLAG_UPLINK_SEARCHING - assign_sound 0x01bf, CHANNEL_5 - control_sound_from_object CHANNEL_5, OBJ_UPLINKPC, TRUE + set_stage_flag(STAGEFLAG_UPLINK_SEARCHING) + assign_sound(0x01bf, CHANNEL_5) + control_sound_from_object(CHANNEL_5, OBJ_UPLINKPC, TRUE) - beginloop 0x14 - if_object_in_good_condition OBJ_UPLINKPC, /*goto*/ 0x30 - goto_next 0x0d + beginloop(0x14) + if_object_in_good_condition(OBJ_UPLINKPC, /*goto*/ 0x30) + goto_next(0x0d) - label 0x30 - if_timer_gt 400, /*goto*/ 0x06 - if_chr_distance_to_pad_gt TARGET_CHR, 200, 0x025a, /*goto*/ 0x09 - if_chr_weapon_equipped TARGET_CHR, WEAPON_DATAUPLINK, /*goto*/ 0x2f - goto_next 0x09 - label 0x2f - endloop 0x14 + label(0x30) + if_timer_gt(400, /*goto*/ 0x06) + if_chr_distance_to_pad_gt(TARGET_CHR, 200, 0x025a, /*goto*/ 0x09) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_DATAUPLINK, /*goto*/ 0x2f) + goto_next(0x09) + label(0x2f) + endloop(0x14) - label 0x06 - mute_channel CHANNEL_5 - assign_sound 0x01c1, CHANNEL_6 - control_sound_from_object CHANNEL_6, OBJ_UPLINKPC, TRUE - message TARGET_CHR, 0x1e27 // "Password located - bypassing lock." + label(0x06) + mute_channel(CHANNEL_5) + assign_sound(0x01c1, CHANNEL_6) + control_sound_from_object(CHANNEL_6, OBJ_UPLINKPC, TRUE) + message(TARGET_CHR, 0x1e27) // "Password located - bypassing lock." yield - message TARGET_CHR, 0x1e11 // "Security doors unlocked." - set_stage_flag STAGEFLAG_UPLINK_FINISHED - unlock_door OBJ_UPLINKDOOR, 0x02 + message(TARGET_CHR, 0x1e11) // "Security doors unlocked." + set_stage_flag(STAGEFLAG_UPLINK_FINISHED) + unlock_door(OBJ_UPLINKDOOR, 0x02) - beginloop 0x15 - if_timer_gt 90, /*goto*/ 0x06 - endloop 0x15 + beginloop(0x15) + if_timer_gt(90, /*goto*/ 0x06) + endloop(0x15) - label 0x06 - assign_sound 0x043b, CHANNEL_6 - control_sound_from_object CHANNEL_6, 0x22, TRUE - reloop 0x04 + label(0x06) + assign_sound(0x043b, CHANNEL_6) + control_sound_from_object(CHANNEL_6, 0x22, TRUE) + reloop(0x04) // Moved away from PC or switched weapon - label 0x09 - message TARGET_CHR, 0x1e28 // "Contact broken - reestablish link." - mute_channel CHANNEL_5 - mute_channel CHANNEL_6 - assign_sound 0x01c0, CHANNEL_6 - control_sound_from_object CHANNEL_6, OBJ_UPLINKPC, TRUE + label(0x09) + message(TARGET_CHR, 0x1e28) // "Contact broken - reestablish link." + mute_channel(CHANNEL_5) + mute_channel(CHANNEL_6) + assign_sound(0x01c0, CHANNEL_6) + control_sound_from_object(CHANNEL_6, OBJ_UPLINKPC, TRUE) restart_timer - beginloop 0x16 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x16 + beginloop(0x16) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x16) - label 0x06 - mute_channel CHANNEL_6 - reloop 0x04 + label(0x06) + mute_channel(CHANNEL_6) + reloop(0x04) - label 0x0b + label(0x0b) restart_timer - beginloop 0x0c - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x0c + beginloop(0x0c) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x0c) - label 0x06 - message TARGET_CHR, 0x1e55 // "Connection broken - experiments still active." - mute_channel CHANNEL_5 - mute_channel CHANNEL_6 - assign_sound 0x01c0, CHANNEL_6 - control_sound_from_object CHANNEL_6, OBJ_UPLINKPC, TRUE + label(0x06) + message(TARGET_CHR, 0x1e55) // "Connection broken - experiments still active." + mute_channel(CHANNEL_5) + mute_channel(CHANNEL_6) + assign_sound(0x01c0, CHANNEL_6) + control_sound_from_object(CHANNEL_6, OBJ_UPLINKPC, TRUE) restart_timer - beginloop 0x17 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x17 + beginloop(0x17) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x17) - label 0x06 - mute_channel CHANNEL_6 - endloop 0x04 + label(0x06) + mute_channel(CHANNEL_6) + endloop(0x04) - label 0x0d - mute_channel CHANNEL_5 - mute_channel CHANNEL_6 - set_function CHR_SELF, GFUNC_IDLE + label(0x0d) + mute_channel(CHANNEL_5) + mute_channel(CHANNEL_6) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1008_check_bot_terminals_destroyed: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_BOT_ACTIVE_MAINTENANCE, TRUE, /*goto*/ 0x08 - if_stage_flag_eq STAGEFLAG_BOT_ACTIVATION_TERMINAL_DESTROYED, TRUE, /*goto*/ 0x2f - if_object_in_good_condition OBJ_BOT_ACTIVATION_TERMINAL, /*goto*/ 0x2f - set_stage_flag STAGEFLAG_BOT_ACTIVATION_TERMINAL_DESTROYED - if_difficulty_lt DIFF_SA, /*goto*/ 0x2f - message CHR_JOANNA, 0x1e16 // "Critical mission object destroyed." - label 0x2f - if_stage_flag_eq STAGEFLAG_BOT_PROGRAMMING_TERMINAL_DESTROYED, TRUE, /*goto*/ 0x2f - if_object_in_good_condition OBJ_BOT_PROGRAMMING_TERMINAL, /*goto*/ 0x2f - set_stage_flag STAGEFLAG_BOT_PROGRAMMING_TERMINAL_DESTROYED - if_difficulty_lt DIFF_SA, /*goto*/ 0x2f - message CHR_JOANNA, 0x1e16 // "Critical mission object destroyed." - label 0x2f - endloop 0x04 +u8 func1008_check_bot_terminals_destroyed[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE_MAINTENANCE, TRUE, /*goto*/ 0x08) + if_stage_flag_eq(STAGEFLAG_BOT_ACTIVATION_TERMINAL_DESTROYED, TRUE, /*goto*/ 0x2f) + if_object_in_good_condition(OBJ_BOT_ACTIVATION_TERMINAL, /*goto*/ 0x2f) + set_stage_flag(STAGEFLAG_BOT_ACTIVATION_TERMINAL_DESTROYED) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2f) + message(CHR_JOANNA, 0x1e16) // "Critical mission object destroyed." + label(0x2f) + if_stage_flag_eq(STAGEFLAG_BOT_PROGRAMMING_TERMINAL_DESTROYED, TRUE, /*goto*/ 0x2f) + if_object_in_good_condition(OBJ_BOT_PROGRAMMING_TERMINAL, /*goto*/ 0x2f) + set_stage_flag(STAGEFLAG_BOT_PROGRAMMING_TERMINAL_DESTROYED) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2f) + message(CHR_JOANNA, 0x1e16) // "Critical mission object destroyed." + label(0x2f) + endloop(0x04) - label 0x08 - set_function CHR_SELF, GFUNC_IDLE + label(0x08) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1001_objectives_failed_msg: +u8 func1001_objectives_failed_msg[] = { yield // These are scientist chrs - set_chr_flag_bank3 0x35, CHRFLAG3_04000000 - set_chr_flag_bank3 0x36, CHRFLAG3_04000000 - set_chr_flag_bank3 0x37, CHRFLAG3_04000000 - set_chr_flag_bank3 0x38, CHRFLAG3_04000000 - set_function CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG + set_chr_flag_bank3(0x35, CHRFLAG3_04000000) + set_chr_flag_bank3(0x36, CHRFLAG3_04000000) + set_chr_flag_bank3(0x37, CHRFLAG3_04000000) + set_chr_flag_bank3(0x38, CHRFLAG3_04000000) + set_function(CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG) endfunction +}; -func100a_spawn_alarm_responders: - beginloop 0x04 - if_alarm_active /*goto*/ 0x06 - reloop 0x04 +u8 func100a_spawn_alarm_responders[] = { + beginloop(0x04) + if_alarm_active(/*goto*/ 0x06) + reloop(0x04) - label 0x06 - if_stage_flag_eq STAGEFLAG_ALARM_RESPONDERS_SPAWNED, TRUE, /*goto*/ 0x0c - set_stage_flag STAGEFLAG_ALARM_RESPONDERS_SPAWNED + label(0x06) + if_stage_flag_eq(STAGEFLAG_ALARM_RESPONDERS_SPAWNED, TRUE, /*goto*/ 0x0c) + set_stage_flag(STAGEFLAG_ALARM_RESPONDERS_SPAWNED) restart_timer - beginloop 0x56 - try_spawn_chr BODY_DDSHOCK, HEAD_RANDOM, 0x005d, FUNC_ALARM_RESPONDER, 0x00000200, /*goto*/ 0x08 - endloop 0x56 + beginloop(0x56) + try_spawn_chr(BODY_DDSHOCK, HEAD_RANDOM, 0x005d, FUNC_ALARM_RESPONDER, 0x00000200, /*goto*/ 0x08) + endloop(0x56) - beginloop 0x08 - if_timer_gt 30, /*goto*/ 0x06 - endloop 0x08 + beginloop(0x08) + if_timer_gt(30, /*goto*/ 0x06) + endloop(0x08) - label 0x06 - beginloop 0x57 - try_spawn_chr BODY_DDSHOCK, HEAD_RANDOM, 0x005d, FUNC_ALARM_RESPONDER, 0x00000200, /*goto*/ 0x09 - endloop 0x57 + label(0x06) + beginloop(0x57) + try_spawn_chr(BODY_DDSHOCK, HEAD_RANDOM, 0x005d, FUNC_ALARM_RESPONDER, 0x00000200, /*goto*/ 0x09) + endloop(0x57) - beginloop 0x09 - if_timer_gt 30, /*goto*/ 0x06 - endloop 0x09 + beginloop(0x09) + if_timer_gt(30, /*goto*/ 0x06) + endloop(0x09) - label 0x06 - beginloop 0x58 - try_spawn_chr BODY_DDSHOCK, HEAD_RANDOM, 0x005d, FUNC_ALARM_RESPONDER, 0x00000200, /*goto*/ 0x0a - endloop 0x58 + label(0x06) + beginloop(0x58) + try_spawn_chr(BODY_DDSHOCK, HEAD_RANDOM, 0x005d, FUNC_ALARM_RESPONDER, 0x00000200, /*goto*/ 0x0a) + endloop(0x58) - beginloop 0x0a - if_timer_gt 30, /*goto*/ 0x06 - endloop 0x0a + beginloop(0x0a) + if_timer_gt(30, /*goto*/ 0x06) + endloop(0x0a) - label 0x06 - beginloop 0x59 - try_spawn_chr BODY_DDSHOCK, HEAD_RANDOM, 0x005d, FUNC_ALARM_RESPONDER, 0x00000200, /*goto*/ 0x0b - endloop 0x59 + label(0x06) + beginloop(0x59) + try_spawn_chr(BODY_DDSHOCK, HEAD_RANDOM, 0x005d, FUNC_ALARM_RESPONDER, 0x00000200, /*goto*/ 0x0b) + endloop(0x59) - beginloop 0x0b - if_timer_gt 30, /*goto*/ 0x0c - endloop 0x0b + beginloop(0x0b) + if_timer_gt(30, /*goto*/ 0x0c) + endloop(0x0b) - set_stage_flag STAGEFLAG_ALARM_RESPONDERS_SPAWNED - label 0x0c - endloop 0x04 + set_stage_flag(STAGEFLAG_ALARM_RESPONDERS_SPAWNED) + label(0x0c) + endloop(0x04) endfunction +}; -func0408_alarm_responder: - set_self_flag_bankx CHRFLAG1_00080000, BANK_1 - if_difficulty_lt DIFF_SA, /*goto*/ 0x2f - set_accuracy 20 - goto_next 0x06 +u8 func0408_alarm_responder[] = { + set_self_flag_bankx(CHRFLAG1_00080000, BANK_1) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2f) + set_accuracy(20) + goto_next(0x06) - label 0x2f - set_accuracy 10 + label(0x2f) + set_accuracy(10) - label 0x06 - try_inherit_properties 0x19, /*goto*/ 0x06 - label 0x06 - try_draw_weapon MODEL_CHRCMP150, WEAPON_CMP150, 0x00000000, /*goto*/ 0x06 - label 0x06 - set_chr_alliance CHR_SELF, ALLIANCE_ENEMY - set_group 0x09 - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - set_self_flag_bankx CHRFLAG0_00008000, BANK_0 - set_alertness 90 - set_self_flag_bank3 CHRFLAG3_00000200 + label(0x06) + try_inherit_properties(0x19, /*goto*/ 0x06) + label(0x06) + try_draw_weapon(MODEL_CHRCMP150, WEAPON_CMP150, 0x00000000, /*goto*/ 0x06) + label(0x06) + set_chr_alliance(CHR_SELF, ALLIANCE_ENEMY) + set_group(0x09) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + set_self_flag_bankx(CHRFLAG0_00008000, BANK_0) + set_alertness(90) + set_self_flag_bank3(CHRFLAG3_00000200) // Run to scientist based on which alarm was triggered - if_stage_flag_eq STAGEFLAG_ALARM1_ACTIVE, TRUE, /*goto*/ 0x08 - if_stage_flag_eq STAGEFLAG_ALARM2_ACTIVE, TRUE, /*goto*/ 0x09 - try_run_to_chr 0x37, /*goto*/ 0x06 - goto_next 0x06 + if_stage_flag_eq(STAGEFLAG_ALARM1_ACTIVE, TRUE, /*goto*/ 0x08) + if_stage_flag_eq(STAGEFLAG_ALARM2_ACTIVE, TRUE, /*goto*/ 0x09) + try_run_to_chr(0x37, /*goto*/ 0x06) + goto_next(0x06) - label 0x08 - try_run_to_chr 0x35, /*goto*/ 0x06 - goto_next 0x06 + label(0x08) + try_run_to_chr(0x35, /*goto*/ 0x06) + goto_next(0x06) - label 0x09 - try_run_to_chr 0x36, /*goto*/ 0x06 - goto_next 0x06 + label(0x09) + try_run_to_chr(0x36, /*goto*/ 0x06) + goto_next(0x06) - label 0x06 + label(0x06) cmd0145_rebuild_groups cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_UNALERTED_0001 + set_function(CHR_SELF, GFUNC_UNALERTED_0001) endfunction +}; -func100b_check_uplink_pc_destroyed: - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_UPLINK_FINISHED, TRUE, /*goto*/ 0x08 - if_object_in_good_condition OBJ_UPLINKPC, /*goto*/ 0x2f - set_stage_flag STAGEFLAG_UPLINKPC_DESTROYED - message CHR_JOANNA, 0x1e16 // "Critical mission object destroyed." - goto_next 0x08 - label 0x2f - endloop 0x04 +u8 func100b_check_uplink_pc_destroyed[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_UPLINK_FINISHED, TRUE, /*goto*/ 0x08) + if_object_in_good_condition(OBJ_UPLINKPC, /*goto*/ 0x2f) + set_stage_flag(STAGEFLAG_UPLINKPC_DESTROYED) + message(CHR_JOANNA, 0x1e16) // "Critical mission object destroyed." + goto_next(0x08) + label(0x2f) + endloop(0x04) - label 0x08 - set_function CHR_SELF, GFUNC_IDLE + label(0x08) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func0411_yellowbot: - dprint "hov\n" - label 0x03 - begin_hovercar_path 0x05 - set_vehicle_speed 512, 120 +u8 func0411_yellowbot[] = { + dprint 'h','o','v','\n',0, + label(0x03) + begin_hovercar_path(0x05) + set_vehicle_speed(512, 120) - beginloop 0x04 - if_hoverbot_path_finished 0x01, 0x0a, /*goto*/ 0x06 - endloop 0x04 + beginloop(0x04) + if_hoverbot_path_finished(0x01, 0x0a, /*goto*/ 0x06) + endloop(0x04) - label 0x06 - begin_hovercar_path 0x06 - set_vehicle_speed 512, 120 + label(0x06) + begin_hovercar_path(0x06) + set_vehicle_speed(512, 120) - beginloop 0x08 - if_hoverbot_path_finished 0x01, 0x08, /*goto*/ 0x06 - endloop 0x08 + beginloop(0x08) + if_hoverbot_path_finished(0x01, 0x08, /*goto*/ 0x06) + endloop(0x08) - label 0x06 - goto_first 0x03 + label(0x06) + goto_first(0x03) endfunction +}; -func0412_purplebot_programs: - dprint "hov\n" - if_difficulty_gt DIFF_A, /*goto*/ 0x04 +u8 func0412_purplebot_programs[] = { + dprint 'h','o','v','\n',0, + if_difficulty_gt(DIFF_A, /*goto*/ 0x04) // Agent - dprint "mov\n" - move_object_to_pad OBJ_PURPLEBOT, 0x00be - goto_next 0x14 + dprint 'm','o','v','\n',0, + move_object_to_pad(OBJ_PURPLEBOT, 0x00be) + goto_next(0x14) // SA or PA - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_BOT_ACTIVE_NOPROGRAM, TRUE, /*goto*/ 0x0a - if_stage_flag_eq STAGEFLAG_BOT_ACTIVE_MAINTENANCE, TRUE, /*goto*/ 0x0c - if_stage_flag_eq STAGEFLAG_BOT_ACTIVE_CLEANING, TRUE, /*goto*/ 0x08 - endloop 0x04 + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE_NOPROGRAM, TRUE, /*goto*/ 0x0a) + if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE_MAINTENANCE, TRUE, /*goto*/ 0x0c) + if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE_CLEANING, TRUE, /*goto*/ 0x08) + endloop(0x04) // Cleaning cycle (up and down the terminal room at medium speed) - label 0x08 - begin_hovercar_path 0x07 - set_vehicle_speed 512, 120 + label(0x08) + begin_hovercar_path(0x07) + set_vehicle_speed(512, 120) - beginloop 0x09 - if_stage_flag_eq STAGEFLAG_BOT_ACTIVE_NOPROGRAM, FALSE, /*goto*/ 0x0e - if_hoverbot_path_finished 0x01, 0x01, /*goto*/ 0x06 - endloop 0x09 + beginloop(0x09) + if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE_NOPROGRAM, FALSE, /*goto*/ 0x0e) + if_hoverbot_path_finished(0x01, 0x01, /*goto*/ 0x06) + endloop(0x09) - label 0x06 - goto_first 0x08 + label(0x06) + goto_first(0x08) // No program (small circles at low speed) - label 0x0a - begin_hovercar_path 0x08 - set_vehicle_speed 128, 120 + label(0x0a) + begin_hovercar_path(0x08) + set_vehicle_speed(128, 120) - beginloop 0x0b - if_stage_flag_eq STAGEFLAG_BOT_ACTIVE_NOPROGRAM, FALSE, /*goto*/ 0x0e - if_stage_flag_eq STAGEFLAG_BOT_ACTIVE_CLEANING, TRUE, /*goto*/ 0x10 - if_hoverbot_path_finished 0x01, 0x01, /*goto*/ 0x06 - endloop 0x0b + beginloop(0x0b) + if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE_NOPROGRAM, FALSE, /*goto*/ 0x0e) + if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE_CLEANING, TRUE, /*goto*/ 0x10) + if_hoverbot_path_finished(0x01, 0x01, /*goto*/ 0x06) + endloop(0x0b) - label 0x06 - goto_first 0x0a + label(0x06) + goto_first(0x0a) // Maintenance cycle - on route to lasers (high speed) - label 0x0c - begin_hovercar_path 0x09 - set_vehicle_speed 768, 120 + label(0x0c) + begin_hovercar_path(0x09) + set_vehicle_speed(768, 120) - beginloop 0x0d - if_hoverbot_path_finished 0x01, 0x18, /*goto*/ 0x06 - endloop 0x0d + beginloop(0x0d) + if_hoverbot_path_finished(0x01, 0x18, /*goto*/ 0x06) + endloop(0x0d) - label 0x14 - label 0x06 - set_function CHR_SELF, FUNC_PURPLEBOT_AT_LASERS + label(0x14) + label(0x06) + set_function(CHR_SELF, FUNC_PURPLEBOT_AT_LASERS) // Returning to offline - label 0x0e - begin_hovercar_path 0x0b - set_vehicle_speed 512, 120 - unset_stage_flag STAGEFLAG_BOT_ACTIVE_CLEANING - unset_stage_flag STAGEFLAG_BOT_REPROGRAMMED - unset_stage_flag STAGEFLAG_BOT_ACTIVE + label(0x0e) + begin_hovercar_path(0x0b) + set_vehicle_speed(512, 120) + unset_stage_flag(STAGEFLAG_BOT_ACTIVE_CLEANING) + unset_stage_flag(STAGEFLAG_BOT_REPROGRAMMED) + unset_stage_flag(STAGEFLAG_BOT_ACTIVE) - beginloop 0x0f - if_stage_flag_eq STAGEFLAG_BOT_ACTIVE_NOPROGRAM, TRUE, /*goto*/ 0x11 - if_stage_flag_eq STAGEFLAG_BOT_ACTIVE_MAINTENANCE, TRUE, /*goto*/ 0x12 - if_stage_flag_eq STAGEFLAG_BOT_ACTIVE_CLEANING, TRUE, /*goto*/ 0x10 - if_hoverbot_path_finished 0x01, 0x01, /*goto*/ 0x06 - endloop 0x0f + beginloop(0x0f) + if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE_NOPROGRAM, TRUE, /*goto*/ 0x11) + if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE_MAINTENANCE, TRUE, /*goto*/ 0x12) + if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE_CLEANING, TRUE, /*goto*/ 0x10) + if_hoverbot_path_finished(0x01, 0x01, /*goto*/ 0x06) + endloop(0x0f) - label 0x06 - set_vehicle_speed 0, 1 - goto_first 0x04 + label(0x06) + set_vehicle_speed(0, 1) + goto_first(0x04) - label 0x11 - goto_first 0x0a + label(0x11) + goto_first(0x0a) - label 0x12 - goto_first 0x0a + label(0x12) + goto_first(0x0a) - label 0x10 - goto_first 0x08 + label(0x10) + goto_first(0x08) endfunction +}; -func0413_purplebot_at_lasers: - label 0x03 - begin_hovercar_path 0x0a - set_vehicle_speed 512, 120 +u8 func0413_purplebot_at_lasers[] = { + label(0x03) + begin_hovercar_path(0x0a) + set_vehicle_speed(512, 120) - beginloop 0x13 - endloop 0x13 + beginloop(0x13) + endloop(0x13) endfunction +}; -func100c_shuffle_terminals: - shuffle_investigation_terminals OBJ_GOODTERM1, OBJ_ALARMTERM1, 0x1e, 0x1f, 0x20, 0x21 - shuffle_investigation_terminals OBJ_GOODTERM2, OBJ_ALARMTERM2, 0x1a, 0x1b, 0x1c, 0x1d - shuffle_investigation_terminals OBJ_GOODTERM3, OBJ_ALARMTERM3, 0x15, 0x16, 0x17, 0x18 +u8 func100c_shuffle_terminals[] = { + shuffle_investigation_terminals(OBJ_GOODTERM1, OBJ_ALARMTERM1, 0x1e, 0x1f, 0x20, 0x21) + shuffle_investigation_terminals(OBJ_GOODTERM2, OBJ_ALARMTERM2, 0x1a, 0x1b, 0x1c, 0x1d) + shuffle_investigation_terminals(OBJ_GOODTERM3, OBJ_ALARMTERM3, 0x15, 0x16, 0x17, 0x18) yield - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func100e_experiment_terminals_destroyed: - beginloop 0x04 - if_object_in_good_condition OBJ_GOODTERM1, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_GOODTERM_DESTROYED, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_SHUT_DOWN_EXPERIMENT1, TRUE, /*goto*/ 0x2f - set_stage_flag STAGEFLAG_GOODTERM_DESTROYED - message CHR_JOANNA, 0x1e16 // "Critical mission object destroyed." +u8 func100e_experiment_terminals_destroyed[] = { + beginloop(0x04) + if_object_in_good_condition(OBJ_GOODTERM1, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_GOODTERM_DESTROYED, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_SHUT_DOWN_EXPERIMENT1, TRUE, /*goto*/ 0x2f) + set_stage_flag(STAGEFLAG_GOODTERM_DESTROYED) + message(CHR_JOANNA, 0x1e16) // "Critical mission object destroyed." - label 0x2f - if_object_in_good_condition OBJ_GOODTERM2, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_GOODTERM_DESTROYED, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_SHUT_DOWN_EXPERIMENT2, TRUE, /*goto*/ 0x2f - set_stage_flag STAGEFLAG_GOODTERM_DESTROYED - message CHR_JOANNA, 0x1e16 // "Critical mission object destroyed." + label(0x2f) + if_object_in_good_condition(OBJ_GOODTERM2, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_GOODTERM_DESTROYED, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_SHUT_DOWN_EXPERIMENT2, TRUE, /*goto*/ 0x2f) + set_stage_flag(STAGEFLAG_GOODTERM_DESTROYED) + message(CHR_JOANNA, 0x1e16) // "Critical mission object destroyed." - label 0x2f - if_object_in_good_condition 0x09, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_GOODTERM_DESTROYED, TRUE, /*goto*/ 0x2f - if_stage_flag_eq STAGEFLAG_SHUT_DOWN_EXPERIMENT3, TRUE, /*goto*/ 0x2f - set_stage_flag STAGEFLAG_GOODTERM_DESTROYED - message CHR_JOANNA, 0x1e16 // "Critical mission object destroyed." + label(0x2f) + if_object_in_good_condition(0x09, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_GOODTERM_DESTROYED, TRUE, /*goto*/ 0x2f) + if_stage_flag_eq(STAGEFLAG_SHUT_DOWN_EXPERIMENT3, TRUE, /*goto*/ 0x2f) + set_stage_flag(STAGEFLAG_GOODTERM_DESTROYED) + message(CHR_JOANNA, 0x1e16) // "Critical mission object destroyed." - label 0x2f - endloop 0x04 + label(0x2f) + endloop(0x04) endfunction +}; -func0416_intro: - set_music_track MUSIC_INVESTIGATION_INTRO - camera_movement 0x00f5 - cmd0175 60 - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN +u8 func0416_intro[] = { + set_music_track(MUSIC_INVESTIGATION_INTRO) + camera_movement(0x00f5) + cmd0175(60) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_00010000 - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x00f6, -1, -1, 0x0600, CHR_JOANNA, 4 + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_00010000) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x00f6, -1, -1, 0x0600, CHR_JOANNA, 4) - set_chr_flag_bank3 CHR_INTRO_GUARD, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank3 CHR_INTRO_GUARD, CHRFLAG3_00010000 - unset_chr_flag_bank3 CHR_INTRO_GUARD, CHRFLAG3_HIDDEN - set_chr_flag_bank2 CHR_INTRO_GUARD, CHRFLAG2_00020000 - animation 0x00f7, -1, -1, 0x0600, CHR_INTRO_GUARD, 4 + set_chr_flag_bank3(CHR_INTRO_GUARD, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank3(CHR_INTRO_GUARD, CHRFLAG3_00010000) + unset_chr_flag_bank3(CHR_INTRO_GUARD, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_INTRO_GUARD, CHRFLAG2_00020000) + animation(0x00f7, -1, -1, 0x0600, CHR_INTRO_GUARD, 4) restart_timer - fade_to_color 0x000000ff, 0 - fade_to_color 0x00000000, 90 - set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE + fade_to_color(0x000000ff, 0) + fade_to_color(0x00000000, 90) + set_cutscene_weapon(CHR_JOANNA, WEAPON_NONE, WEAPON_NONE) yield - set_cutscene_weapon CHR_JOANNA, WEAPON_FALCON2, WEAPON_NONE + set_cutscene_weapon(CHR_JOANNA, WEAPON_FALCON2, WEAPON_NONE) - .macro wait_until time loopid - beginloop \loopid - if_controller_button_pressed /*goto*/ 0x77 - if_timer_gt \time, /*goto*/ 0x06 - endloop \loopid - label 0x06 - .endm + #define wait_until(time, loopid) \ + beginloop(loopid) \ + if_controller_button_pressed(/*goto*/ 0x77) \ + if_timer_gt(time, /*goto*/ 0x06) \ + endloop(loopid) \ + label(0x06) - wait_until 0, 0x56 - play_sound 0x01d5, CHANNEL_7 - wait_until 250, 0x57 - play_sound 0x00ec, CHANNEL_10 - wait_until 270, 0x58 - play_sound 0x0171, CHANNEL_10 + wait_until(0, 0x56) + play_sound(0x01d5, CHANNEL_7) - wait_until 290, 0x59 - play_sound 0x0172, CHANNEL_10 + wait_until(250, 0x57) + play_sound(0x00ec, CHANNEL_10) - wait_until 320, 0x5a - play_sound 0x0174, CHANNEL_10 + wait_until(270, 0x58) + play_sound(0x0171, CHANNEL_10) - wait_until 380, 0x5b - open_door 0x24 - play_sound 0x0165, CHANNEL_7 + wait_until(290, 0x59) + play_sound(0x0172, CHANNEL_10) - wait_until 580, 0x5c - play_sound 0x01d2, CHANNEL_7 + wait_until(320, 0x5a) + play_sound(0x0174, CHANNEL_10) - wait_until 950, 0x5d - play_sound 0x0172, CHANNEL_7 + wait_until(380, 0x5b) + open_door(0x24) + play_sound(0x0165, CHANNEL_7) - wait_until 990, 0x5e - play_sound 0x0171, CHANNEL_7 + wait_until(580, 0x5c) + play_sound(0x01d2, CHANNEL_7) - wait_until 1060, 0x5f - play_sound 0x0172, CHANNEL_7 + wait_until(950, 0x5d) + play_sound(0x0172, CHANNEL_7) - wait_until 1090, 0x60 - play_sound 0x0173, CHANNEL_7 + wait_until(990, 0x5e) + play_sound(0x0171, CHANNEL_7) - wait_until 1140, 0x61 - play_sound 0x01d3, CHANNEL_7 + wait_until(1060, 0x5f) + play_sound(0x0172, CHANNEL_7) - wait_until 1190, 0x62 - play_sound 0x0031, CHANNEL_7 + wait_until(1090, 0x60) + play_sound(0x0173, CHANNEL_7) - wait_until 1196, 0x68 - play_sound 0x008f, CHANNEL_6 + wait_until(1140, 0x61) + play_sound(0x01d3, CHANNEL_7) - wait_until 1310, 0x63 - play_sound 0x0085, CHANNEL_7 + wait_until(1190, 0x62) + play_sound(0x0031, CHANNEL_7) - wait_until 1370, 0x64 - play_sound 0x007b, CHANNEL_7 + wait_until(1196, 0x68) + play_sound(0x008f, CHANNEL_6) - wait_until 1410, 0x65 - play_sound 0x0175, CHANNEL_7 + wait_until(1310, 0x63) + play_sound(0x0085, CHANNEL_7) - wait_until 1430, 0x66 - play_sound 0x0176, CHANNEL_7 + wait_until(1370, 0x64) + play_sound(0x007b, CHANNEL_7) - wait_until 1600, 0x67 - play_sound 0x0171, CHANNEL_7 + wait_until(1410, 0x65) + play_sound(0x0175, CHANNEL_7) - beginloop 0x08 - if_camera_animating /*goto*/ 0x2f - goto_next 0x77 - label 0x2f - if_controller_button_pressed /*goto*/ 0x77 - label 0x2f - endloop 0x08 + wait_until(1430, 0x66) + play_sound(0x0176, CHANNEL_7) - label 0x77 - open_door2 0x24 - open_door2 0x40 - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_00010000 - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x00f6, -2, -1, 0x0600, CHR_JOANNA, 2 + wait_until(1600, 0x67) + play_sound(0x0171, CHANNEL_7) - unset_chr_flag_bank3 CHR_INTRO_GUARD, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank3 CHR_INTRO_GUARD, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank2 CHR_INTRO_GUARD, CHRFLAG2_00020000 - animation 0x00f7, -2, -1, 0x0600, CHR_INTRO_GUARD, 2 + beginloop(0x08) + if_camera_animating(/*goto*/ 0x2f) + goto_next(0x77) + label(0x2f) + if_controller_button_pressed(/*goto*/ 0x77) + label(0x2f) + endloop(0x08) - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN + label(0x77) + open_door2(0x24) + open_door2(0x40) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_00010000) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x00f6, -2, -1, 0x0600, CHR_JOANNA, 2) + + unset_chr_flag_bank3(CHR_INTRO_GUARD, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank3(CHR_INTRO_GUARD, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank2(CHR_INTRO_GUARD, CHRFLAG2_00020000) + animation(0x00f7, -2, -1, 0x0600, CHR_INTRO_GUARD, 2) + + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) restart_default_music reset_ambience enter_firstperson yield - animation 0x020b, -1, -1, 0x0600, CHR_INTRO_GUARD, 2 + animation(0x020b, -1, -1, 0x0600, CHR_INTRO_GUARD, 2) yield - kill CHR_INTRO_GUARD - set_function CHR_SELF, GFUNC_IDLE + kill(CHR_INTRO_GUARD) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func0417_outro: - set_music_track MUSIC_INVESTIGATION_OUTRO - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_chr_flag_bank3 0xf1, CHRFLAG3_HIDDEN - set_stage_flag STAGEFLAG_TRIGGER_OUTRO_AUDIO +u8 func0417_outro[] = { + set_music_track(MUSIC_INVESTIGATION_OUTRO) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0xf1, CHRFLAG3_HIDDEN) + set_stage_flag(STAGEFLAG_TRIGGER_OUTRO_AUDIO) - unset_chr_flag_bank3 CHR_P1P2, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_P1P2, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_P1P2, CHRFLAG2_00020000 + unset_chr_flag_bank3(CHR_P1P2, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_P1P2, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_P1P2, CHRFLAG2_00020000) - set_function CHR_DRCAROLL, GFUNC_IDLE - set_function CHR_K7_GUARD, GFUNC_IDLE + set_function(CHR_DRCAROLL, GFUNC_IDLE) + set_function(CHR_K7_GUARD, GFUNC_IDLE) restart_timer - dprint "shot 1" - camera_movement 0x00f9 - animation 0x00fa, -1, -1, 0x0600, CHR_P1P2, 2 - set_cutscene_weapon CHR_P1P2, -1, -1 + dprint 's','h','o','t',' ','1',0, + camera_movement(0x00f9) + animation(0x00fa, -1, -1, 0x0600, CHR_P1P2, 2) + set_cutscene_weapon(CHR_P1P2, -1, -1) yield - set_cutscene_weapon CHR_P1P2, -1, WEAPON_FALCON2 - show_nonessential_chrs FALSE + set_cutscene_weapon(CHR_P1P2, -1, WEAPON_FALCON2) + show_nonessential_chrs(FALSE) - .macro wait_for_camera loopid - beginloop \loopid - if_camera_animating /*goto*/ 0x2f - goto_next 0x06 - label 0x2f - if_controller_button_pressed /*goto*/ 0x06 - endloop \loopid - label 0x06 - .endm + #define wait_for_camera(loopid) \ + beginloop(loopid) \ + if_camera_animating(/*goto*/ 0x2f) \ + goto_next(0x06) \ + label(0x2f) \ + if_controller_button_pressed(/*goto*/ 0x06) \ + endloop(loopid) \ + label(0x06) - wait_for_camera 0x08 - dprint "shot 2" - if_controller_button_pressed /*goto*/ 0x06 - camera_movement 0x0140 - animation 0x0141, -1, -1, 0x0600, CHR_P1P2, 2 - wait_for_camera 0x09 + wait_for_camera(0x08) - dprint "shot 3" - if_controller_button_pressed /*goto*/ 0x06 - camera_movement 0x0143 - animation 0x0144, -1, -1, 0x0600, CHR_P1P2, 2 + dprint 's','h','o','t',' ','2',0, + if_controller_button_pressed(/*goto*/ 0x06) + camera_movement(0x0140) + animation(0x0141, -1, -1, 0x0600, CHR_P1P2, 2) - wait_for_camera 0x0a + wait_for_camera(0x09) - dprint "shot 4" - if_controller_button_pressed /*goto*/ 0x06 - camera_movement 0x0146 - animation 0x0147, -1, -1, 0x0600, CHR_P1P2, 2 + dprint 's','h','o','t',' ','3',0, + if_controller_button_pressed(/*goto*/ 0x06) + camera_movement(0x0143) + animation(0x0144, -1, -1, 0x0600, CHR_P1P2, 2) + + wait_for_camera(0x0a) + + dprint 's','h','o','t',' ','4',0, + if_controller_button_pressed(/*goto*/ 0x06) + camera_movement(0x0146) + animation(0x0147, -1, -1, 0x0600, CHR_P1P2, 2) restart_timer - beginloop 0x0b - if_camera_animating /*goto*/ 0x2f - goto_next 0x06 - label 0x2f - if_controller_button_pressed /*goto*/ 0x06 - if_timer_gt 282, /*goto*/ 0x2f - endloop 0x0b + beginloop(0x0b) + if_camera_animating(/*goto*/ 0x2f) + goto_next(0x06) + label(0x2f) + if_controller_button_pressed(/*goto*/ 0x06) + if_timer_gt(282, /*goto*/ 0x2f) + endloop(0x0b) - label 0x2f - open_door 0x23 + label(0x2f) + open_door(0x23) - beginloop 0x5f - if_camera_animating /*goto*/ 0x2f - goto_next 0x06 - label 0x2f - if_controller_button_pressed /*goto*/ 0x06 - endloop 0x5f + beginloop(0x5f) + if_camera_animating(/*goto*/ 0x2f) + goto_next(0x06) + label(0x2f) + if_controller_button_pressed(/*goto*/ 0x06) + endloop(0x5f) - label 0x2f - label 0x06 - dprint "shot 5" - if_controller_button_pressed /*goto*/ 0x06 - unset_chr_flag_bank3 CHR_DRCAROLL, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_DRCAROLL, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_DRCAROLL, CHRFLAG2_00020000 - camera_movement 0x0149 - animation 0x014a, -1, -1, 0x0600, CHR_P1P2, 2 - animation 0x014b, -1, -1, 0x0600, CHR_DRCAROLL, 2 + label(0x2f) + label(0x06) + dprint 's','h','o','t',' ','5',0, + if_controller_button_pressed(/*goto*/ 0x06) + unset_chr_flag_bank3(CHR_DRCAROLL, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_DRCAROLL, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_DRCAROLL, CHRFLAG2_00020000) + camera_movement(0x0149) + animation(0x014a, -1, -1, 0x0600, CHR_P1P2, 2) + animation(0x014b, -1, -1, 0x0600, CHR_DRCAROLL, 2) - wait_for_camera 0x0c + wait_for_camera(0x0c) - dprint "shot 6" - if_controller_button_pressed /*goto*/ 0x06 - camera_movement 0x014c - animation 0x014d, -1, -1, 0x0600, CHR_P1P2, 2 - animation 0x014e, -1, -1, 0x0600, CHR_DRCAROLL, 2 + dprint 's','h','o','t',' ','6',0, + if_controller_button_pressed(/*goto*/ 0x06) + camera_movement(0x014c) + animation(0x014d, -1, -1, 0x0600, CHR_P1P2, 2) + animation(0x014e, -1, -1, 0x0600, CHR_DRCAROLL, 2) - wait_for_camera 0x0d + wait_for_camera(0x0d) - dprint "shot 7" - if_controller_button_pressed /*goto*/ 0x06 - camera_movement 0x014f - animation 0x0150, -1, -1, 0x0600, CHR_P1P2, 2 - animation 0x0151, -1, -1, 0x0600, CHR_DRCAROLL, 2 + dprint 's','h','o','t',' ','7',0, + if_controller_button_pressed(/*goto*/ 0x06) + camera_movement(0x014f) + animation(0x0150, -1, -1, 0x0600, CHR_P1P2, 2) + animation(0x0151, -1, -1, 0x0600, CHR_DRCAROLL, 2) - wait_for_camera 0x0e + wait_for_camera(0x0e) - dprint "shot 8" - camera_movement 0x0152 - animation 0x0153, -1, -1, 0x0600, CHR_P1P2, 2 - animation 0x0154, -1, -1, 0x0600, CHR_DRCAROLL, 2 + dprint 's','h','o','t',' ','8',0, + camera_movement(0x0152) + animation(0x0153, -1, -1, 0x0600, CHR_P1P2, 2) + animation(0x0154, -1, -1, 0x0600, CHR_DRCAROLL, 2) - wait_for_camera 0x0f + wait_for_camera(0x0f) end_level - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1010_intro_from_menu: - set_return_function CHR_SELF, GFUNC_END_CINEMA - set_function CHR_SELF, 0x0416 +u8 func1010_intro_from_menu[] = { + set_return_function(CHR_SELF, GFUNC_END_CINEMA) + set_function(CHR_SELF, 0x0416) endfunction +}; -func0417_outro_from_menu: - set_return_function CHR_SELF, GFUNC_END_CINEMA - set_function CHR_SELF, FUNC_OUTRO +u8 func0417_outro_from_menu[] = { + set_return_function(CHR_SELF, GFUNC_END_CINEMA) + set_function(CHR_SELF, FUNC_OUTRO) endfunction +}; -unregistered_function1: - set_return_function CHR_SELF, 0x0419 - set_function CHR_SELF, 0x0416 +u8 unregistered_function1[] = { + set_return_function(CHR_SELF, 0x0419) + set_function(CHR_SELF, 0x0416) endfunction +}; -unregistered_function2: - set_return_function CHR_SELF, 0x041a - set_function CHR_SELF, FUNC_OUTRO +u8 unregistered_function2[] = { + set_return_function(CHR_SELF, 0x041a) + set_function(CHR_SELF, FUNC_OUTRO) endfunction +}; -func1415_outro_audio: - label 0x79 - if_stage_flag_eq STAGEFLAG_TRIGGER_OUTRO_AUDIO, TRUE, /*goto*/ 0x7a +u8 func1415_outro_audio[] = { + label(0x79) + if_stage_flag_eq(STAGEFLAG_TRIGGER_OUTRO_AUDIO, TRUE, /*goto*/ 0x7a) yield - goto_first 0x79 + goto_first(0x79) - label 0x7a - unset_stage_flag STAGEFLAG_TRIGGER_OUTRO_AUDIO - label 0x2f + label(0x7a) + unset_stage_flag(STAGEFLAG_TRIGGER_OUTRO_AUDIO) + label(0x2f) restart_timer - hide_object 0x37 - hide_object 0x38 - 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 + hide_object(0x37) + hide_object(0x38) + 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) - .macro outro_wait_until time loopid - beginloop \loopid - if_controller_button_pressed /*goto*/ 0x77 - if_timer_gt \time, /*goto*/ 0x06 - endloop \loopid - label 0x06 - .endm + #define outro_wait_until(time, loopid) \ + beginloop(loopid) \ + if_controller_button_pressed(/*goto*/ 0x77) \ + if_timer_gt(time, /*goto*/ 0x06) \ + endloop(loopid) \ + label(0x06) - outro_wait_until 78, 0x56 - play_sound 0x0161, CHANNEL_6 - outro_wait_until 116, 0x57 - play_sound 0x0165, CHANNEL_7 - outro_wait_until 131, 0x58 - play_sound 0x0166, CHANNEL_5 + outro_wait_until(78, 0x56) + play_sound(0x0161, CHANNEL_6) - outro_wait_until 162, 0x59 - play_sound 0x0167, CHANNEL_6 + outro_wait_until(116, 0x57) + play_sound(0x0165, CHANNEL_7) - outro_wait_until 197, 0x5a - play_sound 0x0168, CHANNEL_7 + outro_wait_until(131, 0x58) + play_sound(0x0166, CHANNEL_5) - outro_wait_until 236, 0x5b - play_sound 0x0167, CHANNEL_5 + outro_wait_until(162, 0x59) + play_sound(0x0167, CHANNEL_6) - outro_wait_until 266, 0x5c - play_sound 0x0168, CHANNEL_6 + outro_wait_until(197, 0x5a) + play_sound(0x0168, CHANNEL_7) - outro_wait_until 281, 0x5d - play_sound 0x0165, CHANNEL_7 + outro_wait_until(236, 0x5b) + play_sound(0x0167, CHANNEL_5) - outro_wait_until 335, 0x5e - play_sound 0x0162, CHANNEL_5 + outro_wait_until(266, 0x5c) + play_sound(0x0168, CHANNEL_6) - outro_wait_until 384, 0x5f - play_sound 0x0163, CHANNEL_6 + outro_wait_until(281, 0x5d) + play_sound(0x0165, CHANNEL_7) - outro_wait_until 415, 0x60 - play_sound 0x0164, CHANNEL_7 + outro_wait_until(335, 0x5e) + play_sound(0x0162, CHANNEL_5) - outro_wait_until 434, 0x61 - play_sound 0x0163, CHANNEL_5 + outro_wait_until(384, 0x5f) + play_sound(0x0163, CHANNEL_6) - outro_wait_until 474, 0x62 - play_sound 0x0164, CHANNEL_6 + outro_wait_until(415, 0x60) + play_sound(0x0164, CHANNEL_7) - outro_wait_until 511, 0x63 - play_sound 0x0163, CHANNEL_7 + outro_wait_until(434, 0x61) + play_sound(0x0163, CHANNEL_5) - outro_wait_until 356, 0x65 - play_sound 0x0164, CHANNEL_5 + outro_wait_until(474, 0x62) + play_sound(0x0164, CHANNEL_6) - outro_wait_until 581, 0x66 - play_sound 0x0161, CHANNEL_6 + outro_wait_until(511, 0x63) + play_sound(0x0163, CHANNEL_7) - outro_wait_until 620, 0x68 - speak CHR_P1P2, 0x1e64, 0x73ec, CHANNEL_7, COLOR_09_BLUE // "Dr. Caroll?" + outro_wait_until(356, 0x65) + play_sound(0x0164, CHANNEL_5) - outro_wait_until 676, 0x67 - play_sound 0x0162, CHANNEL_6 + outro_wait_until(581, 0x66) + play_sound(0x0161, CHANNEL_6) - outro_wait_until 747, 0x69 - play_sound 0x0163, CHANNEL_5 + outro_wait_until(620, 0x68) + speak(CHR_P1P2, 0x1e64, 0x73ec, CHANNEL_7, COLOR_09_BLUE) // "Dr. Caroll?" - outro_wait_until 750, 0x6a - speak CHR_P1P2, 0x1e65, 0x73ed, CHANNEL_7, COLOR_09_BLUE // "Dr. Caroll, are you here?" + outro_wait_until(676, 0x67) + play_sound(0x0162, CHANNEL_6) - outro_wait_until 864, 0x6b - speak CHR_P1P2, 0x1e66, 0x73ee, CHANNEL_7, COLOR_04_ORANGE // "Well, is it safe to come out?" + outro_wait_until(747, 0x69) + play_sound(0x0163, CHANNEL_5) - outro_wait_until 1027, 0x6c - speak CHR_P1P2, 0x1e67, 0x73ef, CHANNEL_7, COLOR_09_BLUE // "Yes, all clear." + outro_wait_until(750, 0x6a) + speak(CHR_P1P2, 0x1e65, 0x73ed, CHANNEL_7, COLOR_09_BLUE) // "Dr. Caroll, are you here?" - outro_wait_until 1200, 0x6f - mute_channel CHANNEL_6 + outro_wait_until(864, 0x6b) + speak(CHR_P1P2, 0x1e66, 0x73ee, CHANNEL_7, COLOR_04_ORANGE) // "Well, is it safe to come out?" - play_sound 0x042c, CHANNEL_4 - outro_wait_until 1219, 0x70 + outro_wait_until(1027, 0x6c) + speak(CHR_P1P2, 0x1e67, 0x73ef, CHANNEL_7, COLOR_09_BLUE) // "Yes, all clear." - outro_wait_until 1254, 0x71 - speak CHR_P1P2, 0x1e68, 0x73f0, CHANNEL_7, COLOR_09_BLUE // "Wh..what... you're..." + outro_wait_until(1200, 0x6f) + mute_channel(CHANNEL_6) - outro_wait_until 1460, 0x73 - speak CHR_P1P2, 0x1e69, 0x73f1, CHANNEL_7, COLOR_04_ORANGE // "Very professionally done, my dear, but there's no ..." + play_sound(0x042c, CHANNEL_4) + outro_wait_until(1219, 0x70) - outro_wait_until 1556, 0x74 - mute_channel CHANNEL_5 - play_sound 0x042c, CHANNEL_6 + outro_wait_until(1254, 0x71) + speak(CHR_P1P2, 0x1e68, 0x73f0, CHANNEL_7, COLOR_09_BLUE) // "Wh..what... you're..." - outro_wait_until 1900, 0x75 - speak CHR_P1P2, 0x1e6a, 0x73f2, CHANNEL_7, COLOR_04_ORANGE // "Come on. I have vital information, and you must pr..." + outro_wait_until(1460, 0x73) + speak(CHR_P1P2, 0x1e69, 0x73f1, CHANNEL_7, COLOR_04_ORANGE) // "Very professionally done, my dear, but there's no ..." - outro_wait_until 2200, 0x76 - play_sound 0x0161, CHANNEL_6 + outro_wait_until(1556, 0x74) + mute_channel(CHANNEL_5) + play_sound(0x042c, CHANNEL_6) - label 0x77 - goto_first 0x79 + outro_wait_until(1900, 0x75) + speak(CHR_P1P2, 0x1e6a, 0x73f2, CHANNEL_7, COLOR_04_ORANGE) // "Come on. I have vital information, and you must pr..." + + outro_wait_until(2200, 0x76) + play_sound(0x0161, CHANNEL_6) + + label(0x77) + goto_first(0x79) endfunction +}; -func100f_check_for_end_level: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0063, /*goto*/ 0x2f - if_chr_in_room CHR_P1P2, 0x00, 0x0065, /*goto*/ 0x2f - reloop 0x04 +u8 func100f_check_for_end_level[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0063, /*goto*/ 0x2f) + if_chr_in_room(CHR_P1P2, 0x00, 0x0065, /*goto*/ 0x2f) + reloop(0x04) - label 0x2f - if_door_state 0x26, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x06 - reloop 0x04 + label(0x2f) + if_door_state(0x26, (DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING), /*goto*/ 0x06) + reloop(0x04) - label 0x06 - set_stage_flag STAGEFLAG_DRCAROLL_LOCATED - dprint "shot 6" + label(0x06) + set_stage_flag(STAGEFLAG_DRCAROLL_LOCATED) + dprint 's','h','o','t',' ','6',0, yield - if_all_objectives_complete /*goto*/ 0x2f - endloop 0x04 + if_all_objectives_complete(/*goto*/ 0x2f) + endloop(0x04) - label 0x2f - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x2f - if_chr_dying CHR_JOANNA, /*goto*/ 0x2f - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x2f - goto_next 0x06 + label(0x2f) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x2f) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x2f) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x2f) + goto_next(0x06) - label 0x2f - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2f - if_chr_dying CHR_VELVET, /*goto*/ 0x2f - if_chr_unloaded CHR_VELVET, /*goto*/ 0x2f - goto_next 0x06 + label(0x2f) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x2f) + if_chr_dying(CHR_VELVET, /*goto*/ 0x2f) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x2f) + goto_next(0x06) - label 0x2f + label(0x2f) end_level - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) - label 0x06 - set_invincible CHR_JOANNA - set_function CHR_SELF, FUNC_OUTRO - 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 +}; -func1400_setup_counterop: +u8 func1400_setup_counterop[] = { yield - set_chr_alliance CHR_COUNTEROP, ALLIANCE_ENEMY - give_object_to_chr OBJ_DATAUPLINK_JOANNA, CHR_JOANNA - give_object_to_chr OBJ_DATAUPLINK_VELVET, CHR_VELVET - set_function CHR_SELF, GFUNC_REBUILD_GROUPS + set_chr_alliance(CHR_COUNTEROP, ALLIANCE_ENEMY) + give_object_to_chr(OBJ_DATAUPLINK_JOANNA, CHR_JOANNA) + give_object_to_chr(OBJ_DATAUPLINK_VELVET, CHR_VELVET) + set_function(CHR_SELF, GFUNC_REBUILD_GROUPS) endfunction +}; -func1011_spawn_guards_during_uplink: - if_difficulty_lt DIFF_SA, /*goto*/ 0x0d - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_UPLINK_SEARCHING, TRUE, /*goto*/ 0x2f - endloop 0x04 +u8 func1011_spawn_guards_during_uplink[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x0d) + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_UPLINK_SEARCHING, TRUE, /*goto*/ 0x2f) + endloop(0x04) - label 0x2f + label(0x2f) restart_timer - try_spawn_chr BODY_DDSHOCK, HEAD_RANDOM, 0x0131, FUNC_UPLINK_RESPONDER, 0x00000210, /*goto*/ 0x09 + try_spawn_chr(BODY_DDSHOCK, HEAD_RANDOM, 0x0131, FUNC_UPLINK_RESPONDER, 0x00000210, /*goto*/ 0x09) - beginloop 0x09 - if_timer_gt 30, /*goto*/ 0x06 - endloop 0x09 + beginloop(0x09) + if_timer_gt(30, /*goto*/ 0x06) + endloop(0x09) - label 0x06 - try_spawn_chr BODY_DDSHOCK, HEAD_RANDOM, 0x0132, FUNC_UPLINK_RESPONDER, 0x00000210, /*goto*/ 0x0a + label(0x06) + try_spawn_chr(BODY_DDSHOCK, HEAD_RANDOM, 0x0132, FUNC_UPLINK_RESPONDER, 0x00000210, /*goto*/ 0x0a) - beginloop 0x0a - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x0a + beginloop(0x0a) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x0a) - label 0x06 - label 0x0d - set_function CHR_SELF, GFUNC_IDLE + label(0x06) + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func0409_uplink_responder: - if_difficulty_lt DIFF_SA, /*goto*/ 0x2f - set_accuracy 20 - goto_next 0x06 +u8 func0409_uplink_responder[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2f) + set_accuracy(20) + goto_next(0x06) - label 0x2f - set_accuracy 10 + label(0x2f) + set_accuracy(10) - label 0x06 - try_draw_weapon MODEL_CHRCMP150, WEAPON_CMP150, 0x00000000, /*goto*/ 0x06 - label 0x06 - set_chr_alliance CHR_SELF, ALLIANCE_ENEMY - set_group 0x09 - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - set_self_flag_bankx CHRFLAG0_00008000, BANK_0 - set_alertness 110 - set_self_flag_bank3 CHRFLAG3_00000200 - label 0x06 + label(0x06) + try_draw_weapon(MODEL_CHRCMP150, WEAPON_CMP150, 0x00000000, /*goto*/ 0x06) + label(0x06) + set_chr_alliance(CHR_SELF, ALLIANCE_ENEMY) + set_group(0x09) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + set_self_flag_bankx(CHRFLAG0_00008000, BANK_0) + set_alertness(110) + set_self_flag_bank3(CHRFLAG3_00000200) + label(0x06) cmd0145_rebuild_groups cmd0146_rebuild_groups - set_function CHR_SELF, GFUNC_UNALERTED + set_function(CHR_SELF, GFUNC_UNALERTED) endfunction +}; -func1012_start_laser_sound: - label 0x04 +u8 func1012_start_laser_sound[] = { + label(0x04) yield - assign_sound 0x8119, CHANNEL_0 - play_sound_from_object CHANNEL_0, 0x28, 0x012c, 0x0190 - label 0x2f - assign_sound 0x811a, CHANNEL_1 - play_sound_from_object CHANNEL_1, 0x2d, 0x012c, 0x0190 - label 0x2f - assign_sound 0x8119, CHANNEL_2 - play_sound_from_object CHANNEL_2, 0x32, 0x012c, 0x0190 - assign_sound 0x01c5, CHANNEL_3 - play_sound_from_object CHANNEL_3, 0x38, 0x0258, 0x0320 - assign_sound 0x01c5, CHANNEL_4 - play_sound_from_object CHANNEL_4, 0x37, 0x0258, 0x0320 - set_function CHR_SELF, GFUNC_IDLE + assign_sound(0x8119, CHANNEL_0) + play_sound_from_object(CHANNEL_0, 0x28, 0x012c, 0x0190) + label(0x2f) + assign_sound(0x811a, CHANNEL_1) + play_sound_from_object(CHANNEL_1, 0x2d, 0x012c, 0x0190) + label(0x2f) + assign_sound(0x8119, CHANNEL_2) + play_sound_from_object(CHANNEL_2, 0x32, 0x012c, 0x0190) + assign_sound(0x01c5, CHANNEL_3) + play_sound_from_object(CHANNEL_3, 0x38, 0x0258, 0x0320) + assign_sound(0x01c5, CHANNEL_4) + play_sound_from_object(CHANNEL_4, 0x37, 0x0258, 0x0320) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1013_hatch_pc: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_activated_object TARGET_CHR, OBJ_HATCHPC, /*goto*/ 0x06 - reloop 0x04 +u8 func1013_hatch_pc[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_activated_object(TARGET_CHR, OBJ_HATCHPC, /*goto*/ 0x06) + reloop(0x04) - label 0x06 - if_door_locked 0x3f, 0x08, /*goto*/ 0x56 - goto_next 0x2f + label(0x06) + if_door_locked(0x3f, 0x08, /*goto*/ 0x56) + goto_next(0x2f) - label 0x56 - play_sound 0x00f7, -1 - message TARGET_CHR, 0x1e3d // "Maintenance hatch is now open." - unlock_door 0x3f, 0x08 - reloop 0x04 + label(0x56) + play_sound(0x00f7, -1) + message(TARGET_CHR, 0x1e3d) // "Maintenance hatch is now open." + unlock_door(0x3f, 0x08) + reloop(0x04) - label 0x2f - message TARGET_CHR, 0x1e3e // "Maintenance hatch is already open." + label(0x2f) + message(TARGET_CHR, 0x1e3e) // "Maintenance hatch is already open." restart_timer - beginloop 0x57 - if_timer_gt 120, /*goto*/ 0x2f - endloop 0x57 + beginloop(0x57) + if_timer_gt(120, /*goto*/ 0x2f) + endloop(0x57) - label 0x2f - endloop 0x04 + label(0x2f) + endloop(0x04) - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func0415_radioactivity: +u8 func0415_radioactivity[] = { restart_timer - beginloop 0x04 - if_chr_in_room TARGET_CHR, 0x00, 0x0014, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0015, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0016, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0017, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0018, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0019, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x001a, /*goto*/ 0x06 - reloop 0x04 + beginloop(0x04) + if_chr_in_room(TARGET_CHR, 0x00, 0x0014, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0015, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0016, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0017, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0018, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0019, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x001a, /*goto*/ 0x06) + reloop(0x04) - label 0x06 - message TARGET_CHR, 0x1e3f // "WARNING - radioactive matter detected." + label(0x06) + message(TARGET_CHR, 0x1e3f) // "WARNING - radioactive matter detected." restart_timer - label 0x08 + label(0x08) yield - add_motion_blur TARGET_CHR, 10, TRUE - if_timer_lt 300, /*goto*/ 0x2f + add_motion_blur(TARGET_CHR, 10, TRUE) + if_timer_lt(300, /*goto*/ 0x2f) restart_timer - damage_chr2 TARGET_CHR, 1024 - label 0x2f - if_chr_in_room TARGET_CHR, 0x00, 0x0014, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0015, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0016, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0017, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0018, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x0019, /*goto*/ 0x06 - if_chr_in_room TARGET_CHR, 0x00, 0x001a, /*goto*/ 0x06 - endloop 0x04 + damage_chr2(TARGET_CHR, 1024) + label(0x2f) + if_chr_in_room(TARGET_CHR, 0x00, 0x0014, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0015, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0016, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0017, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0018, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0019, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x001a, /*goto*/ 0x06) + endloop(0x04) - label 0x06 - goto_first 0x08 + label(0x06) + goto_first(0x08) - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1014_jo_radioactivity: - set_target_chr CHR_JOANNA - set_function CHR_SELF, FUNC_RADIOACTIVITY +u8 func1014_jo_radioactivity[] = { + set_target_chr(CHR_JOANNA) + set_function(CHR_SELF, FUNC_RADIOACTIVITY) endfunction +}; -func101d_velvet_radioactivty: +u8 func101d_velvet_radioactivty[] = { yield - set_target_chr CHR_VELVET - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x2f - set_function CHR_SELF, FUNC_RADIOACTIVITY - label 0x2f - set_function CHR_SELF, GFUNC_IDLE + set_target_chr(CHR_VELVET) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0x2f) + set_function(CHR_SELF, FUNC_RADIOACTIVITY) + label(0x2f) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1021_counterop_radioactivity: +u8 func1021_counterop_radioactivity[] = { yield - set_target_chr CHR_COUNTEROP - if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x2f - set_function CHR_SELF, FUNC_RADIOACTIVITY - label 0x2f - set_function CHR_SELF, GFUNC_IDLE + set_target_chr(CHR_COUNTEROP) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0x2f) + set_function(CHR_SELF, FUNC_RADIOACTIVITY) + label(0x2f) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func0402_k7_guard: - set_accuracy 20 - set_reaction_speed 100 - set_onshot_function GFUNC_ALERTED +u8 func0402_k7_guard[] = { + set_accuracy(20) + set_reaction_speed(100) + set_onshot_function(GFUNC_ALERTED) - beginloop 0x0f - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - set_follow_chr CHR_P1P2 - if_chr_in_room TARGET_CHR, 0x00, 0x0036, /*goto*/ 0x03 - if_chr_in_room TARGET_CHR, 0x00, 0x0037, /*goto*/ 0x03 - if_chr_in_room TARGET_CHR, 0x00, 0x003a, /*goto*/ 0x03 - endloop 0x0f + beginloop(0x0f) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + set_follow_chr(CHR_P1P2) + if_chr_in_room(TARGET_CHR, 0x00, 0x0036, /*goto*/ 0x03) + if_chr_in_room(TARGET_CHR, 0x00, 0x0037, /*goto*/ 0x03) + if_chr_in_room(TARGET_CHR, 0x00, 0x003a, /*goto*/ 0x03) + endloop(0x0f) - label 0x03 + label(0x03) restart_timer call_rng - if_rand_gt 128, /*goto*/ 0x06 - label 0x2f - say_quip FOLLOW_CHR, 0x09, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00 - label 0x06 + if_rand_gt(128, /*goto*/ 0x06) + label(0x2f) + say_quip(FOLLOW_CHR, 0x09, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00) + label(0x06) - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x0c - if_near_miss /*goto*/ 0x0c - if_num_times_shot_gt 0, /*goto*/ 0x0c - if_shot_near_chr 0x00, /*goto*/ 0x0c - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x0c - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x04 + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x0c) + if_near_miss(/*goto*/ 0x0c) + if_num_times_shot_gt(0, /*goto*/ 0x0c) + if_shot_near_chr(0x00, /*goto*/ 0x0c) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x0c) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x04) - label 0x06 - try_aim_and_shoot_thing1 0x0028, 0x0159, /*goto*/ 0x2f - label 0x2f - try_aim_and_shoot_thing2 0x0008, 0x0159, /*goto*/ 0x2f - label 0x2f - say_quip CHR_JOANNA, 0x00, 0x32, 0x02, 0xff, BANK_0, 0x00, 0x00 + label(0x06) + try_aim_and_shoot_thing1(0x0028, 0x0159, /*goto*/ 0x2f) + label(0x2f) + try_aim_and_shoot_thing2(0x0008, 0x0159, /*goto*/ 0x2f) + label(0x2f) + say_quip(CHR_JOANNA, 0x00, 0x32, 0x02, 0xff, BANK_0, 0x00, 0x00) - beginloop 0x08 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x0c - if_near_miss /*goto*/ 0x0c - if_num_times_shot_gt 0, /*goto*/ 0x0c - if_shot_near_chr 0x00, /*goto*/ 0x0c - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x0c - if_chr_stopped /*goto*/ 0x2f - goto_first 0x08 + beginloop(0x08) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x0c) + if_near_miss(/*goto*/ 0x0c) + if_num_times_shot_gt(0, /*goto*/ 0x0c) + if_shot_near_chr(0x00, /*goto*/ 0x0c) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x0c) + if_chr_stopped(/*goto*/ 0x2f) + goto_first(0x08) - label 0x2f + label(0x2f) call_rng - if_rand_gt 200, /*goto*/ 0x2f - goto_first 0x03 + if_rand_gt(200, /*goto*/ 0x2f) + goto_first(0x03) - label 0x2f + label(0x2f) stop_chr restart_timer call_rng - if_rand_gt 128, /*goto*/ 0x06 - assign_sound 0x1299, CHANNEL_6 - play_sound_from_entity CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01 + if_rand_gt(128, /*goto*/ 0x06) + assign_sound(0x1299, CHANNEL_6) + play_sound_from_entity(CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01) - beginloop 0x0c - if_timer_gt 120, /*goto*/ 0x2f - endloop 0x0c + beginloop(0x0c) + if_timer_gt(120, /*goto*/ 0x2f) + endloop(0x0c) - label 0x2f - say_quip FOLLOW_CHR, 0x08, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00 - label 0x06 - if_chr_distance_to_pad_lt CHR_SELF, 100, 0x013b, /*goto*/ 0x2f - walk_to_pad 0x013b - label 0x2f + label(0x2f) + say_quip(FOLLOW_CHR, 0x08, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00) + label(0x06) + if_chr_distance_to_pad_lt(CHR_SELF, 100, 0x013b, /*goto*/ 0x2f) + walk_to_pad(0x013b) + label(0x2f) restart_timer - beginloop 0x09 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x0c - if_near_miss /*goto*/ 0x0c - if_num_times_shot_gt 0, /*goto*/ 0x0c - if_shot_near_chr 0x00, /*goto*/ 0x0c - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x0c - if_timer_gt 180, /*goto*/ 0x06 - endloop 0x09 + beginloop(0x09) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x0c) + if_near_miss(/*goto*/ 0x0c) + if_num_times_shot_gt(0, /*goto*/ 0x0c) + if_shot_near_chr(0x00, /*goto*/ 0x0c) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x0c) + if_timer_gt(180, /*goto*/ 0x06) + endloop(0x09) - label 0x06 + label(0x06) restart_timer - beginloop 0x0a - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x0c - if_near_miss /*goto*/ 0x0c - if_num_times_shot_gt 0, /*goto*/ 0x0c - if_shot_near_chr 0x00, /*goto*/ 0x0c - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x0c - if_timer_gt 300, /*goto*/ 0x06 - endloop 0x0a + beginloop(0x0a) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x0c) + if_near_miss(/*goto*/ 0x0c) + if_num_times_shot_gt(0, /*goto*/ 0x0c) + if_shot_near_chr(0x00, /*goto*/ 0x0c) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x0c) + if_timer_gt(300, /*goto*/ 0x06) + endloop(0x0a) - label 0x06 - goto_first 0x03 + label(0x06) + goto_first(0x03) - label 0x0c - set_function CHR_SELF, GFUNC_UNALERTED + label(0x0c) + set_function(CHR_SELF, GFUNC_UNALERTED) endfunction +}; -func0403_k7_scientist: - beginloop 0x14 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_in_room TARGET_CHR, 0x00, 0x0035, /*goto*/ 0x03 - if_chr_in_room TARGET_CHR, 0x00, 0x0036, /*goto*/ 0x03 - if_chr_in_room TARGET_CHR, 0x00, 0x0037, /*goto*/ 0x03 - if_chr_in_room TARGET_CHR, 0x00, 0x003a, /*goto*/ 0x03 - endloop 0x14 +u8 func0403_k7_scientist[] = { + beginloop(0x14) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_in_room(TARGET_CHR, 0x00, 0x0035, /*goto*/ 0x03) + if_chr_in_room(TARGET_CHR, 0x00, 0x0036, /*goto*/ 0x03) + if_chr_in_room(TARGET_CHR, 0x00, 0x0037, /*goto*/ 0x03) + if_chr_in_room(TARGET_CHR, 0x00, 0x003a, /*goto*/ 0x03) + endloop(0x14) - label 0x03 + label(0x03) stop_chr restart_timer - beginloop 0x08 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x0c - if_near_miss /*goto*/ 0x0c - if_num_times_shot_gt 0, /*goto*/ 0x0c - if_shot_near_chr 0x00, /*goto*/ 0x0c - if_saw_death 0x00, /*goto*/ 0x0c - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x0c + beginloop(0x08) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x0c) + if_near_miss(/*goto*/ 0x0c) + if_num_times_shot_gt(0, /*goto*/ 0x0c) + if_shot_near_chr(0x00, /*goto*/ 0x0c) + if_saw_death(0x00, /*goto*/ 0x0c) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x0c) call_rng - if_rand_lt 1, /*goto*/ 0x06 - endloop 0x08 + if_rand_lt(1, /*goto*/ 0x06) + endloop(0x08) - label 0x06 + label(0x06) call_rng - if_rand_lt 64, /*goto*/ 0x09 - if_rand_lt 128, /*goto*/ 0x0a - if_rand_lt 196, /*goto*/ 0x0b - animation ANIM_GRAB_CROTCH, 0, -1, 0x1010, CHR_SELF, 2 - goto_next 0x0f - label 0x09 - animation ANIM_YAWN, 0, -1, 0x1010, CHR_SELF, 2 - goto_next 0x0f - label 0x0a - animation ANIM_ROLL_HEAD, 0, -1, 0x1010, CHR_SELF, 2 - goto_next 0x0f - label 0x0b - animation ANIM_GRAB_BUTT, 0, -1, 0x1010, CHR_SELF, 2 - goto_next 0x0f + if_rand_lt(64, /*goto*/ 0x09) + if_rand_lt(128, /*goto*/ 0x0a) + if_rand_lt(196, /*goto*/ 0x0b) + animation(ANIM_GRAB_CROTCH, 0, -1, 0x1010, CHR_SELF, 2) + goto_next(0x0f) + label(0x09) + animation(ANIM_YAWN, 0, -1, 0x1010, CHR_SELF, 2) + goto_next(0x0f) + label(0x0a) + animation(ANIM_ROLL_HEAD, 0, -1, 0x1010, CHR_SELF, 2) + goto_next(0x0f) + label(0x0b) + animation(ANIM_GRAB_BUTT, 0, -1, 0x1010, CHR_SELF, 2) + goto_next(0x0f) - beginloop 0x0f - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_target_chr_in_sight /*goto*/ 0x0c - if_near_miss /*goto*/ 0x0c - if_num_times_shot_gt 0, /*goto*/ 0x0c - if_shot_near_chr 0x00, /*goto*/ 0x0c - if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x0c - if_chr_stopped /*goto*/ 0x2f - endloop 0x0f + beginloop(0x0f) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x0c) + if_near_miss(/*goto*/ 0x0c) + if_num_times_shot_gt(0, /*goto*/ 0x0c) + if_shot_near_chr(0x00, /*goto*/ 0x0c) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x0c) + if_chr_stopped(/*goto*/ 0x2f) + endloop(0x0f) - label 0x2f - goto_first 0x03 + label(0x2f) + goto_first(0x03) - label 0x0c - assign_sound 0x128f, CHANNEL_6 - play_sound_from_entity CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01 - set_group_alertness 100 - jog_to_pad 0x0133 + label(0x0c) + assign_sound(0x128f, CHANNEL_6) + play_sound_from_entity(CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01) + set_group_alertness(100) + jog_to_pad(0x0133) - beginloop 0x0d - if_chr_stopped /*goto*/ 0x10 - endloop 0x0d + beginloop(0x0d) + if_chr_stopped(/*goto*/ 0x10) + endloop(0x0d) - label 0x10 - animation ANIM_COWER_0229, -1, -1, 0x100a, CHR_SELF, 2 + label(0x10) + animation(ANIM_COWER_0229, -1, -1, 0x100a, CHR_SELF, 2) - beginloop 0x0e - if_chr_stopped /*goto*/ 0x2f - endloop 0x0e + beginloop(0x0e) + if_chr_stopped(/*goto*/ 0x2f) + endloop(0x0e) - label 0x2f - goto_first 0x10 + label(0x2f) + goto_first(0x10) endfunction +}; -func1016_setup_drcaroll: - set_chr_flag_bank3 CHR_DRCAROLL, CHRFLAG3_HIDDEN - set_function CHR_DRCAROLL, GFUNC_INVINCIBLE_AND_IDLE - set_function CHR_SELF, GFUNC_IDLE +u8 func1016_setup_drcaroll[] = { + set_chr_flag_bank3(CHR_DRCAROLL, CHRFLAG3_HIDDEN) + set_function(CHR_DRCAROLL, GFUNC_INVINCIBLE_AND_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func040a_init_basic_guard: - set_chr_dodge_rating 2, 0x0a - set_accuracy 1 - set_reaction_speed 20 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, GFUNC_UNALERTED +u8 func040a_init_basic_guard[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(1) + set_reaction_speed(20) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, GFUNC_UNALERTED) endfunction +}; -func040b_init_shock_guard: - set_chr_dodge_rating 2, 0x0a - set_accuracy 11 - set_reaction_speed 20 - set_chr_health CHR_SELF, 40 - set_armor 0 - set_recovery_speed 10 - set_shield 0 - set_function CHR_SELF, GFUNC_UNALERTED +u8 func040b_init_shock_guard[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(11) + set_reaction_speed(20) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(10) + set_shield(0) + set_function(CHR_SELF, GFUNC_UNALERTED) endfunction +}; -func1019_msg_securitysector: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0052, /*goto*/ 0x2f - endloop 0x04 +u8 func1019_msg_securitysector[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0052, /*goto*/ 0x2f) + endloop(0x04) - label 0x2f - speak CHR_P1P2, 0x1e5e, 0x8173, CHANNEL_6, COLOR_09_BLUE // "That's the highest security sector - Dr. Caroll ha..." - set_function CHR_SELF, GFUNC_IDLE + label(0x2f) + speak(CHR_P1P2, 0x1e5e, 0x8173, CHANNEL_6, COLOR_09_BLUE) // "That's the highest security sector - Dr. Caroll ha..." + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func101a_msg_lotofpower: - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0031, /*goto*/ 0x2f - if_chr_in_room CHR_P1P2, 0x00, 0x0042, /*goto*/ 0x2f - endloop 0x04 +u8 func101a_msg_lotofpower[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0031, /*goto*/ 0x2f) + if_chr_in_room(CHR_P1P2, 0x00, 0x0042, /*goto*/ 0x2f) + endloop(0x04) - label 0x2f - speak CHR_P1P2, 0x1e5f, 0x73a5, CHANNEL_6, COLOR_09_BLUE // "Something around here's using a lot of power." - set_function CHR_SELF, GFUNC_IDLE + label(0x2f) + speak(CHR_P1P2, 0x1e5f, 0x73a5, CHANNEL_6, COLOR_09_BLUE) // "Something around here's using a lot of power." + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func101b_msg_reprogram: - if_difficulty_lt DIFF_SA, /*goto*/ 0x08 +u8 func101b_msg_reprogram[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x08) - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0026, /*goto*/ 0x2f - if_chr_in_room CHR_P1P2, 0x00, 0x0024, /*goto*/ 0x2f - endloop 0x04 + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0026, /*goto*/ 0x2f) + if_chr_in_room(CHR_P1P2, 0x00, 0x0024, /*goto*/ 0x2f) + endloop(0x04) - label 0x2f - speak CHR_P1P2, 0x1e60, 0x8174, CHANNEL_6, COLOR_09_BLUE // "Reprogram that cleaning bot - it'll give you a way..." - label 0x08 - set_function CHR_SELF, GFUNC_IDLE + label(0x2f) + speak(CHR_P1P2, 0x1e60, 0x8174, CHANNEL_6, COLOR_09_BLUE) // "Reprogram that cleaning bot - it'll give you a way..." + label(0x08) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func101c_msg_radioactive: - beginloop 0x04 - if_objective_complete 0, /*goto*/ 0x06 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0014, /*goto*/ 0x2f - endloop 0x04 +u8 func101c_msg_radioactive[] = { + beginloop(0x04) + if_objective_complete(0, /*goto*/ 0x06) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0014, /*goto*/ 0x2f) + endloop(0x04) - label 0x2f - speak CHR_P1P2, 0x1e61, 0x8175, CHANNEL_6, COLOR_09_BLUE // "Get out, Jo! The levels are too high. Use the CamS..." - label 0x06 - set_function CHR_SELF, GFUNC_IDLE + label(0x2f) + speak(CHR_P1P2, 0x1e61, 0x8175, CHANNEL_6, COLOR_09_BLUE) // "Get out, Jo! The levels are too high. Use the CamS..." + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func101e_unlock_drcaroll_door: - beginloop 0x04 - if_objective_complete 0, /*goto*/ 0x2f - reloop 0x04 +u8 func101e_unlock_drcaroll_door[] = { + beginloop(0x04) + if_objective_complete(0, /*goto*/ 0x2f) + reloop(0x04) - label 0x2f - if_difficulty_lt DIFF_SA, /*goto*/ 0x06 - if_objective_complete 1, /*goto*/ 0x2f - reloop 0x04 + label(0x2f) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x06) + if_objective_complete(1, /*goto*/ 0x2f) + reloop(0x04) - label 0x2f - if_objective_complete 2, /*goto*/ 0x2f - reloop 0x04 + label(0x2f) + if_objective_complete(2, /*goto*/ 0x2f) + reloop(0x04) - label 0x2f - if_difficulty_lt DIFF_PA, /*goto*/ 0x06 - if_objective_complete 3, /*goto*/ 0x06 - endloop 0x04 + label(0x2f) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x06) + if_objective_complete(3, /*goto*/ 0x06) + endloop(0x04) - label 0x06 - unlock_door 0x26, 0x40 - unlock_door 0x5a, 0x40 - set_function CHR_SELF, GFUNC_IDLE + label(0x06) + unlock_door(0x26, 0x40) + unlock_door(0x5a, 0x40) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func101f_check_bot_destroyed: - beginloop 0x04 - if_object_in_good_condition OBJ_PURPLEBOT, /*goto*/ 0x2f - goto_next 0x08 - label 0x2f - endloop 0x04 +u8 func101f_check_bot_destroyed[] = { + beginloop(0x04) + if_object_in_good_condition(OBJ_PURPLEBOT, /*goto*/ 0x2f) + goto_next(0x08) + label(0x2f) + endloop(0x04) // 0x32 is a laser - beginloop 0x08 - if_door_state 0x32, DOORSTATE_CLOSED, /*goto*/ 0x2f - endloop 0x08 + beginloop(0x08) + if_door_state(0x32, DOORSTATE_CLOSED, /*goto*/ 0x2f) + endloop(0x08) - label 0x2f - if_chr_in_room CHR_JOANNA, 0x00, 0x004d, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x004e, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x004f, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x0050, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x0051, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x0052, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x0053, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x0054, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x0055, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x0056, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x0057, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x0058, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x0059, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x005a, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x005b, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x005c, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x005d, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x005e, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x005f, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x0061, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x0062, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x0063, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x006c, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x006b, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x0069, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x0068, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x006d, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x006e, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x0064, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x0065, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x0066, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x0060, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x0067, /*goto*/ 0x06 - if_chr_in_room CHR_JOANNA, 0x00, 0x006a, /*goto*/ 0x06 + label(0x2f) + if_chr_in_room(CHR_JOANNA, 0x00, 0x004d, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x004e, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x004f, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0050, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0051, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0052, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0053, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0054, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0055, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0056, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0057, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0058, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0059, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x005a, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x005b, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x005c, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x005d, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x005e, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x005f, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0061, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0062, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0063, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x006c, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x006b, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0069, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0068, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x006d, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x006e, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0064, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0065, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0066, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0060, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0067, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x006a, /*goto*/ 0x06) - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x0b - if_chr_in_room CHR_VELVET, 0x00, 0x004d, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x004e, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x004f, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x0050, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x0051, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x0052, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x0053, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x0054, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x0055, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x0056, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x0057, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x0058, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x0059, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x005a, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x005b, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x005c, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x005d, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x005e, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x005f, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x0061, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x0062, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x0063, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x006c, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x006b, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x0069, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x0068, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x006d, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x006e, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x0064, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x0065, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x0066, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x0060, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x0067, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x006a, /*goto*/ 0x06 + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x0b) + if_chr_in_room(CHR_VELVET, 0x00, 0x004d, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x004e, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x004f, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x0050, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x0051, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x0052, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x0053, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x0054, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x0055, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x0056, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x0057, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x0058, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x0059, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x005a, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x005b, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x005c, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x005d, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x005e, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x005f, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x0061, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x0062, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x0063, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x006c, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x006b, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x0069, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x0068, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x006d, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x006e, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x0064, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x0065, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x0066, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x0060, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x0067, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x006a, /*goto*/ 0x06) - label 0x0b - message CHR_JOANNA, 0x1e16 // "Critical mission object destroyed." - set_stage_flag STAGEFLAG_00000008 - set_stage_flag STAGEFLAG_00000004 - if_stage_flag_eq STAGEFLAG_HAS_K7AVENGER, TRUE, /*goto*/ 0x2f - set_stage_flag STAGEFLAG_ITEMS_UNCOLLECTABLE - label 0x2f - if_stage_flag_eq STAGEFLAG_HAS_NIGHTVISION, TRUE, /*goto*/ 0x2f - set_stage_flag STAGEFLAG_ITEMS_UNCOLLECTABLE - label 0x2f - set_function CHR_SELF, GFUNC_IDLE + label(0x0b) + message(CHR_JOANNA, 0x1e16) // "Critical mission object destroyed." + set_stage_flag(STAGEFLAG_00000008) + set_stage_flag(STAGEFLAG_00000004) + if_stage_flag_eq(STAGEFLAG_HAS_K7AVENGER, TRUE, /*goto*/ 0x2f) + set_stage_flag(STAGEFLAG_ITEMS_UNCOLLECTABLE) + label(0x2f) + if_stage_flag_eq(STAGEFLAG_HAS_NIGHTVISION, TRUE, /*goto*/ 0x2f) + set_stage_flag(STAGEFLAG_ITEMS_UNCOLLECTABLE) + label(0x2f) + set_function(CHR_SELF, GFUNC_IDLE) - label 0x06 - if_objective_complete 0, /*goto*/ 0x2f - goto_first 0x0b + label(0x06) + if_objective_complete(0, /*goto*/ 0x2f) + goto_first(0x0b) - label 0x2f - if_difficulty_lt DIFF_SA, /*goto*/ 0x2f - if_objective_complete 2, /*goto*/ 0x2f - goto_first 0x0b + label(0x2f) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2f) + if_objective_complete(2, /*goto*/ 0x2f) + goto_first(0x0b) - label 0x2f - if_difficulty_lt DIFF_PA, /*goto*/ 0x0d - if_chr_has_object CHR_JOANNA, OBJ_K7AVENGER, /*goto*/ 0x2f - if_chr_has_object CHR_VELVET, OBJ_K7AVENGER, /*goto*/ 0x2f - goto_first 0x0b + label(0x2f) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x0d) + if_chr_has_object(CHR_JOANNA, OBJ_K7AVENGER, /*goto*/ 0x2f) + if_chr_has_object(CHR_VELVET, OBJ_K7AVENGER, /*goto*/ 0x2f) + goto_first(0x0b) - label 0x2f - if_chr_has_object CHR_JOANNA, OBJ_NIGHTVISION, /*goto*/ 0x2f - if_chr_has_object CHR_VELVET, OBJ_NIGHTVISION, /*goto*/ 0x2f - label 0x0d - set_function CHR_SELF, GFUNC_IDLE + label(0x2f) + if_chr_has_object(CHR_JOANNA, OBJ_NIGHTVISION, /*goto*/ 0x2f) + if_chr_has_object(CHR_VELVET, OBJ_NIGHTVISION, /*goto*/ 0x2f) + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1020_lock_agent_doors: - label 0x04 +u8 func1020_lock_agent_doors[] = { + label(0x04) yield - if_difficulty_gt DIFF_A, /*goto*/ 0x2f - lock_door 0x5b, 0x08 - lock_door 0x5c, 0x08 - lock_door 0x5d, 0x08 - lock_door 0x5e, 0x08 - lock_door 0x5f, 0x08 - label 0x2f - set_function CHR_SELF, GFUNC_IDLE + if_difficulty_gt(DIFF_A, /*goto*/ 0x2f) + lock_door(0x5b, 0x08) + lock_door(0x5c, 0x08) + lock_door(0x5d, 0x08) + lock_door(0x5e, 0x08) + lock_door(0x5f, 0x08) + label(0x2f) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1022_setup_rtracker: +u8 func1022_setup_rtracker[] = { yield - set_object_flag_bank2 OBJ_CMP150_1, OBJECTFLAG2_RTRACKED_BLUE - set_object_flag_bank2 OBJ_CMP150_2, OBJECTFLAG2_RTRACKED_BLUE - set_object_flag_bank2 OBJ_PROXYMINES, OBJECTFLAG2_RTRACKED_BLUE - set_function CHR_SELF, GFUNC_IDLE + set_object_flag_bank2(OBJ_CMP150_1, OBJECTFLAG2_RTRACKED_BLUE) + set_object_flag_bank2(OBJ_CMP150_2, OBJECTFLAG2_RTRACKED_BLUE) + set_object_flag_bank2(OBJ_PROXYMINES, OBJECTFLAG2_RTRACKED_BLUE) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1423_setup_lighting: +u8 func1423_setup_lighting[] = { yield - set_lighting 0x0000, 0x00, 0x00 - set_lighting 0x0000, 0x01, 0x00 - set_lighting 0x0000, 0x02, 0x00 - set_lighting 0x0000, 0x03, 0x00 - set_lighting 0x0000, 0x04, 0x00 - set_lighting 0x0001, 0x05, 0x01 - set_lighting 0x0006, 0x05, 0x01 - set_lighting 0x0007, 0x05, 0x01 - set_lighting 0x0014, 0x05, 0x01 - set_lighting 0x0015, 0x05, 0x01 - set_lighting 0x0016, 0x05, 0x01 - set_lighting 0x0017, 0x05, 0x01 - set_lighting 0x0018, 0x05, 0x01 - set_lighting 0x0019, 0x05, 0x01 - set_lighting 0x001a, 0x05, 0x01 - set_lighting 0x0023, 0x05, 0x01 - set_lighting 0x0024, 0x05, 0x01 - set_lighting 0x0025, 0x05, 0x01 - set_lighting 0x0026, 0x05, 0x01 - set_lighting 0x0027, 0x05, 0x01 - set_lighting 0x0028, 0x05, 0x01 - set_lighting 0x0029, 0x05, 0x01 - set_lighting 0x0031, 0x05, 0x01 - set_lighting 0x0032, 0x05, 0x01 - set_lighting 0x0034, 0x05, 0x01 - set_lighting 0x0035, 0x05, 0x01 - set_lighting 0x0036, 0x05, 0x01 - set_lighting 0x003e, 0x05, 0x01 - set_lighting 0x003f, 0x05, 0x01 - set_lighting 0x0042, 0x05, 0x01 - set_lighting 0x0043, 0x05, 0x01 - set_lighting 0x0044, 0x05, 0x01 - set_lighting 0x0045, 0x05, 0x01 - set_lighting 0x0046, 0x05, 0x01 - set_lighting 0x005e, 0x05, 0x01 - set_lighting 0x005f, 0x05, 0x01 - set_lighting 0x0060, 0x05, 0x01 - set_lighting 0x0064, 0x05, 0x01 - set_lighting 0x0065, 0x05, 0x01 - set_lighting 0x0066, 0x05, 0x01 - set_lighting 0x0067, 0x05, 0x01 - set_lighting 0x0069, 0x05, 0x01 - set_lighting 0x006a, 0x05, 0x01 - set_function CHR_SELF, GFUNC_IDLE + set_lighting(0x0000, 0x00, 0x00) + set_lighting(0x0000, 0x01, 0x00) + set_lighting(0x0000, 0x02, 0x00) + set_lighting(0x0000, 0x03, 0x00) + set_lighting(0x0000, 0x04, 0x00) + set_lighting(0x0001, 0x05, 0x01) + set_lighting(0x0006, 0x05, 0x01) + set_lighting(0x0007, 0x05, 0x01) + set_lighting(0x0014, 0x05, 0x01) + set_lighting(0x0015, 0x05, 0x01) + set_lighting(0x0016, 0x05, 0x01) + set_lighting(0x0017, 0x05, 0x01) + set_lighting(0x0018, 0x05, 0x01) + set_lighting(0x0019, 0x05, 0x01) + set_lighting(0x001a, 0x05, 0x01) + set_lighting(0x0023, 0x05, 0x01) + set_lighting(0x0024, 0x05, 0x01) + set_lighting(0x0025, 0x05, 0x01) + set_lighting(0x0026, 0x05, 0x01) + set_lighting(0x0027, 0x05, 0x01) + set_lighting(0x0028, 0x05, 0x01) + set_lighting(0x0029, 0x05, 0x01) + set_lighting(0x0031, 0x05, 0x01) + set_lighting(0x0032, 0x05, 0x01) + set_lighting(0x0034, 0x05, 0x01) + set_lighting(0x0035, 0x05, 0x01) + set_lighting(0x0036, 0x05, 0x01) + set_lighting(0x003e, 0x05, 0x01) + set_lighting(0x003f, 0x05, 0x01) + set_lighting(0x0042, 0x05, 0x01) + set_lighting(0x0043, 0x05, 0x01) + set_lighting(0x0044, 0x05, 0x01) + set_lighting(0x0045, 0x05, 0x01) + set_lighting(0x0046, 0x05, 0x01) + set_lighting(0x005e, 0x05, 0x01) + set_lighting(0x005f, 0x05, 0x01) + set_lighting(0x0060, 0x05, 0x01) + set_lighting(0x0064, 0x05, 0x01) + set_lighting(0x0065, 0x05, 0x01) + set_lighting(0x0066, 0x05, 0x01) + set_lighting(0x0067, 0x05, 0x01) + set_lighting(0x0069, 0x05, 0x01) + set_lighting(0x006a, 0x05, 0x01) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1424_start_lift: - activate_lift 1, 0x60 - set_function CHR_SELF, GFUNC_IDLE +u8 func1424_start_lift[] = { + activate_lift(1, 0x60) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -functions: - register_function func0401_init_chr_with_flag 0x0401 - register_function func0402_k7_guard 0x0402 - register_function func0403_k7_scientist 0x0403 - register_function func0404_scientist 0x0404 - register_function func0405_init_scientist 0x0405 - register_function func0406_nasty_scientist 0x0406 - register_function func0407_init_nasty_scientist 0x0407 - register_function func0408_alarm_responder 0x0408 - register_function func0409_uplink_responder 0x0409 - register_function func040a_init_basic_guard 0x040a - register_function func040b_init_shock_guard 0x040b - register_function func040c_start_path00 0x040c - register_function func040d_start_path01 0x040d - register_function func040e_start_path02 0x040e - register_function func040f_start_path03 0x040f - register_function func0410_start_path04 0x0410 - register_function func0411_yellowbot 0x0411 - register_function func0412_purplebot_programs 0x0412 - register_function func0413_purplebot_at_lasers 0x0413 - register_function func0415_radioactivity 0x0415 +struct ailists functions[] = { + { func0401_init_chr_with_flag, 0x0401 }, + { func0402_k7_guard, 0x0402 }, + { func0403_k7_scientist, 0x0403 }, + { func0404_scientist, 0x0404 }, + { func0405_init_scientist, 0x0405 }, + { func0406_nasty_scientist, 0x0406 }, + { func0407_init_nasty_scientist, 0x0407 }, + { func0408_alarm_responder, 0x0408 }, + { func0409_uplink_responder, 0x0409 }, + { func040a_init_basic_guard, 0x040a }, + { func040b_init_shock_guard, 0x040b }, + { func040c_start_path00, 0x040c }, + { func040d_start_path01, 0x040d }, + { func040e_start_path02, 0x040e }, + { func040f_start_path03, 0x040f }, + { func0410_start_path04, 0x0410 }, + { func0411_yellowbot, 0x0411 }, + { func0412_purplebot_programs, 0x0412 }, + { func0413_purplebot_at_lasers, 0x0413 }, + { func0415_radioactivity, 0x0415 }, + { func1400_setup_counterop, 0x1400 }, + { func1001_objectives_failed_msg, 0x1001 }, + { func1002_bot_activation_terminal, 0x1002 }, + { func1003_bot_programming_terminal, 0x1003 }, + { func1004_check_items_collected, 0x1004 }, + { func1005_check_unacceptable_casualties, 0x1005 }, + { func1006_terminal_activation, 0x1006 }, + { func1007_uplink, 0x1007 }, + { func1008_check_bot_terminals_destroyed, 0x1008 }, + { func1009_weaponscache, 0x1009 }, + { func100a_spawn_alarm_responders, 0x100a }, + { func100b_check_uplink_pc_destroyed, 0x100b }, + { func100c_shuffle_terminals, 0x100c }, + { func100e_experiment_terminals_destroyed, 0x100e }, + { func100f_check_for_end_level, 0x100f }, + { func1010_intro_from_menu, 0x1010 }, + { func1011_spawn_guards_during_uplink, 0x1011 }, + { func1012_start_laser_sound, 0x1012 }, + { func1013_hatch_pc, 0x1013 }, + { func1014_jo_radioactivity, 0x1014 }, + { func1415_outro_audio, 0x1415 }, + { func1016_setup_drcaroll, 0x1016 }, + { func1018_item_pickup_messages, 0x1018 }, + { func1019_msg_securitysector, 0x1019 }, + { func101a_msg_lotofpower, 0x101a }, + { func101b_msg_reprogram, 0x101b }, + { func101c_msg_radioactive, 0x101c }, + { func101d_velvet_radioactivty, 0x101d }, + { func101e_unlock_drcaroll_door, 0x101e }, + { func101f_check_bot_destroyed, 0x101f }, + { func1020_lock_agent_doors, 0x1020 }, + { func1021_counterop_radioactivity, 0x1021 }, + { func1022_setup_rtracker, 0x1022 }, + { func1423_setup_lighting, 0x1423 }, + { func1424_start_lift, 0x1424 }, + { func0414_walk_3_pads, 0x0414 }, + { func0416_intro, 0x0416 }, + { func0417_outro, 0x0417 }, + { func1010_intro_from_menu, 0x0c00 }, + { func0417_outro_from_menu, 0x0c01 }, + { NULL, 0 }, +}; - register_function func1400_setup_counterop 0x1400 - register_function func1001_objectives_failed_msg 0x1001 - register_function func1002_bot_activation_terminal 0x1002 - register_function func1003_bot_programming_terminal 0x1003 - register_function func1004_check_items_collected 0x1004 - register_function func1005_check_unacceptable_casualties 0x1005 - register_function func1006_terminal_activation 0x1006 - register_function func1007_uplink 0x1007 - register_function func1008_check_bot_terminals_destroyed 0x1008 - register_function func1009_weaponscache 0x1009 - register_function func100a_spawn_alarm_responders 0x100a - register_function func100b_check_uplink_pc_destroyed 0x100b - register_function func100c_shuffle_terminals 0x100c - register_function func100e_experiment_terminals_destroyed 0x100e - register_function func100f_check_for_end_level 0x100f - register_function func1010_intro_from_menu 0x1010 - register_function func1011_spawn_guards_during_uplink 0x1011 - register_function func1012_start_laser_sound 0x1012 - register_function func1013_hatch_pc 0x1013 - register_function func1014_jo_radioactivity 0x1014 - register_function func1415_outro_audio 0x1415 - register_function func1016_setup_drcaroll 0x1016 - register_function func1018_item_pickup_messages 0x1018 - register_function func1019_msg_securitysector 0x1019 - register_function func101a_msg_lotofpower 0x101a - register_function func101b_msg_reprogram 0x101b - register_function func101c_msg_radioactive 0x101c - register_function func101d_velvet_radioactivty 0x101d - register_function func101e_unlock_drcaroll_door 0x101e - register_function func101f_check_bot_destroyed 0x101f - register_function func1020_lock_agent_doors 0x1020 - register_function func1021_counterop_radioactivity 0x1021 - register_function func1022_setup_rtracker 0x1022 - register_function func1423_setup_lighting 0x1423 - register_function func1424_start_lift 0x1424 - register_function func0414_walk_3_pads 0x0414 - register_function func0416_intro 0x0416 - register_function func0417_outro 0x0417 +struct aipaths paths[] = { + { path00, 0, 0 }, + { path01, 1, 0 }, + { path02, 2, 0 }, + { path03, 3, 0 }, + { path04, 4, 0 }, + { path05, 5, 0 }, + { path06, 6, 0 }, + { path07, 7, 0 }, + { path08, 8, 0 }, + { path09, 9, 0 }, + { path10, 10, 1 }, + { path11, 11, 0 }, + { path12, 12, 0 }, + { path13, 13, 0 }, + { NULL, 0, 0 }, +}; - register_function func1010_intro_from_menu 0x0c00 - register_function func0417_outro_from_menu 0x0c01 - endfunctions - -paths: - register_path path00, 0, 0 - register_path path01, 1, 0 - register_path path02, 2, 0 - register_path path03, 3, 0 - register_path path04, 4, 0 - register_path path05, 5, 0 - register_path path06, 6, 0 - register_path path07, 7, 0 - register_path path08, 8, 0 - register_path path09, 9, 0 - register_path path10, 10, 1 - register_path path11, 11, 0 - register_path path12, 12, 0 - register_path path13, 13, 0 - endpaths - -.align 4 diff --git a/src/setup/setupeld.c b/src/setup/setupeld.c new file mode 100644 index 000000000..f7e9e4f84 --- /dev/null +++ b/src/setup/setupeld.c @@ -0,0 +1,3282 @@ +// +// Villa +// + +#include "../include/setup.h" + +// Characters +#define CHR_SNIPER1 0x00 +#define CHR_SNIPER2 0x01 +#define CHR_SNIPER3 0x02 +#define CHR_SNIPER4 0x03 +#define CHR_SNIPER5 0x04 +#define CHR_SNIPER6 0x05 +#define CHR_SNIPER7 0x06 +#define CHR_SNIPER8 0x07 +#define CHR_BASEMENT1 0x43 +#define CHR_BASEMENT2 0x44 +#define CHR_BASEMENT3 0x45 +#define CHR_BASEMENT4 0x46 +#define CHR_BASEMENT5 0x47 +#define CHR_BASEMENT6 0x48 +#define CHR_BASEMENT7 0x49 +#define CHR_BASEMENT8 0x4a +#define CHR_BASEMENT9 0x4b +#define CHR_TAKER1 0x4e +#define CHR_TAKER2 0x4f +#define CHR_NEGOTIATOR 0x50 +#define CHR_CARRINGTON 0x51 +#define CHR_HACKER1 0x52 +#define CHR_HACKER2 0x53 +#define CHR_HACKER3 0x54 +#define CHR_CISOLDIER 0x55 + +// Objects +#define OBJ_DROPSHIP 0x00 +#define OBJ_COOLING_SWITCH 0x03 +#define OBJ_POWER_SWITCH 0x04 +#define OBJ_WINDMILL_SWITCH 0x05 +#define OBJ_KEYCARD 0x0a +#define OBJ_HACKERPC1 0x0b +#define OBJ_HACKERPC2 0x0c +#define OBJ_HACKERPC3 0x0d +#define OBJ_HACKERPC4 0x0e +#define OBJ_WINDMILL 0x0f +#define OBJ_CMP150_1 0x8e +#define OBJ_CMP150_2 0x8f +#define OBJ_DEVASTATOR 0x99 + +// Stage flags +#define STAGEFLAG_NEGOTIATOR_DEAD 0x00000100 +#define STAGEFLAG_NEGOTIATOR_ESCAPED 0x00000200 +#define STAGEFLAG_SNIPERS_DEAD 0x00000400 +#define STAGEFLAG_COOLING_ACTIVE 0x00000800 +#define STAGEFLAG_POWER_ACTIVE 0x00001000 +#define STAGEFLAG_WINDMILL_ACTIVATED 0x00002000 +#define STAGEFLAG_WINDMILL_SWITCH_DESTROYED 0x00004000 +#define STAGEFLAG_HACKERS_DEAD 0x00008000 +#define STAGEFLAG_HACKERS_SUCCEEDED 0x00010000 +#define STAGEFLAG_CARRINGTON_RESCUED 0x00020000 +#define STAGEFLAG_TAKERS_DEAD 0x00080000 +#define STAGEFLAG_GUARD_CAPTURED 0x00100000 +#define STAGEFLAG_HACKER_PC_DESTROYED 0x00200000 +#define STAGEFLAG_HACKERS_STARTED 0x00400000 +#define STAGEFLAG_INTRO_FINISHED 0x00800000 +#define STAGEFLAG_ONE_BASEMENT_GUARD_REMAINING 0x01000000 +#define STAGEFLAG_PLAYING_INTRO_FROM_MENU 0x02000000 +#define STAGEFLAG_FORGOT_TO_KO_GUARD 0x04000000 + +// Functions +#define FUNC_INIT_TAKER 0x0401 +#define FUNC_TAKER 0x0402 +#define FUNC_NEGOTIATOR 0x0403 +#define FUNC_SNIPER 0x0404 +#define FUNC_HACKER 0x0405 +#define FUNC_INIT_HACKER 0x0406 +#define FUNC_INIT_SNIPER 0x0407 +#define FUNC_OUTRO 0x0408 +#define FUNC_INTRO 0x0409 +#define FUNC_ENABLE_SNIPER 0x040a +#define FUNC_INIT_BASEMENT_GUARD 0x040b +#define FUNC_INIT_TYPE1_GUARD 0x040c +#define FUNC_INIT_TYPE2_GUARD 0x040d // has better accuracy on PA +#define FUNC_PATH01 0x040e +#define FUNC_PATH02 0x040f +#define FUNC_CARRINGTON 0x0410 +#define FUNC_CISOLIDER 0x0411 + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + briefing(0, 0x2001) + briefing(1, 0x2000) + briefing(2, 0x2002) + briefing(3, 0x2003) + + beginobjective(0, 0x2005, (DIFFBIT_A | DIFFBIT_SA)) // "Save the negotiator" + complete_flags(STAGEFLAG_NEGOTIATOR_ESCAPED) + fail_flags(STAGEFLAG_NEGOTIATOR_DEAD) + endobjective + + beginobjective(1, 0x2006, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Eliminate rooftop snipers" + complete_flags(STAGEFLAG_SNIPERS_DEAD) + endobjective + + beginobjective(2, 0x2007, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Activate wind generator" + complete_flags(STAGEFLAG_WINDMILL_ACTIVATED) + fail_flags(STAGEFLAG_WINDMILL_SWITCH_DESTROYED) + endobjective + + beginobjective(3, 0x2008, (DIFFBIT_PA | DIFFBIT_PD)) // "Locate and eliminate dataDyne hackers" + complete_flags(STAGEFLAG_HACKERS_DEAD) + fail_flags(STAGEFLAG_HACKERS_SUCCEEDED) + fail_flags(STAGEFLAG_HACKER_PC_DESTROYED) + endobjective + + beginobjective(4, 0x200a, (DIFFBIT_PA | DIFFBIT_PD)) // "Capture dataDyne guard" + complete_flags(STAGEFLAG_GUARD_CAPTURED) + fail_flags(STAGEFLAG_FORGOT_TO_KO_GUARD) + endobjective + + beginobjective(5, 0x2009, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Rescue Carrington" + complete_flags(STAGEFLAG_CARRINGTON_RESCUED) + endobjective + + // Note these snipers are replaced with new ones further below. + chr(0x00000061, 0x00, 0x0192, BODY_DDSNIPER, HEAD_DDSNIPER, FUNC_INIT_SNIPER, -1, -1, 500, 40, 0x00004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSNIPERRIFLE, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000) + chr(0x00000061, 0x01, 0x0193, BODY_DDSNIPER, HEAD_DDSNIPER, FUNC_INIT_SNIPER, -1, -1, 500, 40, 0x00004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSNIPERRIFLE, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000) + chr(0x00000061, 0x02, 0x0194, BODY_DDSNIPER, HEAD_DDSNIPER, FUNC_INIT_SNIPER, -1, -1, 500, 40, 0x00004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSNIPERRIFLE, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000) + chr(0x00000061, 0x05, 0x0197, BODY_DDSNIPER, HEAD_DDSNIPER, FUNC_INIT_SNIPER, -1, -1, 500, 40, 0x00004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSNIPERRIFLE, 0x0005, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000) + chr(0x00000061, 0x06, 0x0198, BODY_DDSNIPER, HEAD_RANDOM, FUNC_INIT_SNIPER, -1, -1, 500, 40, 0x00004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSNIPERRIFLE, 0x0006, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000) + + tag(0x8e, 2) + tag(0x8f, 2) + weapon(0x0100, MODEL_CHRCMP150, 0x019a, 0x00100000, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x019a, 0x00100000, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + link_collectibles(-1, -2) + + chr(0x00000001, 0x04, 0x0196, BODY_DDSNIPER, HEAD_DDSNIPER, FUNC_INIT_SNIPER, -1, -1, 500, 40, 0x00004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSNIPERRIFLE, 0x0004, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000) + chr(0x00000001, 0x07, 0x0199, BODY_DDSNIPER, HEAD_DDSNIPER, FUNC_INIT_SNIPER, -1, -1, 500, 40, 0x00004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSNIPERRIFLE, 0x0007, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000) + chr(0x00000001, 0x03, 0x0195, BODY_DDSNIPER, HEAD_DDSNIPER, FUNC_INIT_SNIPER, -1, -1, 500, 40, 0x00004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSNIPERRIFLE, 0x0003, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000) + chr(0x00000081, 0x00, 0x0192, BODY_DDSNIPER, HEAD_DDSNIPER, FUNC_INIT_SNIPER, -1, -1, 500, 80, 0x00004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSNIPERRIFLE, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000) + chr(0x00000081, 0x01, 0x0193, BODY_DDSNIPER, HEAD_DDSNIPER, FUNC_INIT_SNIPER, -1, -1, 500, 80, 0x00004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSNIPERRIFLE, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000) + chr(0x00000081, 0x02, 0x0194, BODY_DDSNIPER, HEAD_DDSNIPER, FUNC_INIT_SNIPER, -1, -1, 500, 80, 0x00004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSNIPERRIFLE, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000) + chr(0x00000081, 0x05, 0x0197, BODY_DDSNIPER, HEAD_RANDOM, FUNC_INIT_SNIPER, -1, -1, 500, 80, 0x00004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSNIPERRIFLE, 0x0005, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000) + chr(0x00000081, 0x06, 0x0198, BODY_DDSNIPER, HEAD_DDSNIPER, FUNC_INIT_SNIPER, -1, -1, 500, 80, 0x00004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSNIPERRIFLE, 0x0006, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000) + tag(0x8e, 2) + tag(0x8f, 2) + weapon(0x0100, MODEL_CHRCMP150, 0x019a, 0x00100000, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x019a, 0x00100000, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + link_collectibles(-1, -2) + chr(0x00010401, CHR_NEGOTIATOR, 0x022b, BODY_SECRETARY, HEAD_SECRETARY, GFUNC_IDLE, -1, -1, 500, 50, 0x00004408, 0x00000000, 0x10, 0x00, -1, 0, 0x00000000) + chr(0x00000001, 0x4e, 0x0229, BODY_DD_GUARD, HEAD_JON, GFUNC_IDLE, -1, -1, 500, 150, 0xc0004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x004e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000001, 0x4f, 0x022a, BODY_DD_GUARD, HEAD_BEAU1, GFUNC_IDLE, -1, -1, 500, 150, 0x80004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x004f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000201, 0x08, 0x00b4, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE2_GUARD, -1, -1, 500, 50, 0x80204208, 0x04000040, 0x20, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0008, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000201, 0x09, 0x022f, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE2_GUARD, -1, -1, 500, 50, 0x80284208, 0x00000040, 0x20, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000201, 0x0a, 0x019b, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE2_GUARD, -1, -1, 500, 50, 0x80284208, 0x04000040, 0x20, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000201, 0x0b, 0x00b8, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE2_GUARD, -1, -1, 500, 50, 0x80284208, 0x00000040, 0x20, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000201, 0x0c, 0x0231, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE2_GUARD, -1, -1, 500, 50, 0x80284208, 0x04000040, 0x20, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000201, 0x0d, 0x0232, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE2_GUARD, -1, -1, 500, 50, 0x80284208, 0x00000040, 0x20, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000201, 0x23, 0x01b1, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4003000, 0x00000000, 0x20, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0023, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000201, 0x24, 0x01b2, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4003000, 0x04000000, 0x20, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0024, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000201, 0x25, 0x01b3, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4003000, 0x00000000, 0x20, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0025, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000201, 0x26, 0x01b4, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4003000, 0x04000000, 0x20, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0026, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000201, 0x27, 0x01b5, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4003100, 0x00000000, 0x20, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0027, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000201, 0x28, 0x01b6, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4003100, 0x04000000, 0x20, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0028, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000201, 0x29, 0x01b7, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4003100, 0x00000000, 0x20, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0029, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000201, 0x2a, 0x01b8, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4003100, 0x04000000, 0x20, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x002a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000201, 0x2b, 0x01b9, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc400b000, 0x00000000, 0x20, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x002b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000201, 0x2c, 0x01ba, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc400b000, 0x04000000, 0x20, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x002c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000201, 0x2d, 0x01bb, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc400b000, 0x00000000, 0x20, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x002d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000201, 0x2e, 0x01bc, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc400b000, 0x04000000, 0x20, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x002e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000261, 0x2f, 0x01bd, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc000e000, 0x00000000, 0x20, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x002f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000261, 0x30, 0x01be, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc000e000, 0x04000000, 0x20, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0030, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000201, 0x31, 0x01bf, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc000e000, 0x00000000, 0x20, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0031, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000201, 0x32, 0x01c0, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc000e000, 0x04000000, 0x20, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0032, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000201, 0x33, 0x01c1, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4003100, 0x00000000, 0x20, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0033, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000201, 0x34, 0x01c2, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4003100, 0x04000000, 0x20, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0034, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000201, 0x35, 0x01c3, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4003000, 0x00000000, 0x20, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0035, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000201, 0x36, 0x01c4, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4003000, 0x04000000, 0x20, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0036, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x3d, 0x01cb, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4003000, 0x00000000, 0x20, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x003d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000201, 0x37, 0x01c5, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4206200, 0x00000000, 0x20, 0x09, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0037, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000201, 0x38, 0x01c6, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4206200, 0x04000000, 0x20, 0x09, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0038, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000201, 0x39, 0x01c7, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc4206200, 0x00000000, 0x20, 0x09, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0039, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x3a, 0x01c8, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE2_GUARD, -1, -1, 500, 50, 0xc4003000, 0x04000000, 0x20, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x003a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x3b, 0x01c9, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE2_GUARD, -1, -1, 500, 50, 0xc4003000, 0x00000000, 0x20, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x003b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x3c, 0x01ca, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE2_GUARD, -1, -1, 500, 50, 0xc4003000, 0x04000000, 0x20, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x003c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x3e, 0x01cc, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE2_GUARD, -1, -1, 500, 50, 0xc4009000, 0x00000000, 0x20, 0x0b, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x003e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x3f, 0x01cd, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE2_GUARD, -1, -1, 500, 50, 0xc4009000, 0x04000000, 0x20, 0x0b, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x003f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x40, 0x01ce, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE2_GUARD, -1, -1, 500, 50, 0xc4009000, 0x00000000, 0x20, 0x0b, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0040, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x41, 0x01cf, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc0005000, 0x04000000, 0x20, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0041, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x42, 0x01d0, BODY_DD_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 500, 50, 0xc0005000, 0x00000000, 0x20, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0042, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x43, 0x01d1, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_BASEMENT_GUARD, -1, -1, 500, 50, 0x80000201, 0x04000000, 0x20, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0043, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x44, 0x01d2, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_BASEMENT_GUARD, -1, -1, 500, 50, 0xc0005000, 0x00000000, 0x20, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0044, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x45, 0x01d3, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_BASEMENT_GUARD, -1, -1, 500, 50, 0xc0005000, 0x04000000, 0x20, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0045, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x46, 0x01d4, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_BASEMENT_GUARD, -1, -1, 500, 50, 0xd0082000, 0x00000000, 0x20, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0046, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x47, 0x01d5, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_BASEMENT_GUARD, -1, -1, 500, 50, 0xd0082000, 0x04000000, 0x20, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0047, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x48, 0x01d6, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_BASEMENT_GUARD, 0x0233, -1, 500, 50, 0xc1082000, 0x00000000, 0x20, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0048, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x49, 0x01d7, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_BASEMENT_GUARD, 0x00d2, -1, 500, 50, 0xc1082000, 0x04000000, 0x20, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0049, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x4a, 0x01d8, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_BASEMENT_GUARD, -1, -1, 500, 50, 0xd0082000, 0x00000000, 0x20, 0x0f, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x004a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x4b, 0x01d9, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_BASEMENT_GUARD, -1, -1, 500, 50, 0xd0082000, 0x04000000, 0x20, 0x0f, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x004b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00010400, 0x51, 0x00dc, BODY_CARRINGTON, HEAD_CARRINGTON, FUNC_CARRINGTON, -1, -1, 500, 50, 0x00000000, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000) + chr(0x0000c000, 0x52, 0x022c, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_HACKER, -1, -1, 500, 30, 0x00004408, 0x00000000, 0x20, 0x00, 0x8d, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0052, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x0000c000, 0x53, 0x022d, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_HACKER, -1, -1, 500, 30, 0x00004408, 0x04000000, 0x20, 0x00, 0x8b, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0053, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x0000c000, 0x54, 0x022e, BODY_DD_SHOCK_INF, HEAD_RANDOM, FUNC_INIT_HACKER, -1, -1, 500, 30, 0x00004408, 0x00000000, 0x20, 0x00, 0x8c, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0054, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x4c, 0x0096, BODY_DD_GUARD, HEAD_RANDOM, FUNC_PATH01, -1, -1, 500, 50, 0xc000d000, 0x04000000, 0x20, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x004c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x4d, 0x0085, BODY_DD_GUARD, HEAD_RANDOM, FUNC_PATH02, -1, -1, 500, 50, 0xc000d000, 0x00000000, 0x20, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x004d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00010400, 0x55, 0x0234, BODY_CISOLDIER, HEAD_RANDOM, FUNC_CISOLIDER, -1, -1, 500, 50, 0x40005000, 0x00000000, 0x80, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSNIPERRIFLE, 0x0055, 0x00004000, 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x0151, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x0152, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x0155, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x0156, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x0157, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x0158, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x0159, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x015a, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x015b, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x015c, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x015e, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x0161, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x015f, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x0162, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x0164, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x0166, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x0167, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x0168, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x0169, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x016a, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x016b, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x0165, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x016c, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x016d, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x015d, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x016e, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_WINDOW, 0x016f, 0x10020b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012c0258, 0x0000ffff, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x0160, 0x00020262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x93, 2) + tag(0x94, 2) + door(0x0100, MODEL_AIVILLADOOR2A, 0x0170, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000080, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AIVILLADOOR2A, 0x0171, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000080, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AIVILLADOOR2A, 0x0172, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AIVILLADOOR2A, 0x0173, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x90, 2) + tag(0x91, 2) + door(0x0100, MODEL_AIVILLADOOR2A, 0x0174, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000080, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AIVILLADOOR2A, 0x0175, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000080, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AIVILLADOOR2A, 0x017c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AIVILLADOOR2A, 0x017d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x92, 1) + door(0x0100, MODEL_AIVILLADOOR2A, 0x0176, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000080, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x06, 2) + tag(0x07, 2) + door(0x0100, MODEL_AIVILLADOOR2A, 0x0189, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AIVILLADOOR2A, 0x018a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AIVILLADOOR2A, 0x018b, 0x30000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000600, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AIVILLADOOR2A, 0x018c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x018d, 0x04000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x018e, 0x04000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x95, 1) + door(0x0100, MODEL_AIVILLADOOR2A, 0x0177, 0x30000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000080, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000600, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x97, 2) + tag(0x98, 2) + door(0x0100, MODEL_AIVILLADOOR2A, 0x0179, 0x90000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000080, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000600, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AIVILLADOOR2A, 0x0178, 0xb0000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000080, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AIVILLADOOR2A, 0x018f, 0x90000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000600, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AIVILLADOOR2A, 0x0190, 0xb0000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x96, 1) + door(0x0100, MODEL_AIVILLADOOR2A, 0x017b, 0x30000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000080, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000600, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x1e, 12) + tag(0x1f, 12) + tag(0x20, 12) + tag(0x21, 12) + tag(0x22, 12) + tag(0x23, 12) + tag(0x24, 12) + tag(0x25, 12) + tag(0x26, 12) + tag(0x27, 12) + tag(0x28, 12) + tag(0x29, 12) + glass(0x003a, MODEL_AIVILLABOT1, 0x00e5, 0x00200008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT2, 0x00e6, 0x00200008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x00e7, 0x00200008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x00e8, 0x00200008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT2, 0x00e9, 0x00200008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x00ea, 0x00200008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x00eb, 0x00200008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT2, 0x00ec, 0x00200008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT3, 0x00ed, 0x00200008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x00ee, 0x00200008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x00ef, 0x00200008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x00f0, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x2a, 6) + tag(0x2b, 6) + tag(0x2c, 6) + tag(0x2d, 6) + tag(0x2e, 6) + tag(0x2f, 6) + glass(0x003a, MODEL_AIVILLABOT2, 0x00f1, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x00f2, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x00f3, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT2, 0x00f4, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x00f5, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x00f6, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x30, 12) + tag(0x31, 12) + tag(0x32, 12) + tag(0x33, 12) + tag(0x34, 12) + tag(0x35, 12) + tag(0x36, 12) + tag(0x37, 12) + tag(0x38, 12) + tag(0x39, 12) + tag(0x3a, 12) + tag(0x3b, 12) + glass(0x003a, MODEL_AIVILLABOT2, 0x00f7, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT3, 0x00f8, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x00f9, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x00fa, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x00fb, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT2, 0x00fc, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x00fd, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x00fe, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT2, 0x00ff, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x0100, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x0101, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT2, 0x0102, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x3c, 6) + tag(0x3d, 6) + tag(0x3e, 6) + tag(0x3f, 6) + tag(0x40, 6) + tag(0x41, 6) + glass(0x003a, MODEL_AIVILLABOT3, 0x0103, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x0104, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x0105, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x0106, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT3, 0x0107, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x0108, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x42, 12) + tag(0x43, 12) + tag(0x44, 12) + tag(0x45, 12) + tag(0x46, 12) + tag(0x47, 12) + tag(0x48, 12) + tag(0x49, 12) + tag(0x4a, 12) + tag(0x4b, 12) + tag(0x4c, 12) + tag(0x4d, 12) + glass(0x003a, MODEL_AIVILLABOT1, 0x0109, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x010a, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x010b, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT3, 0x010c, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x010d, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x010e, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x010f, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x0110, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x0111, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x0112, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT2, 0x0113, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x0114, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x4e, 6) + tag(0x4f, 6) + tag(0x50, 6) + tag(0x51, 6) + tag(0x52, 6) + tag(0x53, 6) + glass(0x003a, MODEL_AIVILLABOT1, 0x0115, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT2, 0x0116, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x0117, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x0118, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT2, 0x0119, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT3, 0x011a, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x54, 6) + tag(0x55, 6) + tag(0x56, 6) + tag(0x57, 6) + tag(0x58, 6) + tag(0x59, 6) + glass(0x003a, MODEL_AIVILLABOT1, 0x011b, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT2, 0x011c, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x011d, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT3, 0x011e, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT2, 0x011f, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x0120, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x5a, 12) + tag(0x5b, 12) + tag(0x5c, 12) + tag(0x5d, 12) + tag(0x5e, 12) + tag(0x5f, 12) + tag(0x60, 12) + tag(0x61, 12) + tag(0x62, 12) + tag(0x63, 12) + tag(0x64, 12) + tag(0x65, 12) + glass(0x003a, MODEL_AIVILLABOT1, 0x0121, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT2, 0x0122, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT3, 0x0123, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x0124, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x0125, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x0126, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT3, 0x0127, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x0128, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x0129, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x012a, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x012b, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT2, 0x012c, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x66, 6) + tag(0x67, 6) + tag(0x68, 6) + tag(0x69, 6) + tag(0x6a, 6) + tag(0x6b, 6) + glass(0x003a, MODEL_AIVILLABOT1, 0x012d, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x012e, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT2, 0x012f, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x0130, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x0131, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT2, 0x0132, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x6c, 12) + tag(0x6d, 12) + tag(0x6e, 12) + tag(0x6f, 12) + tag(0x70, 12) + tag(0x71, 12) + tag(0x72, 12) + tag(0x73, 12) + tag(0x74, 12) + tag(0x75, 12) + tag(0x76, 12) + tag(0x77, 12) + glass(0x003a, MODEL_AIVILLABOT3, 0x0133, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT2, 0x0134, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x0135, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x0136, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT2, 0x0137, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x0138, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x0139, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT2, 0x013a, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT3, 0x013b, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x013c, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT2, 0x013d, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x013e, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x78, 6) + tag(0x79, 6) + tag(0x7a, 6) + tag(0x7b, 6) + tag(0x7c, 6) + tag(0x7d, 6) + glass(0x003a, MODEL_AIVILLABOT3, 0x013f, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT2, 0x0140, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT3, 0x0141, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT2, 0x0142, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x0143, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x0144, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x7e, 12) + tag(0x7f, 12) + tag(0x80, 12) + tag(0x81, 12) + tag(0x82, 12) + tag(0x83, 12) + tag(0x84, 12) + tag(0x85, 12) + tag(0x86, 12) + tag(0x87, 12) + tag(0x88, 12) + glass(0x003a, MODEL_AIVILLABOT2, 0x0145, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x0146, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x0147, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT2, 0x0148, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT3, 0x0149, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x014a, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x014b, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x014c, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT3, 0x014d, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x014e, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x003a, MODEL_AIVILLABOT1, 0x014f, 0x00200408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x0f, 1) + autogun(0x0100, MODEL_AIVILLAWINDMILL, 0x0191, 0x00020408, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0xffff0000, 0x00000000, 0x00020000, 0xfffe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000da, 0x000a0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + stdobject(0x0100, MODEL_CV_SOFA, 0x019c, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_CV_SOFA, 0x019d, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_CV_SOFA, 0x019e, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_CV_SOFA, 0x019f, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_CV_SOFA, 0x01a1, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_CV_SOFA, 0x01a2, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_CV_SOFA, 0x01a3, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_CV_SOFA, 0x01a4, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01e5, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01e6, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + ammocrate(0x0080, MODEL_MULTI_AMMO_CRATE, 0xffff, 0x00028000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_DEVASTATOR) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01e0, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01e1, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01eb, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + ammocrate(0x0080, MODEL_MULTI_AMMO_CRATE, 0xffff, 0x00028000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_DEVASTATOR) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01dc, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01dd, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + ammocrate(0x0080, MODEL_MULTI_AMMO_CRATE, 0xffff, 0x00028000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_SMG) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01de, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01df, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + ammocrate(0x0080, MODEL_MULTI_AMMO_CRATE, 0xffff, 0x00028000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_SMG) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01ea, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01da, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + ammocrate(0x0080, MODEL_MULTI_AMMO_CRATE, 0xffff, 0x00028000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_SMG) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01db, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + ammocrate(0x0080, MODEL_MULTI_AMMO_CRATE, 0xffff, 0x00028000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_DEVASTATOR) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01e7, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01e2, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + ammocrate(0x0080, MODEL_MULTI_AMMO_CRATE, 0xffff, 0x00028000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_SMG) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01e3, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + ammocrate(0x0080, MODEL_MULTI_AMMO_CRATE, 0xffff, 0x00028000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_SMG) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01e4, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + ammocrate(0x0080, MODEL_MULTI_AMMO_CRATE, 0xffff, 0x00028000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_SMG) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01e9, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01e8, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01ed, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01ee, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00cc, MODEL_CV_TABLE, 0x01a7, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00cc, MODEL_CV_TABLE, 0x01a8, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_CV_COFFEE_TABLE, 0x01ae, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_CV_COFFEE_TABLE, 0x01ab, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_CV_COFFEE_TABLE, 0x01ac, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x00, 1) + stdobject(0x0100, MODEL_DROPSHIP, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x01, 1) + weapon(0x0100, MODEL_CHRDATATHIEF, 0x00bf, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000) + rename_object(-1, 0x0e, 0x201b, 0x201b, 0x201b, 0x201b, 0x201b, 0x0000, 0x0000) // "PC gun" + tag(0x89, 1) + weapon(0x0100, MODEL_CHRDATATHIEF, 0x00bf, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000) + rename_object(-1, 0x0e, 0x201b, 0x201b, 0x201b, 0x201b, 0x201b, 0x0000, 0x0000) // "PC gun" + tag(0x02, 1) + weapon(0x0100, MODEL_CHRDATATHIEF, 0x00c0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000) + rename_object(-1, 0x15, 0x201c, 0x201c, 0x201c, 0x201c, 0x201c, 0x0000, 0x0000) // "Sniper rifle" + tag(0x8a, 1) + weapon(0x0100, MODEL_CHRDATATHIEF, 0x00c0, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000) + rename_object(-1, 0x15, 0x201c, 0x201c, 0x201c, 0x201c, 0x201c, 0x0000, 0x0000) // "Sniper rifle" + stdobject(0x00cc, MODEL_CV_TABLE, 0x01ef, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x8c, 1) + stdobject(0x0100, MODEL_CV_CHAIR4, 0x01f0, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00cc, MODEL_CV_TABLE, 0x01f1, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_CV_CHAIR4, 0x01f2, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00cc, MODEL_CV_TABLE, 0x01f4, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x8d, 1) + stdobject(0x0100, MODEL_CV_CHAIR4, 0x01f3, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00cc, MODEL_CV_TABLE, 0x01f5, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x8b, 1) + stdobject(0x0100, MODEL_CV_CHAIR4, 0x01f6, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x0b, 4) + tag(0x0c, 4) + tag(0x0d, 4) + tag(0x0e, 4) + singlemonitor(0x0100, MODEL_GOODPC, 0x01f9, 0x000004e1, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_GOODPC, 0x01fa, 0x000004e1, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_GOODPC, 0x01f8, 0x000004e1, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0100, MODEL_GOODPC, 0x01f7, 0x000004e1, 0x00000001, 0x00000000, 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, 0xffffff03) + tag(0x04, 3) + tag(0x03, 3) + tag(0x05, 3) + multimonitor(0x0099, MODEL_CIHUB, 0x01fc, 0x00000002, 0x00000801, 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, 0x03000000) + multimonitor(0x0099, MODEL_CIHUB, 0x01fb, 0x00000002, 0x00000801, 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, 0x03000000) + multimonitor(0x0099, MODEL_CIHUB, 0x01fd, 0x00000002, 0x00000801, 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, 0x03000000) + door(0x0100, MODEL_AIVILLADOOR2A, 0x017f, 0xb0000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000600, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AIVILLADOOR2A, 0x0180, 0x90000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x09, 1) + door(0x0100, MODEL_AIVILLADOOR2A, 0x0187, 0x30000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000040, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000600, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AIVILLADOOR2A, 0x0188, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000040, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x08, 1) + door(0x0100, MODEL_AIVILLADOOR2A, 0x0183, 0x30000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000040, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000600, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AIVILLADOOR2A, 0x0184, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000040, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AIVILLADOOR2A, 0x0185, 0x30000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000600, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AIVILLADOOR2A, 0x0186, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x0a, 1) + key(0x0080, MODEL_KEYCARD, 0x004b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000040) + rename_object(-1, 0x4a, 0x201e, 0x201f, 0x2020, 0x2021, 0x2022, 0x0000, 0x0000) // "Obtain door key." + stdobject(0x0100, MODEL_CV_SOFA, 0x01a5, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_CV_SOFA, 0x01a6, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_CV_COFFEE_TABLE, 0x01af, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x014c, MODEL_DD_PLANTRUBBER, 0x01fe, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_PLANTSPIDER, 0x01ff, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0280, MODEL_DD_PLANTSPIKE, 0x0200, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x014c, MODEL_DD_PLANTRUBBER, 0x0201, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x014c, MODEL_DD_PLANTSPIDER, 0x0202, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x014c, MODEL_DD_PLANTSPIKE, 0x0203, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_PLANTRUBBER, 0x0204, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0180, MODEL_DD_PLANTSPIDER, 0x0205, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x014c, MODEL_DD_PLANTSPIKE, 0x0206, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x014c, MODEL_DD_PLANTRUBBER, 0x0207, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_PLANTSPIDER, 0x0208, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0180, MODEL_DD_PLANTSPIKE, 0x0209, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x014c, MODEL_DD_PLANTRUBBER, 0x020a, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_PLANTSPIDER, 0x020b, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x014c, MODEL_DD_PLANTSPIKE, 0x020c, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0133, MODEL_DD_PLANTSPIDER, 0x020d, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_PLANTSPIKE, 0x020e, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_PLANTRUBBER, 0x020f, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_PLANTSPIDER, 0x0210, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x014c, MODEL_DD_PLANTSPIKE, 0x0211, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0280, MODEL_DD_PLANTSPIKE, 0x0212, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_PLANTSPIDER, 0x0213, 0x04000101, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0180, MODEL_DD_PLANTSPIKE, 0x0214, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0180, MODEL_DD_PLANTSPIKE, 0x0215, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0080, MODEL_DD_PLANTSPIKE, 0x0216, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0080, MODEL_DD_PLANTSPIKE, 0x0217, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0080, MODEL_DD_PLANTSPIKE, 0x0218, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x021a, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x021b, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00cc, MODEL_CV_TABLE, 0x01b0, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00cc, MODEL_CV_CHAIR1, 0x021c, 0x00000501, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00cc, MODEL_CV_CHAIR1, 0x021d, 0x00000501, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00cc, MODEL_CV_CHAIR1, 0x021e, 0x00000501, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00cc, MODEL_CV_CHAIR1, 0x021f, 0x00000501, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00cc, MODEL_CV_CHAIR1, 0x0220, 0x00000501, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00cc, MODEL_CV_CHAIR1, 0x0221, 0x00000501, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00cc, MODEL_CV_CHAIR1, 0x0222, 0x00000501, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00cc, MODEL_CV_CHAIR1, 0x0223, 0x00000501, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00cc, MODEL_CV_CHAIR1, 0x0224, 0x00000501, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00cc, MODEL_CV_CHAIR1, 0x0225, 0x00000501, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x0219, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_VILLASTOOL, 0x0237, 0x00000101, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_CV_F_BED, 0x0226, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_CV_CABINET, 0x0227, 0x00000501, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_CV_CABINET, 0x0228, 0x00000501, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x10, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x0238, 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(0x11, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x0239, 0x00000001, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x01ec, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + weapon(0x0100, MODEL_CHRDEVASTATOR, 0xffff, 0x40028000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DEVASTATOR, 0x00ffffff, 0x00000000) + tag(0x99, -1) + endprops +}; + +u8 intro[] = { + spawn(0x00be) + ammo(AMMOTYPE_RIFLE, 100) + ammo(AMMOTYPE_SMG, 100) + ammo(AMMOTYPE_DEVASTATOR, 3) + intro_weapon(WEAPON_UNARMED, -1) + intro_weapon(WEAPON_RTRACKER, -1) + endintro +}; + +s32 path00[] = { + 0x0096, + 0x008a, + 0x008b, + 0x008c, + 0x0087, + 0x0088, + 0x0089, + 0x0083, + 0x0084, + 0x0085, + -1, +}; + +s32 path01[] = { + 0x0085, + 0x0084, + 0x0083, + 0x0089, + 0x0088, + 0x0087, + 0x008c, + 0x008b, + 0x008a, + 0x0096, + -1, +}; + +u8 func1001_objectives_failed_msg[] = { + yield + set_function(CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG) + endfunction +}; + +u8 func1400_setup_counterop[] = { + yield + set_chr_alliance(CHR_COUNTEROP, 0x20) + set_function(CHR_SELF, GFUNC_REBUILD_GROUPS) + endfunction +}; + +u8 func1002_intro_from_menu[] = { + set_stage_flag(STAGEFLAG_PLAYING_INTRO_FROM_MENU) + set_function(CHR_SELF, FUNC_INTRO) + endfunction +}; + +u8 func1002_intro[] = { + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + camera_movement(0x0171) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + if_stage_flag_eq(STAGEFLAG_PLAYING_INTRO_FROM_MENU, TRUE, /*goto*/ 0x2e) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2d) + label(0x2e) + animation(0x0172, -1, -1, 0x0600, CHR_JOANNA, 4) + remove_chr(CHR_NEGOTIATOR) + set_music_track(MUSIC_VILLA_INTRO3) + goto_next(0x06) + label(0x2d) + set_music_track(MUSIC_VILLA_INTRO2) + animation(0x0172, -1, -1, 0x0600, CHR_NEGOTIATOR, 4) + label(0x06) + set_chr_flag_bank3(CHR_TAKER1, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_TAKER1, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_TAKER1, CHRFLAG2_00020000) + animation(0x0173, -1, -1, 0x0600, CHR_TAKER1, 4) + set_chr_flag_bank3(CHR_TAKER2, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_TAKER2, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_TAKER2, CHRFLAG2_00020000) + animation(0x0174, -1, -1, 0x0600, CHR_TAKER2, 4) + show_object(OBJ_DROPSHIP) + set_object_flag_bank1(OBJ_DROPSHIP, OBJECTFLAG1_04000000) + set_object_flag_bank2(OBJ_DROPSHIP, OBJECTFLAG2_00000010) + object_do_animation(0x0175, OBJ_DROPSHIP, 0x04ff, 0xff) + restart_timer + fade_to_color(0x000000ff, 0) + fade_to_color(0x00000000, 110) + set_cutscene_weapon(CHR_JOANNA, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_JOANNA, WEAPON_NONE, WEAPON_NONE) + + #define wait_until(time, loopid) \ + beginloop(loopid) \ + if_controller_button_pressed(/*goto*/ 0x56) \ + if_timer_gt(time, /*goto*/ 0x06) \ + endloop(loopid) \ + \ + label(0x06) + + + + wait_until(205, 0xab) + speak(CHR_JOANNA, 0x2027, 0x73ff, CHANNEL_4, COLOR_09_BLUE) // "Agent Dark Mission Log, 1846 hours. Last night we ..." + + wait_until(680, 0x66) + play_sound(0x0161, CHANNEL_7) + + wait_until(687, 0x67) + play_sound(0x0162, CHANNEL_6) + + wait_until(708, 0x68) + play_sound(0x0163, CHANNEL_7) + + wait_until(716, 0x69) + play_sound(0x0164, CHANNEL_7) + + wait_until(914, 0x6a) + play_sound(0x0171, CHANNEL_7) + + wait_until(1010, 0x6b) + play_sound(0x0172, CHANNEL_7) + + wait_until(1048, 0x6c) + play_sound(0x0173, CHANNEL_7) + + wait_until(1075, 0x6d) + play_sound(0x0161, CHANNEL_7) + + wait_until(1100, 0xac) + speak(CHR_JOANNA, 0x2028, 0x7400, CHANNEL_4, COLOR_09_BLUE) // "Unfortunately, we don't have it. Daniel and Dr. Ca..." + + wait_until(1118, 0x6e) + play_sound(0x0162, CHANNEL_7) + + wait_until(1148, 0x6f) + play_sound(0x0163, CHANNEL_7) + + wait_until(1175, 0x70) + play_sound(0x0161, CHANNEL_7) + + wait_until(1193, 0x71) + play_sound(0x0163, CHANNEL_7) + + wait_until(1214, 0x72) + play_sound(0x0161, CHANNEL_7) + + wait_until(1313, 0x73) + play_sound(0x0164, CHANNEL_7) + + wait_until(1313, 0x74) + play_sound(0x0163, CHANNEL_6) + + wait_until(1331, 0x75) + play_sound(0x0174, CHANNEL_7) + + wait_until(1348, 0x76) + play_sound(0x0161, CHANNEL_7) + + wait_until(1366, 0x77) + play_sound(0x0162, CHANNEL_7) + + wait_until(1386, 0x78) + play_sound(0x0163, CHANNEL_7) + + wait_until(1390, 0x79) + play_sound(0x0164, CHANNEL_7) + + wait_until(1450, 0x7a) + play_sound(0x0161, CHANNEL_7) + + wait_until(1458, 0x7b) + play_sound(0x0164, CHANNEL_7) + + wait_until(1519, 0x7c) + play_sound(0x0162, CHANNEL_7) + + wait_until(1544, 0x7d) + play_sound(0x0161, CHANNEL_7) + + wait_until(1554, 0x7e) + play_sound(0x0164, CHANNEL_6) + + wait_until(1592, 0x7f) + play_sound(0x0162, CHANNEL_7) + + wait_until(1618, 0x81) + play_sound(0x0163, CHANNEL_7) + + wait_until(1645, 0x82) + play_sound(0x0162, CHANNEL_7) + + wait_until(1654, 0x83) + play_sound(0x0164, CHANNEL_6) + + wait_until(1657, 0x84) + play_sound(0x0161, CHANNEL_6) + + wait_until(1679, 0x85) + play_sound(0x0164, CHANNEL_6) + + wait_until(1683, 0x86) + play_sound(0x0162, CHANNEL_6) + + wait_until(1692, 0x87) + play_sound(0x0163, CHANNEL_6) + + wait_until(1716, 0x88) + play_sound(0x0164, CHANNEL_6) + + beginloop(0x08) + if_camera_animating(/*goto*/ 0x2d) + goto_next(0x56) + label(0x2d) + if_controller_button_pressed(/*goto*/ 0x56) + label(0x2d) + endloop(0x08) + + label(0x56) + if_controller_button_pressed(/*goto*/ 0x56) + camera_movement(0x01b7) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + if_stage_flag_eq(STAGEFLAG_PLAYING_INTRO_FROM_MENU, TRUE, /*goto*/ 0x2e) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2d) + label(0x2e) + animation(0x01b8, -1, -1, 0x0600, CHR_JOANNA, 4) + goto_next(0x06) + label(0x2d) + animation(0x01b8, -1, -1, 0x0600, CHR_NEGOTIATOR, 4) + label(0x06) + + set_chr_flag_bank3(CHR_TAKER1, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_TAKER1, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_TAKER1, CHRFLAG2_00020000) + animation(0x01b9, -1, -1, 0x0600, CHR_TAKER1, 4) + + set_chr_flag_bank3(CHR_TAKER2, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_TAKER2, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_TAKER2, CHRFLAG2_00020000) + animation(0x01ba, -1, -1, 0x0600, CHR_TAKER2, 4) + + restart_timer + + wait_until(50, 0xaa) + speak(CHR_JOANNA, 0x2029, 0x7401, CHANNEL_4, COLOR_09_BLUE) // "Hopefully our phoney negotiator ploy will give me ..." + + restart_timer + wait_until(295, 0x89) + play_sound(0x0179, CHANNEL_6) + + wait_until(302, 0x8a) + play_sound(0x017a, CHANNEL_7) + + wait_until(333, 0x8b) + play_sound(0x017b, CHANNEL_7) + + wait_until(338, 0x8c) + play_sound(0x017a, CHANNEL_6) + + wait_until(344, 0x8d) + play_sound(0x017c, CHANNEL_7) + + wait_until(353, 0x8e) + play_sound(0x0179, CHANNEL_6) + + wait_until(372, 0x8f) + play_sound(0x017a, CHANNEL_6) + + wait_until(412, 0x90) + play_sound(0x017a, CHANNEL_6) + + wait_until(415, 0x91) + play_sound(0x017b, CHANNEL_7) + + wait_until(466, 0x92) + play_sound(0x0179, CHANNEL_6) + + wait_until(472, 0x93) + play_sound(0x017c, CHANNEL_7) + + wait_until(515, 0x94) + play_sound(0x017a, CHANNEL_6) + + wait_until(533, 0x95) + play_sound(0x017b, CHANNEL_6) + + wait_until(535, 0x96) + + wait_until(561, 0x97) + play_sound(0x017b, CHANNEL_6) + + wait_until(570, 0x98) + play_sound(0x017c, CHANNEL_7) + + wait_until(572, 0x99) + + beginloop(0x09) + if_camera_animating(/*goto*/ 0x2d) + goto_next(0x56) + label(0x2d) + if_controller_button_pressed(/*goto*/ 0x56) + label(0x2d) + endloop(0x09) + + label(0x56) + if_stage_flag_eq(STAGEFLAG_PLAYING_INTRO_FROM_MENU, TRUE, /*goto*/ 0x4f) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x4e) + goto_next(0x4f) + label(0x4e) + camera_movement(0x01bb) + cmd0175(60) + if_controller_button_pressed(/*goto*/ 0x56) + + set_chr_flag_bank3(CHR_NEGOTIATOR, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_NEGOTIATOR, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_NEGOTIATOR, CHRFLAG2_00020000) + animation(0x0001, -1, -1, 0x0600, CHR_NEGOTIATOR, 4) + + set_chr_flag_bank3(CHR_TAKER1, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_TAKER1, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_TAKER1, CHRFLAG2_00020000) + animation(0x0001, -1, -1, 0x0600, CHR_TAKER1, 4) + + set_chr_flag_bank3(CHR_TAKER2, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_TAKER2, CHRFLAG3_HIDDEN) + animation(0x0001, -1, -1, 0x0600, CHR_TAKER2, 4) + + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x01bc, -1, -1, 0x0600, CHR_JOANNA, 4) + + show_object(OBJ_DROPSHIP) + set_object_flag_bank1(OBJ_DROPSHIP, OBJECTFLAG1_04000000) + set_object_flag_bank2(OBJ_DROPSHIP, OBJECTFLAG2_00000010) + object_do_animation(0x01bd, OBJ_DROPSHIP, 0x04ff, 0xff) + + restart_timer + + wait_until(238, 0x9e) + play_sound(0x046e, CHANNEL_6) + + wait_until(305, 0x9f) + play_sound(0x046f, CHANNEL_6) + + wait_until(313, 0xa0) + play_sound(0x04ae, CHANNEL_7) + + wait_until(350, 0xa1) + play_sound(0x0085, CHANNEL_6) + + wait_until(380, 0xa2) + play_sound(0x0161, CHANNEL_6) + + wait_until(381, 0xa3) + play_sound(0x0162, CHANNEL_7) + + wait_until(400, 0xa4) + play_sound(0x0163, CHANNEL_6) + + wait_until(429, 0xa5) + play_sound(0x0164, CHANNEL_6) + + beginloop(0x0a) + if_camera_animating(/*goto*/ 0x2d) + goto_next(0x56) + label(0x2d) + if_controller_button_pressed(/*goto*/ 0x56) + label(0x2d) + endloop(0x0a) + + label(0x56) + set_stage_flag(STAGEFLAG_INTRO_FINISHED) + label(0x06) + 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) + + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x01bc, -2, -1, 0x0600, CHR_JOANNA, 2) + + unset_chr_flag_bank3(CHR_NEGOTIATOR, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_NEGOTIATOR, CHRFLAG2_00020000) + animation(0x01b8, -2, -1, 0x0600, CHR_NEGOTIATOR, 2) + + unset_chr_flag_bank3(CHR_TAKER1, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_TAKER1, CHRFLAG2_00020000) + animation(0x01b9, -2, -1, 0x0600, CHR_TAKER1, 2) + + unset_chr_flag_bank3(CHR_TAKER2, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_TAKER2, CHRFLAG2_00020000) + animation(0x01ba, -2, -1, 0x0600, CHR_TAKER2, 2) + + hide_object(OBJ_DROPSHIP) + restart_default_music + reset_ambience + play_x_music(CHANNEL_10, 30) + unset_stage_flag(STAGEFLAG_PLAYING_INTRO_FROM_MENU) + enter_firstperson + yield + animation(0x0001, -1, -1, 0x0200, CHR_NEGOTIATOR, 2) + animation(0x0001, -1, -1, 0x0200, CHR_TAKER1, 2) + animation(0x0001, -1, -1, 0x0200, CHR_TAKER2, 2) + set_function(CHR_TAKER1, FUNC_INIT_TAKER) + set_function(CHR_TAKER2, FUNC_INIT_TAKER) + set_function(CHR_NEGOTIATOR, FUNC_NEGOTIATOR) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x4f) + camera_movement(0x01be) + cmd0175(60) + hide_object(OBJ_DROPSHIP) + if_controller_button_pressed(/*goto*/ 0x56) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x01bf, -1, -1, 0x0600, CHR_JOANNA, 4) + set_chr_flag_bank3(CHR_TAKER1, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_TAKER1, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_TAKER1, CHRFLAG2_00020000) + animation(0x01c0, -1, -1, 0x0600, CHR_TAKER1, 4) + set_chr_flag_bank3(CHR_TAKER2, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_TAKER2, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_TAKER2, CHRFLAG2_00020000) + animation(0x01c1, -1, -1, 0x0600, CHR_TAKER2, 4) + restart_timer + label(0xa6) + yield + if_controller_button_pressed(/*goto*/ 0x56) + if_timer_gt(17, /*goto*/ 0x06) + goto_first(0xa6) + + label(0x06) + play_sound(0x0179, CHANNEL_6) + label(0xa7) + yield + if_controller_button_pressed(/*goto*/ 0x56) + if_timer_gt(60, /*goto*/ 0x06) + goto_first(0xa7) + + label(0x06) + play_sound(0x017a, CHANNEL_6) + label(0xa8) + yield + if_controller_button_pressed(/*goto*/ 0x56) + if_timer_gt(96, /*goto*/ 0x06) + goto_first(0xa8) + + label(0x06) + play_sound(0x017b, CHANNEL_6) + label(0xa9) + yield + if_controller_button_pressed(/*goto*/ 0x56) + if_timer_gt(144, /*goto*/ 0x06) + goto_first(0xa9) + + label(0x06) + play_sound(0x017c, CHANNEL_6) + label(0x0b) + yield + if_camera_animating(/*goto*/ 0x2d) + goto_next(0x56) + label(0x2d) + if_controller_button_pressed(/*goto*/ 0x56) + label(0x2d) + goto_first(0x0b) + + label(0x56) + set_stage_flag(STAGEFLAG_INTRO_FINISHED) + label(0x06) + 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) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x01bf, -2, -1, 0x0600, CHR_JOANNA, 2) + unset_chr_flag_bank3(CHR_TAKER1, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_TAKER1, CHRFLAG2_00020000) + set_chr_flag_bank3(CHR_TAKER1, CHRFLAG3_00000001) + animation(0x01c0, -2, -1, 0x0600, CHR_TAKER1, 2) + unset_chr_flag_bank3(CHR_TAKER2, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_TAKER2, CHRFLAG2_00020000) + set_chr_flag_bank3(CHR_TAKER2, CHRFLAG3_00000001) + animation(0x01c1, -2, -1, 0x0600, CHR_TAKER2, 2) + hide_object(OBJ_DROPSHIP) + restart_default_music + reset_ambience + play_x_music(CHANNEL_10, 30) + enter_firstperson + yield + set_function(CHR_TAKER1, FUNC_TAKER) + set_function(CHR_TAKER2, FUNC_TAKER) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0c02_outro_from_menu[] = { + set_function(CHR_CARRINGTON, GFUNC_IDLE) + set_function(CHR_SELF, FUNC_OUTRO) + endfunction +}; + +u8 func0408_outro[] = { + camera_movement(0x017a) + set_music_track(MUSIC_VILLA_OUTRO) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0xf1, CHRFLAG3_HIDDEN) + set_function(CHR_P1P2, GFUNC_IDLE) + set_chr_flag_bank3(CHR_CARRINGTON, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_CARRINGTON, CHRFLAG3_UNEXPLODABLE) + + set_chr_flag_bank3(CHR_P1P2, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_P1P2, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_P1P2, CHRFLAG2_00020000) + animation(0x017c, -1, -1, 0x0600, CHR_P1P2, 4) + + set_chr_flag_bank3(CHR_CARRINGTON, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_CARRINGTON, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_CARRINGTON, CHRFLAG2_00020000) + animation(0x017b, -1, -1, 0x0600, CHR_CARRINGTON, 4) + + show_nonessential_chrs(FALSE) + restart_timer + set_cutscene_weapon(CHR_P1P2, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_P1P2, WEAPON_NONE, WEAPON_NONE) + + #define outro_wait_until1(time, msg, loopid) \ + beginloop(loopid) \ + dprint msg, '\n', 0, \ + if_controller_button_pressed(/*goto*/ 0x56) \ + if_timer_gt(time, /*goto*/ 0x06) \ + endloop(loopid) \ + label(0x06) + + #define outro_wait_until2(time, msg1, msg2, loopid) \ + beginloop(loopid) \ + dprint msg1, msg2, '\n', 0, \ + if_controller_button_pressed(/*goto*/ 0x56) \ + if_timer_gt(time, /*goto*/ 0x06) \ + endloop(loopid) \ + label(0x06) + + outro_wait_until1(14, '1', 0x66) + play_sound(0x80d0, CHANNEL_7) + + outro_wait_until1(36, '2', 0x67) + play_sound(0x80d1, CHANNEL_6) + + outro_wait_until1(40, '3', 0x68) + speak(CHR_P1P2, 0x202a, 0x7402, CHANNEL_4, COLOR_09_BLUE) // "Sir? Are you injured?" + + outro_wait_until1(58, '4', 0xad) + play_sound(0x80d2, CHANNEL_7) + + outro_wait_until1(80, '5', 0x69) + play_sound(0x80d3, CHANNEL_7) + + outro_wait_until1(102, '6', 0x6a) + play_sound(0x80d0, CHANNEL_7) + + outro_wait_until1(142, '7', 0x6b) + play_sound(0x80d1, CHANNEL_7) + + outro_wait_until1(164, '8', 0x6c) + play_sound(0x80cc, CHANNEL_7) + + outro_wait_until1(165, '9', 0xae) + speak(CHR_P1P2, 0x202b, 0x7403, CHANNEL_4, COLOR_05_GREEN) // "No, Joanna, I'm okay, but those dataDyne thugs mad..." + + outro_wait_until2(195, '1','0', 0x6d) + play_sound(0x80cd, CHANNEL_7) + + outro_wait_until2(213, '1','1', 0x6e) + play_sound(0x80ce, CHANNEL_7) + + outro_wait_until2(231, '1','2', 0x6f) + play_sound(0x80cf, CHANNEL_7) + + outro_wait_until2(235, '1','3', 0x70) + play_sound(0x80cc, CHANNEL_7) + + // @bug: No check for button presses for about 8 seconds while Carrington is + // saying the above line. + beginloop(0xaf) + dprint '1','4','\n',0, + if_timer_gt(738, /*goto*/ 0x06) + endloop(0xaf) + + label(0x06) + speak(CHR_P1P2, 0x202c, 0x7404, CHANNEL_4, COLOR_09_BLUE) // "It's not your fault, sir. I should have been quick..." + + outro_wait_until2(956, '1','5', 0xb0) + speak(CHR_P1P2, 0x202d, 0x7405, CHANNEL_4, COLOR_05_GREEN) // "Don't blame yourself, Joanna. Dr. Caroll told me t..." + + outro_wait_until2(2280, '2','2', 0xb1) + speak(CHR_P1P2, 0x202e, 0x7406, CHANNEL_4, COLOR_09_BLUE) // "That won't be a problem, sir. So, did Dr. Caroll h..." + + outro_wait_until2(2457, '1','6', 0x71) + play_sound(0x80cc, CHANNEL_7) + + outro_wait_until2(2496, '1','7', 0x72) + play_sound(0x80cd, CHANNEL_7) + + outro_wait_until2(2620, '2','6', 0x7a) + speak(CHR_P1P2, 0x202f, 0x7407, CHANNEL_5, COLOR_05_GREEN) // "Oh, yes, indeed. He certainly did, and I'll brief ..." + + outro_wait_until2(2730, '1','8', 0x73) + play_sound(0x80ce, CHANNEL_7) + + outro_wait_until2(2808, '1','9', 0x74) + play_sound(0x80cf, CHANNEL_7) + + outro_wait_until2(2861, '2','0', 0x75) + play_sound(0x80cc, CHANNEL_7) + + outro_wait_until2(3030, '2','1', 0x76) + play_sound(0x80d1, CHANNEL_7) + + outro_wait_until2(3098, '2','3', 0x77) + play_sound(0x80cd, CHANNEL_7) + + outro_wait_until2(3194, '2','4', 0x78) + play_sound(0x80ce, CHANNEL_7) + + outro_wait_until2(3276, '2','5', 0x79) + play_sound(0x80cf, CHANNEL_7) + + outro_wait_until2(3370, '2','7', 0x7b) + play_sound(0x80cc, CHANNEL_7) + + outro_wait_until2(3463, '2','8', 0x7c) + play_sound(0x80cd, CHANNEL_7) + + outro_wait_until2(3503, '2','9', 0x7d) + play_sound(0x80ce, CHANNEL_7) + + outro_wait_until2(3545, '3','0', 0x7e) + play_sound(0x80cf, CHANNEL_7) + + beginloop(0x08) + if_camera_animating(/*goto*/ 0x2d) + goto_next(0x56) + label(0x2d) + if_controller_button_pressed(/*goto*/ 0x56) + label(0x2d) + endloop(0x08) + + label(0x56) + label(0x06) + dprint '3','2','\n',0, + mute_channel(CHANNEL_7) + mute_channel(CHANNEL_6) + mute_channel(CHANNEL_5) + restart_default_music + reset_ambience + end_level + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1003_give_items[] = { + yield + yield + yield + yield + label(0x04) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x06) + + // PA + give_object_to_chr(0x01, CHR_JOANNA) + give_object_to_chr(0x89, CHR_VELVET) + chr_draw_weapon(CHR_JOANNA, WEAPON_UNARMED) + chr_draw_weapon(CHR_VELVET, WEAPON_UNARMED) + hide_object(0x02) + hide_object(0x8a) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x08) + set_function(CHR_SELF, GFUNC_IDLE) + + // A and SA + label(0x06) + give_object_to_chr(0x02, CHR_JOANNA) + give_object_to_chr(0x8a, CHR_VELVET) + chr_draw_weapon(CHR_JOANNA, WEAPON_SNIPERRIFLE) + chr_draw_weapon(CHR_VELVET, WEAPON_SNIPERRIFLE) + hide_object(0x01) + hide_object(0x89) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x08) + set_function(CHR_SELF, GFUNC_IDLE) + + // Velvet doesn't exist + label(0x08) + hide_object(0x8a) + hide_object(0x89) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1004_check_negotiator[] = { + if_difficulty_lt(DIFF_PA, /*goto*/ 0x04) + goto_next(0x2d) + + // A and SA + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_NEGOTIATOR_ESCAPED, TRUE, /*goto*/ 0x2d) + if_chr_dying(CHR_NEGOTIATOR, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + message(CHR_JOANNA, 0x200b) // "Negotiator has been killed." + set_stage_flag(STAGEFLAG_NEGOTIATOR_DEAD) + + // PA + label(0x2d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0401_init_taker[] = { + set_chr_health(CHR_SELF, 1) + if_difficulty_gt(DIFF_SA, /*goto*/ 0x2d) + unset_self_flag_bankx(CHRFLAG0_80000000, BANK_0) + label(0x2d) + set_function(CHR_SELF, FUNC_TAKER) + endfunction +}; + +u8 func0402_taker[] = { + set_self_flag_bank3(CHRFLAG3_00000040) + yield + yield + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2d) + + // PA + set_onshot_function(GFUNC_ALERTED) + goto_next(0x06) + + // A and SA + label(0x2d) + set_onshot_function(FUNC_TAKER) + + // All difficulties + label(0x06) + if_just_injured(CHR_SELF, /*goto*/ 0x61) + goto_next(0x03) + + // Wait for injury recovery + beginloop(0x61) + if_chr_stopped(/*goto*/ 0x2d) + endloop(0x61) + + // Injury recovered + label(0x2d) + goto_next(0x6f) + + label(0x03) + if_difficulty_gt(DIFF_SA, /*goto*/ 0x2d) + if_self_flag_bankx_eq(CHRFLAG0_04000000, TRUE, BANK_0, /*goto*/ 0x6f) + set_self_flag_bankx(CHRFLAG0_04000000, BANK_0) + label(0x2d) + restart_timer + if_difficulty_lt(DIFF_PA, /*goto*/ 0x63) + + label(0x60) + if_self_flag_bankx_eq(CHRFLAG0_NOHEAR, TRUE, BANK_0, /*goto*/ 0x06) + set_target_chr(CHR_VELVET) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0x06) + goto_next(0x03) + label(0x06) + set_target_chr(CHR_JOANNA) + label(0x03) + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x05) + + beginloop(0x05) + if_chr_distance_gt(1000, /*goto*/ 0x2e) + if_chr_distance_lt(300, /*goto*/ 0x06) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x06) + if_chr_weapon_equipped(CHR_JOANNA, WEAPON_LAPTOPGUN, /*goto*/ 0x0b) + label(0x2d) + if_timer_gt(600, /*goto*/ 0x06) + endloop(0x05) + + // Jo got away + label(0x2e) + set_return_function(CHR_SELF, GFUNC_ALERTED) + set_function(CHR_SELF, GFUNC_ALERTED) + + // Jo got too close + label(0x06) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x09) + label(0x09) + yield + if_chr_stopped(/*goto*/ 0x06) + goto_first(0x09) + + label(0x06) + goto_first(0x03) + + // Laptop gun equipped + label(0x0b) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + say_quip(CHR_JOANNA, 0x12, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) + restart_timer + animation(0x0202, 0, -1, 0x100a, CHR_SELF, 2) + + beginloop(0x5f) + if_timer_gt(180, /*goto*/ 0x5e) + endloop(0x5f) + + label(0x5e) + goto_first(0x60) + + label(0x63) + restart_timer + set_target_chr(CHR_NEGOTIATOR) + label(0x03) + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x04) + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + dprint 'A','I','M','I','N','G',' ','A','T',' ','M','E','\n',0, + if_chr_distance_to_pad_lt(CHR_P1P2, 200, 0x0236, /*goto*/ 0x06) + label(0x2d) + if_self_flag_bankx_eq(CHRFLAG0_00200000, TRUE, BANK_0, /*goto*/ 0x06) + set_target_chr(CHR_NEGOTIATOR) + if_chr_death_animation_finished(CHR_NEGOTIATOR, /*goto*/ 0x10) + if_chr_dying(CHR_NEGOTIATOR, /*goto*/ 0x10) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2d) + if_timer_gt(600, /*goto*/ 0x06) + reloop(0x04) + + label(0x2d) + if_timer_gt(900, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + set_chr_flag_bankx(CHR_TAKER1, CHRFLAG0_00200000, BANK_0) + set_chr_flag_bankx(CHR_TAKER2, CHRFLAG0_00200000, BANK_0) + restart_timer + + beginloop(0x0c) + if_chr_death_animation_finished(CHR_NEGOTIATOR, /*goto*/ 0x10) + if_chr_dying(CHR_NEGOTIATOR, /*goto*/ 0x10) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2d) + if_timer_gt(600, /*goto*/ 0x06) + reloop(0x0c) + + label(0x2d) + if_timer_gt(1200, /*goto*/ 0x06) + endloop(0x0c) + + // Shoot + label(0x6f) + label(0x06) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x08) + + beginloop(0x08) + if_chr_death_animation_finished(CHR_NEGOTIATOR, /*goto*/ 0x06) + if_chr_dying(CHR_NEGOTIATOR, /*goto*/ 0x06) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x08) + + label(0x06) + if_chr_death_animation_finished(CHR_NEGOTIATOR, /*goto*/ 0x10) + if_chr_dying(CHR_NEGOTIATOR, /*goto*/ 0x10) + goto_first(0x03) + + label(0x10) + try_walk_to_target_chr(/*goto*/ 0x0d) + + beginloop(0x0d) + if_self_flag_bankx_eq(CHRFLAG0_NOHEAR, FALSE, BANK_0, /*goto*/ 0x06) + if_chr_distance_lt(200, /*goto*/ 0x2d) + reloop(0x0d) + + label(0x06) + if_chr_distance_lt(200, /*goto*/ 0x2d) + if_chr_stopped(/*goto*/ 0x2d) + endloop(0x0d) + + label(0x2d) + if_self_flag_bankx_eq(CHRFLAG0_NOHEAR, TRUE, BANK_0, /*goto*/ 0x06) + animation(0x01fd, 0, -1, 0x000a, CHR_SELF, 2) + goto_next(0x0e) + label(0x06) + animation(0x0232, 0, -1, 0x000a, CHR_SELF, 2) + + beginloop(0x0e) + if_shot_near_chr(0x00, /*goto*/ 0x2e) + if_chr_stopped(/*goto*/ 0x2d) + endloop(0x0e) + + label(0x2d) + if_self_flag_bankx_eq(CHRFLAG0_NOHEAR, TRUE, BANK_0, /*goto*/ 0x2d) + walk_to_pad(0x004f) + goto_next(0x11) + label(0x2d) + walk_to_pad(0x004f) + + beginloop(0x11) + if_shot_near_chr(0x00, /*goto*/ 0x2e) + if_chr_stopped(/*goto*/ 0x2d) + endloop(0x11) + + label(0x2d) + remove_chr(CHR_SELF) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2e) + stop_chr + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100f_check_takers_dead[] = { + beginloop(0x04) + if_chr_dying(CHR_TAKER1, /*goto*/ 0x2d) + if_chr_death_animation_finished(CHR_TAKER1, /*goto*/ 0x2d) + if_chr_unloaded(CHR_TAKER1, /*goto*/ 0x2d) + reloop(0x04) + + label(0x2d) + if_chr_dying(CHR_TAKER2, /*goto*/ 0x2d) + if_chr_death_animation_finished(CHR_TAKER2, /*goto*/ 0x2d) + if_chr_unloaded(CHR_TAKER2, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + set_stage_flag(STAGEFLAG_TAKERS_DEAD) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0403_negotiator[] = { + set_chr_health(CHR_SELF, 1) + stop_chr + + beginloop(0x09) + if_stage_flag_eq(STAGEFLAG_TAKERS_DEAD, TRUE, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + run_to_pad(0x004f) + + beginloop(0x08) + dprint 'R','U','N',' ','T','O',' ','P','A','D','\n',0, + if_chr_stopped(/*goto*/ 0x06) + endloop(0x08) + + label(0x06) + message(CHR_JOANNA, 0x200d) // "Negotiator has escaped to safety." + set_stage_flag(STAGEFLAG_NEGOTIATOR_ESCAPED) + stop_music_channel(CHANNEL_1) + remove_chr(CHR_SELF) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1005_toggle_snipers[] = { + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2d) + goto_next(0x2e) + + // A and SA + label(0x2d) + hide_chr(CHR_SNIPER1) + hide_chr(CHR_SNIPER2) + hide_chr(CHR_SNIPER3) + hide_chr(CHR_SNIPER4) + hide_chr(CHR_SNIPER5) + hide_chr(CHR_SNIPER6) + hide_chr(CHR_SNIPER7) + hide_chr(CHR_SNIPER8) + + beginloop(0x08) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x002b, /*goto*/ 0x06) + endloop(0x08) + + // PA + label(0x2e) + hide_chr(CHR_SNIPER1) + hide_chr(CHR_SNIPER2) + hide_chr(CHR_SNIPER3) + hide_chr(CHR_SNIPER4) + hide_chr(CHR_SNIPER6) + hide_chr(CHR_SNIPER7) + set_function(CHR_SNIPER5, FUNC_ENABLE_SNIPER) + set_function(CHR_SNIPER8, FUNC_ENABLE_SNIPER) + + // Room 0x004e is the dock, ramp, and wooden floor at the top of the ramp. + // @bug: When using small characters or play as Elvis cheats, the height + // criteria is not met so the snipers cannot be unhidden. + beginloop(0x09) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_y(CHR_P1P2, -500, OPERATOR_LESS_THAN, /*goto*/ 0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x004e, /*goto*/ 0x06) + label(0x2d) + endloop(0x09) + + // All difficulties + label(0x06) + show_chr(CHR_SNIPER1) + yield + show_chr(CHR_SNIPER2) + yield + show_chr(CHR_SNIPER3) + yield + show_chr(CHR_SNIPER4) + yield + show_chr(CHR_SNIPER6) + yield + show_chr(CHR_SNIPER7) + yield + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2d) + goto_next(0x06) + + // A and SA + label(0x2d) + yield + show_chr(CHR_SNIPER5) + yield + show_chr(CHR_SNIPER8) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + + // All difficulties + label(0x06) + set_function(CHR_SNIPER1, FUNC_ENABLE_SNIPER) + set_function(CHR_SNIPER2, FUNC_ENABLE_SNIPER) + set_function(CHR_SNIPER3, FUNC_ENABLE_SNIPER) + set_function(CHR_SNIPER4, FUNC_ENABLE_SNIPER) + set_function(CHR_SNIPER5, FUNC_ENABLE_SNIPER) + set_function(CHR_SNIPER6, FUNC_ENABLE_SNIPER) + set_function(CHR_SNIPER7, FUNC_ENABLE_SNIPER) + set_function(CHR_SNIPER8, FUNC_ENABLE_SNIPER) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0404_sniper[] = { + stop_chr + set_onshot_function(FUNC_SNIPER) + set_target_chr(CHR_JOANNA) + if_chr_dying(CHR_SELF, /*goto*/ 0x64) + if_self_flag_bankx_eq(CHRFLAG0_08000000, TRUE, BANK_0, /*goto*/ 0x04) + + beginloop(0x60) + if_near_miss(/*goto*/ 0x04) + if_stage_flag_eq(STAGEFLAG_TAKERS_DEAD, TRUE, /*goto*/ 0x2d) + endloop(0x60) + + label(0x2d) + restart_timer + + beginloop(0x11) + if_near_miss(/*goto*/ 0x04) + if_chr_in_view(/*goto*/ 0x04) + if_timer_gt(300, /*goto*/ 0x04) + endloop(0x11) + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + dprint 'S','T','A','R','T','\n',0, + if_target_chr_in_sight(/*goto*/ 0x58) + + // Choose a direction to face + call_rng + if_rand_lt(64, /*goto*/ 0x59) + if_rand_lt(128, /*goto*/ 0x5a) + if_rand_lt(196, /*goto*/ 0x5b) + try_face_entity(ENTITYTYPE_DIRECTION, 0x0000, /*goto*/ 0x06) + reloop(0x04) + + label(0x59) + try_face_entity(ENTITYTYPE_DIRECTION, 0x4000, /*goto*/ 0x06) + reloop(0x04) + + label(0x5a) + try_face_entity(ENTITYTYPE_DIRECTION, 0x8000, /*goto*/ 0x06) + reloop(0x04) + + label(0x5b) + try_face_entity(ENTITYTYPE_DIRECTION, 0xc000, /*goto*/ 0x06) + reloop(0x04) + + // Not actually running to a pad. Just waiting 2 seconds for the change + // in direction, or until detected player. + label(0x06) + dprint 'R','U','N',' ','T','O',' ','P','A','D','\n',0, + restart_timer + + beginloop(0x0a) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x58) + if_saw_death(0x00, /*goto*/ 0x58) + if_shot_near_chr(0x00, /*goto*/ 0x58) + dprint 'F','A','C','E','\n',0, + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x0a) + + // 2 seconds passed + label(0x06) + restart_timer + + label(0x10) + // 4 in 255 chance of looking around, + // and the animation used is random too. + call_rng + if_rand_gt(3, /*goto*/ 0x0b) + call_rng + if_rand_lt(64, /*goto*/ 0x59) + if_rand_lt(128, /*goto*/ 0x5a) + if_rand_lt(196, /*goto*/ 0x5b) + animation(ANIM_LOOK_AROUND_025B, 0, -1, 0x500a, CHR_SELF, 2) + goto_next(0x0b) + label(0x59) + animation(ANIM_LOOK_AROUND_025C, 0, -1, 0x500a, CHR_SELF, 2) + goto_next(0x0b) + label(0x5a) + animation(ANIM_LOOK_AROUND_025D, 0, -1, 0x500a, CHR_SELF, 2) + goto_next(0x0b) + label(0x5b) + animation(ANIM_LOOK_AROUND_025E, 0, -1, 0x500a, CHR_SELF, 2) + + label(0x0b) + yield + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x58) + if_saw_death(0x00, /*goto*/ 0x58) + if_shot_near_chr(0x00, /*goto*/ 0x58) + dprint 'R','U','N','\n',0, + call_rng + if_rand_gt(3, /*goto*/ 0x2d) + if_timer_gt(600, /*goto*/ 0x06) + label(0x2d) + if_chr_idle(/*goto*/ 0x2d) + goto_first(0x10) + + label(0x2d) + goto_first(0x0b) + + label(0x06) + goto_first(0x04) + + // Detected player + label(0x58) + if_in_disarm_range(/*goto*/ 0x2d) + reloop(0x04) + + label(0x2d) + restart_timer + label(0x06) + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x08) + reloop(0x04) + + label(0x08) + yield + label(0x06) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x09) + reloop(0x04) + + beginloop(0x09) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x09) + + label(0x06) + endloop(0x04) + + label(0x64) + dprint 'S','N','I','P','E',' ','D','I','E','\n',0, + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1006_check_snipers_dead[] = { + beginloop(0x04) + if_chr_dying(CHR_SNIPER1, /*goto*/ 0x2d) + if_chr_death_animation_finished(CHR_SNIPER1, /*goto*/ 0x2d) + reloop(0x04) + + label(0x2d) + if_chr_dying(CHR_SNIPER2, /*goto*/ 0x2d) + if_chr_death_animation_finished(CHR_SNIPER2, /*goto*/ 0x2d) + reloop(0x04) + + label(0x2d) + if_chr_dying(CHR_SNIPER3, /*goto*/ 0x2d) + if_chr_death_animation_finished(CHR_SNIPER3, /*goto*/ 0x2d) + reloop(0x04) + + label(0x2d) + if_chr_dying(CHR_SNIPER4, /*goto*/ 0x2d) + if_chr_death_animation_finished(CHR_SNIPER4, /*goto*/ 0x2d) + reloop(0x04) + + label(0x2d) + if_chr_dying(CHR_SNIPER5, /*goto*/ 0x2d) + if_chr_death_animation_finished(CHR_SNIPER5, /*goto*/ 0x2d) + reloop(0x04) + + label(0x2d) + if_chr_dying(CHR_SNIPER6, /*goto*/ 0x2d) + if_chr_death_animation_finished(CHR_SNIPER6, /*goto*/ 0x2d) + reloop(0x04) + + label(0x2d) + if_chr_dying(CHR_SNIPER7, /*goto*/ 0x2d) + if_chr_death_animation_finished(CHR_SNIPER7, /*goto*/ 0x2d) + reloop(0x04) + + label(0x2d) + if_chr_dying(CHR_SNIPER8, /*goto*/ 0x2d) + if_chr_death_animation_finished(CHR_SNIPER8, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + message(CHR_JOANNA, 0x200c) // "Snipers have been eliminated." + set_stage_flag(STAGEFLAG_SNIPERS_DEAD) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1007_cooling_switch[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_COOLING_SWITCH, /*goto*/ 0x06) + reloop(0x04) + + label(0x06) + assign_sound(0x043a, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_COOLING_SWITCH, TRUE) + if_stage_flag_eq(STAGEFLAG_COOLING_ACTIVE, TRUE, /*goto*/ 0x06) + message(CHR_P1P2, 0x200e) // "Cooling systems have been activated." + set_stage_flag(STAGEFLAG_COOLING_ACTIVE) + assign_sound(0x8148, CHANNEL_1) + control_sound_from_object(CHANNEL_1, OBJ_COOLING_SWITCH, TRUE) + restart_timer + + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x2d) + endloop(0x08) + + label(0x2d) + assign_sound(0x811c, CHANNEL_1) + play_sound_from_object(CHANNEL_1, OBJ_COOLING_SWITCH, 0x04b0, 0x0640) + reloop(0x04) + + label(0x06) + mute_channel(CHANNEL_1) + assign_sound(0x043a, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_COOLING_SWITCH, TRUE) + if_stage_flag_eq(STAGEFLAG_WINDMILL_ACTIVATED, FALSE, /*goto*/ 0x2d) + message(CHR_P1P2, 0x2030) // "Operation denied - windmill is active." + goto_next(0x67) + label(0x2d) + assign_sound(0x8149, CHANNEL_1) + control_sound_from_object(CHANNEL_1, OBJ_COOLING_SWITCH, TRUE) + message(CHR_P1P2, 0x200f) // "Cooling systems have been deactivated." + unset_stage_flag(STAGEFLAG_COOLING_ACTIVE) + label(0x67) + restart_timer + + beginloop(0x09) + if_timer_gt(120, /*goto*/ 0x2d) + endloop(0x09) + + label(0x2d) + endloop(0x04) + + endfunction +}; + +u8 func1008_power_switch[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_POWER_SWITCH, /*goto*/ 0x06) + reloop(0x04) + + label(0x06) + assign_sound(0x043a, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_POWER_SWITCH, TRUE) + if_stage_flag_eq(STAGEFLAG_POWER_ACTIVE, TRUE, /*goto*/ 0x06) + message(CHR_P1P2, 0x2010) // "Power systems have been activated." + set_stage_flag(STAGEFLAG_POWER_ACTIVE) + assign_sound(0x8148, CHANNEL_0) + control_sound_from_object(CHANNEL_0, OBJ_POWER_SWITCH, TRUE) + restart_timer + + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x2d) + endloop(0x08) + + label(0x2d) + assign_sound(0x8146, CHANNEL_0) + play_sound_from_object(CHANNEL_0, OBJ_POWER_SWITCH, 0x04b0, 0x0640) + reloop(0x04) + + label(0x06) + mute_channel(CHANNEL_0) + assign_sound(0x043a, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_POWER_SWITCH, TRUE) + if_stage_flag_eq(STAGEFLAG_WINDMILL_ACTIVATED, FALSE, /*goto*/ 0x2d) + message(CHR_P1P2, 0x2030) // "Operation denied - windmill is active." + goto_next(0x67) + label(0x2d) + assign_sound(0x8149, CHANNEL_0) + control_sound_from_object(CHANNEL_0, OBJ_POWER_SWITCH, TRUE) + message(CHR_P1P2, 0x2011) // "Power systems have been deactivated." + unset_stage_flag(STAGEFLAG_POWER_ACTIVE) + label(0x67) + restart_timer + + beginloop(0x09) + if_timer_gt(120, /*goto*/ 0x2d) + endloop(0x09) + + label(0x2d) + endloop(0x04) + + endfunction +}; + +u8 func1009_windmill_switch[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_WINDMILL_SWITCH, /*goto*/ 0x06) + reloop(0x04) + + label(0x06) + if_stage_flag_eq(STAGEFLAG_COOLING_ACTIVE, FALSE, /*goto*/ 0x06) + if_stage_flag_eq(STAGEFLAG_POWER_ACTIVE, FALSE, /*goto*/ 0x06) + + // Activating + assign_sound(0x043a, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_WINDMILL_SWITCH, TRUE) + assign_sound(0x8148, CHANNEL_2) + control_sound_from_object(CHANNEL_2, OBJ_WINDMILL_SWITCH, TRUE) + restart_timer + + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x2d) + endloop(0x08) + + label(0x2d) + assign_sound(0x0438, CHANNEL_2) + play_sound_from_object(CHANNEL_2, OBJ_WINDMILL_SWITCH, 0x0708, 0x0960) + message(CHR_P1P2, 0x2012) // "Windmill has been reactivated." + yield + set_stage_flag(STAGEFLAG_WINDMILL_ACTIVATED) + set_object_flag_bank1(OBJ_WINDMILL, OBJECTFLAG1_20000000) + unlock_door(0x06, 0x02) + unlock_door(0x07, 0x02) + set_function(CHR_SELF, GFUNC_IDLE) + + // Cooling and power not active + label(0x06) + assign_sound(0x043e, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_WINDMILL_SWITCH, TRUE) + restart_timer + + beginloop(0x09) + if_timer_gt(120, /*goto*/ 0x2d) + endloop(0x09) + + label(0x2d) + endloop(0x04) + + endfunction +}; + +u8 func100a_check_switches_destroyed[] = { + beginloop(0x04) + if_object_in_good_condition(0x03, /*goto*/ 0x2d) + if_stage_flag_eq(STAGEFLAG_COOLING_ACTIVE, TRUE, /*goto*/ 0x2d) + message(CHR_JOANNA, 0x2015) // "Critical mission object has been destroyed." + set_stage_flag(STAGEFLAG_WINDMILL_SWITCH_DESTROYED) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2d) + if_object_in_good_condition(0x04, /*goto*/ 0x2d) + if_stage_flag_eq(STAGEFLAG_POWER_ACTIVE, TRUE, /*goto*/ 0x2d) + message(CHR_JOANNA, 0x2015) // "Critical mission object has been destroyed." + set_stage_flag(STAGEFLAG_WINDMILL_SWITCH_DESTROYED) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2d) + if_object_in_good_condition(0x05, /*goto*/ 0x2d) + if_stage_flag_eq(STAGEFLAG_WINDMILL_ACTIVATED, TRUE, /*goto*/ 0x2d) + message(CHR_JOANNA, 0x2015) // "Critical mission object has been destroyed." + set_stage_flag(STAGEFLAG_WINDMILL_SWITCH_DESTROYED) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2d) + endloop(0x04) + + endfunction +}; + +u8 func100b_invoke_hackers[] = { + yield + yield + yield + yield + yield + hide_chr(CHR_HACKER1) + hide_chr(CHR_HACKER2) + hide_chr(CHR_HACKER3) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2d) + goto_next(0x04) + + // A or SA - exit + label(0x2d) + set_function(CHR_SELF, GFUNC_IDLE) + + // PA - wait for windmill + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_WINDMILL_ACTIVATED, TRUE, /*goto*/ 0x06) + endloop(0x04) + + // Wait 10 seconds + label(0x06) + restart_timer + + beginloop(0x08) + if_timer_gt(600, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + speak(CHR_JOANNA, 0x2016, 0x819f, CHANNEL_4, COLOR_05_GREEN) // "Joanna! It's Grimshaw. We've got hackers at the vi..." + set_stage_flag(STAGEFLAG_HACKERS_STARTED) + set_object_flag_bank2(0x0b, OBJECTFLAG2_RTRACKED_YELLOW) + set_object_flag_bank2(0x0d, OBJECTFLAG2_RTRACKED_YELLOW) + show_chr(CHR_HACKER1) + yield + show_chr(CHR_HACKER2) + yield + show_chr(CHR_HACKER3) + yield + set_function(CHR_HACKER1, FUNC_HACKER) + set_function(CHR_HACKER2, FUNC_HACKER) + set_function(CHR_HACKER3, FUNC_HACKER) + unset_chr_flag_bank3(CHR_HACKER1, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_HACKER2, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_HACKER3, CHRFLAG3_HIDDEN) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + play_x_music(CHANNEL_10, 60) + set_countdown_timer(60) + show_countdown_timer + start_countdown_timer + + beginloop(0x09) + if_stage_flag_eq(STAGEFLAG_HACKERS_DEAD, TRUE, /*goto*/ 0x2d) + if_countdown_timer_lt(1, /*goto*/ 0x06) + endloop(0x09) + + // Timer expired + label(0x06) + message(CHR_JOANNA, 0x2017) // "Hackers have uploaded vital data." + set_stage_flag(STAGEFLAG_HACKERS_SUCCEEDED) + + // Hackers dead + label(0x2d) + hide_countdown_timer + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0406_init_hacker[] = { + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0405_hacker[] = { + animation(ANIM_SITTING_TYPING, 0, -1, 0x1400, CHR_SELF, 2) + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_stage_flag_eq(STAGEFLAG_HACKERS_SUCCEEDED, TRUE, /*goto*/ 0x2d) + if_chr_sees_player(/*goto*/ 0x09) + endloop(0x04) + + // Hackers succeeded + label(0x2d) + run_to_pad(0x0070) + + beginloop(0x08) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0x09) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x08) + + // Reached pad + label(0x06) + stop_chr + remove_chr(CHR_SELF) + set_function(CHR_SELF, GFUNC_IDLE) + + // Sees player + label(0x09) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func100c_check_hackers_dead[] = { + if_difficulty_lt(DIFF_PA, /*goto*/ 0x0d) + + beginloop(0x04) + // Wait for hackers to start + if_stage_flag_eq(STAGEFLAG_HACKERS_STARTED, TRUE, /*goto*/ 0x2d) + reloop(0x04) + + // Wait until they're all dead + label(0x2d) + yield + yield + yield + yield + yield + yield + if_chr_dying(CHR_HACKER1, /*goto*/ 0x2d) + if_chr_death_animation_finished(CHR_HACKER1, /*goto*/ 0x2d) + if_chr_unloaded(CHR_HACKER1, /*goto*/ 0x2d) + reloop(0x04) + + label(0x2d) + if_chr_dying(CHR_HACKER2, /*goto*/ 0x2d) + if_chr_death_animation_finished(CHR_HACKER2, /*goto*/ 0x2d) + if_chr_unloaded(CHR_HACKER2, /*goto*/ 0x2d) + reloop(0x04) + + label(0x2d) + if_chr_dying(CHR_HACKER3, /*goto*/ 0x2d) + if_chr_death_animation_finished(CHR_HACKER3, /*goto*/ 0x2d) + if_chr_unloaded(CHR_HACKER3, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + if_stage_flag_eq(STAGEFLAG_HACKERS_SUCCEEDED, TRUE, /*goto*/ 0x2d) + message(CHR_JOANNA, 0x2018) // "Hackers have been eliminated." + set_stage_flag(STAGEFLAG_HACKERS_DEAD) + + // Hackers succeeded + label(0x2d) + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100e_check_objectives_complete[] = { + // @bug: This loop waits until the door is fully open, which allows the + // player to enter the cellar while closing the door behind them and then + // mess with Carrington. + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_door_state(0x09, DOORSTATE_OPEN, /*goto*/ 0x2d) + if_door_state(0x08, DOORSTATE_OPEN, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + message(CHR_P1P2, 0x2019) // "Carrington has been rescued." + set_stage_flag(STAGEFLAG_CARRINGTON_RESCUED) + yield + yield + set_invincible(CHR_JOANNA) + revoke_control(CHR_JOANNA, 4) + hide_countdown_timer + stop_countdown_timer + if_all_objectives_complete(/*goto*/ 0x5c) + message(CHR_JOANNA, 0x201a) // "All objectives not completed - mission failed." + + // If all objectives aren't complete, the player is shown the message, but + // if the objective completes within the next 4 seconds you pass the level + // anyway. + label(0x2d) + restart_timer + + beginloop(0x5d) + if_timer_gt(280, /*goto*/ 0x5c) + endloop(0x5d) + + label(0x5c) + if_all_objectives_complete(/*goto*/ 0x2d) + + // Mission failed - objectives incomplete + end_level + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2d) + 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) + + // Mission failed - players dead + label(0x2d) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x06) + if_chr_dying(CHR_CARRINGTON, /*goto*/ 0x2d) + if_chr_death_animation_finished(CHR_CARRINGTON, /*goto*/ 0x2d) + if_chr_unloaded(CHR_CARRINGTON, /*goto*/ 0x2d) + + // Mission complete + set_function(CHR_SELF, FUNC_OUTRO) + + // Carrington died... somehow + label(0x2d) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1010_set_pa_negotiator_flag[] = { + if_difficulty_lt(DIFF_PA, /*goto*/ 0x06) + set_stage_flag(STAGEFLAG_NEGOTIATOR_ESCAPED) + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1011_setup_snipers[] = { + set_chr_special_death_animation(CHR_SNIPER7, 0x01) + set_chr_special_death_animation(CHR_SNIPER4, 0x02) + set_chr_special_death_animation(CHR_SNIPER5, 0x03) + set_chr_special_death_animation(CHR_SNIPER3, 0x04) + set_chr_flag_bank3(CHR_SNIPER3, CHRFLAG3_HAS_SPECIAL_DEATH_ANIMATION) + set_chr_flag_bank3(CHR_SNIPER4, CHRFLAG3_HAS_SPECIAL_DEATH_ANIMATION) + set_chr_flag_bank3(CHR_SNIPER5, CHRFLAG3_HAS_SPECIAL_DEATH_ANIMATION) + set_chr_flag_bank3(CHR_SNIPER7, CHRFLAG3_HAS_SPECIAL_DEATH_ANIMATION) + set_chr_flag_bank3(CHR_SNIPER1, CHRFLAG3_HAS_SPECIAL_DEATH_ANIMATION) + set_chr_flag_bank3(CHR_SNIPER2, CHRFLAG3_HAS_SPECIAL_DEATH_ANIMATION) + set_chr_flag_bank3(CHR_SNIPER6, CHRFLAG3_HAS_SPECIAL_DEATH_ANIMATION) + set_chr_flag_bank3(CHR_SNIPER8, CHRFLAG3_HAS_SPECIAL_DEATH_ANIMATION) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1013_check_guard_subdued[] = { + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2d) + + beginloop(0x04) + if_num_subdued(0, OPERATOR_GREATER_THAN, /*goto*/ 0x06) + if_self_flag_bankx_eq(CHRFLAG0_00100000, FALSE, BANK_0, /*goto*/ 0x66) + unset_stage_flag(STAGEFLAG_GUARD_CAPTURED) + label(0x66) + reloop(0x04) + + // Captured someone + label(0x06) + if_stage_flag_eq(STAGEFLAG_GUARD_CAPTURED, TRUE, /*goto*/ 0x2e) + message(CHR_JOANNA, 0x201d) // "Enemy guard has been subdued." + label(0x2e) + unset_stage_flag(STAGEFLAG_FORGOT_TO_KO_GUARD) + yield + set_stage_flag(STAGEFLAG_GUARD_CAPTURED) + + beginloop(0x67) + if_num_subdued(1, OPERATOR_LESS_THAN, /*goto*/ 0x06) + endloop(0x67) + + label(0x06) + unset_stage_flag(STAGEFLAG_GUARD_CAPTURED) + endloop(0x04) + + // A and SA + label(0x2d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1014_give_keycard[] = { + set_chr_flag_bank3(CHR_BASEMENT1, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(CHR_BASEMENT2, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(CHR_BASEMENT3, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(CHR_BASEMENT4, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(CHR_BASEMENT5, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(CHR_BASEMENT6, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(CHR_BASEMENT7, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(CHR_BASEMENT8, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(CHR_BASEMENT9, CHRFLAG3_KILLCOUNTABLE) + set_object_flag_bank0(OBJ_KEYCARD, OBJECTFLAG0_00100000) + set_object_flag_bank1(OBJ_KEYCARD, OBJECTFLAG1_INVISIBLE) + + // Wait until one basement guard remaining + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_ONE_BASEMENT_GUARD_REMAINING, TRUE, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + + #define give_keycard_if_alive(chr) \ + if_chr_death_animation_finished(chr, /*goto*/ 0x2d) \ + if_chr_dying(chr, /*goto*/ 0x2d) \ + if_chr_unloaded(chr, /*goto*/ 0x2d) \ + give_object_to_chr(OBJ_KEYCARD, chr) \ + goto_next(0x09) \ + label(0x2d) + + + + give_keycard_if_alive(CHR_BASEMENT1) + give_keycard_if_alive(CHR_BASEMENT2) + give_keycard_if_alive(CHR_BASEMENT3) + give_keycard_if_alive(CHR_BASEMENT4) + give_keycard_if_alive(CHR_BASEMENT5) + give_keycard_if_alive(CHR_BASEMENT6) + give_keycard_if_alive(CHR_BASEMENT7) + give_keycard_if_alive(CHR_BASEMENT8) + + give_object_to_chr(OBJ_KEYCARD, CHR_BASEMENT9) + goto_next(0x09) + label(0x2d) + + // Gave key + label(0x09) + unset_object_flag_bank0(OBJ_KEYCARD, OBJECTFLAG0_00100000) + unset_object_flag_bank1(OBJ_KEYCARD, OBJECTFLAG1_INVISIBLE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1015_check_computers_destroyed[] = { + if_difficulty_lt(DIFF_PA, /*goto*/ 0x09) + + beginloop(0x04) + if_object_in_good_condition(OBJ_HACKERPC1, /*goto*/ 0x2d) + goto_next(0x08) + label(0x2d) + if_object_in_good_condition(OBJ_HACKERPC2, /*goto*/ 0x2d) + goto_next(0x08) + label(0x2d) + if_object_in_good_condition(OBJ_HACKERPC3, /*goto*/ 0x2d) + goto_next(0x08) + label(0x2d) + if_object_in_good_condition(OBJ_HACKERPC4, /*goto*/ 0x2d) + goto_next(0x08) + label(0x2d) + endloop(0x04) + + label(0x08) + message(CHR_JOANNA, 0x2015) // "Critical mission object has been destroyed." + set_stage_flag(STAGEFLAG_HACKER_PC_DESTROYED) + label(0x09) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +#define init_guard(accuracy, reaction, health, recovery) \ + set_chr_dodge_rating(2, 0x0a) \ + set_accuracy(accuracy) \ + set_reaction_speed(reaction) \ + set_chr_health(CHR_SELF, health) \ + set_armor(0) \ + set_recovery_speed(recovery) \ + set_shield(0) + + + +u8 func040a_enable_sniper[] = { + init_guard(13, 15, 10, 15) + set_function(CHR_SELF, FUNC_SNIPER) + endfunction +}; + +u8 func040c_init_type1_guard[] = { + init_guard(3, 15, 40, 0) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func040d_init_type2_guard[] = { + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2d) + init_guard(15, 15, 40, 0) + set_function(CHR_SELF, GFUNC_UNALERTED) + + label(0x2d) + init_guard(3, 15, 40, 0) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func040b_init_basement_guard[] = { + init_guard(13, 15, 40, 10) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func1016_msg_generator[] = { + 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, 0x2023, 0x73ac, CHANNEL_6, COLOR_09_BLUE) // "If I get the wind generator back online, I'll get ..." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1017_msg_gottobequick[] = { + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2d) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2d) + restart_timer + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_INTRO_FINISHED, TRUE, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + restart_timer + + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + speak(CHR_JOANNA, 0x2024, 0x73ad, CHANNEL_6, COLOR_09_BLUE) // "I've got to be quick, or they'll kill the negotiat..." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1018_msg_hidingdaniel[] = { + // Wait for windmill activated + beginloop(0x04) + if_objective_complete(2, /*goto*/ 0x2d) + reloop(0x04) + + label(0x2d) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x08) + if_objective_complete(3, /*goto*/ 0x08) // hackers objective + endloop(0x04) + + beginloop(0x08) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0088, /*goto*/ 0x2d) + endloop(0x08) + + label(0x2d) + speak(CHR_P1P2, 0x2025, 0x73ae, CHANNEL_6, COLOR_09_BLUE) // "Here's where they must be holding Daniel." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1019_msg_hackershavetobestopped[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_HACKERS_STARTED, TRUE, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + restart_timer + + beginloop(0x08) + if_timer_gt(450, /*goto*/ 0x2d) + endloop(0x08) + + label(0x2d) + speak(CHR_JOANNA, 0x2026, 0x73af, CHANNEL_6, COLOR_09_BLUE) // "Those hackers have to be stopped before I rescue D..." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040e_start_path00[] = { + init_guard(3, 15, 40, 0) + assign_path(0) + start_path + set_function(CHR_SELF, GFUNC_UNALERTED_0004) + endfunction +}; + +u8 func040f_start_path01[] = { + init_guard(3, 15, 40, 0) + assign_path(1) + start_path + set_function(CHR_SELF, GFUNC_UNALERTED_0004) + endfunction +}; + +u8 func101b_toggle_basement_chrs[] = { + yield + yield + hide_chr(CHR_BASEMENT1) + hide_chr(CHR_BASEMENT2) + hide_chr(CHR_BASEMENT3) + hide_chr(CHR_BASEMENT4) + hide_chr(CHR_BASEMENT5) + hide_chr(CHR_BASEMENT6) + hide_chr(CHR_BASEMENT7) + hide_chr(CHR_BASEMENT8) + hide_chr(CHR_CARRINGTON) + + // Not sure which room 0x0087 is + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0087, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + show_chr(CHR_BASEMENT1) + yield + show_chr(CHR_BASEMENT2) + yield + show_chr(CHR_BASEMENT3) + yield + show_chr(CHR_BASEMENT4) + yield + show_chr(CHR_BASEMENT5) + yield + show_chr(CHR_BASEMENT6) + yield + show_chr(CHR_BASEMENT7) + yield + show_chr(CHR_BASEMENT8) + yield + yield + show_chr(CHR_CARRINGTON) + yield + cmd0145_rebuild_groups + cmd0146_rebuild_groups + + // Every 5 frames, check if the wine bottles are destroyed. + // There's a lot of stuff going on here without yielding. If you destroyed + // all bottles except 0x88 then you might have a choppy experience. + label(0x08) + restart_timer + + beginloop(0x09) + if_timer_gt(5, /*goto*/ 0x2d) + goto_first(0x09) + + label(0x2d) + if_object_in_good_condition(0x1e, /*goto*/ 0x06) + if_object_in_good_condition(0x1f, /*goto*/ 0x06) + if_object_in_good_condition(0x20, /*goto*/ 0x06) + if_object_in_good_condition(0x21, /*goto*/ 0x06) + if_object_in_good_condition(0x22, /*goto*/ 0x06) + if_object_in_good_condition(0x23, /*goto*/ 0x06) + if_object_in_good_condition(0x24, /*goto*/ 0x06) + if_object_in_good_condition(0x25, /*goto*/ 0x06) + if_object_in_good_condition(0x26, /*goto*/ 0x06) + if_object_in_good_condition(0x27, /*goto*/ 0x06) + if_object_in_good_condition(0x28, /*goto*/ 0x06) + if_object_in_good_condition(0x29, /*goto*/ 0x06) + if_object_in_good_condition(0x2a, /*goto*/ 0x06) + if_object_in_good_condition(0x2b, /*goto*/ 0x06) + if_object_in_good_condition(0x2c, /*goto*/ 0x06) + if_object_in_good_condition(0x2d, /*goto*/ 0x06) + if_object_in_good_condition(0x2e, /*goto*/ 0x06) + if_object_in_good_condition(0x2f, /*goto*/ 0x06) + if_object_in_good_condition(0x30, /*goto*/ 0x06) + if_object_in_good_condition(0x31, /*goto*/ 0x06) + if_object_in_good_condition(0x32, /*goto*/ 0x06) + if_object_in_good_condition(0x33, /*goto*/ 0x06) + if_object_in_good_condition(0x34, /*goto*/ 0x06) + if_object_in_good_condition(0x35, /*goto*/ 0x06) + if_object_in_good_condition(0x36, /*goto*/ 0x06) + if_object_in_good_condition(0x37, /*goto*/ 0x06) + if_object_in_good_condition(0x38, /*goto*/ 0x06) + if_object_in_good_condition(0x39, /*goto*/ 0x06) + if_object_in_good_condition(0x3a, /*goto*/ 0x06) + if_object_in_good_condition(0x3b, /*goto*/ 0x06) + if_object_in_good_condition(0x3c, /*goto*/ 0x06) + if_object_in_good_condition(0x3d, /*goto*/ 0x06) + if_object_in_good_condition(0x3e, /*goto*/ 0x06) + if_object_in_good_condition(0x3f, /*goto*/ 0x06) + if_object_in_good_condition(0x40, /*goto*/ 0x06) + if_object_in_good_condition(0x41, /*goto*/ 0x06) + if_object_in_good_condition(0x42, /*goto*/ 0x06) + if_object_in_good_condition(0x43, /*goto*/ 0x06) + if_object_in_good_condition(0x44, /*goto*/ 0x06) + if_object_in_good_condition(0x45, /*goto*/ 0x06) + if_object_in_good_condition(0x46, /*goto*/ 0x06) + if_object_in_good_condition(0x47, /*goto*/ 0x06) + if_object_in_good_condition(0x48, /*goto*/ 0x06) + if_object_in_good_condition(0x49, /*goto*/ 0x06) + if_object_in_good_condition(0x4a, /*goto*/ 0x06) + if_object_in_good_condition(0x4b, /*goto*/ 0x06) + if_object_in_good_condition(0x4c, /*goto*/ 0x06) + if_object_in_good_condition(0x4d, /*goto*/ 0x06) + if_object_in_good_condition(0x4e, /*goto*/ 0x06) + if_object_in_good_condition(0x4f, /*goto*/ 0x06) + if_object_in_good_condition(0x50, /*goto*/ 0x06) + if_object_in_good_condition(0x51, /*goto*/ 0x06) + if_object_in_good_condition(0x52, /*goto*/ 0x06) + if_object_in_good_condition(0x53, /*goto*/ 0x06) + if_object_in_good_condition(0x54, /*goto*/ 0x06) + if_object_in_good_condition(0x55, /*goto*/ 0x06) + if_object_in_good_condition(0x56, /*goto*/ 0x06) + if_object_in_good_condition(0x57, /*goto*/ 0x06) + if_object_in_good_condition(0x58, /*goto*/ 0x06) + if_object_in_good_condition(0x59, /*goto*/ 0x06) + if_object_in_good_condition(0x5a, /*goto*/ 0x06) + if_object_in_good_condition(0x5b, /*goto*/ 0x06) + if_object_in_good_condition(0x5c, /*goto*/ 0x06) + if_object_in_good_condition(0x5d, /*goto*/ 0x06) + if_object_in_good_condition(0x5e, /*goto*/ 0x06) + if_object_in_good_condition(0x5f, /*goto*/ 0x06) + if_object_in_good_condition(0x60, /*goto*/ 0x06) + if_object_in_good_condition(0x61, /*goto*/ 0x06) + if_object_in_good_condition(0x62, /*goto*/ 0x06) + if_object_in_good_condition(0x63, /*goto*/ 0x06) + if_object_in_good_condition(0x64, /*goto*/ 0x06) + if_object_in_good_condition(0x65, /*goto*/ 0x06) + if_object_in_good_condition(0x66, /*goto*/ 0x06) + if_object_in_good_condition(0x67, /*goto*/ 0x06) + if_object_in_good_condition(0x68, /*goto*/ 0x06) + if_object_in_good_condition(0x69, /*goto*/ 0x06) + if_object_in_good_condition(0x6a, /*goto*/ 0x06) + if_object_in_good_condition(0x6b, /*goto*/ 0x06) + if_object_in_good_condition(0x6c, /*goto*/ 0x06) + if_object_in_good_condition(0x6d, /*goto*/ 0x06) + if_object_in_good_condition(0x6e, /*goto*/ 0x06) + if_object_in_good_condition(0x6f, /*goto*/ 0x06) + if_object_in_good_condition(0x70, /*goto*/ 0x06) + if_object_in_good_condition(0x71, /*goto*/ 0x06) + if_object_in_good_condition(0x72, /*goto*/ 0x06) + if_object_in_good_condition(0x73, /*goto*/ 0x06) + if_object_in_good_condition(0x74, /*goto*/ 0x06) + if_object_in_good_condition(0x75, /*goto*/ 0x06) + if_object_in_good_condition(0x76, /*goto*/ 0x06) + if_object_in_good_condition(0x77, /*goto*/ 0x06) + if_object_in_good_condition(0x78, /*goto*/ 0x06) + if_object_in_good_condition(0x79, /*goto*/ 0x06) + if_object_in_good_condition(0x7a, /*goto*/ 0x06) + if_object_in_good_condition(0x7b, /*goto*/ 0x06) + if_object_in_good_condition(0x7c, /*goto*/ 0x06) + if_object_in_good_condition(0x7d, /*goto*/ 0x06) + if_object_in_good_condition(0x7e, /*goto*/ 0x06) + if_object_in_good_condition(0x7f, /*goto*/ 0x06) + if_object_in_good_condition(0x80, /*goto*/ 0x06) + if_object_in_good_condition(0x81, /*goto*/ 0x06) + if_object_in_good_condition(0x82, /*goto*/ 0x06) + if_object_in_good_condition(0x83, /*goto*/ 0x06) + if_object_in_good_condition(0x84, /*goto*/ 0x06) + if_object_in_good_condition(0x85, /*goto*/ 0x06) + if_object_in_good_condition(0x86, /*goto*/ 0x06) + if_object_in_good_condition(0x87, /*goto*/ 0x06) + if_object_in_good_condition(0x88, /*goto*/ 0x06) + play_sound(0x17cb, -1) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x06) + goto_first(0x08) + + endfunction +}; + +/** + * This function hides guards inside the villa on A and SA, then unhides them + * once you approach the villa. + */ +u8 func101c_toggle_villa_guards[] = { + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2d) + set_function(CHR_SELF, GFUNC_IDLE) + + // A and SA + label(0x2d) + hide_chr(0x23) + hide_chr(0x24) + hide_chr(0x25) + hide_chr(0x26) + hide_chr(0x27) + hide_chr(0x28) + hide_chr(0x29) + hide_chr(0x2a) + hide_chr(0x2b) + hide_chr(0x2c) + hide_chr(0x2d) + hide_chr(0x2e) + hide_chr(0x2f) + hide_chr(0x30) + hide_chr(0x31) + hide_chr(0x32) + hide_chr(0x33) + hide_chr(0x34) + hide_chr(0x35) + hide_chr(0x36) + hide_chr(0x37) + hide_chr(0x38) + hide_chr(0x39) + hide_chr(0x3a) + hide_chr(0x3b) + hide_chr(0x3c) + hide_chr(0x3d) + hide_chr(0x3e) + hide_chr(0x3f) + hide_chr(0x40) + hide_chr(0x41) + hide_chr(0x42) + + // @bug: It is possible to cross room 0x002a in a single frame on coop if + // hugging the corner tightly, which means the guards will not be unhidden. + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x002a, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + show_chr(0x23) + yield + show_chr(0x24) + yield + show_chr(0x25) + yield + show_chr(0x26) + yield + show_chr(0x27) + yield + show_chr(0x28) + yield + show_chr(0x29) + yield + show_chr(0x2a) + yield + show_chr(0x2b) + yield + show_chr(0x2c) + yield + show_chr(0x2d) + yield + show_chr(0x2e) + yield + show_chr(0x2f) + yield + show_chr(0x30) + yield + show_chr(0x31) + yield + show_chr(0x32) + yield + show_chr(0x33) + yield + show_chr(0x34) + yield + show_chr(0x35) + yield + show_chr(0x36) + yield + show_chr(0x37) + yield + show_chr(0x38) + yield + show_chr(0x39) + yield + show_chr(0x3a) + yield + show_chr(0x3b) + yield + show_chr(0x3c) + yield + show_chr(0x3d) + yield + show_chr(0x3e) + yield + show_chr(0x3f) + yield + show_chr(0x40) + yield + show_chr(0x41) + yield + show_chr(0x42) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101d_dual_cmp150[] = { + // Probable @bug: This timer starts from the start of the intro cinema, + // rather than from when you take control of Jo. + yield + restart_timer + + // Wait 38.3 seconds or for CMP150 sniper to die + beginloop(0x04) + if_chr_dying(CHR_SNIPER7, /*goto*/ 0x2d) + if_timer_gt(2300, /*goto*/ 0x06) + endloop(0x04) + + label(0x2d) + pause_timer + play_sound(0x04c6, -1) // "My gun!" + + beginloop(0x08) + if_chr_death_animation_finished(0x06, /*goto*/ 0x2d) + endloop(0x08) + + label(0x2d) + unset_object_flag_bank0(OBJ_CMP150_1, OBJECTFLAG0_00100000) + unset_object_flag_bank0(OBJ_CMP150_2, OBJECTFLAG0_00100000) + unset_object_flag_bank1(OBJ_CMP150_1, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank1(OBJ_CMP150_1, OBJECTFLAG1_INVISIBLE) + + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0407_init_sniper[] = { + set_chr_health(CHR_SELF, 1) + stop_chr + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0410_carrington[] = { + yield + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_UNEXPLODABLE) + set_chr_health(CHR_SELF, 1) + animation(0x017b, 1, 1, 0x0600, CHR_CARRINGTON, 2) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Unlock exterior doors on SA and PA. + */ +u8 func101e_unlock_doors[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2d) + unlock_door(0x90, 0x80) + unlock_door(0x91, 0x80) + unlock_door(0x92, 0x80) + unlock_door(0x93, 0x80) + unlock_door(0x94, 0x80) + unlock_door(0x95, 0x80) + unlock_door(0x96, 0x80) + unlock_door(0x97, 0x80) + unlock_door(0x98, 0x80) + label(0x2d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101f_check_one_basement_guard_remaining[] = { + #define inc_var_if_chr_dead(chr) \ + if_chr_dying(chr, /*goto*/ 0x2d) \ + if_chr_death_animation_finished(chr, /*goto*/ 0x2d) \ + if_chr_unloaded(chr, /*goto*/ 0x2d) \ + goto_next(0x06) \ + label(0x2d) \ + add_var_a(1) \ + label(0x06) + + + + beginloop(0x04) + set_var_a(0) + + inc_var_if_chr_dead(CHR_BASEMENT1) + inc_var_if_chr_dead(CHR_BASEMENT2) + inc_var_if_chr_dead(CHR_BASEMENT3) + inc_var_if_chr_dead(CHR_BASEMENT4) + inc_var_if_chr_dead(CHR_BASEMENT5) + inc_var_if_chr_dead(CHR_BASEMENT6) + inc_var_if_chr_dead(CHR_BASEMENT7) + inc_var_if_chr_dead(CHR_BASEMENT8) + inc_var_if_chr_dead(CHR_BASEMENT9) + + if_var_a_lt(8, /*goto*/ 0x2d) + set_stage_flag(STAGEFLAG_ONE_BASEMENT_GUARD_REMAINING) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2d) + endloop(0x04) + + endfunction +}; + +/** + * Counterop only. + */ +u8 func1420_setup_portals[] = { + yield + configure_room_portals(0x0050) + configure_room_portals(0x0052) + configure_room_portals(0x006c) + configure_room_portals(0x004d) + configure_room_portals(0x0065) + configure_room_portals(0x0059) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1423_setup_lighting[] = { + yield + set_lighting(0x0027, 0x05, 0x01) + set_lighting(0x0027, 0x06, 0x01) + set_lighting(0x000c, 0x05, 0x01) + set_lighting(0x000c, 0x06, 0x01) + set_lighting(0x0029, 0x05, 0x01) + set_lighting(0x0035, 0x05, 0x01) + set_lighting(0x0035, 0x06, 0x01) + set_lighting(0x0036, 0x06, 0x01) + set_lighting(0x0037, 0x05, 0x01) + set_lighting(0x0037, 0x06, 0x01) + set_lighting(0x0038, 0x05, 0x01) + set_lighting(0x0038, 0x06, 0x01) + set_lighting(0x0039, 0x05, 0x01) + set_lighting(0x0039, 0x06, 0x01) + set_lighting(0x003a, 0x05, 0x01) + set_lighting(0x003a, 0x06, 0x01) + set_lighting(0x003b, 0x06, 0x01) + set_lighting(0x003c, 0x06, 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(0x0043, 0x05, 0x01) + set_lighting(0x0044, 0x05, 0x01) + set_lighting(0x0045, 0x05, 0x01) + set_lighting(0x0046, 0x05, 0x01) + set_lighting(0x0046, 0x06, 0x01) + set_lighting(0x0047, 0x05, 0x01) + set_lighting(0x0048, 0x05, 0x01) + set_lighting(0x0048, 0x06, 0x01) + set_lighting(0x0049, 0x05, 0x01) + set_lighting(0x004a, 0x05, 0x01) + set_lighting(0x004b, 0x05, 0x01) + set_lighting(0x004b, 0x06, 0x01) + set_lighting(0x004c, 0x05, 0x01) + set_lighting(0x004c, 0x06, 0x01) + set_lighting(0x004e, 0x05, 0x01) + set_lighting(0x004e, 0x06, 0x01) + set_lighting(0x004f, 0x06, 0x01) + set_lighting(0x0050, 0x05, 0x01) + set_lighting(0x0050, 0x06, 0x01) + set_lighting(0x0051, 0x06, 0x01) + set_lighting(0x0053, 0x05, 0x01) + set_lighting(0x0053, 0x06, 0x01) + set_lighting(0x0054, 0x06, 0x01) + set_lighting(0x0056, 0x05, 0x01) + set_lighting(0x0056, 0x06, 0x01) + set_lighting(0x0057, 0x05, 0x01) + set_lighting(0x0059, 0x05, 0x01) + set_lighting(0x0059, 0x06, 0x01) + set_lighting(0x005a, 0x06, 0x01) + set_lighting(0x005b, 0x05, 0x01) + set_lighting(0x005b, 0x06, 0x01) + set_lighting(0x005c, 0x06, 0x01) + set_lighting(0x005d, 0x06, 0x01) + set_lighting(0x005e, 0x06, 0x01) + set_lighting(0x005f, 0x06, 0x01) + set_lighting(0x0060, 0x06, 0x01) + set_lighting(0x0061, 0x05, 0x01) + set_lighting(0x0061, 0x06, 0x01) + set_lighting(0x0062, 0x05, 0x01) + set_lighting(0x0062, 0x06, 0x01) + set_lighting(0x0063, 0x06, 0x01) + set_lighting(0x0064, 0x06, 0x01) + set_lighting(0x0065, 0x06, 0x01) + set_lighting(0x0066, 0x05, 0x01) + set_lighting(0x0066, 0x06, 0x01) + set_lighting(0x0068, 0x05, 0x01) + set_lighting(0x0068, 0x06, 0x01) + set_lighting(0x0069, 0x06, 0x01) + set_lighting(0x006a, 0x06, 0x01) + set_lighting(0x006b, 0x06, 0x01) + set_lighting(0x006c, 0x06, 0x01) + set_lighting(0x006d, 0x06, 0x01) + set_lighting(0x006e, 0x06, 0x01) + set_lighting(0x006f, 0x06, 0x01) + set_lighting(0x0070, 0x05, 0x01) + set_lighting(0x0070, 0x06, 0x01) + set_lighting(0x0071, 0x05, 0x01) + set_lighting(0x0071, 0x06, 0x01) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1021_toggle_last_basement_guard[] = { + set_chr_flag_bank3(CHR_BASEMENT9, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_BASEMENT9, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + + beginloop(0x04) + if_difficulty_gt(DIFF_SA, /*goto*/ 0x2d) + if_objective_complete(0, /*goto*/ 0x2d) + reloop(0x04) + + label(0x2d) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2d) + if_objective_complete(1, /*goto*/ 0x2d) + reloop(0x04) + + label(0x2d) + if_objective_complete(2, /*goto*/ 0x2d) + reloop(0x04) + + label(0x2d) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2d) + if_objective_complete(3, /*goto*/ 0x2d) + reloop(0x04) + + label(0x2d) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2d) + if_objective_complete(4, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + unset_chr_flag_bank3(CHR_BASEMENT9, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_BASEMENT9, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1022_setup_rtracker[] = { + yield + set_object_flag_bank2(OBJ_CMP150_1, OBJECTFLAG2_RTRACKED_BLUE) + set_object_flag_bank2(OBJ_CMP150_2, OBJECTFLAG2_RTRACKED_BLUE) + set_object_flag_bank2(OBJ_DEVASTATOR, OBJECTFLAG2_RTRACKED_BLUE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0411_cisoldier[] = { + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + chr_drop_weapon(CHR_SELF) + label(0x08) + yield + animation(0x0487, -1, -1, 0x0600, CHR_CISOLDIER, 2) + yield + yield + yield + kill(CHR_CISOLDIER) + label(0x2d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * This should be investigated more. + */ +u8 func1024_set_chr_flags_on_pa[] = { + yield + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2d) + set_chr_flag_bank2(CHR_TAKER1, CHRFLAG2_08000000) + set_chr_flag_bank2(0x0a, CHRFLAG2_08000000) + set_chr_flag_bank2(0x23, CHRFLAG2_08000000) + set_chr_flag_bank2(0x2f, CHRFLAG2_08000000) + set_chr_flag_bank2(0x34, CHRFLAG2_08000000) + set_chr_flag_bank2(0x37, CHRFLAG2_08000000) + set_chr_flag_bank2(0x3e, CHRFLAG2_08000000) + set_chr_flag_bank2(CHR_BASEMENT6, CHRFLAG2_08000000) + set_chr_flag_bank2(CHR_BASEMENT8, CHRFLAG2_08000000) + label(0x2d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1025_check_basement_entered_without_subdue[] = { + yield + if_difficulty_lt(DIFF_PA, /*goto*/ 0x0d) + + beginloop(0x04) + if_objective_complete(4, /*goto*/ 0x0c) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0087, /*goto*/ 0x06) + label(0x0c) + endloop(0x04) + + label(0x06) + message(CHR_P1P2, 0x2031) // "Mission unsuccessful - enemy guard not captured." + set_stage_flag(STAGEFLAG_FORGOT_TO_KO_GUARD) + + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +struct ailists functions[] = { + { func1400_setup_counterop, 0x1400 }, + { func1001_objectives_failed_msg, 0x1001 }, + { func1002_intro, 0x1002 }, + { func1003_give_items, 0x1003 }, + { func1004_check_negotiator, 0x1004 }, + { func1005_toggle_snipers, 0x1005 }, + { func1006_check_snipers_dead, 0x1006 }, + { func1007_cooling_switch, 0x1007 }, + { func1008_power_switch, 0x1008 }, + { func1009_windmill_switch, 0x1009 }, + { func100a_check_switches_destroyed, 0x100a }, + { func100b_invoke_hackers, 0x100b }, + { func100c_check_hackers_dead, 0x100c }, + { func100e_check_objectives_complete, 0x100e }, + { func100f_check_takers_dead, 0x100f }, + { func1010_set_pa_negotiator_flag, 0x1010 }, + { func1011_setup_snipers, 0x1011 }, + { func1013_check_guard_subdued, 0x1013 }, + { func1014_give_keycard, 0x1014 }, + { func1015_check_computers_destroyed, 0x1015 }, + { func1016_msg_generator, 0x1016 }, + { func1017_msg_gottobequick, 0x1017 }, + { func1018_msg_hidingdaniel, 0x1018 }, + { func1019_msg_hackershavetobestopped, 0x1019 }, + { func101b_toggle_basement_chrs, 0x101b }, + { func101c_toggle_villa_guards, 0x101c }, + { func101d_dual_cmp150, 0x101d }, + { func101e_unlock_doors, 0x101e }, + { func101f_check_one_basement_guard_remaining, 0x101f }, + { func1420_setup_portals, 0x1420 }, + { func1021_toggle_last_basement_guard, 0x1021 }, + { func1022_setup_rtracker, 0x1022 }, + { func1423_setup_lighting, 0x1423 }, + { func1024_set_chr_flags_on_pa, 0x1024 }, + { func1025_check_basement_entered_without_subdue, 0x1025 }, + { func1002_intro, 0x0c00 }, + { func1002_intro_from_menu, 0x0c01 }, + { func0c02_outro_from_menu, 0x0c02 }, + { func0401_init_taker, 0x0401 }, + { func0402_taker, 0x0402 }, + { func0403_negotiator, 0x0403 }, + { func0404_sniper, 0x0404 }, + { func0405_hacker, 0x0405 }, + { func0406_init_hacker, 0x0406 }, + { func0407_init_sniper, 0x0407 }, + { func0408_outro, 0x0408 }, + { func1002_intro, 0x0409 }, + { func040a_enable_sniper, 0x040a }, + { func040b_init_basement_guard, 0x040b }, + { func040c_init_type1_guard, 0x040c }, + { func040d_init_type2_guard, 0x040d }, + { func040e_start_path00, 0x040e }, + { func040f_start_path01, 0x040f }, + { func0410_carrington, 0x0410 }, + { func0411_cisoldier, 0x0411 }, + { NULL, 0 }, +}; + +struct aipaths paths[] = { + { path00, 0, 0 }, + { path01, 1, 0 }, + { NULL, 0, 0 }, +}; + diff --git a/src/setup/setupimp.c b/src/setup/setupimp.c new file mode 100644 index 000000000..fd74c828e --- /dev/null +++ b/src/setup/setupimp.c @@ -0,0 +1,4104 @@ +// +// Defense +// + +#include "../include/setup.h" + +// Characters +#define CHR_CARRINGTON 0x00 +#define CHR_HOSTAGE_DEVICE_F 0x01 // device room - female +#define CHR_HOSTAGE_FR1 0x02 +#define CHR_HOSTAGE_INFO_M 0x03 // info room - male +#define CHR_HOSTAGE_HOLO 0x04 // holo +#define CHR_HANGARGUY 0x05 // wears hostage clothes but isn't a hostage +#define CHR_HOSTAGE_DEVICE_M 0x06 // device room - male +#define CHR_HOSTAGE_FR2 0x07 +#define CHR_HOSTAGE_INFO_F 0x08 // info room - female +#define CHR_TAKER_FR1 0x1f +#define CHR_TAKER_FR2 0x20 +#define CHR_TAKER_HOLO1 0x21 +#define CHR_TAKER_HOLO2 0x22 +#define CHR_TAKER_HOLO3 0x23 +#define CHR_TAKER_DEVICE_M 0x24 +#define CHR_TAKER_DEVICE_F 0x25 +#define CHR_TAKER_INFO_F 0x26 +#define CHR_TAKER_INFO_M 0x27 +#define CHR_BLONDE1 0x28 +#define CHR_BLONDE2 0x29 +#define CHR_BLONDE3 0x2a +#define CHR_BLONDE4 0x2b +#define CHR_BLONDE5 0x2c +#define CHR_BLONDE6 0x2d +#define CHR_BLONDE7 0x30 +#define CHR_SKEDAR1 0x31 +#define CHR_SKEDAR2 0x32 +#define CHR_SKEDAR3 0x33 +#define CHR_SKEDAR4 0x34 +#define CHR_HOLOCLONE1 0x35 +#define CHR_HOLOCLONE2 0x36 +#define CHR_HOLOCLONE3 0x37 +#define CHR_JONATHAN 0x38 + +// Objects +#define OBJ_RCP120 0x05 +#define OBJ_AUTOGUN1 0x06 +#define OBJ_AUTOGUN2 0x07 +#define OBJ_AUTOGUN3 0x08 +#define OBJ_SAFEINFO 0x09 +#define OBJ_AUTOGUN_SWITCH1 0x0a +#define OBJ_AUTOGUN_SWITCH2 0x0b +#define OBJ_AUTOGUN_SWITCH3 0x0c +#define OBJ_SAFEDOOR 0x39 +#define OBJ_SKEDAR_SHUTTLE 0x3c +#define OBJ_RCP120_GLASS 0x3d +#define OBJ_FR_GLASS 0x3e +#define OBJ_DEVASTATOR 0x45 +#define OBJ_FR_PC 0x4e +#define OBJ_DATAUPLINK_JOANNA 0x4f +#define OBJ_DATAUPLINK_VELVET 0x50 + +// Stage flags +#define STAGEFLAG_00000001 0x00000001 // never set +#define STAGEFLAG_AUTOGUN1_ACTIVE 0x00000100 +#define STAGEFLAG_AUTOGUN2_ACTIVE 0x00000200 +#define STAGEFLAG_AUTOGUN3_ACTIVE 0x00000400 +#define STAGEFLAG_ENOUGH_HOSTAGES_SAVED 0x00000800 +#define STAGEFLAG_TOO_MANY_HOSTAGES_KILLED 0x00001000 +#define STAGEFLAG_SAFEINFO_DESTROYED 0x00002000 +#define STAGEFLAG_BOMB_AIRBORNE 0x00004000 +#define STAGEFLAG_CARRINGTON_DEAD 0x00010000 +#define STAGEFLAG_HOLO_TAKERS_DEAD 0x00040000 +#define STAGEFLAG_DEVICE_TAKERS_DEAD 0x00080000 +#define STAGEFLAG_INFO_TAKERS_DEAD 0x00100000 +#define STAGEFLAG_AUTOGUN_SWITCH_DESTROYED 0x00200000 +#define STAGEFLAG_BOMB_EXPLODING_ON_GROUND 0x00800000 +#define STAGEFLAG_TRIGGER_SHUTTLE_TAKEOFF 0x01000000 +#define STAGEFLAG_INTRO_FINISHED 0x02000000 +#define STAGEFLAG_VISITED_HOSTAGES_BEFORE_AUTOGUNS 0x04000000 +#define STAGEFLAG_TRIGGER_AUTODEFENSES_MSG 0x08000000 +#define STAGEFLAG_TRIGGER_COUNTINGONME_MSG 0x10000000 +#define STAGEFLAG_TRIGGER_SPAWNING 0x20000000 +#define STAGEFLAG_DROPPED_DEVASTATOR 0x40000000 +#define STAGEFLAG_FR_PC_DESTROYED 0x80000000 + +// Functions +#define FUNC_SPAWNER1 0x0401 +#define FUNC_CLONE1 0x0402 +#define FUNC_INIT_CLONE1 0x0403 +#define FUNC_SPAWNER2 0x0404 +#define FUNC_CLONE2 0x0405 +#define FUNC_INIT_CLONE2 0x0406 +#define FUNC_SPAWNER3 0x0407 +#define FUNC_CLONE3 0x0408 +#define FUNC_INIT_CLONE3 0x0409 +#define FUNC_SPAWNER4 0x040a +#define FUNC_CLONE4 0x040b +#define FUNC_INIT_CLONE4 0x040c +#define FUNC_SPAWNER5 0x040d +#define FUNC_CLONE5 0x040e +#define FUNC_INIT_CLONE5 0x040f +#define FUNC_SPAWNER6 0x0410 +#define FUNC_CLONE6 0x0411 +#define FUNC_INIT_CLONE6 0x0412 +#define FUNC_DEFEND_PAD 0x0413 +#define FUNC_FIRINGRANGE_HOSTAGE 0x0414 +#define FUNC_INIT_HOSTAGE_FR1 0x0415 +#define FUNC_INIT_HOSTAGE_FR2 0x0416 +#define FUNC_INIT_FIRINGRANGE_TAKER 0x0419 +#define FUNC_HOSTAGE_HOLO 0x041a +#define FUNC_INIT_HOSTAGE_HOLO 0x041b +#define FUNC_INIT_HOLOCLONE1 0x041c +#define FUNC_INIT_HOLOCLONE2 0x041d +#define FUNC_INIT_HOLOCLONE3 0x041e +#define FUNC_HOLOCLONE 0x041f +#define FUNC_TAKER_HOLO1 0x0420 +#define FUNC_TAKER_HOLO2 0x0421 +#define FUNC_TAKER_HOLO3 0x0422 +#define FUNC_INIT_SHOCK 0x0423 +#define FUNC_HOLOCLONE_ONSHOT 0x0424 +#define FUNC_HOSTAGE_THANK_AND_RUN 0x0425 +#define FUNC_INIT_SAVED_HOSTAGE 0x0426 +#define FUNC_DROP_DEVASTATOR 0x0427 +#define FUNC_INIT_DROP_DEVASTATOR 0x0428 +#define FUNC_SKEDAR4 0x0429 +#define FUNC_INIT_JONATHAN 0x042a +#define FUNC_DEVICEROOM_HOSTAGE 0x042b +#define FUNC_INIT_HOSTAGE_DEVICE_F 0x042c +#define FUNC_INIT_HOSTAGE_DEVICE_M 0x042d +#define FUNC_TAKER_DEVICE_M 0x042e +#define FUNC_INIT_TAKER_DEVICE_M 0x042f +#define FUNC_TAKER_DEVICE_F 0x0430 +#define FUNC_INIT_TAKER_DEVICE_F 0x0431 +#define FUNC_TAKER_ATTACK 0x0432 +#define FUNC_INFOROOM_HOSTAGE 0x0433 +#define FUNC_INIT_HOSTAGE_INFO_M 0x0434 +#define FUNC_INIT_HOSTAGE_INFO_F 0x0435 +#define FUNC_TAKER_INFO_M 0x0436 +#define FUNC_INIT_TAKER_INFO_M 0x0437 +#define FUNC_TAKER_INFO_F 0x0438 +#define FUNC_INIT_TAKER_INFO_F 0x0439 +#define FUNC_INIT_BLONDE 0x043b +#define FUNC_INIT_CISOLDIER 0x043c +#define FUNC_CARRINGTON 0x043e + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + briefing(0, 0x2201) + briefing(1, 0x2200) + briefing(2, 0x2202) + briefing(3, 0x2203) + + beginobjective(0, 0x2205, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Reactivate automatic defenses" + complete_flags(STAGEFLAG_AUTOGUN1_ACTIVE) + complete_flags(STAGEFLAG_AUTOGUN2_ACTIVE) + complete_flags(STAGEFLAG_AUTOGUN3_ACTIVE) + fail_flags(STAGEFLAG_AUTOGUN_SWITCH_DESTROYED) + fail_flags(STAGEFLAG_00000001) + endobjective + + beginobjective(1, 0x2206, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Release hostages" + complete_flags(STAGEFLAG_ENOUGH_HOSTAGES_SAVED) + fail_flags(STAGEFLAG_TOO_MANY_HOSTAGES_KILLED) + endobjective + + beginobjective(2, 0x2207, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Retrieve experimental weapon" + require_object_collected(OBJ_RCP120) + fail_flags(STAGEFLAG_FR_PC_DESTROYED) + endobjective + + beginobjective(3, 0x2208, (DIFFBIT_PA | DIFFBIT_PD)) // "Destroy sensitive information" + complete_flags(STAGEFLAG_SAFEINFO_DESTROYED) + endobjective + + beginobjective(4, 0x2209, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Deactivate bomb" + complete_flags(STAGEFLAG_BOMB_AIRBORNE) + fail_flags(STAGEFLAG_BOMB_EXPLODING_ON_GROUND) + fail_flags(STAGEFLAG_CARRINGTON_DEAD) + endobjective + + tag(0x23, 2) + tag(0x24, 2) + door(0x0100, MODEL_CIDOOR1_REF, 0x0156, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CIDOOR1_REF, 0x0157, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x43, 2) + tag(0x44, 2) + door(0x0100, MODEL_CIDOOR1_REF, 0x0158, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CIDOOR1_REF, 0x0159, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CIDOOR1_REF, 0x015b, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CIDOOR1_REF, 0x015c, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x54, 1) + door(0x0100, MODEL_CIDOOR1_REF, 0x015a, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x19, 1) + door(0x0100, MODEL_CIDOOR1_REF, 0x015d, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x51, 1) + door(0x0100, MODEL_CH_SHUTTER1, 0x0166, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000222, 0x00000004, 0x00000020, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x0167, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000222, 0x00000004, 0x00000020, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + stdobject(0x0100, MODEL_CI_SOFA, 0x0212, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_CI_SOFA, 0x0213, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_CI_SOFA, 0x0214, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_CI_SOFA, 0x0215, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_CI_SOFA, 0x0216, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_CI_SOFA, 0x0217, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_CI_SOFA, 0x0218, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_CI_SOFA, 0x0219, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + glass(0x0100, MODEL_WINDOW, 0x019f, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x019e, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x019d, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x019c, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01a0, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01a1, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01a2, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01a3, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01a4, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01a5, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01a6, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01a7, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01c4, 0x04020b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01c5, 0x04020b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01c6, 0x04020b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01c7, 0x04020b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01a8, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01a9, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01aa, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01ab, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01ac, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01ad, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01ae, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01af, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x01d1, 0x04000362, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x46, 6) + tag(0x47, 6) + tag(0x48, 6) + tag(0x49, 6) + tag(0x41, 1) + lift(0x0100, MODEL_CI_LIFT, 0x0193, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0193, 0x0194, 0xffffffff, 0x00000001, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x015e, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x015f, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x0160, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x0161, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-4, -5, 0, 0) + link_objects(-4, -6, 0, 0) + link_objects(-4, -7, 0, 1) + link_objects(-4, -8, 0, 1) + tag(0x4a, 6) + tag(0x4b, 6) + tag(0x4c, 6) + tag(0x4d, 6) + tag(0x42, 1) + lift(0x0100, MODEL_CI_LIFT, 0x0195, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0195, 0x0196, 0xffffffff, 0x00000001, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x0164, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x0165, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x0162, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x0163, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-4, -5, 0, 0) + link_objects(-4, -6, 0, 0) + link_objects(-4, -7, 0, 1) + link_objects(-4, -8, 0, 1) + tag(0x00, 1) + stdobject(0x0100, MODEL_DD_CHAIR, 0x021b, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x021a, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x4e, 1) + stdobject(0x0100, MODEL_GOODPC, 0x021c, 0x000004e1, 0x00000001, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x01, 1) + stdobject(0x0100, MODEL_DD_CHAIR, 0x021f, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x021d, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_GOODPC, 0x021e, 0x000004e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x02, 1) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0220, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x0222, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_GOODPC, 0x0221, 0x000004e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + chr(0x00010400, 0x02, 0x00fa, BODY_CILABTECH, HEAD_CHRIST, FUNC_INIT_HOSTAGE_FR1, 0x00b7, -1, 1000, 6, 0x00000000, 0x00300000, 0x10, 0x05, -1, 0, 0x02000000) + weapon(0x0100, MODEL_CHRFALCON2, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2, 0x00ffffff, 0x00000000) + chr(0x00014400, 0x07, 0x0013, BODY_CILABTECH, HEAD_BEAU1, FUNC_INIT_HOSTAGE_FR2, 0x00b7, -1, 0, 0, 0x48000000, 0x00300000, 0x10, 0x0d, 0x00, 0, 0x00020000) + weapon(0x0100, MODEL_CHRFALCON2, 0x0007, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2, 0x00ffffff, 0x00000000) + chr(0x00010400, 0x04, 0x0103, BODY_CIFEMTECH, HEAD_SECRETARY, FUNC_INIT_HOSTAGE_HOLO, -1, -1, 1000, 6, 0x00000000, 0x00200000, 0x10, 0x05, -1, 0, 0x02000000) + chr(0x00010400, 0x01, 0x010b, BODY_CIFEMTECH, HEAD_SECRETARY, FUNC_INIT_HOSTAGE_DEVICE_F, -1, -1, 1000, 6, 0x00000000, 0x00200000, 0x10, 0x05, -1, 0, 0x02000000) + chr(0x00014400, 0x06, 0x00fd, BODY_CILABTECH, HEAD_RUSS, FUNC_INIT_HOSTAGE_DEVICE_M, -1, -1, 0, 0, 0x48000000, 0x00200000, 0x10, 0x0d, 0x01, 0, 0x00020000) + chr(0x00010400, 0x03, 0x010c, BODY_CILABTECH, HEAD_MARK2, FUNC_INIT_HOSTAGE_INFO_M, -1, -1, 1000, 6, 0x00000000, 0x00200001, 0x10, 0x05, -1, 0, 0x02000000) + chr(0x00014400, 0x08, 0x00f7, BODY_CIFEMTECH, HEAD_SECRETARY, FUNC_INIT_HOSTAGE_INFO_F, -1, -1, 0, 0, 0x00000000, 0x00200001, 0x10, 0x0d, 0x02, 0, 0x00020000) + chr(0x00000400, 0x05, 0x00fb, BODY_CILABTECH, HEAD_BRIAN, GFUNC_IDLE, 0x00fb, -1, 1000, 6, 0x00012000, 0x00300000, 0x10, 0x05, -1, 0, 0x02000000) + weapon(0x0100, MODEL_CHRFALCON2, 0x0005, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2, 0x00ffffff, 0x00000000) + chr(0x00010400, 0x00, 0x0142, BODY_CARREVENINGSUIT, HEAD_CARRINGTON, GFUNC_IDLE, 0x0142, -1, 200, 100, 0x00012000, 0x00301000, 0x10, 0x01, -1, 0, 0x00000000) + chr(0x00000000, 0x0c, 0x0133, BODY_DDSHOCK, HEAD_RANDOM, FUNC_SPAWNER1, -1, -1, 200, 100, 0x80092000, 0x00301000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000080, 0x0d, 0x0134, BODY_DDSHOCK, HEAD_RANDOM, FUNC_SPAWNER2, -1, -1, 200, 100, 0x80092000, 0x00301000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x0e, 0x0135, BODY_DDSHOCK, HEAD_RANDOM, FUNC_SPAWNER2, -1, -1, 200, 100, 0x80092000, 0x00301000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x10, 0x0137, BODY_DDSHOCK, HEAD_RANDOM, FUNC_SPAWNER3, -1, -1, 200, 100, 0x80092000, 0x00301000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0010, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x12, 0x0139, BODY_DDSHOCK, HEAD_RANDOM, FUNC_SPAWNER5, -1, -1, 200, 100, 0x80092000, 0x00301000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0012, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x13, 0x003a, BODY_DDSHOCK, HEAD_RANDOM, FUNC_SPAWNER4, -1, -1, 200, 100, 0x80092000, 0x00301000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0013, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x15, 0x013c, BODY_CISOLDIER, HEAD_RANDOM, GFUNC_IDLE, 0x013c, -1, 200, 100, 0x80012000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAR34, 0x0015, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AR34, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x16, 0x013d, BODY_CISOLDIER, HEAD_RANDOM, GFUNC_IDLE, 0x013d, -1, 200, 100, 0x80012000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAR34, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AR34, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x17, 0x013e, BODY_CISOLDIER, HEAD_RANDOM, GFUNC_IDLE, 0x013e, -1, 200, 100, 0x80012000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAR34, 0x0017, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AR34, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x18, 0x013f, BODY_CISOLDIER, HEAD_RANDOM, GFUNC_IDLE, 0x013f, -1, 200, 100, 0x80012000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAR34, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AR34, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x1b, 0x0143, BODY_CISOLDIER, HEAD_RANDOM, GFUNC_IDLE, 0x0143, -1, 200, 100, 0x80012000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAR34, 0x001b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AR34, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x1c, 0x0144, BODY_CISOLDIER, HEAD_RANDOM, GFUNC_IDLE, 0x0144, -1, 200, 100, 0x80012000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAR34, 0x001c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AR34, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x1d, 0x0145, BODY_CISOLDIER, HEAD_RANDOM, GFUNC_IDLE, 0x00b1, -1, 200, 100, 0x80012000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAR34, 0x001d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AR34, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x1e, 0x0146, BODY_CISOLDIER, HEAD_RANDOM, GFUNC_IDLE, 0x0146, -1, 200, 100, 0x80012000, 0x80300000, 0x10, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAR34, 0x001e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AR34, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x19, 0x0140, BODY_CISOLDIER, HEAD_RANDOM, GFUNC_IDLE, 0x0140, -1, 200, 100, 0x80012000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAR34, 0x0019, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AR34, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x1a, 0x0141, BODY_CISOLDIER, HEAD_RANDOM, GFUNC_IDLE, 0x0141, -1, 200, 100, 0x80012000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAR34, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AR34, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x1f, 0x014b, BODY_DDSHOCK, HEAD_RANDOM, FUNC_INIT_SHOCK, -1, -1, 200, 100, 0x00092000, 0x00300000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x001f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x20, 0x014c, BODY_DDSHOCK, HEAD_RANDOM, FUNC_INIT_SHOCK, -1, -1, 200, 100, 0x00092000, 0x00300000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0020, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x21, 0x014d, BODY_DDSHOCK, HEAD_RANDOM, FUNC_INIT_SHOCK, -1, -1, 200, 100, 0x00092000, 0x00300000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0021, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x22, 0x014e, BODY_DDSHOCK, HEAD_RANDOM, FUNC_INIT_SHOCK, -1, -1, 200, 100, 0x00092000, 0x00300000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0022, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x23, 0x014f, BODY_DDSHOCK, HEAD_RANDOM, FUNC_INIT_SHOCK, -1, -1, 200, 100, 0x00092000, 0x00300000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0023, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x24, 0x0150, BODY_DDSHOCK, HEAD_RANDOM, FUNC_INIT_TAKER_DEVICE_M, -1, -1, 200, 100, 0x00092000, 0x00300000, 0x02, 0x0f, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0024, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x25, 0x0151, BODY_DDSHOCK, HEAD_RANDOM, FUNC_INIT_TAKER_DEVICE_F, -1, -1, 200, 100, 0x00092000, 0x00300000, 0x02, 0x0f, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0025, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x26, 0x0152, BODY_DDSHOCK, HEAD_RANDOM, FUNC_INIT_TAKER_INFO_F, -1, -1, 200, 100, 0x00010000, 0x00300000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0026, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x27, 0x0153, BODY_DDSHOCK, HEAD_RANDOM, FUNC_INIT_TAKER_INFO_M, -1, -1, 200, 100, 0x00010000, 0x00300000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0027, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x14, 0x0053, BODY_DDSHOCK, HEAD_RANDOM, FUNC_SPAWNER6, -1, -1, 200, 100, 0x00010000, 0x00300000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x28, 0x0148, BODY_MRBLONDE, HEAD_MRBLONDE, GFUNC_IDLE_0009, -1, -1, 200, 100, 0xc0092000, 0x00300000, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0028, 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(0x00000200, 0x29, 0x0149, BODY_MRBLONDE, HEAD_MRBLONDE, GFUNC_IDLE_0009, -1, -1, 200, 100, 0xc0092000, 0x00300000, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0029, 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(0x00000200, 0x2a, 0x014a, BODY_MRBLONDE, HEAD_MRBLONDE, GFUNC_IDLE_0009, -1, -1, 200, 100, 0xc0092000, 0x00300000, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x002a, 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(0x00000200, 0x2b, 0x0154, BODY_MRBLONDE, HEAD_MRBLONDE, GFUNC_IDLE_0009, -1, -1, 200, 100, 0xc0092000, 0x00300000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x002b, 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(0x00000200, 0x2c, 0x0155, BODY_MRBLONDE, HEAD_MRBLONDE, GFUNC_IDLE_0009, -1, -1, 200, 100, 0xc0092000, 0x00300000, 0x02, 0x0e, -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(0x00000200, 0x2d, 0x0147, BODY_MRBLONDE, HEAD_MRBLONDE, GFUNC_IDLE_0009, -1, -1, 200, 100, 0xc0092000, 0x00300000, 0x02, 0x0e, -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(0x00000000, 0x30, 0x00ff, BODY_MRBLONDE, HEAD_MRBLONDE, GFUNC_IDLE, -1, -1, 200, 100, 0x00092000, 0x00301000, 0x02, 0x00, -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(0x00004000, 0x31, 0x0100, BODY_SKEDAR, HEAD_RANDOM, GFUNC_INVINCIBLE_AND_IDLE, -1, -1, 200, 100, 0x00092000, 0x00301000, 0x02, 0x00, -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(0x00004000, 0x32, 0x0101, BODY_SKEDAR, HEAD_RANDOM, GFUNC_INVINCIBLE_AND_IDLE, -1, -1, 200, 100, 0x00092000, 0x00301000, 0x02, 0x00, -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(0x00004000, 0x33, 0x0102, BODY_SKEDAR, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 200, 100, 0x00092000, 0x00301000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0033, 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(0x00004100, 0x34, 0x003a, BODY_SKEDAR, HEAD_RANDOM, GFUNC_STOP_AND_IDLE, -1, -1, 200, 100, 0x00092000, 0x40300000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0034, 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(0x00010100, 0x38, 0x0051, BODY_CISOLDIER, HEAD_JONATHAN, FUNC_INIT_JONATHAN, 0x0051, -1, 200, 100, 0x00012000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDY357, 0x0038, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357MAGNUM, 0x00ffffff, 0x00000000) + tag(0x06, 1) + autogun(0x00a6, MODEL_CI_ROOFGUN, 0x0235, 0x00000004, 0x00002001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00750000, 0x00000000, 0x00005555, 0xffffaaab, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000aaa, 0x00320000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x07, 1) + autogun(0x00a6, MODEL_CI_ROOFGUN, 0x0234, 0x00000004, 0x00002001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x007c0000, 0x00000000, 0x00005555, 0xffffaaab, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000aaa, 0x00320000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x08, 1) + autogun(0x00a6, MODEL_CI_ROOFGUN, 0x0233, 0x00000004, 0x00002001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00970000, 0x00000000, 0x00005555, 0xffffaaab, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000aaa, 0x00320000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x0a, 1) + multimonitor(0x0099, MODEL_CIHUB, 0x0236, 0x00000002, 0x00000001, 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, 0x03000000) + tag(0x0b, 1) + multimonitor(0x0099, MODEL_CIHUB, 0x0237, 0x00000002, 0x00000001, 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, 0x03000000) + tag(0x0c, 1) + multimonitor(0x0099, MODEL_CIHUB, 0x0238, 0x00000002, 0x00000001, 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, 0x03000000) + tag(0x0d, 1) + stdobject(0x0100, MODEL_DROPSHIP, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x0e, 1) + stdobject(0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x0f, 1) + stdobject(0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x10, 1) + stdobject(0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x11, 1) + stdobject(0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x12, 1) + stdobject(0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x13, 1) + stdobject(0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x14, 1) + stdobject(0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x15, 1) + stdobject(0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x16, 1) + stdobject(0x0300, MODEL_LASERCUT, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x17, 1) + stdobject(0x0100, MODEL_LASERCUT, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x18, 1) + stdobject(0x0100, MODEL_LASERCUT, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x52, 1) + stdobject(0x0019, MODEL_KNOCKKNOCK, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x53, 1) + stdobject(0x0019, MODEL_KNOCKKNOCK, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x05, 1) + weapon(0x0180, MODEL_CHRRCP120, 0x011a, 0x00100008, 0x00000000, 0x20400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_RCP120, 0x00ffffff, 0x00000000) + tag(0x09, 1) + stdobject(0x0480, MODEL_SENSITIVEINFO, 0x010f, 0x000204e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + rename_object(-1, 0x4e, 0x220a, 0x220b, 0x220c, 0x220d, 0x220e, 0x0000, 0x0000) // "Obtain sensitive info." + tag(0x4f, 1) + weapon(0x0180, MODEL_CHRDATATHIEF, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DATAUPLINK, 0x00ffffff, 0x00000000) + rename_object(-1, 0x36, 0x2239, 0x223a, 0x223b, 0x223c, 0x223d, 0x0000, 0x0000) // "Obtain Data Uplink." + tag(0x50, 1) + weapon(0x0180, MODEL_CHRDATATHIEF, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DATAUPLINK, 0x00ffffff, 0x00000000) + rename_object(-1, 0x36, 0x2239, 0x223a, 0x223b, 0x223c, 0x223d, 0x0000, 0x0000) // "Obtain Data Uplink." + door(0x0100, MODEL_INSTFRONTDOOR, 0x018f, 0x10000600, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_INSTFRONTDOOR, 0x0190, 0x10000600, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0168, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0169, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x016a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x016b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x016c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x016d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x016e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x016f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0170, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0171, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0172, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0173, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0174, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0175, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0176, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0177, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0178, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0179, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x017b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x017c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x017d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x017e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x017f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0180, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x0181, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000222, 0x00000004, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000400, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x0182, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000222, 0x00000004, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000400, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0183, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2_G5, 0x0184, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000222, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01b7, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01b8, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01b9, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01ba, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01bb, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01bc, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01bd, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01be, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01bf, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01c3, 0x04000b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x39, 1) + stdobject(0x0100, MODEL_AIRBASE_SAFEDOOR, 0x025b, 0x000205e8, 0x00200002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000007d0, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0252, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0253, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0254, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0255, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0256, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0257, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0258, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0259, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x025a, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01d6, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01e1, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01e2, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01e5, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01e6, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01e8, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01e9, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01ea, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01eb, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01ec, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01ed, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01ee, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01ef, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01f0, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01f1, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01f3, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01f4, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01f5, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01f6, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01f7, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01fa, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01fb, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01fc, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01fd, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x01fe, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x0200, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x0201, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x0202, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x0204, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x3c, 1) + stdobject(0x0100, MODEL_SK_SHUTTLE, 0xffff, 0x00021501, 0x00006001, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00002ee0, 0x00000000, 0x00000000, 0x0fff0000) + glass(0x0100, MODEL_DD_WINDOW, 0x01c8, 0x04000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01c9, 0x04000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01ca, 0x04000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01cb, 0x04000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01cc, 0x04000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01cd, 0x04000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x3d, 1) + glass(0x0100, MODEL_DD_WINDOW, 0x01ce, 0x04000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01cf, 0x04000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x3e, 1) + glass(0x0100, MODEL_DD_WINDOW, 0x01d0, 0x04000b62, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + door(0x0100, MODEL_DD_GRATE, 0x0185, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00100005, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DEVICESECRETDOOR, 0x0186, 0x36000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00100005, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_GRATE, 0x0187, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00100005, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CARRINGTONSECRETDOOR, 0x0188, 0x16000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00100005, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x3f, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x0288, 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(0x0180, MODEL_CHRSHIELD, 0x0092, 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(0x45, 1) + weapon(0x0100, MODEL_CHRDEVASTATOR, 0xffff, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DEVASTATOR, 0x00ffffff, 0x00000000) + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_FROCK) + intro_weapon(WEAPON_AR34, -1) + ammo(AMMOTYPE_RIFLE, 200) + ammo(AMMOTYPE_PISTOL, 300) + ammo(AMMOTYPE_SMG, 400) + intro_weapon(WEAPON_COMBATBOOST, -1) + ammo(AMMOTYPE_BOOST, 2) + intro_weapon(WEAPON_LASER, -1) + intro_weapon(WEAPON_LASER, -1) + spawn(0x0120) + endintro +}; + +s32 path00[] = { + 0x0113, + -1, +}; + +u8 func1001_objectives_failed_msg[] = { + yield + give_object_to_chr(OBJ_DATAUPLINK_JOANNA, CHR_JOANNA) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x2e) + give_object_to_chr(OBJ_DATAUPLINK_VELVET, CHR_VELVET) + + label(0x2e) + set_chr_flag_bank3(CHR_CARRINGTON, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_HOSTAGE_DEVICE_F, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_HOSTAGE_FR1, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_HOSTAGE_INFO_M, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_HOSTAGE_HOLO, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_HANGARGUY, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_HOSTAGE_DEVICE_M, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_HOSTAGE_FR2, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_HOSTAGE_INFO_F, CHRFLAG3_04000000) + set_chr_flag_bank3(0x09, CHRFLAG3_04000000) + set_chr_flag_bank3(0x0a, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_HOSTAGE_FR1, CHRFLAG3_UNEXPLODABLE) + set_chr_flag_bank3(CHR_HOSTAGE_FR2, CHRFLAG3_UNEXPLODABLE) + set_chr_flag_bank3(CHR_TAKER_FR1, CHRFLAG3_UNEXPLODABLE) + set_chr_flag_bank3(CHR_TAKER_FR2, CHRFLAG3_UNEXPLODABLE) + set_function(CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG) + endfunction +}; + +u8 func1400_setup_counterop[] = { + yield + set_chr_alliance(CHR_COUNTEROP, ALLIANCE_ENEMY) + set_function(CHR_SELF, GFUNC_REBUILD_GROUPS) + endfunction +}; + +#define spawner_logic(initfunc, clonefunc) \ + set_self_flag_bank3(CHRFLAG3_00000002) \ + set_self_flag_bank3(CHRFLAG3_HIDDEN) \ + set_self_flag_bank3(CHRFLAG3_00040000) \ + \ + beginloop(0x0f) \ + if_stage_flag_eq(STAGEFLAG_TRIGGER_SPAWNING, TRUE, /*goto*/ 0x04) \ + endloop(0x0f) \ + \ + beginloop(0x04) \ + if_never_been_onscreen(/*goto*/ 0x4f) \ + if_chr_sees_player(/*goto*/ 0x0a) \ + reloop(0x04) \ + \ + label(0x0a) \ + set_function(CHR_SELF, clonefunc) \ + \ + label(0x4f) \ + if_chr_death_animation_finished(CHR_CLONE, /*goto*/ 0x4f) \ + reloop(0x04) \ + \ + label(0x4f) \ + try_spawn_clone2(CHR_SELF, initfunc, 0x00000000, /*goto*/ 0x2e) \ + set_function(CHR_SELF, clonefunc) \ + label(0x2e) \ + yield \ + endloop(0x04) + + + +#define initclone_logic(templatechr, clonefunc) \ + set_chr_dodge_rating(2, 0x00) \ + set_accuracy(20) \ + set_reaction_speed(70) \ + set_chr_health(CHR_SELF, 40) \ + set_armor(0) \ + set_recovery_speed(0) \ + set_shield(90) \ + set_self_flag_bankx(CHRFLAG1_00080000, BANK_1) \ + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_00400000) \ + label(0x04) \ + try_inherit_properties(templatechr, /*goto*/ 0x08) \ + label(0x08) \ + set_chr_alliance(CHR_SELF, ALLIANCE_ENEMY) \ + cmd0145_rebuild_groups \ + cmd0146_rebuild_groups \ + set_function(CHR_SELF, clonefunc) + + + +// Spawn clones in autogun hall dead end room +u8 func0401_spawner1[] = { + spawner_logic(FUNC_INIT_CLONE1, FUNC_CLONE1) + endfunction +}; + +u8 func0403_init_clone1[] = { + initclone_logic(0x0b, FUNC_CLONE1) + endfunction +}; + +u8 func0402_clone1[] = { + unset_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + run_to_pad(0x00c2) + set_return_function(CHR_SELF, FUNC_CLONE1) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +// Spawn clones in vehicle maintenance area - assigned to two spawners +u8 func0404_spawner2[] = { + spawner_logic(FUNC_INIT_CLONE2, FUNC_CLONE2) + endfunction +}; + +u8 func0406_init_clone2[] = { + initclone_logic(0x0d, FUNC_CLONE2) + endfunction +}; + +u8 func0405_clone2[] = { + run_to_pad(0x00b1) + set_return_function(CHR_SELF, FUNC_CLONE2) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +// Spawn clones in room with pit near autogun switches +u8 func0407_spawner3[] = { + spawner_logic(FUNC_INIT_CLONE3, FUNC_CLONE3) + endfunction +}; + +u8 func0409_init_clone3[] = { + initclone_logic(0x0f, FUNC_CLONE3) + endfunction +}; + +u8 func0408_clone3[] = { + run_to_pad(0x00af) + set_return_function(CHR_SELF, FUNC_CLONE3) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +/** + * Assigned to CI soldiers, Jon and hangar guy + */ +u8 func0413_defend_pad[] = { + set_onshot_function(FUNC_DEFEND_PAD) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x0a) + if_chr_distance_to_pad_lt(CHR_SELF, 200, TARGET_PAD, /*goto*/ 0x08) + + // Distance to pad >= 200 + label(0x03) + jog_to_pad(TARGET_PAD) + + beginloop(0x04) + dprint 'G','O',' ','T','O',' ','P','A','D','\n',0, + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x0a) + if_chr_distance_to_pad_lt(CHR_SELF, 200, TARGET_PAD, /*goto*/ 0x08) + endloop(0x04) + + // At pad + label(0x08) + stop_chr + + beginloop(0x0b) + dprint 'A','T',' ','P','A','D','\n',0, + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x0a) + if_chr_distance_to_pad_gt(CHR_SELF, 300, TARGET_PAD, /*goto*/ 0x08) + endloop(0x0b) + + label(0x08) + goto_first(0x03) + + // Detected enemy + label(0x0a) + dprint 'D','E','T','E','C','T','E','D','\n',0, + set_onshot_function(FUNC_DEFEND_PAD) + set_return_function(CHR_SELF, FUNC_DEFEND_PAD) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + endfunction +}; + +u8 func100b_setup_autoguns[] = { + yield + set_autoturret_type(OBJ_AUTOGUN1, 0xef) + set_autoturret_type(OBJ_AUTOGUN2, 0xef) + set_autoturret_type(OBJ_AUTOGUN3, 0xef) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2f) + + // SA and PA only + restart_timer + + beginloop(0x71) + if_timer_gt(120, /*goto*/ 0x2e) + endloop(0x71) + + label(0x2e) + set_object_flag_bank0(OBJ_AUTOGUN1, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(OBJ_AUTOGUN2, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(OBJ_AUTOGUN3, OBJECTFLAG0_DEACTIVATED) + + label(0x2f) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1004_check_hostages_killed[] = { + set_chr_flag_bank3(CHR_HOSTAGE_DEVICE_F, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(CHR_HOSTAGE_FR1, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(CHR_HOSTAGE_INFO_M, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(CHR_HOSTAGE_HOLO, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(CHR_HOSTAGE_DEVICE_M, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(CHR_HOSTAGE_FR2, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(CHR_HOSTAGE_INFO_F, CHRFLAG3_KILLCOUNTABLE) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x0a) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x0b) + + // PA + beginloop(0x0c) + if_kill_count_gt(2, /*goto*/ 0x08) + endloop(0x0c) + + // Agent + beginloop(0x0a) + if_kill_count_gt(4, /*goto*/ 0x08) + endloop(0x0a) + + // SA + beginloop(0x0b) + if_kill_count_gt(3, /*goto*/ 0x08) + endloop(0x0b) + + label(0x08) + if_stage_flag_eq(STAGEFLAG_ENOUGH_HOSTAGES_SAVED, TRUE, /*goto*/ 0x2e) + set_stage_flag(STAGEFLAG_TOO_MANY_HOSTAGES_KILLED) + message(CHR_JOANNA, 0x2210) // "Too many hostages killed." + + label(0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1005_check_safeinfo_destroyed[] = { + beginloop(0x04) + if_object_in_good_condition(OBJ_SAFEINFO, /*goto*/ 0x2e) + goto_next(0x08) + + label(0x2e) + endloop(0x04) + + label(0x08) + message(CHR_JOANNA, 0x2212) // "Sensitive information has been destroyed." + set_stage_flag(STAGEFLAG_SAFEINFO_DESTROYED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +#define autogun_switch_logic(switch, autogun, stageflag) \ + if_difficulty_lt(DIFF_SA, /*goto*/ 0x0e) \ + \ + beginloop(0x04) \ + consider_coop_for_p1p2_chr(CHR_SELF) \ + if_object_in_good_condition(switch, /*goto*/ 0x2e) \ + goto_next(0x0b) \ + \ + label(0x2e) \ + if_object_in_good_condition(autogun, /*goto*/ 0x2e) \ + goto_next(0x0b) \ + \ + label(0x2e) \ + if_chr_activated_object(CHR_P1P2, switch, /*goto*/ 0x08) \ + endloop(0x04) \ + \ + /* Switch activated */ \ + label(0x08) \ + play_sound(0x043a, CHANNEL_7) \ + message(CHR_P1P2, 0x220f) /* "Automatic gun activated." */ \ + label(0x0e) \ + unset_object_flag_bank0(autogun, OBJECTFLAG0_DEACTIVATED) \ + set_stage_flag(stageflag) \ + \ + beginloop(0x0f) \ + if_object_in_good_condition(autogun, /*goto*/ 0x2e) \ + goto_next(0x0b) \ + \ + label(0x2e) \ + endloop(0x0f) \ + \ + /* Autogun or switch destroyed */ \ + label(0x0b) \ + if_difficulty_lt(DIFF_SA, /*goto*/ 0x11) \ + message(CHR_JOANNA, 0x2222) /* "Critical mission object has been destroyed." */ \ + set_stage_flag(STAGEFLAG_AUTOGUN_SWITCH_DESTROYED) + + + +u8 func1007_autogun_switch1[] = { + autogun_switch_logic(OBJ_AUTOGUN_SWITCH1, OBJ_AUTOGUN1, STAGEFLAG_AUTOGUN1_ACTIVE) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x11) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1008_autogun_switch2[] = { + autogun_switch_logic(OBJ_AUTOGUN_SWITCH2, OBJ_AUTOGUN2, STAGEFLAG_AUTOGUN2_ACTIVE) + label(0x11) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1009_autogun_switch3[] = { + autogun_switch_logic(OBJ_AUTOGUN_SWITCH3, OBJ_AUTOGUN3, STAGEFLAG_AUTOGUN3_ACTIVE) + label(0x11) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0c01_outro[] = { + camera_movement(0x01a2) + set_music_track(MUSIC_DEFENSE_OUTRO) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0xf1, CHRFLAG3_HIDDEN) + set_function(CHR_P1P2, GFUNC_IDLE) + set_chr_flag_bank3(CHR_CARRINGTON, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_P1P2, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_P1P2, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_P1P2, CHRFLAG2_00020000) + animation(0x01a3, -1, -1, 0x0600, CHR_P1P2, 4) + + #define show_object_with_animation(object, animation) \ + show_object(object) \ + set_object_flag_bank1(object, OBJECTFLAG1_04000000) \ + set_object_flag_bank2(object, OBJECTFLAG2_00000010) \ + object_do_animation(animation, object, 0x04ff, 0xff) + + + + show_object_with_animation(0x0e, 0x01a4) + show_object_with_animation(0x0f, 0x01a5) + show_object_with_animation(0x10, 0x01a6) + show_object_with_animation(0x11, 0x01a7) + show_object_with_animation(0x12, 0x01a8) + show_object_with_animation(0x13, 0x01a9) + show_object_with_animation(0x14, 0x01aa) + + show_object(0x0d) + unset_object_flag_bank0(0x0d, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank1(0x0d, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x0d, OBJECTFLAG2_00000010) + object_do_animation(0x01b4, 0x0d, 0x01ff, 0xff) + + show_nonessential_chrs(FALSE) + open_door(0x51) + restart_timer + yield + set_object_flag_bank0(0x51, OBJECTFLAG0_40000000) + set_cutscene_weapon(CHR_P1P2, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_P1P2, WEAPON_AR34, WEAPON_NONE) + + #define wait_until(time, loopid) \ + beginloop(loopid) \ + if_controller_button_pressed(/*goto*/ 0xb8) \ + if_timer_gt(time, /*goto*/ 0x08) \ + endloop(loopid) \ + label(0x08) + + + + wait_until(86, 0x73) + play_sound(0x0161, CHANNEL_10) + + wait_until(114, 0x74) + play_sound(0x0162, CHANNEL_10) + + wait_until(140, 0x75) + play_sound(0x0163, CHANNEL_10) + + wait_until(168, 0x76) + play_sound(0x0164, CHANNEL_10) + + wait_until(186, 0x77) + play_sound(0x0161, CHANNEL_10) + + beginloop(0x0a) + if_camera_animating(/*goto*/ 0x2e) + goto_next(0xb8) + + label(0x2e) + if_controller_button_pressed(/*goto*/ 0xb8) + label(0x2e) + endloop(0x0a) + + label(0xb8) + mute_channel(CHANNEL_10) + hide_object(0x0d) + camera_movement(0x01ac) + unset_chr_flag_bank3(CHR_SKEDAR1, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_SKEDAR2, CHRFLAG3_HIDDEN) + + set_chr_flag_bank3(CHR_SKEDAR1, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_SKEDAR1, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_SKEDAR1, CHRFLAG2_00020000) + animation(0x01ad, -1, -1, 0x0600, CHR_SKEDAR1, 4) + + set_chr_flag_bank3(CHR_SKEDAR2, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_SKEDAR2, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_SKEDAR2, CHRFLAG2_00020000) + animation(0x01ae, -1, -1, 0x0600, CHR_SKEDAR2, 4) + + wait_until(16, 0x78) + play_sound(0x0530, CHANNEL_10) + + wait_until(56, 0x79) + play_sound(0x052b, CHANNEL_10) + + beginloop(0x0b) + if_camera_animating(/*goto*/ 0x2e) + goto_next(0xb8) + + label(0x2e) + if_controller_button_pressed(/*goto*/ 0xb8) + label(0x2e) + endloop(0x0b) + + label(0xb8) + mute_channel(CHANNEL_10) + camera_movement(0x0305) + set_chr_flag_bank3(CHR_P1P2, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_P1P2, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_P1P2, CHRFLAG2_00020000) + animation(0x0306, -1, -1, 0x0600, CHR_P1P2, 4) + + show_object_with_animation(0x0e, 0x0307) + show_object_with_animation(0x0f, 0x0308) + show_object_with_animation(0x10, 0x0309) + show_object_with_animation(0x11, 0x030a) + show_object_with_animation(0x12, 0x030b) + show_object_with_animation(0x13, 0x030c) + show_object_with_animation(0x14, 0x030d) + show_object_with_animation(0x0d, 0x030f) + + show_object(0x16) + set_object_flag_bank1(0x16, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x16, OBJECTFLAG2_00000010) + object_do_animation(0x01b1, 0x16, 0x02ff, 0xff) + + wait_until(372, 0x7a) + play_sound(0x0506, CHANNEL_10) + + wait_until(382, 0x7b) + play_sound(0x0048, CHANNEL_10) + + wait_until(390, 0x7c) + play_sound(0x0506, CHANNEL_10) + + wait_until(400, 0x7d) + play_sound(0x0049, CHANNEL_10) + + wait_until(432, 0x7e) + play_sound(0x0506, CHANNEL_10) + + wait_until(442, 0x7f) + play_sound(0x00d0, CHANNEL_10) + + wait_until(454, 0x80) + play_sound(0x0506, CHANNEL_10) + + wait_until(464, 0x81) + play_sound(0x0078, CHANNEL_10) + + wait_until(466, 0x82) + play_sound(0x0161, CHANNEL_10) + + wait_until(484, 0x83) + play_sound(0x0162, CHANNEL_10) + + wait_until(502, 0x84) + play_sound(0x0164, CHANNEL_10) + + wait_until(516, 0x85) + play_sound(0x0163, CHANNEL_10) + + wait_until(528, 0x86) + play_sound(0x0162, CHANNEL_10) + + wait_until(570, 0x71) + speak(CHR_JOANNA, 0x2231, 0x747d, CHANNEL_10, COLOR_09_BLUE) // "Get clear! I'll hold them off... You can come back..." + + wait_until(847, 0x87) + play_sound(0x0161, CHANNEL_10) + + wait_until(852, 0x88) + play_sound(0x0162, CHANNEL_10) + + wait_until(865, 0x72) + set_chr_shooting_in_cutscene(CHR_JOANNA, TRUE) + yield + set_chr_shooting_in_cutscene(CHR_JOANNA, TRUE) + yield + set_chr_shooting_in_cutscene(CHR_JOANNA, TRUE) + yield + set_chr_shooting_in_cutscene(CHR_JOANNA, FALSE) + + wait_until(870, 0x89) + + label(0x8a) + set_chr_shooting_in_cutscene(CHR_JOANNA, TRUE) + yield + if_controller_button_pressed(/*goto*/ 0xb8) + if_timer_gt(960, /*goto*/ 0x08) + goto_first(0x8a) + + label(0x08) + set_chr_shooting_in_cutscene(CHR_JOANNA, FALSE) + speak(CHR_JOANNA, 0x2232, 0x747e, CHANNEL_10, COLOR_09_BLUE) // "At least, I hope you can." + + wait_until(1018, 0x8c) + set_chr_shooting_in_cutscene(CHR_JOANNA, TRUE) + yield + set_chr_shooting_in_cutscene(CHR_JOANNA, TRUE) + yield + set_chr_shooting_in_cutscene(CHR_JOANNA, TRUE) + yield + set_chr_shooting_in_cutscene(CHR_JOANNA, FALSE) + + wait_until(1065, 0x94) + play_sound(0x052b, CHANNEL_7) + + label(0x0c) + yield + if_camera_animating(/*goto*/ 0x2e) + goto_next(0xb8) + label(0x2e) + if_controller_button_pressed(/*goto*/ 0xb8) + label(0x2e) + goto_first(0x0c) + + label(0xb8) + mute_channel(CHANNEL_10) + camera_movement(0x0310) + set_chr_flag_bank3(CHR_P1P2, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_P1P2, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_P1P2, CHRFLAG2_00020000) + animation(0x0311, -1, -1, 0x0600, CHR_P1P2, 4) + + set_chr_flag_bank3(CHR_SKEDAR1, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_SKEDAR1, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_SKEDAR1, CHRFLAG2_00020000) + animation(0x0312, -1, -1, 0x0600, CHR_SKEDAR1, 4) + + show_object_with_animation(0x0e, 0x0313) + show_object_with_animation(0x0f, 0x0314) + show_object_with_animation(0x10, 0x0315) + show_object_with_animation(0x11, 0x0316) + show_object_with_animation(0x12, 0x0317) + show_object_with_animation(0x13, 0x0318) + show_object_with_animation(0x14, 0x0319) + + wait_until(1090, 0x95) + play_sound(0x0529, CHANNEL_10) + + wait_until(1100, 0x96) + play_sound(0x052a, CHANNEL_10) + + wait_until(1264, 0x97) + play_sound(0x00e3, CHANNEL_10) + + wait_until(1280, 0x98) + play_sound(0x00e4, CHANNEL_10) + + wait_until(1315, 0x99) + play_sound(0x77ba, CHANNEL_10) + play_sound(0x00ee, CHANNEL_10) + + wait_until(1330, 0x9a) + play_sound(0x00df, CHANNEL_10) + + wait_until(1350, 0x9b) + set_chr_shooting_in_cutscene(CHR_JOANNA, TRUE) + yield + set_chr_shooting_in_cutscene(CHR_JOANNA, TRUE) + yield + set_chr_shooting_in_cutscene(CHR_JOANNA, TRUE) + yield + set_chr_shooting_in_cutscene(CHR_JOANNA, FALSE) + play_sound(0x77ba, CHANNEL_10) + play_sound(0x00e4, CHANNEL_10) + + beginloop(0x0d) + if_camera_animating(/*goto*/ 0x2e) + goto_next(0xb8) + + label(0x2e) + if_controller_button_pressed(/*goto*/ 0xb8) + label(0x2e) + endloop(0x0d) + + label(0xb8) + mute_channel(CHANNEL_10) + restart_default_music + reset_ambience + end_level + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1002_intro[] = { + set_music_track(MUSIC_DEFENSE_INTRO) + camera_movement(0x02bc) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_function(CHR_CARRINGTON, GFUNC_IDLE) + set_function(0x19, GFUNC_IDLE) + set_function(0x1a, GFUNC_IDLE) + set_chr_flag_bank3(0x16, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_JONATHAN, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x02bd, -1, -1, 0x0600, CHR_JOANNA, 4) + set_chr_flag_bank3(CHR_CARRINGTON, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_CARRINGTON, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_CARRINGTON, CHRFLAG2_00020000) + animation(0x02be, -1, -1, 0x0600, CHR_CARRINGTON, 4) + set_chr_flag_bank3(0x19, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x19, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(0x19, CHRFLAG2_00020000) + animation(0x02bf, -1, -1, 0x0600, 0x19, 4) + set_chr_flag_bank3(0x1a, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x1a, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(0x1a, CHRFLAG2_00020000) + animation(0x02c0, -1, -1, 0x0600, 0x1a, 4) + show_object(0x0d) + set_object_flag_bank1(0x0d, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x0d, OBJECTFLAG2_00000010) + object_do_animation(0x02c1, 0x0d, 0x04ff, 0xff) + restart_timer + set_cutscene_weapon(0x1a, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(0x1a, WEAPON_AR34, WEAPON_NONE) + + wait_until(4, 0x71) + speak(CHR_JOANNA, 0x2229, 0x7475, CHANNEL_10, COLOR_06_WHITE) // "All ready, Joanna? We can't keep the Maian delegat..." + + wait_until(72, 0x72) + play_sound(0x0161, CHANNEL_10) + + wait_until(104, 0x73) + play_sound(0x0162, CHANNEL_10) + + wait_until(450, 0x74) + speak(CHR_JOANNA, 0x222a, 0x7476, CHANNEL_10, COLOR_09_BLUE) // "Am I ready? What do you mean? I was ready half an ..." + + wait_until(688, 0x76) + play_sound(0x0163, CHANNEL_10) + + wait_until(754, 0x77) + play_sound(0x0164, CHANNEL_10) + + wait_until(800, 0x75) + speak(CHR_JOANNA, 0x222b, 0x7477, CHANNEL_10, COLOR_06_WHITE) // "But you know how it is, Joanna... I had to make su..." + + wait_until(822, 0x78) + play_sound(0x0165, CHANNEL_10) + + wait_until(850, 0x79) + play_sound(0x0166, CHANNEL_10) + + wait_until(866, 0x7a) + play_sound(0x0167, CHANNEL_10) + + wait_until(892, 0x7b) + play_sound(0x0168, CHANNEL_10) + + wait_until(926, 0x7c) + play_sound(0x0161, CHANNEL_10) + + wait_until(945, 0x7d) + play_sound(0x0162, CHANNEL_10) + + wait_until(976, 0x7e) + play_sound(0x0161, CHANNEL_10) + + wait_until(990, 0x7f) + play_sound(0x0163, CHANNEL_10) + + wait_until(1030, 0x80) + play_sound(0x0162, CHANNEL_10) + + wait_until(1048, 0x81) + play_sound(0x0168, CHANNEL_10) + + wait_until(1102, 0x83) + play_sound(0x0167, CHANNEL_10) + + wait_until(1110, 0x84) + play_sound(0x0164, CHANNEL_10) + + wait_until(1158, 0x85) + play_sound(0x0165, CHANNEL_10) + + wait_until(1160, 0x82) + speak(CHR_JOANNA, 0x222c, 0x7478, CHANNEL_10, COLOR_09_BLUE) // "They should keep you away from mirrors. Nervous?" + + wait_until(1170, 0x86) + play_sound(0x0166, CHANNEL_10) + + wait_until(1224, 0x87) + play_sound(0x0167, CHANNEL_10) + + wait_until(1258, 0x88) + play_sound(0x0168, CHANNEL_10) + + wait_until(1440, 0x89) + speak(CHR_JOANNA, 0x222d, 0x7479, CHANNEL_10, COLOR_06_WHITE) // "Very. I've waited for this moment for so many year..." + + wait_until(1442, 0x8a) + play_sound(0x0162, CHANNEL_10) + + wait_until(1450, 0x8b) + play_sound(0x0161, CHANNEL_10) + + wait_until(1594, 0x8c) + play_sound(0x0163, CHANNEL_10) + + wait_until(1676, 0x8d) + play_sound(0x0164, CHANNEL_10) + + wait_until(1741, 0x8e) + play_sound(0x0165, CHANNEL_10) + + wait_until(2252, 0x8f) + play_sound(0x0166, CHANNEL_10) + + wait_until(2296, 0x90) + play_sound(0x0167, CHANNEL_10) + + wait_until(2326, 0x91) + play_sound(0x0164, CHANNEL_10) + + wait_until(2378, 0x92) + play_sound(0x0168, CHANNEL_10) + + wait_until(2383, 0x93) + play_sound(0x00b5, CHANNEL_10) + + wait_until(2410, 0x94) + speak(CHR_JOANNA, 0x222e, 0x747a, CHANNEL_10, COLOR_06_WHITE) // "Where did that come from?" + + wait_until(2416, 0x95) + play_sound(0x0165, CHANNEL_10) + + wait_until(2446, 0x96) + play_sound(0x0166, CHANNEL_10) + + wait_until(2510, 0x97) + play_sound(0x00ad, CHANNEL_10) + + wait_until(2566, 0x98) + play_sound(0x0161, CHANNEL_10) + + wait_until(2582, 0x99) + play_sound(0x00b2, CHANNEL_10) + + wait_until(2628, 0x9b) + speak(CHR_JOANNA, 0x222f, 0x747b, CHANNEL_10, COLOR_09_BLUE) // "It was up on ground level..." + + wait_until(2804, 0x9c) + play_sound(0x00b5, CHANNEL_10) + + wait_until(2910, 0x9e) + play_sound(0x0165, CHANNEL_10) + set_cutscene_weapon(0x1a, WEAPON_NONE, WEAPON_NONE) + set_cutscene_weapon(CHR_JOANNA, WEAPON_AR34, WEAPON_NONE) + + wait_until(2940, 0x9f) + play_sound(0x03c5, CHANNEL_10) + + wait_until(2965, 0xa0) + play_sound(0x0168, CHANNEL_10) + + wait_until(2970, 0x9d) + speak(CHR_JOANNA, 0x2230, 0x747c, CHANNEL_10, COLOR_09_BLUE) // "Looks like someone doesn't know when to quit. We'v..." + + wait_until(2984, 0xa1) + play_sound(0x0165, CHANNEL_10) + + wait_until(3000, 0xa2) + play_sound(0x0166, CHANNEL_10) + + wait_until(3106, 0xa3) + play_sound(0x0165, CHANNEL_10) + + wait_until(3125, 0xa4) + play_sound(0x0168, CHANNEL_10) + + wait_until(3142, 0xae) + play_sound(0x0167, CHANNEL_10) + unset_object_flag_bank1(0x0d, OBJECTFLAG1_04000000) + + wait_until(3144, 0xa5) + play_sound(0x0166, CHANNEL_10) + + wait_until(3169, 0xa6) + play_sound(0x0167, CHANNEL_10) + + wait_until(3180, 0xaf) + play_sound(0x0165, CHANNEL_10) + + wait_until(3204, 0xb0) + play_sound(0x0168, CHANNEL_10) + + wait_until(3228, 0xa7) + play_sound(0x0166, CHANNEL_10) + + wait_until(3246, 0xa8) + play_sound(0x0165, CHANNEL_10) + + wait_until(3263, 0xa9) + play_sound(0x0168, CHANNEL_10) + + wait_until(3295, 0xaa) + play_sound(0x0166, CHANNEL_10) + + wait_until(3317, 0xab) + play_sound(0x0165, CHANNEL_10) + + wait_until(3342, 0xac) + play_sound(0x0168, CHANNEL_10) + + wait_until(3355, 0xb1) + play_sound(0x0166, CHANNEL_10) + + wait_until(3365, 0xad) + play_sound(0x0165, CHANNEL_10) + + wait_until(3472, 0xb2) + play_sound(0x0164, CHANNEL_10) + + wait_until(3498, 0xb3) + play_sound(0x0165, CHANNEL_10) + + wait_until(3520, 0xb4) + play_sound(0x0166, CHANNEL_10) + + beginloop(0x0a) + if_camera_animating(/*goto*/ 0x2e) + goto_next(0xb8) + + label(0x2e) + if_controller_button_pressed(/*goto*/ 0xb8) + label(0x2e) + endloop(0x0a) + + label(0xb8) + mute_channel(CHANNEL_10) + camera_movement(0x02c2) + cmd0175(60) + unset_object_flag_bank1(0x0d, OBJECTFLAG1_04000000) + if_controller_button_pressed(/*goto*/ 0xcc) + unset_chr_flag_bank3(CHR_SKEDAR4, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_SKEDAR4, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_SKEDAR4, CHRFLAG2_00020000) + animation(0x02c3, -1, -1, 0x0600, CHR_SKEDAR4, 4) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x02c4, -1, -1, 0x0600, CHR_JOANNA, 4) + show_object(0x52) + set_object_flag_bank1(0x52, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x52, OBJECTFLAG2_00000010) + object_do_animation(0x02c5, 0x52, 0x04ff, 0xff) + show_object(0x53) + set_object_flag_bank1(0x53, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x53, OBJECTFLAG2_00000010) + object_do_animation(0x02c6, 0x53, 0x04ff, 0xff) + restart_timer + + #define wait_until2(time, loopid) \ + beginloop(loopid) \ + if_controller_button_pressed(/*goto*/ 0xcc) \ + if_timer_gt(time, /*goto*/ 0x08) \ + endloop(loopid) \ + label(0x08) + + + + wait_until2(8, 0x62) + play_sound(0x052a, CHANNEL_10) + + wait_until2(26, 0x65) + play_sound(0x05a0, CHANNEL_10) + + wait_until2(38, 0x63) + play_sound(0x00e3, CHANNEL_10) + + wait_until2(43, 0x64) + play_sound(0x00e4, CHANNEL_10) + + wait_until2(63, 0x66) + play_sound(0x05a1, CHANNEL_10) + + wait_until2(160, 0x67) + play_sound(0x0161, CHANNEL_10) + + wait_until2(202, 0x68) + play_sound(0x0162, CHANNEL_10) + + wait_until2(238, 0x69) + play_sound(0x0163, CHANNEL_10) + + wait_until2(255, 0x6a) + play_sound(0x0164, CHANNEL_10) + + wait_until2(259, 0x6b) + play_sound(0x0530, CHANNEL_10) + + wait_until2(441, 0x6c) + play_sound(0x0163, CHANNEL_10) + + wait_until2(454, 0x6d) + play_sound(0x0164, CHANNEL_10) + + wait_until2(522, 0x6e) + play_sound(0x05c7, CHANNEL_10) + + wait_until2(546, 0x6f) + play_sound(0x05c6, CHANNEL_10) + + wait_until2(610, 0x70) + play_sound(0x05c5, CHANNEL_10) + + beginloop(0x0b) + if_camera_animating(/*goto*/ 0x2e) + goto_next(0xcc) + + label(0x2e) + if_controller_button_pressed(/*goto*/ 0xcc) + label(0x2e) + endloop(0x0b) + + label(0xcc) + mute_channel(CHANNEL_7) + mute_channel(CHANNEL_6) + mute_channel(CHANNEL_5) + mute_channel(CHANNEL_10) + set_cutscene_weapon(CHR_JOANNA, WEAPON_AR34, WEAPON_NONE) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x02c4, -2, -1, 0x0600, CHR_JOANNA, 2) + unset_chr_flag_bank3(CHR_CARRINGTON, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_CARRINGTON, CHRFLAG2_00020000) + animation(0x02be, -2, -1, 0x0600, CHR_CARRINGTON, 2) + unset_chr_flag_bank3(0x19, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(0x19, CHRFLAG2_00020000) + animation(0x02bf, -2, -1, 0x0600, 0x19, 2) + unset_chr_flag_bank3(0x1a, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(0x1a, CHRFLAG2_00020000) + animation(0x02c0, -2, -1, 0x0600, 0x1a, 2) + unset_chr_flag_bank3(CHR_SKEDAR4, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_SKEDAR4, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_SKEDAR4, CHRFLAG2_00020000) + animation(0x02c3, -2, -1, 0x0600, CHR_SKEDAR4, 2) + unset_object_flag_bank1(0x0d, OBJECTFLAG1_04000000) + set_object_flag_bank0(0x0d, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank2(0x0d, OBJECTFLAG2_00000010) + object_do_animation(0x01b4, 0x0d, 0x01ff, 0xff) + show_object(0x52) + set_object_flag_bank1(0x52, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x52, OBJECTFLAG2_00000010) + object_do_animation(0x02c5, 0x52, 0x04ff, 0xfe) + show_object(0x53) + set_object_flag_bank1(0x53, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x53, OBJECTFLAG2_00000010) + object_do_animation(0x02c6, 0x53, 0x04ff, 0xfe) + set_stage_flag(STAGEFLAG_INTRO_FINISHED) + restart_default_music + reset_ambience + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + remove_chr(0x19) + remove_chr(0x1a) + set_function(0x19, GFUNC_IDLE) + set_function(0x1a, GFUNC_IDLE) + unset_chr_flag_bank3(0x16, CHRFLAG3_HIDDEN) + enter_firstperson + yield + set_function(CHR_CARRINGTON, FUNC_CARRINGTON) + set_function(CHR_SKEDAR4, FUNC_SKEDAR4) + unset_chr_flag_bank3(CHR_JONATHAN, CHRFLAG3_HIDDEN) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1003_hide_blondes_and_skedar[] = { + label(0x04) + set_chr_flag_bank3(CHR_BLONDE7, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_SKEDAR1, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_SKEDAR2, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_SKEDAR3, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_SKEDAR1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_SKEDAR2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_SKEDAR3, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_BLONDE1, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_BLONDE2, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_BLONDE3, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_BLONDE4, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_BLONDE5, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_BLONDE6, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_BLONDE1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_BLONDE2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_BLONDE3, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_BLONDE4, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_BLONDE5, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_BLONDE6, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100c_check_carrington_dead[] = { + beginloop(0x04) + if_chr_dying(CHR_CARRINGTON, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + message(CHR_JOANNA, 0x2213) // "Carrington has been killed." + set_stage_flag(STAGEFLAG_CARRINGTON_DEAD) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0415_init_hostage_fr1[] = { + set_var_a(5) + set_chr_health(CHR_SELF, 1) + set_accuracy(0) + set_function(CHR_SELF, FUNC_FIRINGRANGE_HOSTAGE) + endfunction +}; + +u8 func0416_init_hostage_fr2[] = { + set_var_a(7) + set_chr_health(CHR_SELF, 1) + set_accuracy(0) + set_function(CHR_SELF, FUNC_FIRINGRANGE_HOSTAGE) + endfunction +}; + +u8 func0414_firingrange_hostage[] = { + set_onshot_function(FUNC_FIRINGRANGE_HOSTAGE) + if_chr_dying(CHR_SELF, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2e) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x04) + + label(0x2e) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + beginloop(0x04) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x0a) + goto_next(0x12) + + label(0x03) + jog_to_pad(TARGET_PAD) + + beginloop(0x04) + dprint 'G','O',' ','T','O',' ','P','A','D','\n',0, + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x0a) + goto_next(0x12) + endloop(0x04) + + label(0x08) + stop_chr + + beginloop(0x0b) + dprint 'A','T',' ','P','A','D','\n',0, + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x0a) + goto_next(0x12) + endloop(0x0b) + + label(0x08) + goto_first(0x03) + + label(0x0a) + dprint 'D','E','T','E','C','T','E','D','\n',0, + set_return_function(CHR_SELF, FUNC_FIRINGRANGE_HOSTAGE) + set_onshot_function(FUNC_FIRINGRANGE_HOSTAGE) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + set_function(CHR_SELF, GFUNC_IDLE) + + // Enemy not detected + label(0x12) + set_function(CHR_SELF, FUNC_INIT_SAVED_HOSTAGE) + endfunction +}; + +u8 func100e_setup_firingrange[] = { + set_chr_flag_bank3(CHR_HOSTAGE_FR1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_HOSTAGE_FR2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_TAKER_FR1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_TAKER_FR2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + + // Wait until guns complete or failed, or skip this check if Agent + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2e) + if_objective_complete(0, /*goto*/ 0x2e) + if_stage_flag_eq(STAGEFLAG_AUTOGUN_SWITCH_DESTROYED, TRUE, /*goto*/ 0x2e) + if_stage_flag_eq(STAGEFLAG_00000001, TRUE, /*goto*/ 0x2e) + reloop(0x04) + + // Wait until player in foyer area + label(0x2e) + if_chr_in_room(CHR_P1P2, 0x00, 0x0006, /*goto*/ 0x2e) + if_chr_in_room(CHR_P1P2, 0x00, 0x0005, /*goto*/ 0x2e) + endloop(0x04) + + // Configure FR takers and hostages + label(0x2e) + set_function(CHR_TAKER_FR1, FUNC_INIT_FIRINGRANGE_TAKER) + set_function(CHR_TAKER_FR2, FUNC_INIT_FIRINGRANGE_TAKER) + set_chr_flag_bankx(CHR_HOSTAGE_FR1, CHRFLAG0_00002000, BANK_0) + set_chr_flag_bankx(CHR_HOSTAGE_FR2, CHRFLAG0_00002000, BANK_0) + restart_timer + + // Wait until player in firing range entrance or door is opening + beginloop(0x0a) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0007, /*goto*/ 0x08) + if_door_state(0x23, (DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING), /*goto*/ 0x2f) + endloop(0x0a) + + // Wait for player to enter room, or 10 seconds + label(0x2f) + restart_timer + + beginloop(0x71) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0007, /*goto*/ 0x08) + if_timer_gt(600, /*goto*/ 0x08) + endloop(0x71) + + // Unset invincible on hostages and takers + label(0x08) + destroy_object(OBJ_FR_GLASS) + unset_chr_flag_bank3(CHR_HOSTAGE_FR1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(CHR_HOSTAGE_FR2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(CHR_TAKER_FR1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(CHR_TAKER_FR2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0419_init_firingrange_taker[] = { + set_return_function(CHR_SELF, GFUNC_UNALERTED) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func041b_init_hostage_holo[] = { + set_var_a(3) + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, FUNC_HOSTAGE_HOLO) + endfunction +}; + +u8 func041a_hostage_holo[] = { + set_self_flag_bank3(CHRFLAG3_00000002) + set_self_flag_bank3(CHRFLAG3_00040000) + set_onshot_function(FUNC_HOSTAGE_HOLO) + if_chr_dying(CHR_SELF, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2e) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x04) + + // Dying + label(0x2e) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive - wait until holo room door opened + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_door_state(0x43, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x2e) + if_door_state(0x44, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + if_objective_complete(0, /*goto*/ 0x2e) + set_stage_flag(STAGEFLAG_VISITED_HOSTAGES_BEFORE_AUTOGUNS) + + label(0x2e) + assign_sound(0x1b0e, CHANNEL_6) + play_sound_from_entity(CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01) + restart_timer + + // Wait until player in sight, or 2 seconds + beginloop(0x0a) + set_target_chr(CHR_JOANNA) + if_chr_sees_player(/*goto*/ 0x08) + set_target_chr(CHR_VELVET) + if_chr_sees_player(/*goto*/ 0x08) + if_timer_gt(120, /*goto*/ 0x08) + endloop(0x0a) + + label(0x08) + assign_sound(0x1b0f, CHANNEL_7) + play_sound_from_entity(CHANNEL_7, CHR_SELF, 0x0bb8, 0x1770, 0x01) + label(0x08) + label(0x08) + try_spawn_chr(BODY_CIFEMTECH, HEAD_SECRETARY, 0x0104, FUNC_INIT_HOLOCLONE1, 0x00002010, /*goto*/ 0x2e) + label(0x2e) + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + try_spawn_chr(BODY_CIFEMTECH, HEAD_SECRETARY, 0x0105, FUNC_INIT_HOLOCLONE2, 0x00002010, /*goto*/ 0x2e) + label(0x2e) + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + try_spawn_chr(BODY_CIFEMTECH, HEAD_SECRETARY, 0x0106, FUNC_INIT_HOLOCLONE3, 0x00002010, /*goto*/ 0x2e) + label(0x2e) + set_function(CHR_TAKER_HOLO1, FUNC_TAKER_HOLO1) + set_function(CHR_TAKER_HOLO2, FUNC_TAKER_HOLO2) + set_function(CHR_TAKER_HOLO3, FUNC_TAKER_HOLO3) + jog_to_pad(0x0107) + + beginloop(0x0b) + if_chr_stopped(/*goto*/ 0x08) + endloop(0x0b) + + label(0x08) + + label(0x12) + animation(ANIM_COWER_0229, -1, -1, 0x100a, CHR_SELF, 2) + + beginloop(0x10) + if_stage_flag_eq(STAGEFLAG_HOLO_TAKERS_DEAD, TRUE, /*goto*/ 0x08) + if_chr_stopped(/*goto*/ 0x2e) + endloop(0x10) + + label(0x2e) + goto_first(0x12) + + label(0x08) + set_function(CHR_SELF, FUNC_INIT_SAVED_HOSTAGE) + endfunction +}; + +u8 func041c_init_holoclone1[] = { + set_chr_alliance(CHR_SELF, ALLIANCE_ALLY) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + play_sound(0x05bc, CHANNEL_9) + set_onshot_function(FUNC_HOLOCLONE_ONSHOT) + set_chr_health(CHR_SELF, 1) + set_chr_id(CHR_HOLOCLONE1) + jog_to_pad(0x0108) + set_function(CHR_SELF, FUNC_HOLOCLONE) + endfunction +}; + +u8 func041d_init_holoclone2[] = { + set_chr_alliance(CHR_SELF, ALLIANCE_ALLY) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + play_sound(0x05bc, CHANNEL_5) + set_onshot_function(FUNC_HOLOCLONE_ONSHOT) + set_chr_health(CHR_SELF, 1) + set_chr_id(CHR_HOLOCLONE2) + jog_to_pad(0x0109) + set_function(CHR_SELF, FUNC_HOLOCLONE) + endfunction +}; + +u8 func041e_init_holoclone3[] = { + set_chr_alliance(CHR_SELF, ALLIANCE_ALLY) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + play_sound(0x05bc, CHANNEL_6) + set_onshot_function(FUNC_HOLOCLONE_ONSHOT) + set_chr_health(CHR_SELF, 1) + set_chr_id(CHR_HOLOCLONE3) + jog_to_pad(0x010a) + set_function(CHR_SELF, FUNC_HOLOCLONE) + endfunction +}; + +u8 func041f_holoclone_onshot[] = { + play_sound(0x05bb, CHANNEL_6) + drop_gun_and_fade_out + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func041f_holoclone[] = { + beginloop(0x0b) + if_chr_stopped(/*goto*/ 0x08) + endloop(0x0b) + + label(0x08) + + label(0x12) + animation(ANIM_COWER_0229, -1, -1, 0x100a, CHR_SELF, 2) + + beginloop(0x10) + if_chr_stopped(/*goto*/ 0x2e) + endloop(0x10) + + label(0x2e) + goto_first(0x12) + + endfunction +}; + +#define holo_taker_logic(holoclone) \ + restart_timer \ + animation(ANIM_SURPRISED_0202, 0, -1, 0x0010, CHR_SELF, 2) \ + \ + beginloop(0xba) \ + set_target_chr(CHR_JOANNA) \ + if_chr_sees_player(/*goto*/ 0xbb) \ + set_target_chr(CHR_VELVET) \ + if_chr_sees_player(/*goto*/ 0xbb) \ + if_timer_gt(60, /*goto*/ 0xbb) \ + endloop(0xba) \ + \ + label(0xbb) \ + set_self_flag_bank3(CHRFLAG3_00000040) \ + set_accuracy(50) \ + set_target_chr(holoclone) \ + label(0x04) \ + yield \ + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0xb9) \ + label(0xb9) \ + say_quip(CHR_JOANNA, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00) \ + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x0a) \ + \ + beginloop(0x0a) \ + if_chr_stopped(/*goto*/ 0x08) \ + endloop(0x0a) \ + \ + label(0x08) \ + set_onshot_function(GFUNC_UNALERTED) \ + set_return_function(CHR_SELF, GFUNC_UNALERTED) \ + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + + + +u8 func0420_taker_holo1[] = { + set_self_flag_bank3(CHRFLAG3_00040000) + holo_taker_logic(CHR_HOLOCLONE1) + endfunction +}; + +u8 func0421_taker_holo2[] = { + set_self_flag_bank3(CHRFLAG3_00040000) + assign_sound(0x025b, CHANNEL_6) + play_sound_from_entity(CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01) + holo_taker_logic(CHR_HOLOCLONE2) + endfunction +}; + +u8 func0422_taker_holo3[] = { + set_self_flag_bank3(CHRFLAG3_00040000) + holo_taker_logic(CHR_HOLOCLONE3) + endfunction +}; + +u8 func0423_init_shock[] = { + set_chr_dodge_rating(2, 0x00) + set_accuracy(20) + set_reaction_speed(70) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(0) + set_shield(90) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0426_init_saved_hostage[] = { + set_onshot_function(FUNC_HOSTAGE_THANK_AND_RUN) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2e) + if_chr_dying(CHR_SELF, /*goto*/ 0x2e) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2e) + set_chr_alliance(CHR_SELF, 0x80) + set_armor(80) + set_chr_health(CHR_SELF, 1) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, FUNC_HOSTAGE_THANK_AND_RUN) + + label(0x2e) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0425_hostage_thank_and_run[] = { + set_onshot_function(FUNC_HOSTAGE_THANK_AND_RUN) + if_chr_dying(CHR_SELF, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2e) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x03) + + label(0x2e) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x03) + set_target_chr(CHR_VELVET) + if_chr_sees_player(/*goto*/ 0x2e) + set_follow_chr(CHR_JOANNA) + goto_next(0x08) + + label(0x2e) + set_follow_chr(CHR_VELVET) + + label(0x08) + restart_timer + label(0x0a) + try_face_entity(0x0200, 0x0000, /*goto*/ 0x0b) + + beginloop(0x0b) + if_timer_gt(60, /*goto*/ 0x08) + endloop(0x0b) + + label(0x08) + if_sound_finished(CHANNEL_6, /*goto*/ 0x08) + if_timer_gt(200, /*goto*/ 0x2f) + goto_first(0x0b) + + label(0x08) + play_chr_specific_quip(BANK_3, CHANNEL_6) + animation(ANIM_TALKING_0231, 0, -1, 0x1010, CHR_SELF, 2) + label(0x2f) + restart_timer + + beginloop(0x71) + if_timer_gt(120, /*goto*/ 0x2e) + endloop(0x71) + + label(0x2e) + run_to_pad(0x00b7) + + beginloop(0x11) + if_chr_stopped(/*goto*/ 0x10) + endloop(0x11) + + // Unreachable + set_target_chr(FOLLOW_CHR) + + beginloop(0x10) + set_target_chr(CHR_JOANNA) + if_chr_sees_player(/*goto*/ 0x2e) + set_target_chr(CHR_COUNTEROP) + if_chr_sees_player(/*goto*/ 0x2e) + set_target_chr(CHR_VELVET) + if_chr_sees_player(/*goto*/ 0x2e) + if_chr_distance_gt(500, /*goto*/ 0x08) + label(0x2e) + endloop(0x10) + + label(0x08) + unset_self_flag_bank3(CHRFLAG3_KILLCOUNTABLE) + remove_chr(CHR_SELF) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0428_init_drop_devastator[] = { + unset_self_flag_bank3(CHRFLAG3_KILLCOUNTABLE) + set_onshot_function(FUNC_HOSTAGE_THANK_AND_RUN) + set_chr_alliance(CHR_SELF, 0x80) + set_chr_health(CHR_SELF, 40) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, FUNC_DROP_DEVASTATOR) + endfunction +}; + +u8 func0427_drop_devastator[] = { + set_onshot_function(FUNC_HOSTAGE_THANK_AND_RUN) + if_stage_flag_eq(STAGEFLAG_DROPPED_DEVASTATOR, TRUE, /*goto*/ 0x2e) + set_stage_flag(STAGEFLAG_DROPPED_DEVASTATOR) + goto_next(0x08) + + // Other hostage already dropped Devastator + label(0x2e) + set_function(CHR_SELF, FUNC_HOSTAGE_THANK_AND_RUN) + + label(0x08) + if_chr_dying(CHR_SELF, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2e) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x03) + + label(0x2e) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x03) + set_target_chr(CHR_VELVET) + if_chr_sees_player(/*goto*/ 0x2e) + set_follow_chr(CHR_JOANNA) + goto_next(0x08) + + label(0x2e) + set_follow_chr(CHR_VELVET) + + label(0x08) + restart_timer + label(0x0a) + try_face_entity(0x0200, 0x0000, /*goto*/ 0x0b) + + beginloop(0x0b) + if_timer_gt(60, /*goto*/ 0x08) + endloop(0x0b) + + label(0x08) + give_object_to_chr(OBJ_DEVASTATOR, CHR_SELF) + yield + drop_concealed_items(CHR_SELF) + play_chr_specific_quip(BANK_3, CHANNEL_6) + animation(ANIM_TALKING_0231, 0, -1, 0x1010, CHR_SELF, 2) + restart_timer + + beginloop(0x71) + if_timer_gt(120, /*goto*/ 0x2e) + endloop(0x71) + + label(0x2e) + run_to_pad(0x00b7) + + beginloop(0x11) + if_chr_stopped(/*goto*/ 0x10) + endloop(0x11) + + // Unreachable + set_target_chr(FOLLOW_CHR) + + beginloop(0x10) + if_chr_sees_player(/*goto*/ 0x2e) + if_chr_distance_gt(500, /*goto*/ 0x08) + label(0x2e) + endloop(0x10) + + label(0x08) + remove_chr(CHR_SELF) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100f_check_holo_takers_dead[] = { + beginloop(0x03) + if_chr_dying(CHR_TAKER_HOLO1, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_TAKER_HOLO1, /*goto*/ 0x2e) + if_chr_unloaded(CHR_TAKER_HOLO1, /*goto*/ 0x2e) + reloop(0x03) + + label(0x2e) + if_chr_dying(CHR_TAKER_HOLO2, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_TAKER_HOLO2, /*goto*/ 0x2e) + if_chr_unloaded(CHR_TAKER_HOLO2, /*goto*/ 0x2e) + reloop(0x03) + + label(0x2e) + if_chr_dying(CHR_TAKER_HOLO3, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_TAKER_HOLO3, /*goto*/ 0x2e) + if_chr_unloaded(CHR_TAKER_HOLO3, /*goto*/ 0x2e) + endloop(0x03) + + label(0x2e) + set_stage_flag(STAGEFLAG_HOLO_TAKERS_DEAD) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1010_check_device_takers_dead[] = { + beginloop(0x03) + if_chr_dying(CHR_TAKER_DEVICE_M, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_TAKER_DEVICE_M, /*goto*/ 0x2e) + if_chr_unloaded(CHR_TAKER_DEVICE_M, /*goto*/ 0x2e) + reloop(0x03) + + label(0x2e) + if_chr_dying(CHR_TAKER_DEVICE_F, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_TAKER_DEVICE_F, /*goto*/ 0x2e) + if_chr_unloaded(CHR_TAKER_DEVICE_F, /*goto*/ 0x2e) + endloop(0x03) + + label(0x2e) + set_stage_flag(STAGEFLAG_DEVICE_TAKERS_DEAD) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1011_check_info_takers_dead[] = { + beginloop(0x03) + if_chr_dying(CHR_TAKER_INFO_F, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_TAKER_INFO_F, /*goto*/ 0x2e) + if_chr_unloaded(CHR_TAKER_INFO_F, /*goto*/ 0x2e) + reloop(0x03) + + label(0x2e) + if_chr_dying(CHR_TAKER_INFO_M, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_TAKER_INFO_M, /*goto*/ 0x2e) + if_chr_unloaded(CHR_TAKER_INFO_M, /*goto*/ 0x2e) + endloop(0x03) + + label(0x2e) + set_stage_flag(STAGEFLAG_INFO_TAKERS_DEAD) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func042c_init_hostage_device_f[] = { + set_var_a(1) + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, FUNC_DEVICEROOM_HOSTAGE) + endfunction +}; + +u8 func042d_init_hostage_device_m[] = { + set_var_a(6) + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, FUNC_DEVICEROOM_HOSTAGE) + endfunction +}; + +u8 func042b_deviceroom_hostage[] = { + set_onshot_function(FUNC_DEVICEROOM_HOSTAGE) + if_chr_dying(CHR_SELF, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2e) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x12) + + label(0x2e) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x12) + set_target_chr(CHR_JOANNA) + if_chr_sees_player(/*goto*/ 0x2e) + set_target_chr(CHR_VELVET) + if_chr_sees_player(/*goto*/ 0x2e) + stop_chr + goto_next(0x10) + + label(0x2e) + animation(ANIM_SURRENDER_002E, 0, 193, 0x1010, CHR_SELF, 2) + + beginloop(0x10) + if_stage_flag_eq(STAGEFLAG_DEVICE_TAKERS_DEAD, TRUE, /*goto*/ 0x08) + if_chr_stopped(/*goto*/ 0x2e) + endloop(0x10) + + label(0x2e) + goto_first(0x12) + + label(0x08) + set_function(CHR_SELF, FUNC_INIT_SAVED_HOSTAGE) + endfunction +}; + +u8 func042f_init_taker_device_m[] = { + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, FUNC_TAKER_DEVICE_M) + endfunction +}; + +u8 func042e_taker_device_m[] = { + set_onshot_function(FUNC_TAKER_DEVICE_M) + if_chr_dying(CHR_SELF, /*goto*/ 0x2e) + if_chr_dying(CHR_SELF, /*goto*/ 0x2e) + if_chr_dying(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x08) + + // Dying + label(0x2e) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x08) + set_self_flag_bank3(CHRFLAG3_00020000) + + beginloop(0x0a) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x08) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x08) + endloop(0x0a) + + label(0x08) + if_objective_complete(0, /*goto*/ 0x2e) + set_stage_flag(STAGEFLAG_VISITED_HOSTAGES_BEFORE_AUTOGUNS) + + label(0x2e) + set_group_alertness(100) + assign_sound(0x025b, CHANNEL_6) + play_sound_from_entity(CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01) + restart_timer + animation(ANIM_SURPRISED_0202, 0, -1, 0x0010, CHR_SELF, 2) + + beginloop(0xba) + if_timer_gt(60, /*goto*/ 0xbb) + endloop(0xba) + + label(0xbb) + set_self_flag_bank3(CHRFLAG3_00000040) + set_accuracy(50) + set_target_chr(CHR_HOSTAGE_DEVICE_M) + set_function(CHR_SELF, FUNC_TAKER_ATTACK) + endfunction +}; + +u8 func0431_init_taker_device_f[] = { + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, FUNC_TAKER_DEVICE_F) + endfunction +}; + +u8 func0430_taker_device_f[] = { + set_onshot_function(FUNC_TAKER_DEVICE_F) + if_chr_dying(CHR_SELF, /*goto*/ 0x2e) + if_chr_dying(CHR_SELF, /*goto*/ 0x2e) + if_chr_dying(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x08) + + // Dying + label(0x2e) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x08) + set_self_flag_bank3(CHRFLAG3_00020000) + + beginloop(0x0a) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x08) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x08) + endloop(0x0a) + + label(0x08) + set_group_alertness(100) + set_self_flag_bankx(CHRFLAG1_00000020, BANK_1) + restart_timer + animation(ANIM_RELOAD_0209, 0, -1, 0x1010, CHR_SELF, 2) + + beginloop(0xbc) + if_self_flag_bankx_eq(CHRFLAG1_00000020, FALSE, BANK_1, /*goto*/ 0x08) + if_timer_lt(120, /*goto*/ 0x08) + assign_sound(0x80f6, CHANNEL_7) + play_sound_from_entity(CHANNEL_7, CHR_SELF, 0x0bb8, 0x1770, 0x01) + unset_self_flag_bankx(CHRFLAG1_00000020, BANK_1) + label(0x08) + if_chr_stopped(/*goto*/ 0x2e) + endloop(0xbc) + + label(0x2e) + set_self_flag_bank3(CHRFLAG3_00000040) + set_accuracy(50) + set_target_chr(CHR_HOSTAGE_DEVICE_F) + set_function(CHR_SELF, FUNC_TAKER_ATTACK) + endfunction +}; + +u8 func0432_taker_attack[] = { + set_onshot_function(FUNC_TAKER_ATTACK) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2e) + if_chr_dying(CHR_SELF, /*goto*/ 0x2e) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x08) + + // Dying + label(0x2e) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x08) + if_just_injured(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x04) + + // Injured + label(0x2e) + restart_timer + + beginloop(0x71) + if_chr_stopped(/*goto*/ 0x04) + if_timer_gt(180, /*goto*/ 0x04) + endloop(0x71) + + // Healthy + label(0x04) + yield + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0xb9) + label(0xb9) + say_quip(CHR_JOANNA, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x0a) + + beginloop(0x0a) + if_chr_stopped(/*goto*/ 0x08) + endloop(0x0a) + + label(0x08) + label(0x0f) + set_onshot_function(GFUNC_UNALERTED) + set_return_function(CHR_SELF, GFUNC_UNALERTED) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + endfunction +}; + +u8 func0434_init_hostage_info_m[] = { + set_var_a(2) + set_armor(10) + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, FUNC_INFOROOM_HOSTAGE) + endfunction +}; + +u8 func0435_init_hostage_info_f[] = { + set_var_a(8) + set_armor(10) + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, FUNC_INFOROOM_HOSTAGE) + endfunction +}; + +u8 func0433_inforoom_hostage[] = { + set_onshot_function(FUNC_INFOROOM_HOSTAGE) + if_chr_dying(CHR_SELF, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2e) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x04) + + label(0x2e) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + beginloop(0x04) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x08) + endloop(0x04) + + label(0x08) + if_objective_complete(0, /*goto*/ 0x2e) + set_stage_flag(STAGEFLAG_VISITED_HOSTAGES_BEFORE_AUTOGUNS) + + // This flag is assigned at random to one of the two hostages + label(0x2e) + if_self_flag_bankx_eq(CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x0e) + + // Flag not set - run and cower + run_to_pad(0x010d) + + beginloop(0x0a) + if_stage_flag_eq(STAGEFLAG_INFO_TAKERS_DEAD, TRUE, /*goto*/ 0x0d) + if_chr_stopped(/*goto*/ 0x12) + endloop(0x0a) + + label(0x12) + animation(ANIM_COWER_0229, -1, -1, 0x100a, CHR_SELF, 2) + + beginloop(0x10) + if_stage_flag_eq(STAGEFLAG_INFO_TAKERS_DEAD, TRUE, /*goto*/ 0x0d) + if_chr_stopped(/*goto*/ 0x2e) + endloop(0x10) + + label(0x2e) + goto_first(0x12) + + // Flag was set - fight hostage taker + label(0x0e) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x2e) + goto_next(0x0d) + + label(0x2e) + unset_self_flag_bankx(CHRFLAG0_00000004, BANK_0) + set_onshot_function(FUNC_INFOROOM_HOSTAGE) + set_return_function(CHR_SELF, FUNC_INFOROOM_HOSTAGE) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + + label(0x0d) + if_kill_count_gt(1, /*goto*/ 0x2e) + set_function(CHR_SELF, FUNC_INIT_DROP_DEVASTATOR) + + label(0x2e) + set_function(CHR_SELF, FUNC_INIT_SAVED_HOSTAGE) + endfunction +}; + +u8 func1012_info_room[] = { + beginloop(0x04) + if_door_state(0x19, DOORSTATE_OPEN, /*goto*/ 0x2e) + endloop(0x04) + + // One hostage is randomly given chrflag0_00000004, which allows that + // hostage to fight the taker. + label(0x2e) + call_rng + if_rand_gt(128, /*goto*/ 0x0a) + + set_chr_flag_bankx(CHR_HOSTAGE_INFO_M, CHRFLAG0_00002000, BANK_0) + set_chr_flag_bankx(CHR_HOSTAGE_INFO_F, CHRFLAG0_00002000, BANK_0) + set_chr_flag_bankx(CHR_HOSTAGE_INFO_M, CHRFLAG0_00000004, BANK_0) + set_chr_health(CHR_TAKER_INFO_M, 10) + goto_next(0x2e) + + label(0x0a) + set_chr_flag_bankx(CHR_HOSTAGE_INFO_M, CHRFLAG0_00002000, BANK_0) + set_chr_flag_bankx(CHR_HOSTAGE_INFO_F, CHRFLAG0_00002000, BANK_0) + set_chr_flag_bankx(CHR_HOSTAGE_INFO_F, CHRFLAG0_00000004, BANK_0) + set_chr_health(CHR_TAKER_INFO_F, 10) + + label(0x2e) + restart_timer + + beginloop(0x0b) + if_timer_gt(60, /*goto*/ 0x08) + endloop(0x0b) + + label(0x08) + set_chr_flag_bankx(CHR_TAKER_INFO_F, CHRFLAG0_00002000, BANK_0) + set_chr_flag_bankx(CHR_TAKER_INFO_M, CHRFLAG0_00002000, BANK_0) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0437_init_taker_info_m[] = { + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, FUNC_TAKER_INFO_M) + endfunction +}; + +u8 func0436_taker_info_m[] = { + set_onshot_function(FUNC_TAKER_INFO_M) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2e) + if_chr_dying(CHR_SELF, /*goto*/ 0x2e) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x08) + + // Dying + label(0x2e) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x08) + + beginloop(0x0a) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x08) + endloop(0x0a) + + label(0x08) + set_self_flag_bank3(CHRFLAG3_00000040) + set_accuracy(50) + set_target_chr(CHR_HOSTAGE_INFO_M) + set_function(CHR_SELF, FUNC_TAKER_ATTACK) + endfunction +}; + +u8 func0439_init_taker_info_f[] = { + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, FUNC_TAKER_INFO_F) + endfunction +}; + +u8 func0438_taker_info_f[] = { + set_onshot_function(FUNC_TAKER_INFO_F) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2e) + if_chr_dying(CHR_SELF, /*goto*/ 0x2e) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x08) + + // Dying + label(0x2e) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x08) + + beginloop(0x0a) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x08) + endloop(0x0a) + + label(0x08) + set_self_flag_bank3(CHRFLAG3_00000040) + set_accuracy(20) + set_target_chr(CHR_HOSTAGE_INFO_F) + set_function(CHR_SELF, FUNC_TAKER_ATTACK) + endfunction +}; + +u8 func1013_check_hostages_saved[] = { + yield + yield + + beginloop(0x0a) + if_chr_dying(CHR_HOSTAGE_FR1, /*goto*/ 0x2f) + if_chr_death_animation_finished(CHR_HOSTAGE_FR1, /*goto*/ 0x2f) + if_chr_unloaded(CHR_HOSTAGE_FR1, /*goto*/ 0x2f) + goto_next(0x2e) + + // FR1 hostage dead + label(0x2f) + if_chr_dying(CHR_HOSTAGE_FR2, /*goto*/ 0x2f) + if_chr_death_animation_finished(CHR_HOSTAGE_FR2, /*goto*/ 0x2f) + if_chr_unloaded(CHR_HOSTAGE_FR2, /*goto*/ 0x2f) + + // FR1 hostage alive + label(0x2e) + if_chr_dying(CHR_TAKER_FR1, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_TAKER_FR1, /*goto*/ 0x2e) + if_chr_unloaded(CHR_TAKER_FR1, /*goto*/ 0x2e) + endloop(0x0a) + + // FR1 hostage alive and FR1 taker dead + label(0x2e) + if_chr_dying(CHR_TAKER_FR2, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_TAKER_FR2, /*goto*/ 0x2e) + if_chr_unloaded(CHR_TAKER_FR2, /*goto*/ 0x2e) + goto_first(0x0a) + + // Both FR hostages dead + label(0x2f) + + // Both FR takers dead + label(0x2e) + if_stage_flag_eq(STAGEFLAG_DEVICE_TAKERS_DEAD, TRUE, /*goto*/ 0x2e) + if_chr_dying(CHR_HOSTAGE_DEVICE_F, /*goto*/ 0x2f) + if_chr_death_animation_finished(CHR_HOSTAGE_DEVICE_F, /*goto*/ 0x2f) + if_chr_unloaded(CHR_HOSTAGE_DEVICE_F, /*goto*/ 0x2f) + goto_first(0x0a) + + label(0x2f) + if_chr_dying(CHR_HOSTAGE_DEVICE_M, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_HOSTAGE_DEVICE_M, /*goto*/ 0x2e) + if_chr_unloaded(CHR_HOSTAGE_DEVICE_M, /*goto*/ 0x2e) + goto_first(0x0a) + + // FR and device room done + label(0x2e) + if_stage_flag_eq(STAGEFLAG_INFO_TAKERS_DEAD, TRUE, /*goto*/ 0x2e) + if_chr_dying(CHR_HOSTAGE_INFO_M, /*goto*/ 0x2f) + if_chr_death_animation_finished(CHR_HOSTAGE_INFO_M, /*goto*/ 0x2f) + if_chr_unloaded(CHR_HOSTAGE_INFO_M, /*goto*/ 0x2f) + goto_first(0x0a) + + label(0x2f) + if_chr_dying(CHR_HOSTAGE_INFO_F, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_HOSTAGE_INFO_F, /*goto*/ 0x2e) + if_chr_unloaded(CHR_HOSTAGE_INFO_F, /*goto*/ 0x2e) + goto_first(0x0a) + + // FR, device and info rooms done + label(0x2e) + if_stage_flag_eq(STAGEFLAG_HOLO_TAKERS_DEAD, TRUE, /*goto*/ 0x2e) + if_chr_dying(CHR_HOSTAGE_HOLO, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_HOSTAGE_HOLO, /*goto*/ 0x2e) + if_chr_unloaded(CHR_HOSTAGE_HOLO, /*goto*/ 0x2e) + goto_first(0x0a) + + // All rooms done + label(0x2e) + if_stage_flag_eq(STAGEFLAG_TOO_MANY_HOSTAGES_KILLED, TRUE, /*goto*/ 0x2e) + message(CHR_JOANNA, 0x2211) // "Hostages have been saved." + set_stage_flag(STAGEFLAG_ENOUGH_HOSTAGES_SAVED) + + label(0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1014_carrington_messages[] = { + restart_timer + + beginloop(0x03) + if_chr_dying(CHR_CARRINGTON, /*goto*/ 0xd9) + if_stage_flag_eq(STAGEFLAG_INTRO_FINISHED, TRUE, /*goto*/ 0x2e) + endloop(0x03) + + #define carrington_sanity_checks \ + if_chr_dying(CHR_CARRINGTON, /*goto*/ 0xd9) \ + if_chr_dying(CHR_JOANNA, /*goto*/ 0x05) \ + goto_next(0x06) \ + \ + label(0x05) \ + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0xd9) \ + label(0x06) + + + + label(0x2e) + yield + label(0x08) + restart_timer + + beginloop(0x0a) + carrington_sanity_checks + if_difficulty_lt(DIFF_SA, /*goto*/ 0x08) + if_timer_gt(180, /*goto*/ 0x08) + endloop(0x0a) + + label(0x08) + restart_timer + if_difficulty_lt(DIFF_SA, /*goto*/ 0x0d) + speak(CHR_JOANNA, 0x2214, 0x8193, CHANNEL_6, COLOR_06_WHITE) // "Joanna - we're under attack." + + beginloop(0x0b) + carrington_sanity_checks + if_timer_gt(180, /*goto*/ 0x08) + endloop(0x0b) + + label(0x08) + speak(CHR_JOANNA, 0x2215, 0x8194, CHANNEL_6, COLOR_06_WHITE) // "Get the guns back on line - hurry." + + beginloop(0x0c) + carrington_sanity_checks + if_timer_gt(180, /*goto*/ 0x0d) + endloop(0x0c) + + beginloop(0x0d) + set_stage_flag(STAGEFLAG_TRIGGER_AUTODEFENSES_MSG) + carrington_sanity_checks + if_difficulty_lt(DIFF_SA, /*goto*/ 0x08) + if_objective_complete(0, /*goto*/ 0x08) + endloop(0x0d) + + label(0x08) + set_chr_flag_bank3(CHR_CARRINGTON, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_CARRINGTON, CHRFLAG3_HIDDEN) + unlock_door(0x23, 0x04) + unlock_door(0x24, 0x04) + restart_timer + + beginloop(0xbd) + carrington_sanity_checks + if_timer_gt(180, /*goto*/ 0xda) + endloop(0xbd) + + label(0xda) + restart_timer + speak(CHR_JOANNA, 0x2216, 0x8195, CHANNEL_6, COLOR_06_WHITE) // "The Skedar have taken hostages." + + beginloop(0x0e) + carrington_sanity_checks + if_timer_gt(180, /*goto*/ 0x08) + endloop(0x0e) + + label(0x08) + restart_timer + speak(CHR_JOANNA, 0x2217, 0x8196, CHANNEL_6, COLOR_06_WHITE) // "Get up to the offices and save them." + + beginloop(0x0f) + carrington_sanity_checks + if_timer_gt(180, /*goto*/ 0x10) + endloop(0x0f) + + label(0x10) + set_stage_flag(STAGEFLAG_TRIGGER_COUNTINGONME_MSG) + yield + carrington_sanity_checks + if_objective_complete(1, /*goto*/ 0x08) + goto_first(0x10) + + label(0x08) + restart_timer + + beginloop(0xbe) + carrington_sanity_checks + if_timer_gt(300, /*goto*/ 0x08) + reloop(0xbe) + + label(0x08) + if_sound_finished(CHANNEL_6, /*goto*/ 0x08) + endloop(0xbe) + + label(0x08) + restart_timer + speak(CHR_JOANNA, 0x2218, 0x8197, CHANNEL_6, COLOR_06_WHITE) // "They're using a new form of shield technology." + + beginloop(0x11) + carrington_sanity_checks + if_timer_gt(180, /*goto*/ 0x08) + endloop(0x11) + + label(0x08) + restart_timer + speak(CHR_JOANNA, 0x2219, 0x8198, CHANNEL_6, COLOR_06_WHITE) // "Foster was working on a new weapon which may be us..." + + beginloop(0x12) + carrington_sanity_checks + if_timer_gt(180, /*goto*/ 0xbf) + endloop(0x12) + + beginloop(0xbf) + carrington_sanity_checks + if_objective_complete(2, /*goto*/ 0x08) + endloop(0xbf) + + label(0x08) + if_difficulty_lt(DIFF_PA, /*goto*/ 0xdb) + restart_timer + + beginloop(0xc0) + carrington_sanity_checks + if_timer_gt(180, /*goto*/ 0x08) + endloop(0xc0) + + label(0x08) + restart_timer + speak(CHR_JOANNA, 0x221a, 0x8199, CHANNEL_6, COLOR_06_WHITE) // "Damn it. My office... If they get access..." + + beginloop(0xc1) + carrington_sanity_checks + if_timer_gt(240, /*goto*/ 0x08) + endloop(0xc1) + + label(0x08) + restart_timer + speak(CHR_JOANNA, 0x221b, 0x819a, CHANNEL_6, COLOR_06_WHITE) // "Get there first, Jo, and destroy the files." + + beginloop(0xc2) + carrington_sanity_checks + if_timer_gt(180, /*goto*/ 0xc3) + endloop(0xc2) + + beginloop(0xc3) + carrington_sanity_checks + if_objective_complete(3, /*goto*/ 0x08) + endloop(0xc3) + + label(0x08) + label(0xdb) + + // Wait until no one in skedar shuttle area + beginloop(0x71) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0045, /*goto*/ 0x2e) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0047, /*goto*/ 0x2e) + if_chr_in_room(CHR_JOANNA, 0x00, 0x004d, /*goto*/ 0x2e) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0055, /*goto*/ 0x2e) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0046, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0xe5) + if_chr_in_room(CHR_VELVET, 0x00, 0x0045, /*goto*/ 0x2e) + if_chr_in_room(CHR_VELVET, 0x00, 0x0047, /*goto*/ 0x2e) + if_chr_in_room(CHR_VELVET, 0x00, 0x004d, /*goto*/ 0x2e) + if_chr_in_room(CHR_VELVET, 0x00, 0x0055, /*goto*/ 0x2e) + if_chr_in_room(CHR_VELVET, 0x00, 0x0046, /*goto*/ 0x2e) + label(0xe5) + if_chr_death_animation_finished(CHR_COUNTEROP, /*goto*/ 0xe5) + if_chr_in_room(CHR_COUNTEROP, 0x00, 0x0045, /*goto*/ 0x2e) + if_chr_in_room(CHR_COUNTEROP, 0x00, 0x0047, /*goto*/ 0x2e) + if_chr_in_room(CHR_COUNTEROP, 0x00, 0x004d, /*goto*/ 0x2e) + if_chr_in_room(CHR_COUNTEROP, 0x00, 0x0055, /*goto*/ 0x2e) + if_chr_in_room(CHR_COUNTEROP, 0x00, 0x0046, /*goto*/ 0x2e) + label(0xe5) + goto_next(0x08) + + label(0x2e) + endloop(0x71) + + label(0x08) + restart_timer + + beginloop(0xc4) + carrington_sanity_checks + if_timer_gt(180, /*goto*/ 0x08) + endloop(0xc4) + + label(0x08) + restart_timer + speak(CHR_JOANNA, 0x221c, 0x819b, CHANNEL_6, COLOR_06_WHITE) // "Things are desperate. They've planted a bomb." + + beginloop(0xc5) + carrington_sanity_checks + if_timer_gt(180, /*goto*/ 0x08) + endloop(0xc5) + + label(0x08) + restart_timer + speak(CHR_JOANNA, 0x221d, 0x819c, CHANNEL_6, COLOR_06_WHITE) // "Find it and get it out of the building." + + beginloop(0xc6) + carrington_sanity_checks + if_timer_gt(180, /*goto*/ 0x08) + endloop(0xc6) + + label(0x08) + play_x_music(CHANNEL_10, 120) + set_countdown_timer(120) + show_countdown_timer + start_countdown_timer + + beginloop(0xc7) + if_stage_flag_eq(STAGEFLAG_TRIGGER_SHUTTLE_TAKEOFF, TRUE, /*goto*/ 0x2e) + if_countdown_timer_lt(1, /*goto*/ 0x08) + endloop(0xc7) + + label(0x08) + set_stage_flag(STAGEFLAG_BOMB_EXPLODING_ON_GROUND) + hide_countdown_timer + label(0x2e) + restart_timer + + beginloop(0xc8) + if_timer_gt(300, /*goto*/ 0x2e) + endloop(0xc8) + + label(0x2e) + carrington_sanity_checks + restart_timer + speak(CHR_JOANNA, 0x2220, 0x819d, CHANNEL_6, COLOR_06_WHITE) // "Well done, Joanna. We're nearly clear..." + + beginloop(0xc9) + if_timer_gt(180, /*goto*/ 0x08) + endloop(0xc9) + + label(0x08) + carrington_sanity_checks + speak(CHR_JOANNA, 0x2221, 0x819e, CHANNEL_6, COLOR_06_WHITE) // "The last dropship is waiting for you. Hurry." + + beginloop(0xca) + if_timer_gt(180, /*goto*/ 0xcb) + endloop(0xca) + + beginloop(0xcb) + consider_coop_for_p1p2_chr(CHR_SELF) + if_all_objectives_complete(/*goto*/ 0x2e) + reloop(0xcb) + + label(0x2e) + if_chr_in_room(CHR_P1P2, 0x00, 0x0054, /*goto*/ 0x2e) + if_chr_in_room(CHR_P1P2, 0x00, 0x0053, /*goto*/ 0x2e) + endloop(0xcb) + + label(0x2e) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x2e) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x2e) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x2e) + goto_next(0x08) + + label(0x2e) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x2e) + if_chr_dying(CHR_VELVET, /*goto*/ 0x2e) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x2e) + goto_next(0x08) + + label(0x2e) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x08) + set_invincible(CHR_JOANNA) + set_function(CHR_SELF, 0x0418) + + label(0xd9) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1015_firingrange_pc[] = { + beginloop(0x0a) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_FR_PC, /*goto*/ 0x08) + if_object_in_good_condition(OBJ_FR_PC, /*goto*/ 0x2e) + goto_next(0x2f) + + label(0x2e) + reloop(0x0a) + + label(0x2f) + message(CHR_JOANNA, 0x2222) // "Critical mission object has been destroyed." + set_stage_flag(STAGEFLAG_FR_PC_DESTROYED) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x08) + play_sound(0x8116, -1) + if_objective_complete(1, /*goto*/ 0x08) + message(CHR_P1P2, 0x221e) // "Access denied - authorization failure." + restart_timer + + beginloop(0x0b) + if_timer_gt(120, /*goto*/ 0x2e) + endloop(0x0b) + + label(0x2e) + endloop(0x0a) + + label(0x08) + message(CHR_P1P2, 0x221f) // "Emergency overrides have been engaged." + unset_object_flag_bank0(OBJ_RCP120, OBJECTFLAG0_00100000) + unset_object_flag_bank0(OBJ_RCP120_GLASS, OBJECTFLAG0_INVINCIBLE) + destroy_object(OBJ_RCP120_GLASS) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +#define topspawner_logic(initfunc, clonefunc) \ + set_self_flag_bank3(CHRFLAG3_00000002) \ + set_self_flag_bank3(CHRFLAG3_HIDDEN) \ + set_self_flag_bank3(CHRFLAG3_00040000) \ + \ + beginloop(0x04) \ + if_objective_complete(1, /*goto*/ 0x2e) \ + reloop(0x04) \ + \ + label(0x2e) \ + dprint 'O','B','J','E','C','T','I','V','E',' ','D','O','N','E','\n',0, \ + if_never_been_onscreen(/*goto*/ 0x4f) \ + if_chr_sees_player(/*goto*/ 0x0a) \ + reloop(0x04) \ + \ + label(0x0a) \ + set_function(CHR_SELF, clonefunc) \ + \ + label(0x4f) \ + unset_self_flag_bank3(CHRFLAG3_HIDDEN) \ + if_chr_death_animation_finished(CHR_CLONE, /*goto*/ 0x4f) \ + goto_first(0x04) \ + \ + label(0x4f) \ + try_spawn_clone2(CHR_SELF, initfunc, 0x00000000, /*goto*/ 0x2e) \ + set_function(CHR_SELF, clonefunc) \ + \ + label(0x2e) \ + yield \ + endloop(0x04) + + + +#define inittopclone_logic(templatechr, clonefunc) \ + set_chr_dodge_rating(2, 0x00) \ + set_accuracy(20) \ + set_reaction_speed(70) \ + set_chr_health(CHR_SELF, 40) \ + set_armor(0) \ + set_recovery_speed(0) \ + set_shield(90) \ + set_self_flag_bankx(CHRFLAG1_00080000, BANK_1) \ + label(0x04) \ + try_inherit_properties(templatechr, /*goto*/ 0x08) \ + label(0x08) \ + set_chr_alliance(CHR_SELF, ALLIANCE_ENEMY) \ + cmd0145_rebuild_groups \ + cmd0146_rebuild_groups \ + set_function(CHR_SELF, clonefunc) + + + +// Spawner at top of ramp at start +u8 func040a_spawner4[] = { + topspawner_logic(FUNC_INIT_CLONE4, FUNC_CLONE4) + endfunction +}; + +u8 func040c_init_clone4[] = { + inittopclone_logic(0x11, FUNC_CLONE4) + endfunction +}; + +u8 func040b_clone4[] = { + set_target_chr(CHR_JOANNA) + try_run_to_target_chr(/*goto*/ 0x2e) + label(0x2e) + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +// Spawner at helipad +u8 func040d_spawner5[] = { + topspawner_logic(FUNC_INIT_CLONE5, FUNC_CLONE5) + endfunction +}; + +u8 func040f_init_clone5[] = { + inittopclone_logic(0x12, FUNC_CLONE5) + endfunction +}; + +u8 func040e_clone5[] = { + call_rng + if_rand_gt(128, /*goto*/ 0x08) + run_to_pad(0x005b) + goto_next(0x2e) + + label(0x08) + run_to_pad(0x0069) + + label(0x2e) + set_return_function(CHR_SELF, FUNC_CLONE5) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +/** + * When the autoguns are completed, the game removes a single shock guard from + * the tunnels area. + * + * Looks like the intention is to remove the bottom spawners once the autogun + * objective is done, then remove the top spawners once the hostages are done, + * but due to changed chr IDs and a probable incorrect goto, this function + * fails pretty bad at achieving this. + */ +u8 func1016_remove_spawners[] = { + beginloop(0x0a) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2e) + if_objective_complete(0, /*goto*/ 0x2e) + endloop(0x0a) + + // Unreachable + label(0x08) + remove_chr(0x0c) + remove_chr(0x0e) + remove_chr(0x10) + + beginloop(0x0b) + if_objective_complete(1, /*goto*/ 0x2e) + endloop(0x0b) + + // Agent, or autoguns complete + label(0x2e) + remove_chr(0x0b) // invalid chr ID + remove_chr(0x0d) // black guard + remove_chr(0x0f) // invalid chr ID + + beginloop(0x0c) + if_objective_complete(2, /*goto*/ 0x2e) + endloop(0x0c) + + label(0x2e) + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +// Spawner outside Jo's office +u8 func0410_spawner6[] = { + set_self_flag_bank3(CHRFLAG3_00000002) + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_self_flag_bank3(CHRFLAG3_00040000) + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_objective_complete(2, /*goto*/ 0x2e) + reloop(0x04) + + label(0x2e) + if_chr_in_room(CHR_P1P2, 0x00, 0x000c, /*goto*/ 0x2e) + reloop(0x04) + + label(0x2e) + dprint 'O','B','J','E','C','T','I','V','E',' ','D','O','N','E','\n',0, + if_never_been_onscreen(/*goto*/ 0x4f) + if_chr_sees_player(/*goto*/ 0x0a) + reloop(0x04) + + label(0x0a) + set_function(CHR_SELF, FUNC_CLONE6) + + label(0x4f) + if_chr_death_animation_finished(CHR_CLONE, /*goto*/ 0x4f) + reloop(0x04) + + label(0x4f) + try_spawn_clone2(CHR_SELF, FUNC_INIT_CLONE6, 0x00000000, /*goto*/ 0x2e) + set_function(CHR_SELF, FUNC_CLONE6) + + label(0x2e) + yield + endloop(0x04) + + endfunction +}; + +u8 func0412_init_clone6[] = { + inittopclone_logic(0x13, FUNC_CLONE6) + endfunction +}; + +u8 func0411_clone6[] = { + set_target_chr(CHR_JOANNA) + try_run_to_target_chr(/*goto*/ 0x2e) + label(0x2e) + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +u8 func1022_skedar_shuttle[] = { + beginloop(0x12) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2e) + if_objective_complete(3, /*goto*/ 0x08) + reloop(0x12) + + label(0x2e) + if_objective_complete(2, /*goto*/ 0x08) + endloop(0x12) + + label(0x08) + + beginloop(0x71) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0045, /*goto*/ 0x2e) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0047, /*goto*/ 0x2e) + if_chr_in_room(CHR_JOANNA, 0x00, 0x004d, /*goto*/ 0x2e) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0055, /*goto*/ 0x2e) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0046, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0xe5) + if_chr_in_room(CHR_VELVET, 0x00, 0x0045, /*goto*/ 0x2e) + if_chr_in_room(CHR_VELVET, 0x00, 0x0047, /*goto*/ 0x2e) + if_chr_in_room(CHR_VELVET, 0x00, 0x004d, /*goto*/ 0x2e) + if_chr_in_room(CHR_VELVET, 0x00, 0x0055, /*goto*/ 0x2e) + if_chr_in_room(CHR_VELVET, 0x00, 0x0046, /*goto*/ 0x2e) + label(0xe5) + if_chr_death_animation_finished(CHR_COUNTEROP, /*goto*/ 0xe5) + if_chr_in_room(CHR_COUNTEROP, 0x00, 0x0045, /*goto*/ 0x2e) + if_chr_in_room(CHR_COUNTEROP, 0x00, 0x0047, /*goto*/ 0x2e) + if_chr_in_room(CHR_COUNTEROP, 0x00, 0x004d, /*goto*/ 0x2e) + if_chr_in_room(CHR_COUNTEROP, 0x00, 0x0055, /*goto*/ 0x2e) + if_chr_in_room(CHR_COUNTEROP, 0x00, 0x0046, /*goto*/ 0x2e) + label(0xe5) + goto_next(0x08) + + label(0x2e) + endloop(0x71) + + label(0x08) + show_object(OBJ_SKEDAR_SHUTTLE) + set_object_flag_bank1(OBJ_SKEDAR_SHUTTLE, OBJECTFLAG1_04000000) + set_object_flag_bank2(OBJ_SKEDAR_SHUTTLE, OBJECTFLAG2_00000010) + object_do_animation(0x045a, OBJ_SKEDAR_SHUTTLE, 0x04ff, 0xff) + set_object_part_visible(OBJ_SKEDAR_SHUTTLE, FALSE) + set_object_flag_bank0(OBJ_SKEDAR_SHUTTLE, OBJECTFLAG0_00000100) + + unset_chr_flag_bank3(CHR_BLONDE1, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_BLONDE2, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_BLONDE3, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_BLONDE4, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_BLONDE5, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_BLONDE6, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_BLONDE1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(CHR_BLONDE2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(CHR_BLONDE3, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(CHR_BLONDE4, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(CHR_BLONDE5, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(CHR_BLONDE6, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(CHR_BLONDE1, FUNC_INIT_BLONDE) + set_function(CHR_BLONDE2, FUNC_INIT_BLONDE) + set_function(CHR_BLONDE3, FUNC_INIT_BLONDE) + set_function(CHR_BLONDE4, FUNC_INIT_BLONDE) + set_function(CHR_BLONDE5, FUNC_INIT_BLONDE) + set_function(CHR_BLONDE6, FUNC_INIT_BLONDE) + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_BOMB_EXPLODING_ON_GROUND, TRUE, /*goto*/ 0x2e) + if_stage_flag_eq(STAGEFLAG_TRIGGER_SHUTTLE_TAKEOFF, TRUE, /*goto*/ 0x0a) + object_do_animation(0x045a, OBJ_SKEDAR_SHUTTLE, 0x04ff, 0xff) + endloop(0x04) + + // Bomb exploding while on ground + label(0x2e) + hide_countdown_timer + stop_countdown_timer + destroy_object(OBJ_SKEDAR_SHUTTLE) + explosions_around_chr(CHR_JOANNA) + restart_timer + + beginloop(0x72) + if_timer_gt(60, /*goto*/ 0x2e) + endloop(0x72) + + label(0x2e) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x2f) + explosions_around_chr(CHR_VELVET) + + goto_next(0x41) + label(0x2f) + if_chr_death_animation_finished(CHR_COUNTEROP, /*goto*/ 0x41) + explosions_around_chr(CHR_COUNTEROP) + + label(0x41) + restart_timer + + beginloop(0x73) + if_timer_gt(90, /*goto*/ 0x2e) + endloop(0x73) + + label(0x2e) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + + // Bomb deactivated + label(0x0a) + hide_countdown_timer + stop_countdown_timer + object_do_animation(0x045b, OBJ_SKEDAR_SHUTTLE, 0x08ff, 0xff) + assign_sound(0x810a, CHANNEL_3) + play_sound_from_object(CHANNEL_3, OBJ_SKEDAR_SHUTTLE, 0x0708, 0x0bb8) + restart_timer + + beginloop(0x0b) + dprint 'O','B','J','\n',0, + if_timer_gt(60, /*goto*/ 0x2e) + endloop(0x0b) + + label(0x2e) + assign_sound(0x810b, CHANNEL_4) + play_sound_from_object(CHANNEL_4, OBJ_SKEDAR_SHUTTLE, 0x0708, 0x0bb8) + + beginloop(0x0d) + dprint 'O','B','J','\n',0, + if_timer_gt(200, /*goto*/ 0x08) + endloop(0x0d) + + label(0x08) + dprint 'O','B','J','E','C','T','I','V','E',' ','D','O','N','E','\n',0, + set_stage_flag(STAGEFLAG_BOMB_AIRBORNE) + restart_timer + + beginloop(0x0c) + if_timer_gt(240, /*goto*/ 0x2e) + endloop(0x0c) + + label(0x2e) + set_object_health(OBJ_SKEDAR_SHUTTLE, 0) + mute_channel(CHANNEL_3) + mute_channel(CHANNEL_4) + destroy_object(OBJ_SKEDAR_SHUTTLE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func043a_unused[] = { + set_chr_health(CHR_SELF, 1) + + beginloop(0x12) + if_objective_complete(3, /*goto*/ 0x08) + endloop(0x12) + + label(0x08) + + beginloop(0x04) + endloop(0x04) + + endfunction +}; + +u8 unregistered_function1[] = { + // All of these objects have been removed :\ + // Wait for all 4 objects destroyed + beginloop(0x04) + if_object_in_good_condition(0x1f, /*goto*/ 0x08) + goto_next(0x2e) + label(0x08) + reloop(0x04) + + label(0x2e) + if_object_in_good_condition(0x20, /*goto*/ 0x08) + goto_next(0x2e) + label(0x08) + reloop(0x04) + + label(0x2e) + if_object_in_good_condition(0x21, /*goto*/ 0x08) + goto_next(0x2e) + label(0x08) + reloop(0x04) + + label(0x2e) + if_object_in_good_condition(0x22, /*goto*/ 0x08) + goto_next(0x2e) + label(0x08) + endloop(0x04) + + label(0x2e) + restart_timer + + beginloop(0x71) + if_timer_gt(60, /*goto*/ 0x2e) + endloop(0x71) + + label(0x2e) + set_stage_flag(STAGEFLAG_TRIGGER_SHUTTLE_TAKEOFF) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func043b_init_blonde[] = { + set_chr_dodge_rating(2, 0x00) + set_accuracy(20) + set_reaction_speed(70) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(0) + set_shield(90) + set_return_function(CHR_SELF, GFUNC_UNALERTED) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func043c_init_cisolder[] = { + set_chr_dodge_rating(2, 0x00) + set_accuracy(20) + set_reaction_speed(70) + set_chr_health(CHR_SELF, 40) + set_armor(90) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, FUNC_DEFEND_PAD) + endfunction +}; + +u8 func043d_unused[] = { + set_chr_dodge_rating(2, 0x00) + set_accuracy(30) + set_reaction_speed(70) + set_chr_health(CHR_SELF, 40) + set_armor(90) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func043e_carrington[] = { + set_onshot_function(FUNC_CARRINGTON) + jog_to_pad(0x0142) + + beginloop(0x04) + if_chr_stopped(/*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + stop_chr + + beginloop(0x0a) + endloop(0x0a) + + endfunction +}; + +u8 func0429_skedar4[] = { + stop_chr + set_accuracy(40) + set_reaction_speed(70) + set_chr_health(CHR_SELF, 40) + set_armor(160) + set_recovery_speed(0) + set_shield(0) + jog_to_pad(0x000c) + set_function(CHR_SELF, GFUNC_RELATED_TO_SPAWNING) + endfunction +}; + +u8 func1018_hurt_carrington[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_VISITED_HOSTAGES_BEFORE_AUTOGUNS, TRUE, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + restart_timer + + beginloop(0x0a) + if_timer_gt(600, /*goto*/ 0x08) + endloop(0x0a) + + label(0x08) + damage_chr(CHR_CARRINGTON, 18) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1019_setup_safeinfo[] = { + label(0x08) + unset_object_flag_bank0(OBJ_SAFEDOOR, OBJECTFLAG0_INVINCIBLE) + unset_object_flag_bank0(OBJ_SAFEINFO, OBJECTFLAG0_INVINCIBLE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101b_msg_autodefenses[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x0a) + + beginloop(0x04) + if_sound_finished(CHANNEL_6, /*goto*/ 0x2f) + reloop(0x04) + + label(0x2f) + if_stage_flag_eq(STAGEFLAG_TRIGGER_AUTODEFENSES_MSG, TRUE, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + yield + yield + speak(CHR_JOANNA, 0x2223, 0x73d8, CHANNEL_6, COLOR_09_BLUE) // "The autodefenses will really help me out." + label(0x0a) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101c_msg_fosterworkingon[] = { + beginloop(0x04) + if_objective_complete(1, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + restart_timer + + beginloop(0x0a) + if_sound_finished(CHANNEL_6, /*goto*/ 0x2f) + reloop(0x04) + + label(0x2f) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0009, /*goto*/ 0x2e) + endloop(0x0a) + + label(0x2e) + speak(CHR_P1P2, 0x2224, 0x73d9, CHANNEL_6, COLOR_09_BLUE) // "So this is what Foster was working on." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101d_msg_countingonme[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_TRIGGER_COUNTINGONME_MSG, TRUE, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + restart_timer + + beginloop(0x0a) + if_sound_finished(CHANNEL_6, /*goto*/ 0x2f) + goto_first(0x04) + + label(0x2f) + if_timer_gt(180, /*goto*/ 0x2e) + endloop(0x0a) + + label(0x2e) + speak(CHR_JOANNA, 0x2225, 0x73da, CHANNEL_6, COLOR_09_BLUE) // "I'll have to go carefully... The hostages are coun..." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * This message is not played because no condition breaks out of the loop. + */ +u8 func101e_msg_wontknow[] = { + beginloop(0x04) + endloop(0x04) + + label(0x2e) + speak(CHR_JOANNA, 0x2226, 0x73db, CHANNEL_6, COLOR_09_BLUE) // "Well, at least I won't know if I'm doing anything ..." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101f_configure_cisoldiers[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_INTRO_FINISHED, TRUE, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + set_function(CHR_JONATHAN, FUNC_INIT_JONATHAN) + set_function(0x15, FUNC_INIT_CISOLDIER) + set_function(0x16, FUNC_INIT_CISOLDIER) + set_function(0x17, FUNC_INIT_CISOLDIER) + set_function(0x18, FUNC_INIT_CISOLDIER) + set_function(0x19, FUNC_INIT_CISOLDIER) + set_function(0x1a, FUNC_INIT_CISOLDIER) + set_function(0x1b, FUNC_INIT_CISOLDIER) + set_function(0x1c, FUNC_INIT_CISOLDIER) + set_function(0x1d, FUNC_INIT_CISOLDIER) + set_function(0x1e, FUNC_INIT_CISOLDIER) + set_function(CHR_HANGARGUY, FUNC_INIT_CISOLDIER) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1020_trigger_spawning[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_INTRO_FINISHED, TRUE, /*goto*/ 0x2e) + endloop(0x04) + + // Wait 15 seconds + label(0x2e) + restart_timer + + beginloop(0x0a) + if_timer_gt(900, /*goto*/ 0x2e) + endloop(0x0a) + + label(0x2e) + set_stage_flag(STAGEFLAG_TRIGGER_SPAWNING) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func042a_init_jonathan[] = { + set_accuracy(100) + set_reaction_speed(100) + set_chr_health(CHR_SELF, 40) + set_armor(1200) + set_recovery_speed(100) + set_function(CHR_SELF, FUNC_DEFEND_PAD) + endfunction +}; + +u8 func1021_setup_jonathan[] = { + yield + if_eeprom_flag_is_set(EEPROMFLAG_DEFENSE_JON, /*goto*/ 0x08) + remove_chr(CHR_JONATHAN) + label(0x08) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1023_check_skeder_shuttle_destroyed[] = { + beginloop(0x12) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2e) + if_objective_complete(3, /*goto*/ 0x08) + reloop(0x12) + + label(0x2e) + if_objective_complete(2, /*goto*/ 0x08) + endloop(0x12) + + beginloop(0x04) + if_object_in_good_condition(OBJ_SKEDAR_SHUTTLE, /*goto*/ 0x08) + goto_next(0x2e) + + label(0x08) + goto_first(0x04) + + // Shuttle destroyed + label(0x2e) + restart_timer + + beginloop(0x0a) + if_timer_gt(30, /*goto*/ 0x2e) + endloop(0x0a) + + label(0x2e) + if_stage_flag_eq(STAGEFLAG_BOMB_AIRBORNE, TRUE, /*goto*/ 0x0f) + message(CHR_JOANNA, 0x2227) // "The bomb has been detonated..." + set_stage_flag(STAGEFLAG_BOMB_EXPLODING_ON_GROUND) + explosions_around_chr(CHR_JOANNA) + restart_timer + + beginloop(0x72) + if_timer_gt(60, /*goto*/ 0x2e) + endloop(0x72) + + label(0x2e) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x2f) + explosions_around_chr(CHR_VELVET) + goto_next(0x41) + + label(0x2f) + if_chr_death_animation_finished(CHR_COUNTEROP, /*goto*/ 0x41) + explosions_around_chr(CHR_COUNTEROP) + + label(0x41) + restart_timer + + beginloop(0x73) + if_timer_gt(90, /*goto*/ 0x2e) + endloop(0x73) + + label(0x2e) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x0f) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1024_setup_lifts[] = { + activate_lift(1, 0x41) + activate_lift(2, 0x42) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1025_lift_door_sounds[] = { + beginloop(0xe4) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, 0x46, /*goto*/ 0x2e) + if_chr_activated_object(CHR_P1P2, 0x47, /*goto*/ 0x2e) + if_chr_activated_object(CHR_P1P2, 0x48, /*goto*/ 0x2e) + if_chr_activated_object(CHR_P1P2, 0x49, /*goto*/ 0x2e) + if_chr_activated_object(CHR_P1P2, 0x4a, /*goto*/ 0x2e) + if_chr_activated_object(CHR_P1P2, 0x4b, /*goto*/ 0x2e) + if_chr_activated_object(CHR_P1P2, 0x4c, /*goto*/ 0x2e) + if_chr_activated_object(CHR_P1P2, 0x4d, /*goto*/ 0x2e) + reloop(0xe4) + + label(0x2e) + play_sound(0x81b0, -1) + restart_timer + + beginloop(0x0a) + if_timer_gt(120, /*goto*/ 0x08) + endloop(0x0a) + + label(0x08) + endloop(0xe4) + + endfunction +}; + +u8 func100e_setup_firingrange_doors[] = { + // Wait until firing range doors opened + beginloop(0xe4) + if_door_state(0x23, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x2e) + if_door_state(0x23, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x2e) + endloop(0xe4) + + // Unset some flags on them + label(0x2e) + unset_object_flag_bank1(0x23, OBJECTFLAG1_20000000) + unset_object_flag_bank1(0x24, OBJECTFLAG1_20000000) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1027_uplink[] = { + beginloop(0x04) + if_object_in_good_condition(OBJ_SKEDAR_SHUTTLE, /*goto*/ 0x2f) + goto_next(0x0f) + + label(0x2f) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_activated_object(TARGET_CHR, OBJ_SKEDAR_SHUTTLE, /*goto*/ 0x2e) + reloop(0x04) + + // Activated + label(0x08) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_DATAUPLINK, /*goto*/ 0x2e) + play_sound(0x8116, -1) + message(TARGET_CHR, 0x2233) // "You need the Data Uplink." + reloop(0x04) + + // Activated with uplink + label(0x2e) + message(TARGET_CHR, 0x2234) // "Connection has been made." + restart_timer + + beginloop(0x0a) + if_object_in_good_condition(OBJ_SKEDAR_SHUTTLE, /*goto*/ 0x2f) + goto_next(0x0f) + + label(0x2f) + if_timer_gt(60, /*goto*/ 0x08) + if_chr_in_room(TARGET_CHR, 0x00, 0x0045, /*goto*/ 0x2e) + goto_next(0x0b) + + label(0x2e) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_DATAUPLINK, /*goto*/ 0x2e) + goto_next(0x0b) + + label(0x2e) + endloop(0x0a) + + // 1 second since uplink + label(0x08) + message(TARGET_CHR, 0x2235) // "Bypassing security systems." + restart_timer + assign_sound(0x01bf, CHANNEL_5) + control_sound_from_object(CHANNEL_5, OBJ_SKEDAR_SHUTTLE, TRUE) + + beginloop(0x13) + if_object_in_good_condition(OBJ_SKEDAR_SHUTTLE, /*goto*/ 0x2f) + goto_next(0x0f) + + label(0x2f) + if_timer_gt(400, /*goto*/ 0x08) + if_chr_in_room(TARGET_CHR, 0x00, 0x0045, /*goto*/ 0x2e) + goto_next(0x0b) + + label(0x2e) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_DATAUPLINK, /*goto*/ 0x2e) + goto_next(0x0b) + + label(0x2e) + endloop(0x13) + + // 7.66 seconds since uplink + label(0x08) + mute_channel(CHANNEL_5) + assign_sound(0x01c1, CHANNEL_6) + control_sound_from_object(CHANNEL_6, OBJ_SKEDAR_SHUTTLE, TRUE) + message(TARGET_CHR, 0x2236) // "Virus has been downloaded successfully." + yield + message(TARGET_CHR, 0x2237) // "Ship's engines have been activated." + set_stage_flag(STAGEFLAG_TRIGGER_SHUTTLE_TAKEOFF) + + beginloop(0x14) + if_timer_gt(90, /*goto*/ 0x08) + endloop(0x14) + + label(0x08) + set_function(CHR_SELF, GFUNC_IDLE) + reloop(0x04) + + // Connection broken + label(0x0b) + message(TARGET_CHR, 0x2238) // "Connection to ship has been broken." + mute_channel(CHANNEL_5) + assign_sound(0x01c0, CHANNEL_6) + control_sound_from_object(CHANNEL_6, OBJ_SKEDAR_SHUTTLE, TRUE) + restart_timer + + beginloop(0x15) + if_timer_gt(120, /*goto*/ 0x08) + endloop(0x15) + + label(0x08) + mute_channel(CHANNEL_6) + endloop(0x04) + + label(0x0f) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1028_shuttle_immunity[] = { + beginloop(0xe4) + if_stage_flag_eq(STAGEFLAG_TRIGGER_SHUTTLE_TAKEOFF, TRUE, /*goto*/ 0x08) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0045, /*goto*/ 0x2e) + if_chr_in_room(CHR_P1P2, 0x00, 0x0046, /*goto*/ 0x2e) + if_chr_in_room(CHR_P1P2, 0x00, 0x0047, /*goto*/ 0x2e) + if_chr_in_room(CHR_P1P2, 0x00, 0x004d, /*goto*/ 0x2e) + if_chr_in_room(CHR_P1P2, 0x00, 0x004e, /*goto*/ 0x2e) + if_chr_in_room(CHR_P1P2, 0x00, 0x0055, /*goto*/ 0x2e) + reloop(0xe4) + + label(0x2e) + unset_object_flag_bank0(OBJ_SKEDAR_SHUTTLE, OBJECTFLAG0_INVINCIBLE) + endloop(0xe4) + + label(0x08) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1029_setup_rtracker[] = { + yield + set_object_flag_bank2(OBJ_DEVASTATOR, OBJECTFLAG2_RTRACKED_BLUE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func102a_setup_lighting[] = { + yield + set_lighting(0x0045, 0x06, 0x01) + set_lighting(0x0046, 0x06, 0x01) + set_lighting(0x0047, 0x06, 0x01) + set_lighting(0x0048, 0x06, 0x01) + set_lighting(0x0055, 0x06, 0x01) + set_lighting(0x0056, 0x06, 0x01) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func102b_safedoor_immunity[] = { + if_difficulty_lt(DIFF_PA, /*goto*/ 0x10) + set_object_flag_bank0(OBJ_SAFEDOOR, OBJECTFLAG0_INVINCIBLE) + + beginloop(0x04) + if_objective_complete(2, /*goto*/ 0x2e) + reloop(0x04) + + label(0x2e) + if_object_in_good_condition(OBJ_SAFEDOOR, /*goto*/ 0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2e) + if_chr_in_room(CHR_JOANNA, 0x00, 0x000c, /*goto*/ 0x2e) + goto_next(0x0b) + + label(0x2e) + if_chr_weapon_equipped(CHR_JOANNA, WEAPON_LASER, /*goto*/ 0x0f) + + // Jo not in office room or laser not equipped + label(0x0b) + if_chr_in_room(CHR_VELVET, 0x00, 0x000c, /*goto*/ 0x2e) + goto_next(0x0e) + + label(0x2e) + if_chr_weapon_equipped(CHR_VELVET, WEAPON_LASER, /*goto*/ 0x0f) + + // No one in office room with laser equipped + label(0x0e) + set_object_flag_bank0(OBJ_SAFEDOOR, OBJECTFLAG0_INVINCIBLE) + reloop(0x04) + + label(0x0f) + unset_object_flag_bank0(OBJ_SAFEDOOR, OBJECTFLAG0_INVINCIBLE) + endloop(0x04) + + // A and SA + label(0x10) + set_object_flag_bank0(OBJ_SAFEDOOR, OBJECTFLAG0_INVINCIBLE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func102c_door_flags[] = { + yield + if_chr_death_animation_finished(CHR_COUNTEROP, /*goto*/ 0x0f) + lock_door(0x23, 0x40) + lock_door(0x24, 0x40) + set_object_flag_bank1(0x23, OBJECTFLAG1_00000004) + set_object_flag_bank1(0x24, OBJECTFLAG1_00000004) + lock_door(0x43, 0x40) + lock_door(0x44, 0x40) + set_object_flag_bank1(0x43, OBJECTFLAG1_00000004) + set_object_flag_bank1(0x44, OBJECTFLAG1_00000004) + lock_door(0x54, 0x40) + set_object_flag_bank1(0x54, OBJECTFLAG1_00000004) + lock_door(0x19, 0x40) + set_object_flag_bank1(0x19, OBJECTFLAG1_00000004) + + beginloop(0xe4) + if_chr_activated_object(CHR_JOANNA, 0x23, /*goto*/ 0x0a) + if_chr_activated_object(CHR_JOANNA, 0x23, /*goto*/ 0x0a) + if_chr_activated_object(CHR_JOANNA, 0x43, /*goto*/ 0x0b) + if_chr_activated_object(CHR_JOANNA, 0x44, /*goto*/ 0x0b) + if_chr_activated_object(CHR_JOANNA, 0x54, /*goto*/ 0x0c) + if_chr_activated_object(CHR_JOANNA, 0x19, /*goto*/ 0x0d) + reloop(0xe4) + + label(0x0a) + unlock_door(0x23, 0x40) + unlock_door(0x24, 0x40) + open_door(0x23) + reloop(0xe4) + + label(0x0b) + unlock_door(0x43, 0x40) + unlock_door(0x44, 0x40) + open_door(0x43) + reloop(0xe4) + + label(0x0c) + unlock_door(0x54, 0x40) + open_door(0x54) + reloop(0xe4) + + label(0x0d) + unlock_door(0x19, 0x40) + open_door(0x19) + endloop(0xe4) + + label(0x0f) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 unregistered_function2[] = { + beginloop(0x03) + restart_timer + + // Wait 10 seconds + beginloop(0x0a) + if_timer_gt(600, /*goto*/ 0x2e) + endloop(0x0a) + + label(0x2e) + animation(0x02c3, -1, -1, 0x0600, 0x34, 4) + endloop(0x03) + + endfunction +}; + +u8 unregistered_function3[] = { + beginloop(0x03) + if_chr_unloaded(CHR_TAKER_INFO_F, /*goto*/ 0x11) + if_chr_unloaded(CHR_TAKER_INFO_M, /*goto*/ 0x12) + reloop(0x03) + + label(0x11) + damage_chr(CHR_TAKER_INFO_F, 18) + reloop(0x03) + + label(0x12) + damage_chr(CHR_TAKER_INFO_M, 18) + endloop(0x03) + + endfunction +}; + +u8 func102d_firingrange_taker_invincibility[] = { + beginloop(0x03) + if_chr_death_animation_finished(CHR_TAKER_FR1, /*goto*/ 0x2e) + if_chr_dying(CHR_TAKER_FR1, /*goto*/ 0x2e) + if_chr_unloaded(CHR_TAKER_FR1, /*goto*/ 0x2e) + if_chr_in_room(CHR_TAKER_FR1, 0x00, 0x0007, /*goto*/ 0x2e) + if_chr_in_room(CHR_TAKER_FR1, 0x00, 0x0008, /*goto*/ 0x2e) + if_chr_in_room(CHR_TAKER_FR1, 0x00, 0x0009, /*goto*/ 0x2e) + if_chr_in_room(CHR_TAKER_FR1, 0x00, 0x000a, /*goto*/ 0x2e) + unset_chr_flag_bank3(CHR_TAKER_FR1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + + label(0x2e) + if_chr_death_animation_finished(CHR_TAKER_FR2, /*goto*/ 0x2e) + if_chr_dying(CHR_TAKER_FR2, /*goto*/ 0x2e) + if_chr_unloaded(CHR_TAKER_FR2, /*goto*/ 0x2e) + if_chr_in_room(CHR_TAKER_FR2, 0x00, 0x0007, /*goto*/ 0x2e) + if_chr_in_room(CHR_TAKER_FR2, 0x00, 0x0008, /*goto*/ 0x2e) + if_chr_in_room(CHR_TAKER_FR2, 0x00, 0x0009, /*goto*/ 0x2e) + if_chr_in_room(CHR_TAKER_FR2, 0x00, 0x000a, /*goto*/ 0x2e) + unset_chr_flag_bank3(CHR_TAKER_FR2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + + label(0x2e) + endloop(0x03) + + endfunction +}; + +struct ailists functions[] = { + { func1400_setup_counterop, 0x1400 }, + { func1001_objectives_failed_msg, 0x1001 }, + { func1002_intro, 0x1002 }, + { func1003_hide_blondes_and_skedar, 0x1003 }, + { func1004_check_hostages_killed, 0x1004 }, + { func1005_check_safeinfo_destroyed, 0x1005 }, + { func1007_autogun_switch1, 0x1007 }, + { func1008_autogun_switch2, 0x1008 }, + { func1009_autogun_switch3, 0x1009 }, + { func100b_setup_autoguns, 0x100b }, + { func100c_check_carrington_dead, 0x100c }, + { func100e_setup_firingrange, 0x100e }, + { func100f_check_holo_takers_dead, 0x100f }, + { func1010_check_device_takers_dead, 0x1010 }, + { func1011_check_info_takers_dead, 0x1011 }, + { func1012_info_room, 0x1012 }, + { func1013_check_hostages_saved, 0x1013 }, + { func1014_carrington_messages, 0x1014 }, + { func1015_firingrange_pc, 0x1015 }, + { func1016_remove_spawners, 0x1016 }, + { func1018_hurt_carrington, 0x1018 }, + { func1019_setup_safeinfo, 0x1019 }, + { func101b_msg_autodefenses, 0x101b }, + { func101c_msg_fosterworkingon, 0x101c }, + { func101d_msg_countingonme, 0x101d }, + { func101e_msg_wontknow, 0x101e }, + { func101f_configure_cisoldiers, 0x101f }, + { func1020_trigger_spawning, 0x1020 }, + { func1021_setup_jonathan, 0x1021 }, + { func1022_skedar_shuttle, 0x1022 }, + { func1023_check_skeder_shuttle_destroyed, 0x1023 }, + { func1024_setup_lifts, 0x1024 }, + { func1025_lift_door_sounds, 0x1025 }, + { func100e_setup_firingrange_doors, 0x1026 }, + { func1027_uplink, 0x1027 }, + { func1028_shuttle_immunity, 0x1028 }, + { func1029_setup_rtracker, 0x1029 }, + { func102a_setup_lighting, 0x102a }, + { func102b_safedoor_immunity, 0x102b }, + { func102c_door_flags, 0x102c }, + { func102d_firingrange_taker_invincibility, 0x102d }, + { func1002_intro, 0x0c00 }, + { func0c01_outro, 0x0c01 }, + { func1002_intro, 0x0417 }, + { func0c01_outro, 0x0418 }, + { func0414_firingrange_hostage, 0x0414 }, + { func0415_init_hostage_fr1, 0x0415 }, + { func0416_init_hostage_fr2, 0x0416 }, + { func0401_spawner1, 0x0401 }, + { func0404_spawner2, 0x0404 }, + { func0407_spawner3, 0x0407 }, + { func040a_spawner4, 0x040a }, + { func040d_spawner5, 0x040d }, + { func0410_spawner6, 0x0410 }, + { func0402_clone1, 0x0402 }, + { func0403_init_clone1, 0x0403 }, + { func0405_clone2, 0x0405 }, + { func0406_init_clone2, 0x0406 }, + { func0408_clone3, 0x0408 }, + { func0409_init_clone3, 0x0409 }, + { func040b_clone4, 0x040b }, + { func040c_init_clone4, 0x040c }, + { func040e_clone5, 0x040e }, + { func040f_init_clone5, 0x040f }, + { func0411_clone6, 0x0411 }, + { func0412_init_clone6, 0x0412 }, + { func0413_defend_pad, 0x0413 }, + { func0419_init_firingrange_taker, 0x0419 }, + { func041a_hostage_holo, 0x041a }, + { func041b_init_hostage_holo, 0x041b }, + { func041c_init_holoclone1, 0x041c }, + { func041d_init_holoclone2, 0x041d }, + { func041e_init_holoclone3, 0x041e }, + { func041f_holoclone, 0x041f }, + { func0420_taker_holo1, 0x0420 }, + { func0421_taker_holo2, 0x0421 }, + { func0422_taker_holo3, 0x0422 }, + { func0423_init_shock, 0x0423 }, + { func0425_hostage_thank_and_run, 0x0425 }, + { func0426_init_saved_hostage, 0x0426 }, + { func0427_drop_devastator, 0x0427 }, + { func0428_init_drop_devastator, 0x0428 }, + { func0429_skedar4, 0x0429 }, + { func042a_init_jonathan, 0x042a }, + { func041f_holoclone_onshot, 0x0424 }, + { func042b_deviceroom_hostage, 0x042b }, + { func042c_init_hostage_device_f, 0x042c }, + { func042d_init_hostage_device_m, 0x042d }, + { func042e_taker_device_m, 0x042e }, + { func042f_init_taker_device_m, 0x042f }, + { func0430_taker_device_f, 0x0430 }, + { func0431_init_taker_device_f, 0x0431 }, + { func0432_taker_attack, 0x0432 }, + { func0433_inforoom_hostage, 0x0433 }, + { func0434_init_hostage_info_m, 0x0434 }, + { func0435_init_hostage_info_f, 0x0435 }, + { func0436_taker_info_m, 0x0436 }, + { func0437_init_taker_info_m, 0x0437 }, + { func0438_taker_info_f, 0x0438 }, + { func0439_init_taker_info_f, 0x0439 }, + { func043a_unused, 0x043a }, + { func043b_init_blonde, 0x043b }, + { func043c_init_cisolder, 0x043c }, + { func043d_unused, 0x043d }, + { func043e_carrington, 0x043e }, + { NULL, 0 }, +}; + +struct aipaths paths[] = { + { path00, 0, 2 }, + { NULL, 0, 0 }, +}; + diff --git a/src/setup/setupjun.c b/src/setup/setupjun.c new file mode 100644 index 000000000..dbb5b737f --- /dev/null +++ b/src/setup/setupjun.c @@ -0,0 +1,40 @@ +// +// Temple (MP) +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + intro_weapon(WEAPON_NONE, -1) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setuplam.c b/src/setup/setuplam.c new file mode 100644 index 000000000..66f84e499 --- /dev/null +++ b/src/setup/setuplam.c @@ -0,0 +1,39 @@ +// +// Stage ID 0x50 +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setuplee.c b/src/setup/setuplee.c new file mode 100644 index 000000000..0b3a2202f --- /dev/null +++ b/src/setup/setuplee.c @@ -0,0 +1,3877 @@ +// +// Attack Ship +// + +#include "../include/setup.h" + +// Characters +#define CHR_ELVIS 0x00 +#define CHR_KNIFEABLE_SKEDAR 0x01 +#define CHR_SUSPENDEDANIM1 0x0d +#define CHR_SUSPENDEDANIM2 0x0e +#define CHR_SUSPENDEDANIM3 0x0f +#define CHR_SUSPENDEDANIM4 0x10 +#define CHR_BRIDGE1 0x25 +#define CHR_BRIDGE2 0x26 +#define CHR_BRIDGE3 0x2d +#define CHR_MAIAN1 0x2e +#define CHR_MAIAN2 0x2f +#define CHR_MAIAN3 0x30 +#define CHR_BRIDGESPAWNER1 0x31 +#define CHR_BRIDGESPAWNER2 0x32 +#define CHR_CASS 0x33 +#define CHR_INTRO_SKEDAR 0x34 +#define CHR_SHY_SKEDAR 0x35 // hides behind the lift at the start + +// Objects +#define OBJ_HANGARDOOR1 0x00 +#define OBJ_HANGARDOOR2 0x01 +#define OBJ_HANGARDOOR3 0x02 +#define OBJ_HANGARDOOR4 0x03 +#define OBJ_SHIELDCONSOLE1 0x04 +#define OBJ_SHIELDCONSOLE2 0x05 +#define OBJ_SHIELDCONSOLE3 0x06 +#define OBJ_HANGARDOORCONSOLE 0x09 +#define OBJ_HANGARLIFT_ELVIS 0x0c +#define OBJ_HANGARLIFT_JO 0x0e +#define OBJ_AR34 0x18 +#define OBJ_ENGINE1 0x19 +#define OBJ_ENGINE2 0x1a +#define OBJ_PREBRIDGELIFT 0x22 +#define OBJ_BRIDGELIFT 0x23 +#define OBJ_HANGAR_SHUTTLE 0x2c +#define OBJ_MAULER1 0x43 +#define OBJ_MAULER2 0x44 +#define OBJ_OUTRO_SHUTTLE 0x45 +#define OBJ_NECKLACE 0x4a + +// Stage flags +#define STAGEFLAG_ENTERED_BRIDGELIFT 0x00000001 +#define STAGEFLAG_SAID_LOOKOUT 0x00000002 +#define STAGEFLAG_SHIELDS_DISABLED 0x00000100 +#define STAGEFLAG_HANGAR_DOORS_OPEN 0x00000200 +#define STAGEFLAG_NAVIGATION_ROOM_DONE 0x00000400 +#define STAGEFLAG_ELVIS_DEAD 0x00000800 +#define STAGEFLAG_ENTERED_SLAYER_AREA 0x00001000 +#define STAGEFLAG_TRIGGER_HANGAR_MAIANS 0x00002000 +#define STAGEFLAG_HANGAR_ALARM_ACTIVATED 0x00004000 +#define STAGEFLAG_HANGAR_KILLS_DONE 0x00008000 +#define STAGEFLAG_ENGINES_DESTROYED 0x00010000 +#define STAGEFLAG_ENTERED_BRIDGE 0x00020000 +#define STAGEFLAG_ELVIS_COMING_TO_BRIDGE 0x00040000 +#define STAGEFLAG_TRIGGER_BRIDGE_SPAWNING 0x00080000 +#define STAGEFLAG_BRIDGE_CAPTURED 0x00100000 +#define STAGEFLAG_SAID_GETSHIELDSDOWN 0x00200000 +#define STAGEFLAG_INTRO_FINISHED 0x00400000 +#define STAGEFLAG_CASS_AT_PAD 0x00800000 +#define STAGEFLAG_SHY_SKEDAR_READY 0x01000000 +#define STAGEFLAG_02000000 0x02000000 +#define STAGEFLAG_SAID_GO_ON_AHEAD 0x04000000 +#define STAGEFLAG_HANGAR_DOOR_CONSOLE_DESTROYED 0x08000000 +#define STAGEFLAG_MET_ELVIS 0x10000000 +#define STAGEFLAG_AMMO_WASTED 0x20000000 +#define STAGEFLAG_CASS_SCREAMING 0x40000000 +#define STAGEFLAG_BRIDGE_DOORS_UNLOCKED 0x80000000 + +// Functions +#define FUNC_INIT_KNIFEABLE_SKEDAR 0x0407 +#define FUNC_KNIFEABLE_SKEDAR 0x0408 +#define FUNC_ELVIS_FOLLOW 0x0409 +#define FUNC_ELVIS_GO_TO_HANGAR_LIFT 0x040a +#define FUNC_INIT_CASS 0x040b +#define FUNC_ELVIS_RUN_FROM_ENGINEROOM 0x040c +#define FUNC_ELVIS_WAIT_FOR_HANGAR_ENTRY 0x040d +#define FUNC_ELVIS_GIVE_AR34 0x040e +#define FUNC_INIT_SKEDAR 0x040f +#define FUNC_WAKE_SUSPENDEDANIM_SKEDAR 0x0410 +#define FUNC_HANGARSPAWNER 0x0412 +#define FUNC_INIT_HANGARCLONE 0x0413 +#define FUNC_HANGARCLONE 0x0414 +#define FUNC_INIT_BRIDGECLONE 0x0416 +#define FUNC_INIT_BRIDGESPAWNER_REVEAL 0x0417 +#define FUNC_INIT_HANGAR_MAIAN 0x0418 +#define FUNC_HANGAR_MAIAN 0x0419 +#define FUNC_BRIDGECLONE 0x041a +#define FUNC_ELVIS_AT_BRIDGE 0x041b +#define FUNC_ELVIS_OUTSIDE_PREBRIDGELIFT 0x041c +#define FUNC_INIT_ELVIS_OUTSIDE_PREBRIDGELIFT 0x041d +#define FUNC_INIT_BRIDGE1AND2 0x041e +#define FUNC_CLOAK_AND_REMOVE 0x041f +#define FUNC_INIT_BRIDGE3 0x0420 +#define FUNC_BRIDGE_SKEDAR 0x0421 +#define FUNC_CASS 0x0422 +#define FUNC_SHY_SKEDAR 0x0423 +#define FUNC_SHY_SKEDAR_WAIT 0x0424 +#define FUNC_INIT_SHY_SKEDAR 0x0425 +#define FUNC_OUTRO 0x0426 +#define FUNC_SET_CLOAKED 0x0427 +#define FUNC_SET_UNCLOAKED 0x0428 + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + briefing(0, 0x2601) + briefing(1, 0x2600) + briefing(2, 0x2602) + briefing(3, 0x2603) + + beginobjective(0, 0x2605, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Disable shield system" + complete_flags(STAGEFLAG_SHIELDS_DISABLED) + fail_flags(STAGEFLAG_AMMO_WASTED) + endobjective + + beginobjective(1, 0x2606, (DIFFBIT_PA | DIFFBIT_PD)) // "Open hangar doors" + complete_flags(STAGEFLAG_HANGAR_DOORS_OPEN) + fail_flags(STAGEFLAG_HANGAR_DOOR_CONSOLE_DESTROYED) + endobjective + + beginobjective(2, 0x2607, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Access navigational systems" + complete_flags(STAGEFLAG_NAVIGATION_ROOM_DONE) + fail_flags(STAGEFLAG_ELVIS_DEAD) + endobjective + + beginobjective(3, 0x2608, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Sabotage engine systems" + complete_flags(STAGEFLAG_ENGINES_DESTROYED) + endobjective + + beginobjective(4, 0x2609, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Gain control of bridge" + complete_flags(STAGEFLAG_BRIDGE_CAPTURED) + endobjective + + tag(0x2f, 5) + tag(0x30, 5) + tag(0x25, 2) + tag(0x23, 1) + lift(0x0100, MODEL_SK_LIFT, 0x018c, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x018c, 0x018d, 0xffffffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00008000, 0x000a0000, 0x1f000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0180, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0181, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-2, -3, 0, 0) + link_objects(-2, -4, 0, 0) + chr(0x00000200, 0x01, 0x01cf, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_KNIFEABLE_SKEDAR, -1, -1, 1000, 8, 0x00000000, 0x00000080, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0001, 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, 0x35, 0x00e8, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SHY_SKEDAR, -1, -1, 1000, 6, 0x00002000, 0x00000080, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0035, 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(0x00000200, 0x05, 0x01cd, BODY_SKEDAR, HEAD_RANDOM, 0x0401, -1, -1, 100, 200, 0x40012000, 0x00000000, 0x02, 0x01, -1, 0, 0x02000400) + weapon(0x0100, MODEL_CHRMAULER, 0x0005, 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(0x00000200, 0x06, 0x01ce, BODY_SKEDAR, HEAD_RANDOM, 0x0402, -1, -1, 100, 200, 0x40012000, 0x00000000, 0x02, 0x01, -1, 0, 0x02000400) + weapon(0x0100, MODEL_CHRMAULER, 0x0006, 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, 0x07, 0x00b1, BODY_SKEDAR, HEAD_RANDOM, FUNC_HANGARSPAWNER, -1, -1, 1000, 200, 0x40012000, 0x00004000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0007, 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, 0x08, 0x00ae, BODY_SKEDAR, HEAD_RANDOM, FUNC_HANGARSPAWNER, -1, -1, 1000, 200, 0x00002000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0008, 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, 0x09, 0x01d0, BODY_SKEDAR, HEAD_RANDOM, FUNC_HANGARSPAWNER, -1, -1, 1000, 200, 0x40002000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0009, 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, 0x0a, 0x010d, BODY_SKEDAR, HEAD_RANDOM, FUNC_HANGARSPAWNER, -1, -1, 1000, 200, 0x00002000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x000a, 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(0x00010000, 0x2e, 0x01d8, BODY_ELVIS1, HEAD_MAIAN_S, FUNC_INIT_HANGAR_MAIAN, 0x00b4, -1, 1000, 200, 0x00002000, 0x40304000, 0x10, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAIANSMG, 0x002e, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CALLISTONTG, 0x00ffffff, 0x00000000) + chr(0x00010000, 0x2f, 0x01d9, BODY_ELVIS1, HEAD_MAIAN_S, FUNC_INIT_HANGAR_MAIAN, 0x00b4, -1, 1000, 200, 0x00002000, 0x40304000, 0x10, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAIANSMG, 0x002f, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CALLISTONTG, 0x00ffffff, 0x00000000) + chr(0x00010100, 0x30, 0x01f5, BODY_ELVIS1, HEAD_MAIAN_S, GFUNC_IDLE, 0x00b4, -1, 1000, 200, 0x00002000, 0x40304000, 0x02, 0x01, -1, 0, 0x00000000) + chr(0x00010400, 0x00, 0x00fe, BODY_ELVISWAISTCOAT, HEAD_ELVIS, FUNC_ELVIS_WAIT_FOR_HANGAR_ENTRY, -1, -1, 1000, 200, 0x00002000, 0x80304000, 0x80, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAIANPISTOL, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PHOENIX, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRMAIANPISTOL, 0x0000, 0x10004000, 0x00000000, 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) + weapon(0x0100, MODEL_CHRPCGUN, 0x001d, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AR34, 0x00ffffff, 0x00000000) + tag(0x18, -1) + chr(0x00000080, 0x02, 0x00d6, BODY_SKEDAR, HEAD_RANDOM, GFUNC_IDLE_0009, -1, -1, 1000, 200, 0x00002000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0002, 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(0x00000080, 0x37, 0x00d0, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40002000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0037, 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(0x00000200, 0x0b, 0x0020, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x000b, 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(0x00000200, 0x0c, 0x001f, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x000c, 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, 0x0d, 0x004b, BODY_SKEDAR, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x80, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x000d, 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, 0x0e, 0x004c, BODY_SKEDAR, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x80, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x000e, 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, 0x0f, 0x004d, BODY_SKEDAR, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x80, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x000f, 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, 0x10, 0x004e, BODY_SKEDAR, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x80, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0010, 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(0x00000200, 0x11, 0x0028, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0011, 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(0x00000200, 0x12, 0x0044, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0012, 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(0x00000200, 0x13, 0x0039, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0013, 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(0x00000200, 0x14, 0x0035, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0014, 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(0x00000200, 0x15, 0x0036, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0015, 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(0x00000200, 0x16, 0x0052, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0016, 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(0x00000200, 0x17, 0x0051, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0017, 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(0x00000200, 0x18, 0x0053, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0018, 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(0x00000200, 0x19, 0x0054, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0019, 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(0x00000200, 0x1a, 0x01db, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x001a, 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(0x00000200, 0x1b, 0x005e, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x001b, 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(0x00000200, 0x1c, 0x0059, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x001c, 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(0x00000200, 0x1d, 0x0056, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x001d, 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(0x00000200, 0x1e, 0x005f, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x001e, 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(0x00000200, 0x1f, 0x0055, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x001f, 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(0x00000200, 0x20, 0x0060, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0020, 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(0x00000200, 0x21, 0x0068, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0021, 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(0x00000200, 0x22, 0x0069, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0022, 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(0x00000200, 0x25, 0x0089, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_BRIDGE1AND2, -1, -1, 1000, 200, 0x50012000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0025, 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(0x00000200, 0x26, 0x0088, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_BRIDGE1AND2, -1, -1, 1000, 200, 0x50012000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0026, 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(0x00004200, 0x2d, 0x00a4, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_BRIDGE3, -1, -1, 1000, 200, 0x50012000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x002d, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAULER, 0x00ffffff, 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) + link_collectibles(-1, -2) + tag(0x43, -3) + tag(0x44, -3) + chr(0x00000000, 0x31, 0x0095, BODY_SKEDAR, HEAD_RANDOM, 0x0415, -1, -1, 1000, 200, 0x00002000, 0x00000000, 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(0x00000000, 0x32, 0x0096, BODY_SKEDAR, HEAD_RANDOM, 0x0415, -1, -1, 1000, 200, 0x00002004, 0x00000000, 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, 0x00db, BODY_CASSANDRA, HEAD_CASSANDRA, FUNC_INIT_CASS, -1, -1, 1000, 200, 0x50012000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + chr(0x00004000, 0x34, 0x00e3, BODY_SKEDAR, 0x00, GFUNC_IDLE, -1, -1, 1000, 200, 0x50012000, 0x00000080, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0034, 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(0x00000200, 0x27, 0x0002, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0027, 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(0x00000200, 0x28, 0x0006, BODY_SKEDAR, HEAD_RANDOM, 0x0403, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0028, 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(0x00000200, 0x29, 0x0008, BODY_SKEDAR, HEAD_RANDOM, 0x0406, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0029, 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(0x00000200, 0x2a, 0x0005, BODY_SKEDAR, HEAD_RANDOM, 0x0404, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x002a, 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(0x00000200, 0x2b, 0x000d, BODY_SKEDAR, HEAD_RANDOM, 0x0405, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x002b, 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(0x00000200, 0x2c, 0x006b, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_SKEDAR, -1, -1, 1000, 200, 0x40012000, 0x00000000, 0x02, 0x0f, -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) + tag(0x4a, 1) + key(0x0100, MODEL_CHRCHAIN, 0x0033, 0x01244000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000008) + rename_object(-1, 0x50, 0x2632, 0x2633, 0x2634, 0x2635, 0x2636, 0x0000, 0x0000) // "Obtain De Vries' necklace." + tag(0x3f, 2) + tag(0x40, 2) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x016a, 0x10000400, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00320000, 0x0001aaaa, 0x00008000, 0x00000000, 0x00000080, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x016b, 0x10000400, 0x30000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00320000, 0x0001aaaa, 0x00008000, 0x00000000, 0x00000080, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x016c, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x016d, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x016e, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x016f, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0174, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0175, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0176, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0177, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x41, 2) + tag(0x42, 2) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0178, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0179, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x017a, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x017b, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x017c, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x017d, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0189, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000040, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0188, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000040, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0186, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000040, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0187, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000040, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x48, 2) + tag(0x49, 2) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0185, 0x10000400, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000040, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0184, 0x10000400, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000040, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x46, 2) + tag(0x47, 2) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x018a, 0x10000400, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000040, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x018b, 0x10000400, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000040, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x0114, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x0115, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x0116, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x0117, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x0118, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x0119, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x011a, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x011b, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x011c, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x011d, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x011e, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x011f, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x0120, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x0121, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x0122, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x0123, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x0124, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x0125, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x0126, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x0127, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x0128, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x0129, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x012a, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x012b, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x012c, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x012d, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x012e, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x012f, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_HULLDOOR1, 0x0134, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00780000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x0000000a, 0x00000000, 0x0000ea60, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_HULLDOOR2, 0x0135, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00780000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x0000000a, 0x00000000, 0x0000ea60, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_HULLDOOR3, 0x0136, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000bd1f, 0x0000bd1f, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_HULLDOOR4, 0x0137, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000bd1f, 0x0000bd1f, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffd, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_HULLDOOR1, 0x0138, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00780000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x0000000a, 0x00000000, 0x0000ea60, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_HULLDOOR2, 0x0139, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00780000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x0000000a, 0x00000000, 0x0000ea60, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_HULLDOOR3, 0x013a, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000bd1f, 0x0000bd1f, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_HULLDOOR4, 0x013b, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000bd1f, 0x0000bd1f, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffd, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_HULLDOOR1, 0x013c, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00780000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x0000000a, 0x00000000, 0x0000ea60, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_HULLDOOR2, 0x013d, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00780000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x0000000a, 0x00000000, 0x0000ea60, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_HULLDOOR3, 0x013e, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000bd1f, 0x0000bd1f, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_HULLDOOR4, 0x013f, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000bd1f, 0x0000bd1f, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffd, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x0f, 2) + tag(0x10, 2) + door(0x0100, MODEL_SK_CRYOPOD1_BOT, 0x0144, 0x00000400, 0x20000000, 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, 0x00000002, 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, 0x0145, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x11, 2) + tag(0x12, 2) + door(0x0100, MODEL_SK_CRYOPOD1_TOP, 0x0146, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_CRYOPOD1_BOT, 0x0147, 0x00000400, 0x20000000, 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, 0x00000002, 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(0x13, 2) + tag(0x14, 2) + door(0x0100, MODEL_SK_CRYOPOD1_BOT, 0x0148, 0x00000400, 0x20000000, 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, 0x00000002, 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, 0x0149, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x15, 2) + tag(0x16, 2) + door(0x0100, MODEL_SK_CRYOPOD1_TOP, 0x014a, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_CRYOPOD1_BOT, 0x014b, 0x00000400, 0x20000000, 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, 0x00000002, 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_HANGARDOOR_BOT, 0x014d, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x00000444, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001e00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_HANGARDOOR_TOP, 0x014c, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x00000444, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_HANGARDOOR_BOT, 0x014e, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x00000444, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001e00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_HANGARDOOR_TOP, 0x014f, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x00000444, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_HANGARDOOR_BOT, 0x0150, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x00000444, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001e00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_HANGARDOOR_TOP, 0x0151, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x00000444, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_HANGARDOOR_BOT, 0x0152, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x00000444, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001e00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_HANGARDOOR_TOP, 0x0153, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x00000444, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x24, 1) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0154, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0155, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x17, 1) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0156, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000003c0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0157, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000003c0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0158, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000004, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0159, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000004, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x015a, 0x10000400, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000004, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x015b, 0x10000400, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000004, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x31, 6) + tag(0x32, 6) + tag(0x33, 8) + tag(0x34, 8) + tag(0x2a, 1) + lift(0x0100, MODEL_SK_LIFT, 0x0194, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0194, 0x0195, 0xffffffff, 0x00000001, 0x00000005, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00030000, 0x00050000, 0x1f000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x015c, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00320000, 0x0001aaaa, 0x00008000, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR1, 0x015d, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00320000, 0x0001aaaa, 0x00008000, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-2, -3, 0, 0) + link_objects(-2, -4, 0, 0) + door(0x0100, MODEL_SK_HANGARDOOR_BOT, 0x015e, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x000a0000, 0x000a0000, 0x00008000, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_HANGARDOOR_TOP, 0x015f, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x000a0000, 0x000a0000, 0x00008000, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-2, -7, 0, 1) + link_objects(-2, -8, 0, 1) + tag(0x35, 6) + tag(0x36, 6) + tag(0x37, 8) + tag(0x38, 8) + tag(0x2b, 1) + lift(0x0100, MODEL_SK_LIFT, 0x0196, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0196, 0x0197, 0xffffffff, 0x00000001, 0x00000005, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00030000, 0x00050000, 0x1f000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0160, 0x10000400, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x000a0000, 0x00005555, 0x00001999, 0x00000000, 0x00000080, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0161, 0x10000400, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x000a0000, 0x00005555, 0x00001999, 0x00000000, 0x00000080, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-2, -3, 0, 0) + link_objects(-2, -4, 0, 0) + door(0x0100, MODEL_SK_HANGARDOOR_BOT, 0x0162, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x000a0000, 0x000a0000, 0x00008000, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_HANGARDOOR_TOP, 0x0163, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x000a0000, 0x000a0000, 0x00008000, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-2, -7, 0, 1) + link_objects(-2, -8, 0, 1) + tag(0x39, 5) + tag(0x3a, 5) + tag(0x29, 2) + tag(0x0e, 1) + lift(0x0100, MODEL_SK_LIFT, 0x0193, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0193, 0x0192, 0xffffffff, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00008000, 0x00050000, 0x1f000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_HANGARDOORB_BOT, 0x0166, 0x12000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x000a0000, 0x000a0000, 0x00008000, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_HANGARDOORB_TOP, 0x0167, 0x12000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x000a0000, 0x000a0000, 0x00008000, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-2, -3, 0, 1) + link_objects(-2, -4, 0, 1) + tag(0x3b, 5) + tag(0x3c, 5) + tag(0x28, 2) + tag(0x0c, 1) + lift(0x0100, MODEL_SK_LIFT, 0x0190, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0190, 0x0191, 0xffffffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00008000, 0x00050000, 0x1f000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_HANGARDOORB_BOT, 0x0164, 0x12000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x000a0000, 0x000a0000, 0x00008000, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_HANGARDOORB_TOP, 0x0165, 0x12000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x000a0000, 0x000a0000, 0x00008000, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-2, -3, 0, 0) + link_objects(-2, -4, 0, 0) + tag(0x3d, 5) + tag(0x3e, 5) + tag(0x26, 2) + tag(0x22, 1) + lift(0x0100, MODEL_SK_LIFT, 0x018e, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x018e, 0x018f, 0xffffffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00004000, 0x00028000, 0x1f000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0182, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0183, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-2, -3, 0, 0) + link_objects(-2, -4, 0, 0) + vent_fan(0x0100, MODEL_SK_SHIP_HOLO1, 0x0110, 0x000204e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000222, 0x00000000, 0x00000002, 0x01000000) + vent_fan(0x0100, MODEL_SK_SHIP_HOLO2, 0x0112, 0x000204e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000222, 0x00000000, 0x00000002, 0x01000000) + vent_fan(0x0100, MODEL_SK_SHIP_HOLO2, 0x0113, 0x000204e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000222, 0x00000000, 0x00000002, 0x01000000) + tag(0x00, 4) + tag(0x01, 4) + tag(0x02, 4) + tag(0x03, 4) + door(0x0100, MODEL_SK_SHIP_HULLDOOR1, 0x0140, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00780000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x0000000a, 0x00000000, 0x0000ea60, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_HULLDOOR2, 0x0141, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00780000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x0000000a, 0x00000000, 0x0000ea60, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_HULLDOOR3, 0x0142, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x0000bd1f, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_SK_SHIP_HULLDOOR4, 0x0143, 0x10000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x0000bd1f, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffd, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x09, 1) + multimonitor(0x00cc, MODEL_SK_CONSOLE2, 0x01f1, 0x00000101, 0x00000001, 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, 0x15141400) + multimonitor(0x00cc, MODEL_SK_CONSOLE2, 0x01f2, 0x00000101, 0x00000001, 0x00000000, 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, 0x15141400) + weapon(0x0100, MODEL_CHRSKROCKET, 0x01d2, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SLAYER, 0x00ffffff, 0x00000000) + tag(0x04, 3) + tag(0x05, 3) + tag(0x06, 3) + multimonitor(0x00cc, MODEL_SK_CONSOLE2, 0x01f0, 0x00000101, 0x00000001, 0x00000000, 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, 0x15141400) + multimonitor(0x00cc, MODEL_SK_CONSOLE2, 0x01ef, 0x00000101, 0x00000001, 0x00000000, 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, 0x15141400) + multimonitor(0x00cc, MODEL_SK_CONSOLE2, 0x01ee, 0x00000101, 0x00000001, 0x00000000, 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, 0x15141400) + tinted_glass(0x0100, MODEL_SK_WINDOW1, 0x01ca, 0x14020f62, 0x00304100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00c801f4, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_SK_WINDOW1, 0x01cb, 0x14020f62, 0x00304100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00c801f4, 0x0000ffff, 0x00000000) + tag(0x19, 2) + tag(0x1a, 2) + stdobject(0x0100, MODEL_ENGINEPART, 0x01ea, 0x000001e8, 0x00202000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_ENGINEPART, 0x01e9, 0x000001e8, 0x00202000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x1b, 6) + tag(0x1c, 6) + tag(0x1d, 6) + tag(0x1e, 6) + tag(0x1f, 6) + tag(0x20, 6) + glass(0x0100, MODEL_DD_WINDOW, 0x019d, 0x14020f62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000bb8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x019e, 0x14020f62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000bb8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x019f, 0x14020f62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000bb8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01a0, 0x14020f62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000bb8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01a1, 0x14020f62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000bb8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x01a2, 0x14020f62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000bb8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x21, 1) + stdobject(0x0002, MODEL_SK_SHUTTLE, 0x01dc, 0x012604e1, 0x80086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x2c, 1) + stdobject(0x0100, MODEL_SK_SHUTTLE, 0xffff, 0x00021501, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x45, 1) + stdobject(0x0100, MODEL_SK_SHUTTLE, 0xffff, 0x00021501, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x2d, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x01f3, 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(0x2e, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x0030, 0x00004001, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000) + endprops +}; + +u8 intro[] = { + intro_weapon(WEAPON_COMBATKNIFE, -1) + ammo(AMMOTYPE_KNIFE, 1) + ammo(AMMOTYPE_ROCKET, 2) + ammo(AMMOTYPE_RIFLE, 400) + ammo(AMMOTYPE_PISTOL, 10) + outfit(OUTFIT_FROCK_RIPPED) + spawn(0x00d9) + endintro +}; + +s32 path00[] = { + 0x01d5, + 0x01d4, + -1, +}; + +s32 path01[] = { + 0x01d7, + 0x01d6, + -1, +}; + +s32 path02[] = { + 0x0006, + 0x0000, + -1, +}; + +s32 path03[] = { + 0x0005, + 0x000d, + -1, +}; + +s32 path04[] = { + 0x01de, + 0x000c, + -1, +}; + +s32 path05[] = { + 0x0008, + 0x005c, + -1, +}; + +u8 func1001_objectives_failed_msg[] = { + yield + set_function(CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG) + endfunction +}; + +u8 func1400_setup_counterop[] = { + set_object_flag_bank0(OBJ_HANGARLIFT_ELVIS, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(OBJ_HANGARLIFT_JO, OBJECTFLAG0_DEACTIVATED) + yield + set_chr_alliance(CHR_COUNTEROP, ALLIANCE_ENEMY) + set_function(CHR_SELF, GFUNC_REBUILD_GROUPS) + endfunction +}; + +u8 func1019_check_shields_lowered[] = { + beginloop(0x04) + if_object_in_good_condition(OBJ_SHIELDCONSOLE1, /*goto*/ 0x06) + if_object_in_good_condition(OBJ_SHIELDCONSOLE2, /*goto*/ 0x06) + if_object_in_good_condition(OBJ_SHIELDCONSOLE3, /*goto*/ 0x06) + message(CHR_JOANNA, 0x260a) // "Ship's shields have been lowered." + set_stage_flag(STAGEFLAG_SHIELDS_DISABLED) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x09) + restart_timer + + beginloop(0x08) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0002, /*goto*/ 0x2c) + endloop(0x08) + + label(0x2c) + speak(CHR_JOANNA, 0x2611, 0x81a1, CHANNEL_6, COLOR_04_ORANGE) // "You've got to open the hangar doors so we can dock..." + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x06) + endloop(0x04) + + label(0x09) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1004_check_hangar_doors_opened[] = { + yield + set_object_flag_bank0(OBJ_HANGARDOOR1, OBJECTFLAG0_02000000) + set_object_flag_bank0(OBJ_HANGARDOOR2, OBJECTFLAG0_02000000) + set_object_flag_bank0(OBJ_HANGARDOOR3, OBJECTFLAG0_02000000) + set_object_flag_bank0(OBJ_HANGARDOOR4, OBJECTFLAG0_02000000) + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, OBJ_HANGARDOORCONSOLE, /*goto*/ 0x06) + if_object_in_good_condition(OBJ_HANGARDOORCONSOLE, /*goto*/ 0x2d) + + // Console destroyed + message(CHR_JOANNA, 0x2630) // "Critical mission object destroyed." + set_stage_flag(STAGEFLAG_HANGAR_DOOR_CONSOLE_DESTROYED) + set_function(CHR_SELF, GFUNC_IDLE) + + // Console healthy + label(0x2d) + reloop(0x04) + + // A and SA + label(0x2c) + if_stage_flag_eq(STAGEFLAG_SHIELDS_DISABLED, TRUE, /*goto*/ 0x03) + reloop(0x04) + + // Console activated + label(0x06) + if_stage_flag_eq(STAGEFLAG_SHIELDS_DISABLED, TRUE, /*goto*/ 0x2c) + message(CHR_JOANNA, 0x262f) // "Hangar doors locked - shields still active." + restart_timer + + beginloop(0x65) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x65) + + label(0x06) + endloop(0x04) + + // PA - console activated after shields disabled + label(0x2c) + message(CHR_P1P2, 0x260b) // "Hangar doors have been opened." + set_stage_flag(STAGEFLAG_HANGAR_DOORS_OPEN) + + // A and SA once shields disabled, or follow through from above + label(0x03) + open_door(OBJ_HANGARDOOR1) + open_door(OBJ_HANGARDOOR2) + open_door(OBJ_HANGARDOOR3) + open_door(OBJ_HANGARDOOR4) + set_object_flag_bank0(OBJ_HANGARDOOR1, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_HANGARDOOR2, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_HANGARDOOR3, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_HANGARDOOR4, OBJECTFLAG0_40000000) + restart_timer + + beginloop(0x09) + if_timer_gt(600, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + restart_timer + + beginloop(0x0a) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x0a) + + label(0x06) + set_stage_flag(STAGEFLAG_TRIGGER_HANGAR_MAIANS) + + label(0x08) + yield + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040d_elvis_wait_for_hangar_entry[] = { + set_self_flag_bank3(CHRFLAG3_00040000) + set_accuracy(100) + set_reaction_speed(100) + set_armor(200) + set_alertness(100) + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_00080000) + set_self_flag_bank3(CHRFLAG3_NOAUTOAIM) + + beginloop(0x04) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2c) + if_stage_flag_eq(STAGEFLAG_HANGAR_DOORS_OPEN, TRUE, /*goto*/ 0x06) + reloop(0x04) + + label(0x2c) + if_stage_flag_eq(STAGEFLAG_SHIELDS_DISABLED, TRUE, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + + beginloop(0x65) + set_target_chr(CHR_JOANNA) + if_chr_sees_player(/*goto*/ 0x2c) + set_target_chr(CHR_VELVET) + if_chr_sees_player(/*goto*/ 0x2c) + set_target_chr(CHR_COUNTEROP) + if_chr_sees_player(/*goto*/ 0x2c) + goto_next(0x06) + + label(0x2c) + endloop(0x65) + + label(0x06) + unset_self_flag_bank3(CHRFLAG3_HIDDEN) + unset_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + yield + yield + yield + yield + set_function(CHR_SELF, FUNC_ELVIS_GIVE_AR34) + endfunction +}; + +u8 func040e_elvis_give_ar34[] = { + set_onshot_function(FUNC_ELVIS_GIVE_AR34) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2c) + if_chr_dying(CHR_SELF, /*goto*/ 0x2c) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2c) + goto_next(0x06) + + label(0x2c) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x06) + stop_chr + + // Wait until player in sight + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + set_follow_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0x2c) + endloop(0x04) + + label(0x2c) + + beginloop(0x08) + if_chr_sees_player(/*goto*/ 0x2c) + endloop(0x08) + + // Run towards player + label(0x0a) + restart_timer + try_run_to_target_chr(/*goto*/ 0x09) + + beginloop(0x09) + set_target_chr(FOLLOW_CHR) + if_timer_gt(60, /*goto*/ 0x2c) + if_chr_distance_lt(200, /*goto*/ 0x06) + reloop(0x09) + + label(0x06) + if_chr_sees_player(/*goto*/ 0x06) + endloop(0x09) + + label(0x2c) + goto_first(0x0a) + + // Talk + label(0x06) + set_chr_alliance(CHR_SELF, ALLIANCE_ALLY) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_stage_flag(STAGEFLAG_MET_ELVIS) + speak(CHR_P1P2, 0x2613, 0x12e1, CHANNEL_6, COLOR_04_ORANGE) // "Good to see you, Joanna." + animation(ANIM_TALKING_0231, 0, -1, 0x1010, CHR_SELF, 2) + + beginloop(0x0c) + if_timer_gt(180, /*goto*/ 0x06) + endloop(0x0c) + + label(0x06) + speak(CHR_P1P2, 0x2614, 0x12e2, CHANNEL_6, COLOR_04_ORANGE) // "Take this - you should find it useful..." + give_object_to_chr(OBJ_AR34, FOLLOW_CHR) + message(FOLLOW_CHR, 0x2615) // "Received AR34 assault rifle." + restart_timer + + beginloop(0x0d) + if_timer_gt(180, /*goto*/ 0x06) + endloop(0x0d) + + label(0x06) + set_stage_flag(STAGEFLAG_HANGAR_ALARM_ACTIVATED) + activate_alarm + restart_timer + + beginloop(0x0e) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x0e) + + label(0x06) + label(0x0f) + yield + set_function(CHR_SELF, FUNC_ELVIS_FOLLOW) + endfunction +}; + +/** + * Follow player. + * If entered nav room, do that objective. + * If arrived at prebridge lift, assign another function. + */ +u8 func0409_elvis_follow[] = { + set_self_flag_bank3(CHRFLAG3_00000040) + set_onshot_function(FUNC_ELVIS_FOLLOW) + set_return_function(CHR_SELF, FUNC_ELVIS_FOLLOW) + if_chr_dying(CHR_SELF, /*goto*/ 0x2c) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2c) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2c) + goto_next(0x06) + + // Dying + label(0x2c) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x06) + if_just_injured(CHR_SELF, /*goto*/ 0x2c) + goto_next(0x06) + + // Injured + label(0x2c) + restart_timer + say_quip(CHR_JOANNA, 0x29, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00) + dprint 'I','N','J','U','R','E','D','\n',0, + + beginloop(0xc1) + if_timer_gt(180, /*goto*/ 0x06) + if_chr_stopped(/*goto*/ 0x06) + endloop(0xc1) + + // Healthy + label(0x06) + dprint 'I','N','J','U','R','E','D','F','I','N','\n',0, + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x08) + set_target_chr(FOLLOW_CHR) + if_chr_distance_lt(200, /*goto*/ 0x06) + + label(0x03) + set_target_chr(FOLLOW_CHR) + restart_timer + if_chr_distance_gt(500, /*goto*/ 0x06) + try_run_to_target_chr_with_hand_up(/*goto*/ 0x04) + + // Distance < 200 or distance > 500 + label(0x06) + try_run_to_target_chr(/*goto*/ 0x04) + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_NAVIGATION_ROOM_DONE, TRUE, /*goto*/ 0x2c) + if_chr_in_room(CHR_ELVIS, 0x00, 0x003e, /*goto*/ 0xb5) + label(0x2c) + if_stage_flag_eq(STAGEFLAG_SAID_GO_ON_AHEAD, TRUE, /*goto*/ 0x2c) + if_chr_in_room(CHR_ELVIS, 0x00, 0x006c, /*goto*/ 0xc4) + label(0x2c) + dprint 'G','O',' ','T','O',' ','P','A','D','\n',0, + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x08) + set_target_chr(FOLLOW_CHR) + if_chr_distance_lt(200, /*goto*/ 0x06) + if_timer_gt(60, /*goto*/ 0x2c) + endloop(0x04) + + // Running for 1 second - do distance checks again + label(0x2c) + goto_first(0x03) + + // At player + label(0x06) + stop_chr + + beginloop(0x09) + if_stage_flag_eq(STAGEFLAG_NAVIGATION_ROOM_DONE, TRUE, /*goto*/ 0x2c) + if_chr_in_room(CHR_ELVIS, 0x00, 0x003e, /*goto*/ 0xb5) + label(0x2c) + if_stage_flag_eq(STAGEFLAG_SAID_GO_ON_AHEAD, TRUE, /*goto*/ 0x2c) + if_chr_in_room(CHR_ELVIS, 0x00, 0x006c, /*goto*/ 0xc4) + label(0x2c) + dprint 'A','T',' ','P','A','D','\n',0, + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x08) + set_target_chr(FOLLOW_CHR) + if_chr_distance_gt(300, /*goto*/ 0x06) + endloop(0x09) + + // Player moved away - do distance checks and start following + label(0x06) + goto_first(0x03) + + // Enemy detected + label(0x08) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0x2c) + if_chr_dying(TARGET_CHR, /*goto*/ 0x2c) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0x2c) + if_target_chrs_field_0x17e_is_different(/*goto*/ 0x06) + label(0x2c) + goto_first(0x03) + + label(0x06) + dprint 'D','E','T','E','C','T','E','D','\n',0, + call_rng + if_rand_lt(85, /*goto*/ 0x65) + if_rand_lt(170, /*goto*/ 0x66) + say_quip(CHR_JOANNA, 0x26, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00) + goto_next(0x2c) + label(0x65) + say_quip(CHR_JOANNA, 0x27, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00) + goto_next(0x2c) + label(0x66) + say_quip(CHR_JOANNA, 0x28, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00) + label(0x2c) + set_return_function(CHR_SELF, FUNC_ELVIS_FOLLOW) + set_onshot_function(FUNC_ELVIS_FOLLOW) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + + // Elvis in nav room + label(0xb5) + jog_to_pad(0x0034) + + beginloop(0x0f) + if_chr_stopped(/*goto*/ 0x2c) + endloop(0x0f) + + label(0x2c) + restart_timer + animation(ANIM_OPERATE_0221, 0, -1, 0x0010, CHR_SELF, 2) + + beginloop(0x10) + if_timer_gt(180, /*goto*/ 0x06) + endloop(0x10) + + label(0x06) + do_special_animation(-1) + message(CHR_JOANNA, 0x260d) // "Navigational information has been retrieved." + speak(FOLLOW_CHR, 0x261f, 0x12e4, CHANNEL_6, COLOR_04_ORANGE) // "Time to head upwards..." + restart_timer + set_stage_flag(STAGEFLAG_NAVIGATION_ROOM_DONE) + + beginloop(0x79) + if_timer_gt(90, /*goto*/ 0x06) + endloop(0x79) + + label(0x06) + mute_channel(CHANNEL_6) + goto_first(0x03) + + // Elvis outside prebridgelift + label(0xc4) + set_function(CHR_SELF, FUNC_INIT_ELVIS_OUTSIDE_PREBRIDGELIFT) + endfunction +}; + +u8 func041d_init_elvis_outside_prebridgelift[] = { + set_onshot_function(FUNC_ELVIS_OUTSIDE_PREBRIDGELIFT) + set_armor(600) + set_function(CHR_SELF, FUNC_ELVIS_OUTSIDE_PREBRIDGELIFT) + endfunction +}; + +u8 func041c_elvis_outside_prebridgelift[] = { + set_onshot_function(FUNC_ELVIS_OUTSIDE_PREBRIDGELIFT) + if_chr_dying(CHR_SELF, /*goto*/ 0x2c) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2c) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2c) + goto_next(0x06) + + // Dying + label(0x2c) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x06) + stop_chr + set_target_chr(FOLLOW_CHR) + set_stage_flag(STAGEFLAG_SAID_GO_ON_AHEAD) + if_stage_flag_eq(STAGEFLAG_ENTERED_BRIDGELIFT, TRUE, /*goto*/ 0x2c) + speak(FOLLOW_CHR, 0x261a, 0x14dc, CHANNEL_6, COLOR_04_ORANGE) // "You go on ahead, Jo. I'll secure the perimeter. We..." + label(0x2c) + run_to_pad(0x0063) + + beginloop(0x09) + if_chr_stopped(/*goto*/ 0x0b) + endloop(0x09) + + label(0x0b) + stop_chr + + beginloop(0x0c) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x08) + endloop(0x0c) + + label(0x08) + dprint 'D','E','T','E','C','T','E','D','\n',0, + set_onshot_function(FUNC_ELVIS_OUTSIDE_PREBRIDGELIFT) + set_return_function(CHR_SELF, FUNC_ELVIS_OUTSIDE_PREBRIDGELIFT) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + endfunction +}; + +u8 func040a_elvis_go_to_hangar_lift[] = { + set_onshot_function(FUNC_ELVIS_GO_TO_HANGAR_LIFT) + if_chr_dying(CHR_SELF, /*goto*/ 0x2c) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2c) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2c) + goto_next(0x06) + + // Dying + label(0x2c) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x06) + + label(0x03) + set_target_chr(CHR_JOANNA) + restart_timer + if_var_a_lt(50, /*goto*/ 0x06) + goto_next(0xc3) + + label(0x06) + try_run_to_target_chr(/*goto*/ 0x04) + + beginloop(0x04) + if_timer_gt(60, /*goto*/ 0x2c) + if_chr_distance_lt(200, /*goto*/ 0x06) + endloop(0x04) + + label(0x2c) + goto_first(0x03) + + // At player + label(0x06) + speak(CHR_JOANNA, 0x2616, 0x12e4, CHANNEL_6, COLOR_04_ORANGE) // "Time to head upwards. I'll take this lift; you tak..." + animation(ANIM_TALKING_0231, 0, -1, 0x1010, CHR_SELF, 2) + set_var_a(50) + + beginloop(0x0c) + if_timer_gt(180, /*goto*/ 0xc3) + endloop(0x0c) + + // Done talk + label(0xc3) + restart_timer + run_to_pad(0x00b2) + + beginloop(0x0d) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x0d) + + label(0x06) + stop_chr + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func041b_elvis_at_bridge[] = { + stop_chr + set_onshot_function(FUNC_ELVIS_AT_BRIDGE) + if_chr_dying(CHR_SELF, /*goto*/ 0x2c) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2c) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2c) + goto_next(0x06) + + // Dying + label(0x2c) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x06) + label(0x06) + if_var_a_lt(100, /*goto*/ 0x06) + goto_next(0x2c) + + label(0x06) + set_var_a(100) + label(0x2c) + + beginloop(0x65) + if_sound_finished(CHANNEL_6, /*goto*/ 0x2c) + endloop(0x65) + + label(0x2c) + run_to_pad(0x008a) + restart_timer + + beginloop(0x09) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x08) + if_chr_stopped(/*goto*/ 0x0b) + if_stage_flag_eq(STAGEFLAG_SAID_LOOKOUT, TRUE, /*goto*/ 0x06) + if_timer_gt(180, /*goto*/ 0x2c) + label(0x06) + reloop(0x09) + + label(0x2c) + speak(TARGET_CHR, 0x2618, 0x12e3, CHANNEL_6, COLOR_04_ORANGE) // "Look out, Joanna! I think we've made them angry..." + set_stage_flag(STAGEFLAG_SAID_LOOKOUT) + endloop(0x09) + + // Reached pad + label(0x0b) + stop_chr + + beginloop(0x0c) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x08) + endloop(0x0c) + + label(0x08) + dprint 'D','E','T','E','C','T','E','D','\n',0, + set_onshot_function(FUNC_ELVIS_AT_BRIDGE) + set_return_function(CHR_SELF, FUNC_ELVIS_AT_BRIDGE) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + endfunction +}; + +u8 func1005_check_elvis_dead[] = { + beginloop(0x04) + if_chr_dying(CHR_ELVIS, /*goto*/ 0x2c) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x2c) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x2c) + endloop(0x04) + + label(0x2c) + message(CHR_JOANNA, 0x260c) // "Elvis has been killed." + set_stage_flag(STAGEFLAG_ELVIS_DEAD) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040f_init_skedar[] = { + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x0d) + if_chr_dying(CHR_SELF, /*goto*/ 0x0d) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x0d) + + // Alive + set_accuracy(20) + set_reaction_speed(75) + set_chr_health(CHR_SELF, 10) + set_armor(190) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, GFUNC_RELATED_TO_SPAWNING) + + // Dying or dead + label(0x0d) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0410_wake_suspendedanim_skedar[] = { + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2c) + if_chr_dying(CHR_SELF, /*goto*/ 0x2c) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2c) + goto_next(0x06) + + label(0x2c) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x06) + set_accuracy(20) + set_reaction_speed(75) + set_chr_health(CHR_SELF, 10) + set_armor(190) + set_recovery_speed(0) + set_shield(0) + set_target_chr(CHR_JOANNA) + try_walk_to_target_chr(/*goto*/ 0x2c) + + label(0x2c) + set_onshot_function(GFUNC_RELATED_TO_SPAWNING) + set_function(CHR_SELF, GFUNC_RELATED_TO_SPAWNING) + endfunction +}; + +u8 func1006_wake_slayer_skedar[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0033, /*goto*/ 0x2c) + endloop(0x04) + + label(0x2c) + restart_timer + + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x08) + + // 1 + label(0x06) + unlock_door(0x0f, 0x02) + unlock_door(0x10, 0x02) + open_door(0x0f) + set_chr_alliance(CHR_SUSPENDEDANIM1, ALLIANCE_ENEMY) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SUSPENDEDANIM1, FUNC_WAKE_SUSPENDEDANIM_SKEDAR) + restart_timer + + beginloop(0x09) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x09) + + // 2 + label(0x06) + unlock_door(0x13, 0x02) + unlock_door(0x14, 0x02) + open_door(0x13) + + if_chr_death_animation_finished(CHR_SUSPENDEDANIM3, /*goto*/ 0x2c) + if_chr_dying(CHR_SUSPENDEDANIM3, /*goto*/ 0x2c) + if_chr_unloaded(CHR_SUSPENDEDANIM3, /*goto*/ 0x2c) + set_function(CHR_SUSPENDEDANIM3, FUNC_WAKE_SUSPENDEDANIM_SKEDAR) + + set_chr_alliance(CHR_SUSPENDEDANIM3, ALLIANCE_ENEMY) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + + // Wait until player coming back from Slayer area + label(0x2c) + + beginloop(0x0a) + consider_coop_for_p1p2_chr(CHR_SELF) + if_stage_flag_eq(STAGEFLAG_ENTERED_SLAYER_AREA, TRUE, /*goto*/ 0x2c) + reloop(0x0a) + + label(0x2c) + if_chr_in_room(CHR_P1P2, 0x00, 0x0033, /*goto*/ 0x2c) + endloop(0x0a) + + // 3 + label(0x2c) + unlock_door(0x11, 0x02) + unlock_door(0x12, 0x02) + unlock_door(0x15, 0x02) + unlock_door(0x16, 0x02) + open_door(0x11) + open_door(0x15) + set_function(CHR_SUSPENDEDANIM2, FUNC_WAKE_SUSPENDEDANIM_SKEDAR) + set_chr_alliance(CHR_SUSPENDEDANIM2, ALLIANCE_ENEMY) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + + // 4 + set_function(CHR_SUSPENDEDANIM4, FUNC_WAKE_SUSPENDEDANIM_SKEDAR) + set_chr_alliance(CHR_SUSPENDEDANIM4, ALLIANCE_ENEMY) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1007_check_entered_slayer_area[] = { + beginloop(0x08) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x2c) + if_chr_in_room(CHR_JOANNA, 0x00, 0x003a, /*goto*/ 0x2c) + if_chr_in_room(CHR_JOANNA, 0x00, 0x003b, /*goto*/ 0x2c) + reloop(0x08) + + label(0x2c) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x2d) + if_chr_in_room(CHR_VELVET, 0x00, 0x003a, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x003b, /*goto*/ 0x06) + endloop(0x08) + + label(0x2d) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x0d) + label(0x06) + set_stage_flag(STAGEFLAG_ENTERED_SLAYER_AREA) + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1008_hangar_lifts[] = { + set_object_flag_bank0(OBJ_HANGARLIFT_ELVIS, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(OBJ_HANGARLIFT_JO, OBJECTFLAG0_DEACTIVATED) + + // Wait until kills done + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_HANGAR_KILLS_DONE, TRUE, /*goto*/ 0x2c) + endloop(0x08) + + // Activate Jo's lift so it starts going to bottom + label(0x2c) + dprint 'U','N','\n',0, + unset_object_flag_bank0(OBJ_HANGARLIFT_JO, OBJECTFLAG0_DEACTIVATED) + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + + // Wait until lift stopped at bottom + beginloop(0x65) + dprint 'D','A','\n',0, + if_lift_stationary(OBJ_HANGARLIFT_JO, /*goto*/ 0x66) + endloop(0x65) + + // Deactivate lift and open door + label(0x66) + set_object_flag_bank0(0x39, OBJECTFLAG0_40000000) + set_object_flag_bank0(0x3a, OBJECTFLAG0_40000000) + unset_object_flag_bank0(OBJ_HANGARLIFT_JO, OBJECTFLAG0_DEACTIVATED) + open_door(0x39) + open_door(0x3a) + yield + set_object_flag_bank0(OBJ_HANGARLIFT_JO, OBJECTFLAG0_DEACTIVATED) + + beginloop(0x67) + dprint 'T','R','\n',0, + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x2c) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0018, /*goto*/ 0x2c) + if_door_state(0x39, (DOORSTATE_CLOSED | DOORSTATE_CLOSING), /*goto*/ 0x2d) + if_door_state(0x3a, (DOORSTATE_CLOSED | DOORSTATE_CLOSING), /*goto*/ 0x2d) + endloop(0x67) + + // Door closing automatically - reopen it + label(0x2d) + dprint 'P','E','\n',0, + goto_first(0x66) + + // Jo has entered the lift, or Jo dead in co-op + label(0x2c) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x2c) + if_chr_in_room(CHR_VELVET, 0x00, 0x0018, /*goto*/ 0x2c) + goto_first(0x67) + + // Jo or Velvet is in the lift - activate it + // Note the lift naturally waits 5 seconds at each stop, + // hence the 5 second wait if entered as soon as the door opens. + label(0x2c) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP) + unset_object_flag_bank0(0x39, OBJECTFLAG0_40000000) + unset_object_flag_bank0(0x3a, OBJECTFLAG0_40000000) + unset_object_flag_bank0(OBJ_HANGARLIFT_JO, OBJECTFLAG0_DEACTIVATED) + + // Wait until Y coordinate >= 400 + beginloop(0x09) + dprint 'P','U','\n',0, + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_death_animation_finished(CHR_P1P2, /*goto*/ 0x2c) + if_chr_y(CHR_P1P2, 400, OPERATOR_LESS_THAN, /*goto*/ 0x2c) + goto_next(0x0a) + + label(0x2c) + endloop(0x09) + + // Wait until lift stopped at top + beginloop(0x0a) + if_lift_stationary(OBJ_HANGARLIFT_JO, /*goto*/ 0x2c) + endloop(0x0a) + + label(0x2c) + set_object_flag_bank0(OBJ_HANGARLIFT_JO, OBJECTFLAG0_DEACTIVATED) + unset_object_flag_bank0(OBJ_HANGARLIFT_ELVIS, OBJECTFLAG0_DEACTIVATED) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x2c) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x2c) + if_chr_dying(CHR_ELVIS, /*goto*/ 0x2c) + set_function(CHR_ELVIS, GFUNC_STOP_AND_IDLE) + yield + if_chr_y(CHR_ELVIS, 400, OPERATOR_LESS_THAN, /*goto*/ 0x06) + goto_next(0x2c) + + // Warp Elvis to his lift + label(0x06) + + beginloop(0x5c) + chr_move_to_pad(CHR_ELVIS, 0x00ad, 0x00, /*goto*/ 0x2c) + chr_move_to_pad(CHR_ELVIS, 0x01e6, 0x00, /*goto*/ 0x2c) + chr_move_to_pad(CHR_ELVIS, 0x01e7, 0x00, /*goto*/ 0x2c) + endloop(0x5c) + + // Activate his lift and wait 2 seconds + label(0x2c) + unset_object_flag_bank0(OBJ_HANGARLIFT_ELVIS, OBJECTFLAG0_DEACTIVATED) + restart_timer + + beginloop(0x0b) + if_timer_gt(120, /*goto*/ 0x0c) + endloop(0x0b) + + // Wait for lift to stop at top + beginloop(0x0c) + if_lift_stationary(OBJ_HANGARLIFT_ELVIS, /*goto*/ 0x2c) + endloop(0x0c) + + label(0x2c) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x2c) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x2c) + if_chr_dying(CHR_ELVIS, /*goto*/ 0x2c) + set_function(CHR_ELVIS, FUNC_ELVIS_FOLLOW) + label(0x2c) + + // Check Elvis actually rode the lift up, and if not then go into a loop + // attempting to warp him. + beginloop(0x64) + set_object_flag_bank0(OBJ_HANGARLIFT_ELVIS, OBJECTFLAG0_DEACTIVATED) + unset_object_flag_bank0(0x3b, OBJECTFLAG0_02000000) + unset_object_flag_bank0(0x3c, OBJECTFLAG0_02000000) + unset_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP) + if_chr_y(CHR_ELVIS, 400, OPERATOR_LESS_THAN, /*goto*/ 0x06) + goto_next(0x68) + + // Handle case where Elvis is still in the hangar for some reason + label(0x06) + set_function(CHR_ELVIS, FUNC_SET_CLOAKED) + + beginloop(0x6d) + chr_move_to_pad(CHR_ELVIS, 0x0012, 0x01, /*goto*/ 0x2c) + endloop(0x6d) + + label(0x2c) + set_function(CHR_ELVIS, FUNC_SET_UNCLOAKED) + endloop(0x64) + + // Elvis is at top now + // For buddy or counterop who might still be in the hangar, + // wait for lift to be called from hangar + beginloop(0x68) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, 0x3b, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, 0x3c, /*goto*/ 0x2c) + if_chr_activated_object(CHR_COUNTEROP, 0x3b, /*goto*/ 0x2c) + if_chr_activated_object(CHR_COUNTEROP, 0x3c, /*goto*/ 0x2c) + endloop(0x68) + + // Bring Elvis's lift down + label(0x2c) + play_sound(0x81a6, -1) + unset_object_flag_bank0(OBJ_HANGARLIFT_ELVIS, OBJECTFLAG0_DEACTIVATED) + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + + // Wait for it to arrive at bottom + beginloop(0x69) + if_lift_stationary(OBJ_HANGARLIFT_ELVIS, /*goto*/ 0x2c) + endloop(0x69) + + // Wait for lift to be moving again (upwards) + label(0x2c) + + beginloop(0x6a) + if_lift_stationary(OBJ_HANGARLIFT_ELVIS, /*goto*/ 0x06) + goto_next(0x2c) + + label(0x06) + endloop(0x6a) + + label(0x2c) + yield + yield + yield + yield + + // Wait for lift stopped at top + beginloop(0x6b) + if_lift_stationary(OBJ_HANGARLIFT_ELVIS, /*goto*/ 0x2c) + endloop(0x6b) + + // Go back to waiting for lift to be called from hangar + label(0x2c) + goto_first(0x64) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0407_init_knifeable_skedar[] = { + set_armor(160) + set_self_flag_bankx(CHRFLAG1_00080000, BANK_1) + set_self_flag_bank3(CHRFLAG3_00040000) + set_function(CHR_SELF, FUNC_KNIFEABLE_SKEDAR) + endfunction +}; + +u8 func0408_knifeable_skedar[] = { + set_onshot_function(FUNC_KNIFEABLE_SKEDAR) + if_just_injured(CHR_SELF, /*goto*/ 0x0c) + label(0x08) + yield + label(0x2c) + restart_timer + set_target_chr(CHR_CASS) + try_face_entity(0x0200, 0x0000, /*goto*/ 0x04) + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_stage_flag_eq(STAGEFLAG_CASS_AT_PAD, TRUE, /*goto*/ 0x06) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x0c) + set_target_chr(CHR_CASS) + if_just_injured(CHR_SELF, /*goto*/ 0x0c) + endloop(0x04) + + // Cass at pad - wait 2 seconds + label(0x06) + restart_timer + + beginloop(0x09) + if_timer_gt(120, /*goto*/ 0x2c) + endloop(0x09) + + // Move to spot where Cass dies + label(0x2c) + set_target_chr(CHR_P1P2) + jog_to_pad(0x00dd) + + beginloop(0x0a) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_stopped(/*goto*/ 0x06) + if_target_chr_in_sight(/*goto*/ 0x0c) + if_just_injured(CHR_SELF, /*goto*/ 0x0c) + endloop(0x0a) + + // Face away from player and wait 10 seconds + label(0x06) + restart_timer + set_target_chr(CHR_CASS) + try_face_entity(ENTITYTYPE_PAD, 0x00ef, /*goto*/ 0x0b) + + beginloop(0x0b) + consider_coop_for_p1p2_chr(CHR_SELF) + if_timer_gt(600, /*goto*/ 0x06) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x0c) + if_just_injured(CHR_SELF, /*goto*/ 0x0c) + set_target_chr(CHR_CASS) + endloop(0x0b) + + // Go to holding cell + label(0x06) + set_view_distance(100) + jog_to_pad(0x00d9) + + beginloop(0x0a) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_just_injured(CHR_SELF, /*goto*/ 0x0c) + dprint 'W','A','I','T','I','N','G',' ','T','W','O','\n',0, + if_chr_stopped(/*goto*/ 0x0d) + label(0x06) + if_target_chr_in_sight(/*goto*/ 0x0c) + label(0x2c) + endloop(0x0a) + + // Saw player or got injured + label(0x0c) + set_return_function(CHR_SELF, GFUNC_UNALERTED) + set_function(CHR_SELF, GFUNC_UNALERTED) + + // Arrived at cell - wait 20 seconds + label(0x0d) + restart_timer + + beginloop(0x0e) + if_timer_gt(1200, /*goto*/ 0x2c) + endloop(0x0e) + + // Go back to Cass spot + label(0x2c) + jog_to_pad(0x00dd) + + beginloop(0x0f) + if_chr_stopped(/*goto*/ 0x2c) + endloop(0x0f) + + // Become idle + label(0x2c) + stop_chr + set_return_function(CHR_SELF, GFUNC_UNALERTED) + set_function(CHR_SELF, GFUNC_UNALERTED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Door is the second door. The one to the main room. + */ +u8 func1009_keep_door_open_in_intro[] = { + beginloop(0xc2) + if_stage_flag_eq(STAGEFLAG_INTRO_FINISHED, TRUE, /*goto*/ 0x06) + if_door_state(0x17, (DOORSTATE_CLOSED | DOORSTATE_CLOSING), /*goto*/ 0x2c) + reloop(0xc2) + + // Door closed + label(0x2c) + open_door(0x17) + endloop(0xc2) + + // Intro finished + label(0x06) + yield + yield + + beginloop(0x04) + if_door_state(0x17, DOORSTATE_CLOSING, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + set_chr_flag_bankx(CHR_KNIFEABLE_SKEDAR, CHRFLAG0_00002000, BANK_0) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +#define init_path(pathid) \ + set_accuracy(20) \ + set_reaction_speed(75) \ + set_chr_health(CHR_SELF, 10) \ + set_armor(190) \ + set_recovery_speed(0) \ + set_shield(0) \ + assign_path(pathid) \ + start_path \ + set_function(CHR_SELF, GFUNC_RELATED_TO_SPAWNING) + + + +u8 func0401_start_path00[] = { + init_path(0) + endfunction +}; + +u8 func0402_start_path01[] = { + init_path(1) + endfunction +}; + +u8 func0403_start_path02[] = { + init_path(2) + endfunction +}; + +u8 func0404_start_path03[] = { + init_path(3) + endfunction +}; + +u8 func0405_start_path04[] = { + init_path(4) + endfunction +}; + +u8 func0406_start_path05[] = { + init_path(5) + endfunction +}; + +u8 func0412_hangarspawner[] = { + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_KILLCOUNTABLE) + set_self_flag_bank3(CHRFLAG3_00000002) + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_self_flag_bank3(CHRFLAG3_00040000) + set_var_a(0) + + beginloop(0xc2) + if_stage_flag_eq(STAGEFLAG_HANGAR_ALARM_ACTIVATED, TRUE, /*goto*/ 0x04) + endloop(0xc2) + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_HANGAR_KILLS_DONE, FALSE, /*goto*/ 0x2c) + yield + yield + yield + yield + yield + goto_next(0x08) + + // Still killing + label(0x2c) + if_never_been_onscreen(/*goto*/ 0x4d) + if_chr_sees_player(/*goto*/ 0x08) + reloop(0x04) + + // Seen player, or kills done + label(0x08) + unset_self_flag_bank3(CHRFLAG3_HIDDEN) + set_function(CHR_SELF, FUNC_HANGARCLONE) + + // chrflag3_00000008 was unset + label(0x4d) + if_chr_death_animation_finished(CHR_CLONE, /*goto*/ 0x4d) + reloop(0x04) + + // Clone dead + label(0x4d) + try_spawn_clone2(CHR_SELF, FUNC_INIT_HANGARCLONE, 0x00000000, /*goto*/ 0x2c) + set_function(CHR_SELF, FUNC_HANGARCLONE) + label(0x2c) + add_var_a(1) + yield + endloop(0x04) + + endfunction +}; + +u8 func0413_init_hangarclone[] = { + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_00400000) + set_self_flag_bankx(CHRFLAG1_00080000, BANK_1) + label(0x04) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + try_inherit_properties(0x07, /*goto*/ 0x06) + label(0x06) + set_function(CHR_SELF, FUNC_HANGARCLONE) + endfunction +}; + +u8 func0414_hangarclone[] = { + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_KILLCOUNTABLE) + run_to_pad(0x00b4) + set_return_function(CHR_SELF, FUNC_HANGARCLONE) + + beginloop(0x03) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x2c) + endloop(0x03) + + label(0x2c) + set_onshot_function(FUNC_HANGARCLONE) + set_return_function(CHR_SELF, FUNC_HANGARCLONE) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + endfunction +}; + +u8 func0419_hangar_maian[] = { + set_onshot_function(FUNC_HANGAR_MAIAN) + set_self_flag_bank3(CHRFLAG3_NOAUTOAIM) + if_chr_dying(CHR_SELF, /*goto*/ 0x2c) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2c) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2c) + goto_next(0x06) + + label(0x2c) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x06) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x08) + + // @bug: Shoddy programming here. The jump to label 0x06 is likely supposed + // to go to the label 0x06 just prior to "AT PAD", but that is not the next + // label from here. Also, SPEED_RUN will always be used because SPEED_JOG + // lacks a goto_next 0x04. + if_chr_distance_to_pad_lt(CHR_SELF, 200, TARGET_PAD, /*goto*/ 0x06) + + // Distance to pad >= 200 + label(0x03) + restart_timer + if_chr_distance_to_pad_gt(CHR_SELF, 500, TARGET_PAD, /*goto*/ 0x06) + go_to_target_pad(SPEED_JOG) + + // Intended: Distance to pad > 500 + // Actual: Always executes + label(0x06) + go_to_target_pad(SPEED_RUN) + + beginloop(0x04) + dprint 'G','O',' ','T','O',' ','P','A','D','\n',0, + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x08) + if_chr_distance_to_pad_lt(CHR_SELF, 200, TARGET_PAD, /*goto*/ 0x06) + if_timer_gt(60, /*goto*/ 0x2c) + endloop(0x04) + + label(0x2c) + goto_first(0x03) + + // Distance to pad < 200 + label(0x06) + stop_chr + + // Wait at pad for enemy + beginloop(0x09) + dprint 'A','T',' ','P','A','D','\n',0, + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x08) + if_chr_distance_to_pad_gt(CHR_SELF, 300, TARGET_PAD, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + goto_first(0x03) + + // Enemy detected + label(0x08) + dprint 'D','E','T','E','C','T','E','D','\n',0, + set_return_function(CHR_SELF, FUNC_HANGAR_MAIAN) + set_onshot_function(FUNC_HANGAR_MAIAN) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + + // Everything below here is unreachable + label(0xb5) + jog_to_pad(0x0034) + + beginloop(0x0f) + if_chr_stopped(/*goto*/ 0x2c) + endloop(0x0f) + + label(0x2c) + restart_timer + animation(ANIM_SNEEZE, 0, 193, 0x0010, CHR_SELF, 2) + + beginloop(0x10) + if_timer_gt(180, /*goto*/ 0x06) + endloop(0x10) + + label(0x06) + message(CHR_JOANNA, 0x260d) // "Navigational information has been retrieved." + set_stage_flag(STAGEFLAG_NAVIGATION_ROOM_DONE) + goto_first(0x03) + + endfunction +}; + +u8 func0418_init_hangar_maian[] = { + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_self_flag_bank3(CHRFLAG3_00040000) + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_TRIGGER_HANGAR_MAIANS, TRUE, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + unset_self_flag_bank3(CHRFLAG3_HIDDEN) + set_armor(200) + set_reaction_speed(100) + set_function(CHR_SELF, FUNC_HANGAR_MAIAN) + endfunction +}; + +u8 func100a_check_hangar_kills_done[] = { + yield + beginloop(0xc2) + if_stage_flag_eq(STAGEFLAG_MET_ELVIS, TRUE, /*goto*/ 0x2c) + endloop(0xc2) + + label(0x2c) + restart_timer + + // Wait 2 minutes, or: + // A = 6 kills + // SA = 8 kills + // PA = 10 kills + beginloop(0x04) + if_timer_gt(7200, /*goto*/ 0x2c) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x65) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x66) + + // PA + if_kill_count_gt(9, /*goto*/ 0x2c) + reloop(0x04) + + // A + label(0x65) + if_kill_count_gt(5, /*goto*/ 0x2c) + reloop(0x04) + + // SA + label(0x66) + if_kill_count_gt(7, /*goto*/ 0x2c) + endloop(0x04) + + label(0x2c) + set_stage_flag(STAGEFLAG_HANGAR_KILLS_DONE) + set_function(CHR_ELVIS, FUNC_ELVIS_GO_TO_HANGAR_LIFT) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100b_msg_getshieldsdown[] = { + restart_timer + + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_INTRO_FINISHED, TRUE, /*goto*/ 0x2c) + endloop(0x08) + + label(0x2c) + restart_timer + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_CASS_SCREAMING, TRUE, /*goto*/ 0x2c) + endloop(0x04) + + label(0x2c) + restart_timer + + beginloop(0xc2) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0xc2) + + label(0x06) + speak(CHR_JOANNA, 0x2610, 0x81a0, CHANNEL_6, COLOR_04_ORANGE) // "Outside, Joanna. Get the shields down and we can h..." + set_stage_flag(STAGEFLAG_SAID_GETSHIELDSDOWN) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100c_engineroom[] = { + set_lights_state(0x0067, 0x04, 0x46, 0xff, 0xfa) + + // Wait until both engines destroyed + beginloop(0x04) + if_object_in_good_condition(OBJ_ENGINE1, /*goto*/ 0x2c) + if_object_in_good_condition(OBJ_ENGINE2, /*goto*/ 0x2c) + goto_next(0x06) + + label(0x2c) + endloop(0x04) + + label(0x06) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x2c) + if_chr_dying(CHR_ELVIS, /*goto*/ 0x2c) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x2c) + set_function(CHR_ELVIS, FUNC_ELVIS_RUN_FROM_ENGINEROOM) + play_x_music(CHANNEL_10, 10) + speak(CHR_JOANNA, 0x262e, 0x73d7, CHANNEL_6, COLOR_04_ORANGE) // "We have to get out of here!" + label(0x2c) + set_countdown_timer(10) + show_countdown_timer + start_countdown_timer + + beginloop(0x65) + if_countdown_timer_lt(1, /*goto*/ 0x2c) + endloop(0x65) + + // Timer expired + label(0x2c) + unset_object_flag_bank0(0x1b, OBJECTFLAG0_INVINCIBLE) + unset_object_flag_bank0(0x1c, OBJECTFLAG0_INVINCIBLE) + unset_object_flag_bank0(0x1d, OBJECTFLAG0_INVINCIBLE) + unset_object_flag_bank0(0x1e, OBJECTFLAG0_INVINCIBLE) + unset_object_flag_bank0(0x1f, OBJECTFLAG0_INVINCIBLE) + unset_object_flag_bank0(0x20, OBJECTFLAG0_INVINCIBLE) + set_object_flag_bank1(0x1b, OBJECTFLAG1_80000000) + set_object_flag_bank1(0x1c, OBJECTFLAG1_80000000) + set_object_flag_bank1(0x1d, OBJECTFLAG1_80000000) + set_object_flag_bank1(0x1e, OBJECTFLAG1_80000000) + set_object_flag_bank1(0x1f, OBJECTFLAG1_80000000) + set_object_flag_bank1(0x20, OBJECTFLAG1_80000000) + label(0x06) + hide_countdown_timer + unset_object_flag_bank0(0x21, OBJECTFLAG0_INVINCIBLE) + destroy_object(0x21) + destroy_object(0x1b) + destroy_object(0x1c) + destroy_object(0x1d) + destroy_object(0x1e) + destroy_object(0x1f) + destroy_object(0x20) + message(CHR_JOANNA, 0x2617) // "Engines have been disabled." + set_stage_flag(STAGEFLAG_ENGINES_DESTROYED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * This is the lift BEFORE the bridge lift. + * + * The lift moves automatically until you ride it up, then it stays at the top + * unless called from below. + */ +u8 func100d_prebridgelift[] = { + // Wait until Y >= 2600 + beginloop(0x09) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_y(CHR_P1P2, 2600, OPERATOR_LESS_THAN, /*goto*/ 0x2c) + goto_next(0x0a) + + label(0x2c) + endloop(0x09) + + // Wait until lift stopped at top + beginloop(0x0a) + if_lift_stationary(OBJ_PREBRIDGELIFT, /*goto*/ 0x2c) + endloop(0x0a) + + // Deactivate lift + label(0x2c) + label(0x64) + set_object_flag_bank0(OBJ_PREBRIDGELIFT, OBJECTFLAG0_DEACTIVATED) + unset_object_flag_bank0(0x3d, OBJECTFLAG0_02000000) + unset_object_flag_bank0(0x3e, OBJECTFLAG0_02000000) + + // Wait until lift called at bottom by buddy or counterop + beginloop(0x68) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, 0x3d, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, 0x3e, /*goto*/ 0x2c) + if_chr_activated_object(CHR_COUNTEROP, 0x3d, /*goto*/ 0x2c) + if_chr_activated_object(CHR_COUNTEROP, 0x3e, /*goto*/ 0x2c) + endloop(0x68) + + // Activate lift + label(0x2c) + play_sound(0x81a6, -1) + unset_object_flag_bank0(OBJ_PREBRIDGELIFT, OBJECTFLAG0_DEACTIVATED) + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + + // Wait until stopped at bottom + beginloop(0x69) + if_lift_stationary(OBJ_PREBRIDGELIFT, /*goto*/ 0x2c) + endloop(0x69) + + label(0x2c) + + // Wait until moving (upwards) + beginloop(0x6a) + if_lift_stationary(OBJ_PREBRIDGELIFT, /*goto*/ 0x06) + goto_next(0x2c) + + label(0x06) + endloop(0x6a) + + label(0x2c) + yield + yield + yield + yield + + // Wait until stopped at top + beginloop(0x6b) + if_lift_stationary(OBJ_PREBRIDGELIFT, /*goto*/ 0x2c) + endloop(0x6b) + + label(0x2c) + goto_first(0x64) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100e_bridgelift[] = { + // Wait until Y >= 3600 + beginloop(0x09) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_y(CHR_P1P2, 3600, OPERATOR_LESS_THAN, /*goto*/ 0x2c) + goto_next(0x0a) + + label(0x2c) + endloop(0x09) + + // Wait until lift stopped at top + beginloop(0x0a) + if_lift_stationary(OBJ_BRIDGELIFT, /*goto*/ 0x2c) + endloop(0x0a) + + label(0x2c) + set_stage_flag(STAGEFLAG_ENTERED_BRIDGE) + + // Deactive lift + label(0x64) + set_object_flag_bank0(OBJ_BRIDGELIFT, OBJECTFLAG0_DEACTIVATED) + unset_object_flag_bank0(0x2f, OBJECTFLAG0_02000000) + unset_object_flag_bank0(0x30, OBJECTFLAG0_02000000) + + // Wait until lift called from below by buddy or counterop + beginloop(0x68) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, 0x2f, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, 0x30, /*goto*/ 0x2c) + if_chr_activated_object(CHR_COUNTEROP, 0x2f, /*goto*/ 0x2c) + if_chr_activated_object(CHR_COUNTEROP, 0x30, /*goto*/ 0x2c) + endloop(0x68) + + // Activate lift + label(0x2c) + play_sound(0x81a6, -1) + unset_object_flag_bank0(OBJ_BRIDGELIFT, OBJECTFLAG0_DEACTIVATED) + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + + // Wait until lift stopped + beginloop(0x69) + if_lift_stationary(OBJ_BRIDGELIFT, /*goto*/ 0x2c) + endloop(0x69) + + label(0x2c) + + // Wait until lift moving again (upwards) + beginloop(0x6a) + if_lift_stationary(OBJ_BRIDGELIFT, /*goto*/ 0x06) + goto_next(0x2c) + + label(0x06) + endloop(0x6a) + + label(0x2c) + yield + yield + yield + yield + + // Wait until lift stopped at top + beginloop(0x6b) + if_lift_stationary(OBJ_BRIDGELIFT, /*goto*/ 0x2c) + endloop(0x6b) + + label(0x2c) + goto_first(0x64) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Assigned to the two Skedar behind the bridge doors who must be killed to end + * the level. + */ +u8 func0415_bridgespawner[] = { + set_accuracy(20) + set_reaction_speed(75) + set_chr_health(CHR_SELF, 10) + set_armor(190) + set_recovery_speed(0) + set_shield(0) + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_KILLCOUNTABLE) + set_self_flag_bank3(CHRFLAG3_00000002) + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_chr_cloaked(CHR_SELF, TRUE, FALSE) + set_self_flag_bank3(CHRFLAG3_00040000) + set_var_a(0) + + beginloop(0xc2) + if_stage_flag_eq(STAGEFLAG_TRIGGER_BRIDGE_SPAWNING, TRUE, /*goto*/ 0x04) + endloop(0xc2) + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_BRIDGE_DOORS_UNLOCKED, TRUE, /*goto*/ 0x06) + if_var_a_lt(2, /*goto*/ 0x2c) + + // Doors are unlocked (have been spawning for over a minute) + label(0x06) + restart_timer + + beginloop(0x65) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x65) + + label(0x06) + goto_next(0x08) + + // var_a is 0 or 1 + label(0x2c) + if_never_been_onscreen(/*goto*/ 0x4d) + if_chr_death_animation_finished(CHR_CLONE, /*goto*/ 0x2c) + if_chr_dying(CHR_CLONE, /*goto*/ 0x2c) + if_chr_unloaded(CHR_CLONE, /*goto*/ 0x2c) + label(0x2c) + if_chr_sees_player(/*goto*/ 0x08) + endloop(0x04) + + // Been spawning for 61 seconds, or Skedar can see player + // Unhide and uncloak + label(0x08) + unset_self_flag_bank3(CHRFLAG3_HIDDEN) + yield + set_chr_cloaked(CHR_SELF, FALSE, TRUE) + set_function(CHR_SELF, FUNC_INIT_BRIDGESPAWNER_REVEAL) + + // chrflag3_00000008 was unset + // 1 in 256 chance of spawning on any given frame (or script invocation?) + // or after 5 seconds just spawn one anyway. + label(0x4d) + restart_timer + + beginloop(0x10) + call_rng + if_timer_gt(300, /*goto*/ 0x2c) + if_rand_lt(1, /*goto*/ 0x2c) + endloop(0x10) + + // Check clone is dead + label(0x2c) + if_chr_death_animation_finished(CHR_CLONE, /*goto*/ 0x4d) + if_chr_dying(CHR_CLONE, /*goto*/ 0x4d) + if_chr_unloaded(CHR_CLONE, /*goto*/ 0x4d) + goto_first(0x04) + + // Spawn + label(0x4d) + try_spawn_clone2(CHR_SELF, FUNC_INIT_BRIDGECLONE, 0x00000000, /*goto*/ 0x2c) + unset_self_flag_bank3(CHRFLAG3_HIDDEN) + yield + set_chr_cloaked(CHR_SELF, FALSE, TRUE) + set_function(CHR_SELF, FUNC_INIT_BRIDGESPAWNER_REVEAL) + + label(0x2c) + add_var_a(1) + yield + goto_first(0x04) + + endfunction +}; + +u8 func0416_init_bridgeclone[] = { + set_chr_cloaked(CHR_SELF, FALSE, TRUE) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_00400000) + set_accuracy(20) + set_reaction_speed(75) + set_chr_health(CHR_SELF, 10) + set_armor(190) + set_recovery_speed(0) + set_shield(0) + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_KILLCOUNTABLE) + set_self_flag_bankx(CHRFLAG1_00080000, BANK_1) + label(0x04) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + + if_self_flag_bankx_eq(CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x2c) + try_inherit_properties(CHR_BRIDGESPAWNER1, /*goto*/ 0x06) + + label(0x06) + goto_next(0x06) + + label(0x2c) + try_inherit_properties(CHR_BRIDGESPAWNER2, /*goto*/ 0x06) + + label(0x06) + set_armor(40) + set_function(CHR_SELF, FUNC_BRIDGECLONE) + endfunction +}; + +/** + * Assigned to the two bridge spawners when they stop sending clones and reveal + * themselves. Kill count isn't actually used to check if they're dead, so this + * function isn't necessary. + */ +u8 func0417_init_spawner_reveal[] = { + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_KILLCOUNTABLE) + set_function(CHR_SELF, FUNC_BRIDGECLONE) + endfunction +}; + +u8 func041a_bridgeclone[] = { + set_onshot_function(FUNC_BRIDGECLONE) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2c) + if_chr_dying(CHR_SELF, /*goto*/ 0x2c) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2c) + goto_next(0x06) + + // Dying + label(0x2c) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x06) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_00020000) + if_self_flag_bankx_eq(CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x2c) + set_target_chr(CHR_ELVIS) + goto_next(0xc2) + + label(0x2c) + call_rng + if_rand_gt(128, /*goto*/ 0x2c) + set_target_chr(CHR_VELVET) + if_chr_dying(CHR_VELVET, /*goto*/ 0x2c) + goto_next(0xc2) + + label(0x2c) + set_target_chr(CHR_JOANNA) + label(0x03) + + beginloop(0xc2) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0x2c) + if_chr_dying(TARGET_CHR, /*goto*/ 0x2c) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0x2c) + goto_next(0x06) + + label(0x2c) + if_enemy_distance_lt_and_los(1000, /*goto*/ 0x06) + endloop(0xc2) + + // Has target - walk towards for 2 seconds + label(0x06) + if_chr_distance_lt(150, /*goto*/ 0x2e) + label(0xc5) + restart_timer + try_walk_to_target_chr(/*goto*/ 0x08) + + beginloop(0x08) + if_chr_dying(CHR_SELF, /*goto*/ 0xb8) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0x10) + if_chr_dying(TARGET_CHR, /*goto*/ 0x10) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0x10) + if_timer_gt(120, /*goto*/ 0x09) + endloop(0x08) + + label(0x09) + restart_timer + try_run_to_target_chr(/*goto*/ 0x0a) + + // Start running + beginloop(0x0a) + if_chr_dying(CHR_SELF, /*goto*/ 0xb8) + 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*/ 0x2c) + if_chr_distance_lt(150, /*goto*/ 0x2e) + label(0x2c) + if_chr_distance_lt(50, /*goto*/ 0x2e) + if_timer_gt(14, /*goto*/ 0x06) + endloop(0x0a) + + label(0x06) + goto_first(0x09) + + // Close to target - face them + label(0x2e) + restart_timer + dprint 'F','A','C','E',' ','T','A','R','G','E','T','\n',0, + if_angle_to_target_chr_lt(10, /*goto*/ 0x06) + cmd004f(246, /*goto*/ 0x06) + stop_chr + try_face_entity(0x0200, 0x0001, /*goto*/ 0x0b) + + beginloop(0x0b) + if_chr_dying(CHR_SELF, /*goto*/ 0xb8) + 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(15, /*goto*/ 0x06) + endloop(0x0b) + + // Attempt punch or kick + label(0x06) + try_punch_or_kick(/*goto*/ 0x2f) + goto_first(0x03) + + beginloop(0x2f) + if_chr_dying(CHR_SELF, /*goto*/ 0xb8) + 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(0x2f) + + // Attack finished + label(0x06) + goto_first(0x03) + + // Target chr dying + label(0x10) + stop_chr + + beginloop(0x0f) + if_chr_dying(CHR_SELF, /*goto*/ 0xb8) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x06) + endloop(0x0f) + + label(0x06) + goto_first(0xc2) + + label(0xb8) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100f_bridge_entry[] = { + // Wait until 3 bridge Skedar dead + beginloop(0x09) + if_chr_dying(CHR_BRIDGE1, /*goto*/ 0x2c) + if_chr_death_animation_finished(CHR_BRIDGE1, /*goto*/ 0x2c) + if_chr_unloaded(CHR_BRIDGE1, /*goto*/ 0x2c) + reloop(0x09) + + label(0x2c) + if_chr_dying(CHR_BRIDGE2, /*goto*/ 0x2c) + if_chr_death_animation_finished(CHR_BRIDGE2, /*goto*/ 0x2c) + if_chr_unloaded(CHR_BRIDGE2, /*goto*/ 0x2c) + reloop(0x09) + + label(0x2c) + if_chr_dying(CHR_BRIDGE3, /*goto*/ 0x2c) + if_chr_death_animation_finished(CHR_BRIDGE3, /*goto*/ 0x2c) + if_chr_unloaded(CHR_BRIDGE3, /*goto*/ 0x2c) + endloop(0x09) + + label(0x2c) + label(0x2c) + label(0x06) + restart_timer + + // Wait 11.66 seconds + beginloop(0x0a) + if_timer_gt(700, /*goto*/ 0x06) + endloop(0x0a) + + label(0x06) + set_stage_flag(STAGEFLAG_ELVIS_COMING_TO_BRIDGE) + set_function(CHR_ELVIS, GFUNC_STOP_AND_IDLE) + yield + if_chr_y(CHR_ELVIS, 3500, OPERATOR_LESS_THAN, /*goto*/ 0x65) + goto_next(0x2c) + + // Elvis is somewhere below - warp him up + beginloop(0x65) + chr_move_to_pad(CHR_ELVIS, 0x00a7, 0x01, /*goto*/ 0x2c) + endloop(0x65) + + label(0x2c) + set_function(CHR_ELVIS, FUNC_ELVIS_AT_BRIDGE) + restart_timer + + // Wait another 11.66 seconds + beginloop(0x08) + if_timer_gt(700, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + set_stage_flag(STAGEFLAG_TRIGGER_BRIDGE_SPAWNING) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1010_check_bridge_captured[] = { + beginloop(0xc2) + if_stage_flag_eq(STAGEFLAG_TRIGGER_BRIDGE_SPAWNING, TRUE, /*goto*/ 0x2c) + endloop(0xc2) + + // Wait for 2 spawner skedar to be killed. If 60 seconds have passed, + // unlock the bridge doors in case they've gotten stuck or became unalert + // or something. + label(0x2c) + restart_timer + + beginloop(0x09) + if_stage_flag_eq(STAGEFLAG_BRIDGE_DOORS_UNLOCKED, TRUE, /*goto*/ 0x2c) + if_timer_gt(3600, /*goto*/ 0x0d) + label(0x2c) + if_chr_death_animation_finished(CHR_BRIDGESPAWNER1, /*goto*/ 0x2c) + if_chr_dying(CHR_BRIDGESPAWNER1, /*goto*/ 0x2c) + if_chr_unloaded(CHR_BRIDGESPAWNER1, /*goto*/ 0x2c) + reloop(0x09) + + label(0x2c) + if_chr_death_animation_finished(CHR_BRIDGESPAWNER2, /*goto*/ 0x2c) + if_chr_dying(CHR_BRIDGESPAWNER2, /*goto*/ 0x2c) + if_chr_unloaded(CHR_BRIDGESPAWNER2, /*goto*/ 0x2c) + endloop(0x09) + + // 60 seconds elapsed + label(0x0d) + set_stage_flag(STAGEFLAG_BRIDGE_DOORS_UNLOCKED) + unlock_door(0x46, 0x40) + unlock_door(0x47, 0x40) + unlock_door(0x48, 0x40) + unlock_door(0x49, 0x40) + goto_first(0x09) + + label(0x2c) + message(CHR_JOANNA, 0x2619) // "Bridge has been captured." + set_stage_flag(STAGEFLAG_BRIDGE_CAPTURED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1011_check_end_level[] = { + beginloop(0x09) + if_all_objectives_complete(/*goto*/ 0x06) + endloop(0x09) + + label(0x06) + restart_timer + + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x2c) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x2c) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x2c) + goto_next(0x06) + + label(0x2c) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x2c) + if_chr_dying(CHR_VELVET, /*goto*/ 0x2c) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x2c) + goto_next(0x06) + + // Both players dead + label(0x2c) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + + // Either buddy is alive + label(0x06) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x2c) + if_chr_dying(CHR_ELVIS, /*goto*/ 0x2c) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x2c) + + // Mission complete + set_invincible(CHR_JOANNA) + set_function(CHR_SELF, FUNC_OUTRO) + + // Elvis dead + label(0x2c) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1003_intro[] = { + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_music_track(MUSIC_ATTACKSHIP_INTRO) + camera_movement(0x01c2) + cmd0175(60) + + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x01c3, -1, -1, 0x0600, CHR_JOANNA, 4) + + set_chr_flag_bank3(CHR_CASS, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_CASS, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_CASS, CHRFLAG2_00020000) + animation(0x01c4, -1, -1, 0x0600, CHR_CASS, 4) + + set_chr_flag_bank3(CHR_INTRO_SKEDAR, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_INTRO_SKEDAR, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_INTRO_SKEDAR, CHRFLAG2_00020000) + animation(0x01c5, -1, -1, 0x0600, CHR_INTRO_SKEDAR, 4) + + restart_timer + set_cutscene_weapon(CHR_JOANNA, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_JOANNA, WEAPON_NONE, WEAPON_NONE) + + #define wait_until(time, loopid) \ + beginloop(loopid) \ + if_controller_button_pressed(/*goto*/ 0xb0) \ + if_timer_gt(time, /*goto*/ 0x06) \ + endloop(loopid) \ + label(0x06) + + + + wait_until(60, 0x9a) + play_sound(0x0171, CHANNEL_10) + + wait_until(120, 0xac) + play_sound(0x775a, CHANNEL_10) + + wait_until(136, 0x9b) + play_sound(0x0172, CHANNEL_10) + + wait_until(186, 0x9c) + play_sound(0x0173, CHANNEL_10) + + wait_until(226, 0x9d) + play_sound(0x0174, CHANNEL_10) + + wait_until(320, 0x9e) + speak(CHR_JOANNA, 0x2620, 0x747f, CHANNEL_10, COLOR_09_BLUE) // "Oohhh... I'd better not be where I think I am." + + wait_until(505, 0x9f) + play_sound(0x0427, CHANNEL_10) + + wait_until(600, 0xa0) + speak(CHR_JOANNA, 0x2621, 0x7480, CHANNEL_10, COLOR_04_ORANGE) // "And it's worse than that, my dear. Just look who y..." + + wait_until(1000, 0xa1) + speak(CHR_JOANNA, 0x2622, 0x7481, CHANNEL_10, COLOR_09_BLUE) // "You! I thought you'd managed to escape. We found n..." + + wait_until(1018, 0xa2) + play_sound(0x0175, CHANNEL_10) + + wait_until(1142, 0xa3) + play_sound(0x0176, CHANNEL_10) + + wait_until(1168, 0xa4) + play_sound(0x0177, CHANNEL_10) + + wait_until(1210, 0xa5) + play_sound(0x0178, CHANNEL_10) + + wait_until(1260, 0xa6) + play_sound(0x0171, CHANNEL_10) + + wait_until(1298, 0xa7) + play_sound(0x0172, CHANNEL_10) + + wait_until(1358, 0x65) + play_sound(0x0173, CHANNEL_10) + + wait_until(1396, 0x66) + play_sound(0x0172, CHANNEL_10) + + wait_until(1400, 0xa8) + speak(CHR_JOANNA, 0x2623, 0x7482, CHANNEL_10, COLOR_04_ORANGE) // "You couldn't find me. But there was no hiding from..." + + wait_until(1520, 0x67) + play_sound(0x0176, CHANNEL_10) + + wait_until(1592, 0x68) + play_sound(0x0177, CHANNEL_10) + + wait_until(1600, 0x69) + play_sound(0x0174, CHANNEL_10) + + wait_until(1656, 0x6a) + play_sound(0x0175, CHANNEL_10) + + wait_until(1728, 0x6b) + play_sound(0x0178, CHANNEL_10) + + wait_until(1734, 0x6c) + play_sound(0x0172, CHANNEL_10) + + wait_until(1770, 0x6e) + play_sound(0x0173, CHANNEL_10) + + wait_until(1810, 0x61) + open_door(0x17) + play_sound(0x801e, CHANNEL_10) + play_sound(0x0530, CHANNEL_10) + + wait_until(1870, 0x6f) + speak(CHR_JOANNA, 0x2624, 0x7483, CHANNEL_10, COLOR_04_ORANGE) // "This is it. Wait there! I'll make a distraction; i..." + + wait_until(1874, 0x70) + play_sound(0x0174, CHANNEL_10) + + wait_until(1930, 0x71) + play_sound(0x0175, CHANNEL_10) + + wait_until(1986, 0x72) + play_sound(0x05a2, CHANNEL_10) + + wait_until(2040, 0x73) + play_sound(0x05a3, CHANNEL_10) + + wait_until(2108, 0x74) + play_sound(0x05a2, CHANNEL_10) + + wait_until(2168, 0x75) + play_sound(0x05a3, CHANNEL_10) + + wait_until(2226, 0x76) + play_sound(0x0531, CHANNEL_10) + + wait_until(2232, 0x77) + play_sound(0x05a2, CHANNEL_10) + + wait_until(2300, 0x62) + close_door(0x17) + + wait_until(2346, 0x78) + + wait_until(2424, 0x79) + play_sound(0x05a3, CHANNEL_10) + + wait_until(2468, 0x7a) + play_sound(0x0530, CHANNEL_10) + + wait_until(2474, 0x7b) + play_sound(0x05a2, CHANNEL_10) + + wait_until(2560, 0x7c) + play_sound(0x0176, CHANNEL_10) + + wait_until(2580, 0x7d) + play_sound(0x0177, CHANNEL_10) + + wait_until(2581, 0x7e) + speak(CHR_JOANNA, 0x2625, 0x7484, CHANNEL_10, COLOR_09_BLUE) // "Why are you doing this, Cassandra?" + + wait_until(2614, 0x7f) + play_sound(0x0171, CHANNEL_10) + + wait_until(2648, 0x80) + play_sound(0x0178, CHANNEL_10) + + wait_until(2670, 0x81) + play_sound(0x0172, CHANNEL_10) + + wait_until(2708, 0x82) + play_sound(0x0173, CHANNEL_10) + + wait_until(2736, 0x83) + play_sound(0x0174, CHANNEL_10) + + wait_until(2780, 0x84) + play_sound(0x0175, CHANNEL_10) + + wait_until(2790, 0x85) + speak(CHR_JOANNA, 0x2626, 0x7485, CHANNEL_10, COLOR_04_ORANGE) // "The Skedar used me, Joanna. You are my best chance..." + + wait_until(2792, 0x86) + play_sound(0x0172, CHANNEL_10) + + wait_until(2834, 0x87) + play_sound(0x0176, CHANNEL_10) + + wait_until(3016, 0x88) + play_sound(0x01dc, CHANNEL_10) + + wait_until(3068, 0x89) + play_sound(0x043a, CHANNEL_10) + play_sound(0x043d, CHANNEL_10) + + wait_until(3186, 0x63) + open_door(0x24) + + wait_until(3238, 0x8a) + play_sound(0x0177, CHANNEL_10) + + wait_until(3258, 0x8b) + play_sound(0x0172, CHANNEL_10) + + wait_until(3280, 0x8c) + play_sound(0x0173, CHANNEL_10) + close_door(0x24) + + wait_until(3313, 0x8d) + play_sound(0x052a, CHANNEL_10) + speak(CHR_JOANNA, 0x2627, 0x7c86, CHANNEL_10, COLOR_04_ORANGE) // "Eeeeaaarrrrggghhh!!!" + + beginloop(0x08) + if_camera_animating(/*goto*/ 0x2c) + goto_next(0xb0) + + label(0x2c) + if_controller_button_pressed(/*goto*/ 0xb0) + label(0x2c) + endloop(0x08) + + label(0xb0) + label(0x06) + set_stage_flag(STAGEFLAG_INTRO_FINISHED) + open_door(0x17) + mute_channel(CHANNEL_10) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x01c3, -2, -1, 0x0600, CHR_JOANNA, 2) + + unset_chr_flag_bank3(CHR_CASS, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_CASS, CHRFLAG2_00020000) + set_chr_flag_bank3(CHR_CASS, CHRFLAG3_00000001) + animation(0x01c4, -2, -1, 0x0600, CHR_CASS, 2) + + unset_chr_flag_bank3(CHR_INTRO_SKEDAR, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_INTRO_SKEDAR, CHRFLAG2_00020000) + set_chr_flag_bank3(CHR_INTRO_SKEDAR, CHRFLAG3_00000001) + animation(0x01c5, -2, -1, 0x0600, CHR_INTRO_SKEDAR, 2) + + remove_chr(CHR_INTRO_SKEDAR) + set_function(CHR_SHY_SKEDAR, FUNC_SHY_SKEDAR_WAIT) + enter_firstperson + yield + chr_move_to_pad(CHR_CASS, 0x00df, 0x01, /*goto*/ 0x2c) + label(0x2c) + set_function(CHR_CASS, FUNC_CASS) + restart_default_music + reset_ambience + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0c01_outro[] = { + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x2c) + set_target_chr(CHR_JOANNA) + goto_next(0x06) + + label(0x2c) + set_target_chr(CHR_VELVET) + label(0x06) + hide_object(0x2c) + camera_movement(0x01e1) + set_music_track(MUSIC_ATTACKSHIP_OUTRO) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0xf1, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_P1P2, CHRFLAG3_HIDDEN) + + 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(0x01e2, -1, -1, 0x0600, TARGET_CHR, 4) + + set_chr_flag_bank3(CHR_ELVIS, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(CHR_ELVIS, GFUNC_IDLE) + 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(0x01e3, -1, -1, 0x0600, CHR_ELVIS, 4) + + show_object(OBJ_OUTRO_SHUTTLE) + set_object_flag_bank1(OBJ_OUTRO_SHUTTLE, OBJECTFLAG1_04000000) + set_object_flag_bank2(OBJ_OUTRO_SHUTTLE, OBJECTFLAG2_00000010) + object_do_animation(0x01e4, OBJ_OUTRO_SHUTTLE, 0x04ff, 0xff) + set_object_part_visible(OBJ_OUTRO_SHUTTLE, FALSE) + + show_nonessential_chrs(FALSE) + restart_timer + set_cutscene_weapon(TARGET_CHR, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(TARGET_CHR, WEAPON_NONE, WEAPON_NONE) + set_cutscene_weapon(CHR_ELVIS, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_ELVIS, WEAPON_NONE, WEAPON_NONE) + + wait_until(38, 0x65) + play_sound(0x00f9, CHANNEL_10) + + wait_until(140, 0x66) + play_sound(0x00fd, CHANNEL_10) + + wait_until(150, 0xa9) + speak(CHR_JOANNA, 0x2628, 0x7487, CHANNEL_10, COLOR_09_BLUE) // "Wow. That's the first time I've seen another plane..." + + wait_until(368, 0x67) + play_sound(0x00fa, CHANNEL_10) + play_sound(0x00fb, CHANNEL_10) + + wait_until(540, 0x69) + play_sound(0x00fe, CHANNEL_10) + + wait_until(550, 0x6b) + play_sound(0x00fc, CHANNEL_10) + + wait_until(580, 0x6c) + play_sound(0x00f9, CHANNEL_10) + play_sound(0x00fb, CHANNEL_10) + + wait_until(690, 0x6e) + speak(CHR_JOANNA, 0x2629, 0x7488, CHANNEL_10, COLOR_04_ORANGE) // "Hmmmm?" + + wait_until(850, 0x6f) + speak(CHR_JOANNA, 0x262a, 0x7489, CHANNEL_10, COLOR_04_ORANGE) // "I don't... I don't believe it!" + + wait_until(963, 0x70) + play_sound(0x80d4, CHANNEL_10) + + wait_until(972, 0x71) + play_sound(0x80d8, CHANNEL_10) + + wait_until(988, 0x61) + play_sound(0x80db, CHANNEL_10) + + wait_until(1000, 0x72) + speak(CHR_JOANNA, 0x262b, 0x748a, CHANNEL_10, COLOR_09_BLUE) // "Elvis? What is it?" + + wait_until(1030, 0x73) + play_sound(0x80da, CHANNEL_10) + + wait_until(1045, 0x74) + play_sound(0x80d8, CHANNEL_10) + + wait_until(1065, 0x75) + play_sound(0x80d9, CHANNEL_10) + + wait_until(1085, 0x76) + play_sound(0x80da, CHANNEL_10) + + wait_until(1200, 0x77) + speak(CHR_JOANNA, 0x262c, 0x748b, CHANNEL_10, COLOR_09_BLUE) // "Where are you going?" + + wait_until(1237, 0x78) + play_sound(0x80db, CHANNEL_10) + + wait_until(1260, 0x79) + play_sound(0x80d8, CHANNEL_10) + + wait_until(1280, 0x7a) + play_sound(0x80d9, CHANNEL_10) + + wait_until(1300, 0x7b) + play_sound(0x80da, CHANNEL_10) + + wait_until(1301, 0x62) + speak(CHR_JOANNA, 0x262d, 0x748c, CHANNEL_10, COLOR_04_ORANGE) // "We have to get down to the surface! Follow me!" + open_door(OBJ_HANGARDOOR1) + open_door(OBJ_HANGARDOOR2) + open_door(OBJ_HANGARDOOR3) + open_door(OBJ_HANGARDOOR4) + set_object_flag_bank0(OBJ_HANGARDOOR1, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_HANGARDOOR2, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_HANGARDOOR3, OBJECTFLAG0_40000000) + set_object_flag_bank0(OBJ_HANGARDOOR4, OBJECTFLAG0_40000000) + + beginloop(0x08) + if_camera_animating(/*goto*/ 0x2c) + goto_next(0xb0) + + label(0x2c) + if_controller_button_pressed(/*goto*/ 0xb0) + label(0x2c) + endloop(0x08) + + label(0xb0) + mute_channel(CHANNEL_10) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +#define init_skedar(function) \ + set_accuracy(20) \ + set_reaction_speed(75) \ + set_chr_health(CHR_SELF, 10) \ + set_armor(190) \ + set_recovery_speed(0) \ + set_shield(0) \ + set_function(CHR_SELF, function) + + + +u8 func041e_init_bridge1and2[] = { + init_skedar(FUNC_BRIDGE_SKEDAR) + endfunction +}; + +u8 func0425_init_shy_skedar[] = { + init_skedar(GFUNC_IDLE) + endfunction +}; + +u8 func0420_init_bridge3[] = { + init_skedar(FUNC_BRIDGE_SKEDAR) + endfunction +}; + +/** + * Assigned to the 3 Skedar on the bridge. + */ +u8 func0421_bridge_skedar[] = { + set_onshot_function(FUNC_BRIDGE_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(0x2c) + + // Dying + label(0x06) + set_onshot_function(GFUNC_IDLE) + restart_timer + + beginloop(0x53) + if_timer_gt(15, /*goto*/ 0x06) + endloop(0x53) + + 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(0x2c) + if_just_injured(CHR_SELF, /*goto*/ 0x06) + goto_next(0x08) + + // Injured + label(0x06) + set_view_distance(100) + + // Not injured + label(0x08) + set_self_flag_bank3(CHRFLAG3_00000040) + label(0xc6) + 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*/ 0xc7) + label(0x06) + kneel + + beginloop(0xc7) + consider_coop_for_p1p2_chr(CHR_SELF) + label(0x2c) + set_target_chr(CHR_P1P2) + if_player_looking_at_something_maybe(0x00, 0x00, 0x01, /*goto*/ 0x06) + if_target_chr_in_sight(/*goto*/ 0xc8) + label(0x06) + if_shot_near_chr(0x00, /*goto*/ 0xc8) + if_near_miss(/*goto*/ 0xc9) + label(0x2c) + set_target_chr(CHR_P1P2) + reloop(0xc7) + + label(0x06) + if_player_looking_at_something_maybe(0x00, 0x00, 0x01, /*goto*/ 0x2c) + if_target_chr_in_sight(/*goto*/ 0xc8) + label(0x2c) + set_target_chr(CHR_JOANNA) + endloop(0xc7) + + label(0xc8) + set_view_distance(100) + if_self_flag_bankx_eq(CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x2c) + set_self_flag_bankx(CHRFLAG0_00000004, BANK_0) + say_quip(CHR_JOANNA, 0x0b, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00) + label(0x2c) + goto_next(0xca) + + // Unreachable + cmd0184(0x5a64) + + // Reachable from below + beginloop(0xcb) + if_chr_stopped(/*goto*/ 0xcc) + endloop(0xcb) + + label(0xcc) + restart_timer + stop_chr + + beginloop(0xb4) + if_timer_gt(120, /*goto*/ 0x2c) + endloop(0xb4) + + label(0x2c) + label(0x06) + goto_first(0xc6) + + // Near miss + label(0xc9) + set_view_distance(100) + restart_timer + if_self_flag_bankx_eq(CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0xcd) + set_self_flag_bankx(CHRFLAG0_00000004, BANK_0) + + label(0xcd) + 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*/ 0xce) + label(0x06) + if_timer_gt(60, /*goto*/ 0xcf) + if_rand_lt(4, /*goto*/ 0xcf) + goto_first(0xcd) + + label(0xcf) + if_chr_sees_player(/*goto*/ 0xce) + goto_first(0xc6) + + label(0xce) + goto_first(0xc8) + + label(0xd0) + restart_timer + + beginloop(0xd1) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0xce) + if_timer_gt(300, /*goto*/ 0x06) + endloop(0xd1) + + label(0x06) + goto_first(0xc6) + + label(0xce) + goto_first(0xc8) + + label(0xca) + if_self_flag_bankx_eq(CHRFLAG0_00002000, FALSE, BANK_0, /*goto*/ 0x60) + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0xb1) + label(0xb1) + say_quip(CHR_JOANNA, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x06) + goto_next(0x2c) + + label(0x60) + cmd0184(0x283c) + dprint 'F','I','R','E',' ','F','U','L','L','\n',0, + label(0x06) + goto_first(0xcb) + + label(0x2c) + goto_first(0xcc) + + endfunction +}; + +u8 func1013_msg_gottogetshieldsdown[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_SAID_GETSHIELDSDOWN, TRUE, /*goto*/ 0x2c) + endloop(0x04) + + label(0x2c) + restart_timer + + beginloop(0x08) + if_timer_gt(300, /*goto*/ 0x2c) + endloop(0x08) + + label(0x2c) + speak(CHR_JOANNA, 0x261b, 0x73dc, CHANNEL_6, COLOR_09_BLUE) // "I've got to get those shields down to let Elvis in..." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1014_msg_hangarbaydoors[] = { + if_difficulty_lt(DIFF_PA, /*goto*/ 0x09) + restart_timer + + beginloop(0x04) + if_objective_complete(0, /*goto*/ 0x2c) + endloop(0x04) + + label(0x2c) + restart_timer + + beginloop(0x08) + if_timer_gt(240, /*goto*/ 0x2c) + endloop(0x08) + + label(0x2c) + speak(CHR_JOANNA, 0x261c, 0x73dd, CHANNEL_6, COLOR_09_BLUE) // "Now only the hangar bay doors are in the way." + + label(0x09) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1015_msg_starmaps[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x003e, /*goto*/ 0x2c) + endloop(0x04) + + label(0x2c) + speak(CHR_P1P2, 0x261d, 0x73de, CHANNEL_6, COLOR_09_BLUE) // "This machine contains the Skedar star maps." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1016_msg_ifwecontrolthebridge[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x006f, /*goto*/ 0x2c) + endloop(0x04) + + label(0x2c) + set_stage_flag(STAGEFLAG_ENTERED_BRIDGELIFT) + unset_chr_flag_bank3(CHR_BRIDGE1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(CHR_BRIDGE2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(CHR_BRIDGE3, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + speak(CHR_P1P2, 0x261e, 0x73df, CHANNEL_6, COLOR_09_BLUE) // "If we control the bridge, then the ship is ours." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0422_cass[] = { + set_onshot_function(GFUNC_IDLE) + set_self_flag_bank3(CHRFLAG3_00040000) + run_to_pad(0x01dd) + + beginloop(0x08) + if_chr_distance_to_pad_lt(CHR_SELF, 300, 0x01dd, /*goto*/ 0x06) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x08) + + label(0x06) + stop_chr + set_stage_flag(STAGEFLAG_CASS_AT_PAD) + + // @bug: Looks like there's a missing goto_first 0x09 here. + // With that statement, it would loop waiting for the Skedar to be ready. + // As it stands, the check is pointless and Cass will do the screams and die + // even if the Skedar is not ready. + label(0x09) + yield + if_stage_flag_eq(STAGEFLAG_SHY_SKEDAR_READY, TRUE, /*goto*/ 0x2c) + + label(0x2c) + play_sound(0x7c86, CHANNEL_10) + set_stage_flag(STAGEFLAG_CASS_SCREAMING) + + beginloop(0xc2) + damage_chr(CHR_SELF, 18) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2c) + if_chr_dying(CHR_SELF, /*goto*/ 0x2c) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2c) + endloop(0xc2) + + label(0x2c) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0423_shy_skedar[] = { + set_onshot_function(FUNC_INIT_SKEDAR) + set_self_flag_bank3(CHRFLAG3_00000040) + set_self_flag_bank3(CHRFLAG3_00040000) + set_target_chr(CHR_CASS) + goto_next(0x2c) + + if_self_flag_bankx_eq(CHRFLAG0_00008000, TRUE, BANK_0, /*goto*/ 0x03) + label(0xc2) + chr_move_to_pad(CHR_SELF, 0x00e0, 0x01, /*goto*/ 0x2c) + + // Warp failed or not available - so run + label(0x03) + set_target_chr(CHR_CASS) + restart_timer + try_run_to_target_chr(/*goto*/ 0x08) + + beginloop(0x08) + if_chr_stopped(/*goto*/ 0x06) + if_chr_distance_to_pad_lt(CHR_SELF, 100, 0x00da, /*goto*/ 0x2d) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x08) + + // Stopped, or running for 1 second + label(0x06) + set_target_chr(CHR_CASS) + goto_first(0x03) + + // Warped to pad 0x00e0 successfully - run rest of the way + label(0x2c) + run_to_pad(0x00da) + + beginloop(0x09) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x2d) + if_chr_distance_to_pad_lt(CHR_SELF, 200, 0x00da, /*goto*/ 0x2d) + if_chr_stopped(/*goto*/ 0x2d) + endloop(0x09) + + // At pad + // The first time through this function, STAGEFLAG_SHY_SKEDAR_READY will + // be set. The second time through this function, stageflag 02000000 will + // be set. + label(0x2d) + if_stage_flag_eq(STAGEFLAG_SHY_SKEDAR_READY, TRUE, /*goto*/ 0x2c) + set_stage_flag(STAGEFLAG_SHY_SKEDAR_READY) + goto_next(0x2d) + + label(0x2c) + set_stage_flag(STAGEFLAG_02000000) + + // Set target chr based on who it can see + label(0x2d) + stop_chr + set_target_chr(CHR_JOANNA) + if_chr_sees_player(/*goto*/ 0x2c) + set_target_chr(CHR_VELVET) + if_chr_sees_player(/*goto*/ 0x2c) + set_target_chr(CHR_COUNTEROP) + if_chr_sees_player(/*goto*/ 0x2c) + + label(0x2c) + stop_chr + set_onshot_function(FUNC_INIT_SKEDAR) + set_return_function(CHR_SELF, FUNC_INIT_SKEDAR) + set_function(CHR_SELF, FUNC_INIT_SKEDAR) + endfunction +}; + +u8 func0423_shy_skedar_wait[] = { + set_onshot_function(FUNC_SHY_SKEDAR) + set_target_chr(CHR_CASS) + set_self_flag_bankx(CHRFLAG0_00008000, BANK_0) + restart_timer + + beginloop(0x08) + if_timer_gt(180, /*goto*/ 0x2c) + endloop(0x08) + + label(0x2c) + set_function(CHR_SELF, FUNC_SHY_SKEDAR) + endfunction +}; + +u8 func141b_setup_lifts[] = { + activate_lift(1, 0x25) + activate_lift(2, 0x26) + activate_lift(4, 0x28) + activate_lift(5, 0x29) + activate_lift(6, 0x2a) + activate_lift(7, 0x2b) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * In PA room where the hangar door console is. Once console is activated, or + * when hangar alarm is activated, the Skedar behind the door is alerted. + */ +u8 func1017_pa_skedar_alertness[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_HANGAR_DOORS_OPEN, TRUE, /*goto*/ 0x2c) + if_stage_flag_eq(STAGEFLAG_HANGAR_ALARM_ACTIVATED, TRUE, /*goto*/ 0x2c) + endloop(0x04) + + label(0x2c) + restart_timer + + beginloop(0x08) + if_timer_gt(300, /*goto*/ 0x2c) + endloop(0x08) + + label(0x2c) + set_function(0x02, GFUNC_ALERTED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1012_update_elvis_target_chr[] = { + beginloop(0x04) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x09) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x08) + goto_next(0x09) + + // Unreachable + reloop(0x04) + + // Jo dead + label(0x08) + set_chr_target_chr(CHR_ELVIS, CHR_VELVET) + reloop(0x04) + + // Velvet dead or both alive + label(0x09) + set_chr_target_chr(CHR_ELVIS, CHR_JOANNA) + endloop(0x04) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Note Elvis is still hidden, hence why he doesn't appear until shields are + * down. + */ +u8 func1018_place_elvis_in_hangar[] = { + label(0x04) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x03) + set_function(CHR_SELF, GFUNC_IDLE) + + // A and SA + beginloop(0x03) + chr_move_to_pad(CHR_ELVIS, 0x0103, 0x01, /*goto*/ 0x2c) + endloop(0x03) + + label(0x2c) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1002_hangar_shuttle[] = { + yield + show_object(OBJ_HANGAR_SHUTTLE) + set_object_flag_bank2(OBJ_HANGAR_SHUTTLE, OBJECTFLAG2_00000010) + set_object_part_visible(OBJ_HANGAR_SHUTTLE, FALSE) + + label(0x09) + restart_timer + + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_BRIDGE_CAPTURED, TRUE, /*goto*/ 0x06) + if_objective_complete(4, /*goto*/ 0x06) + object_do_animation(0x045c, OBJ_HANGAR_SHUTTLE, 0x08ff, 0xff) + endloop(0x08) + + label(0x2c) + goto_first(0x09) + + label(0x06) + hide_object(OBJ_HANGAR_SHUTTLE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101a_kill_maian[] = { + yield + damage_chr(CHR_MAIAN3, 18) + yield + damage_chr(CHR_MAIAN3, 18) + yield + damage_chr(CHR_MAIAN3, 18) + yield + damage_chr(CHR_MAIAN3, 18) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101c_lift_door_sounds[] = { + beginloop(0xc2) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, 0x2f, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, 0x30, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, 0x31, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, 0x32, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, 0x33, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, 0x34, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, 0x35, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, 0x36, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, 0x37, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, 0x38, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, 0x39, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, 0x3a, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, 0x3d, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, 0x3e, /*goto*/ 0x2c) + endloop(0xc2) + + label(0x2c) + dprint 'S','O','U','N','D','\n',0, + play_sound(0x81a6, -1) + restart_timer + + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + goto_first(0xc2) + + endfunction +}; + +u8 func101d_unlock_doors[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2c) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x06) + + // PA - unlock door to console on other side of hangar + unlock_door(0x35, 0x80) + unlock_door(0x36, 0x80) + + // SA and PA - unlock door to engine room + label(0x06) + unlock_door(0x3f, 0x80) + unlock_door(0x40, 0x80) + + // All difficulties + label(0x2c) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101e_bridge_music[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_JOANNA, 0x00, 0x006e, /*goto*/ 0x2c) + endloop(0x04) + + label(0x2c) + play_x_music(CHANNEL_10, 60) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040c_elvis_run_from_engineroom[] = { + set_onshot_function(FUNC_ELVIS_RUN_FROM_ENGINEROOM) + run_to_pad(0x005c) + + beginloop(0x08) + if_chr_stopped(/*goto*/ 0x2c) + if_stage_flag_eq(STAGEFLAG_ENGINES_DESTROYED, TRUE, /*goto*/ 0x2c) + endloop(0x08) + + label(0x2c) + set_function(CHR_SELF, FUNC_ELVIS_FOLLOW) + endfunction +}; + +u8 func101f_enable_bridge_skedar[] = { + lock_door(0x41, 0x80) + lock_door(0x42, 0x80) + set_object_flag_bank1(0x41, OBJECTFLAG1_10000000) + set_object_flag_bank1(0x42, OBJECTFLAG1_08000000) + set_object_flag_bank1(0x41, OBJECTFLAG1_20000000) + set_object_flag_bank1(0x42, OBJECTFLAG1_20000000) + + // Wait until first 4 objectives complete + beginloop(0x04) + if_objective_complete(0, /*goto*/ 0x2c) + reloop(0x04) + + label(0x2c) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2c) + if_objective_complete(1, /*goto*/ 0x2c) + reloop(0x04) + + label(0x2c) + if_objective_complete(2, /*goto*/ 0x2c) + reloop(0x04) + + label(0x2c) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2c) + if_objective_complete(3, /*goto*/ 0x2c) + reloop(0x04) + + label(0x2c) + unlock_door(0x41, 0x80) + unlock_door(0x42, 0x80) + unset_object_flag_bank1(0x41, OBJECTFLAG1_10000000) + unset_object_flag_bank1(0x42, OBJECTFLAG1_08000000) + unset_object_flag_bank1(0x41, OBJECTFLAG1_20000000) + unset_object_flag_bank1(0x42, OBJECTFLAG1_20000000) + show_chr(0x21) + show_chr(0x22) + show_chr(CHR_BRIDGE1) + show_chr(CHR_BRIDGE2) + show_chr(CHR_BRIDGE3) + show_chr(CHR_BRIDGESPAWNER1) + show_chr(CHR_BRIDGESPAWNER2) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1020_engine_hum_noise[] = { + yield + assign_sound(0x81a5, CHANNEL_0) + play_sound_from_object(CHANNEL_0, 0x1b, 0x07d0, 0x0fa0) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1021_check_ammo_wasted[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_SHIELDS_DISABLED, TRUE, /*goto*/ 0x0d) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_weapon_equipped(CHR_P1P2, WEAPON_MAULER, /*goto*/ 0x65) + endloop(0x04) + + // Mauler equipped + beginloop(0x65) + if_stage_flag_eq(STAGEFLAG_SHIELDS_DISABLED, TRUE, /*goto*/ 0x0d) + if_ammo_quantity_lt(CHR_P1P2, AMMOTYPE_PISTOL, 1, /*goto*/ 0x2c) + endloop(0x65) + + // Ammo wasted + label(0x2c) + set_stage_flag(STAGEFLAG_AMMO_WASTED) + message(CHR_JOANNA, 0x2631) // "Ammo depleted - consoles can't be destroyed." + + beginloop(0x66) + if_stage_flag_eq(STAGEFLAG_SHIELDS_DISABLED, TRUE, /*goto*/ 0x2c) + endloop(0x66) + + label(0x2c) + unset_stage_flag(STAGEFLAG_AMMO_WASTED) + + // Shields disabled + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1022_setup_rtracker[] = { + // @bug: The Slayer is not R-tracked + yield + set_object_flag_bank2(OBJ_MAULER1, OBJECTFLAG2_RTRACKED_BLUE) + set_object_flag_bank2(OBJ_MAULER2, OBJECTFLAG2_RTRACKED_BLUE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040b_init_cass[] = { + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1024_set_bridge_skedar_invincible[] = { + set_chr_flag_bank3(CHR_BRIDGE1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_BRIDGE2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_BRIDGE3, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_BRIDGE1, CHRFLAG3_UNEXPLODABLE) + set_chr_flag_bank3(CHR_BRIDGE2, CHRFLAG3_UNEXPLODABLE) + set_chr_flag_bank3(CHR_BRIDGE3, CHRFLAG3_UNEXPLODABLE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Wait 10 seconds then set a flag on Joanna which enables buddy to warp to her. + */ +u8 unregistered_function1[] = { + restart_timer + + beginloop(0x04) + if_timer_gt(600, /*goto*/ 0x2c) + endloop(0x04) + + label(0x2c) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1423_setup_lighting[] = { + yield + set_lighting(0x0000, 0x09, 0x01) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1025_toggle_chrs[] = { + yield + hide_chr(0x0b) + hide_chr(0x0c) + hide_chr(CHR_SUSPENDEDANIM1) + hide_chr(CHR_SUSPENDEDANIM2) + hide_chr(CHR_SUSPENDEDANIM3) + hide_chr(CHR_SUSPENDEDANIM4) + hide_chr(0x11) + hide_chr(0x12) + hide_chr(0x13) + hide_chr(0x14) + hide_chr(0x15) + hide_chr(0x16) + hide_chr(0x17) + hide_chr(0x18) + hide_chr(0x19) + hide_chr(0x1a) + hide_chr(0x1b) + hide_chr(0x1c) + hide_chr(0x1d) + hide_chr(0x1e) + hide_chr(0x1f) + hide_chr(0x20) + hide_chr(0x27) + hide_chr(0x28) + hide_chr(0x29) + hide_chr(0x2a) + hide_chr(0x2b) + hide_chr(0x2c) + hide_chr(0x21) + hide_chr(0x22) + hide_chr(CHR_BRIDGE1) + hide_chr(CHR_BRIDGE2) + hide_chr(CHR_BRIDGE3) + hide_chr(CHR_BRIDGESPAWNER1) + hide_chr(CHR_BRIDGESPAWNER2) + + beginloop(0x08) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_y(CHR_P1P2, 450, OPERATOR_LESS_THAN, /*goto*/ 0x2c) + goto_next(0x06) + + label(0x2c) + endloop(0x08) + + label(0x06) + show_chr(0x0b) + yield + show_chr(0x0c) + yield + show_chr(CHR_SUSPENDEDANIM1) + yield + show_chr(CHR_SUSPENDEDANIM2) + yield + show_chr(CHR_SUSPENDEDANIM3) + yield + show_chr(CHR_SUSPENDEDANIM4) + yield + show_chr(0x11) + yield + show_chr(0x12) + yield + show_chr(0x13) + yield + show_chr(0x14) + yield + show_chr(0x15) + yield + show_chr(0x16) + yield + show_chr(0x17) + yield + show_chr(0x18) + yield + show_chr(0x19) + yield + show_chr(0x1a) + yield + show_chr(0x1b) + yield + show_chr(0x1c) + yield + show_chr(0x1d) + yield + show_chr(0x1e) + yield + show_chr(0x1f) + yield + show_chr(0x20) + yield + show_chr(0x27) + yield + show_chr(0x28) + yield + show_chr(0x29) + yield + show_chr(0x2a) + yield + show_chr(0x2b) + yield + show_chr(0x2c) + yield + set_function(CHR_MAIAN1, FUNC_CLOAK_AND_REMOVE) + set_function(CHR_MAIAN2, FUNC_CLOAK_AND_REMOVE) + set_function(0x07, FUNC_CLOAK_AND_REMOVE) + set_function(0x08, FUNC_CLOAK_AND_REMOVE) + set_function(0x09, FUNC_CLOAK_AND_REMOVE) + set_function(0x0a, FUNC_CLOAK_AND_REMOVE) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + + beginloop(0x09) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_y(CHR_P1P2, 550, OPERATOR_LESS_THAN, /*goto*/ 0x2c) + goto_next(0x06) + + label(0x2c) + endloop(0x09) + + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func041f_cloak_and_remove[] = { + set_onshot_function(FUNC_CLOAK_AND_REMOVE) + set_chr_cloaked(CHR_SELF, TRUE, FALSE) + restart_timer + + beginloop(0x04) + if_timer_gt(120, /*goto*/ 0x2c) + endloop(0x04) + + label(0x2c) + remove_chr(CHR_SELF) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1026_hide_necklace[] = { + yield + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2c) + set_function(CHR_SELF, GFUNC_IDLE) + + // A and SA + label(0x2c) + hide_object(OBJ_NECKLACE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0427_set_cloaked[] = { + stop_chr + set_chr_cloaked(CHR_SELF, TRUE, TRUE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0428_set_uncloaked[] = { + stop_chr + set_chr_cloaked(CHR_SELF, FALSE, TRUE) + set_function(CHR_SELF, FUNC_ELVIS_FOLLOW) + endfunction +}; + +struct ailists functions[] = { + { func1400_setup_counterop, 0x1400 }, + { func1001_objectives_failed_msg, 0x1001 }, + { func1002_hangar_shuttle, 0x1002 }, + { func1003_intro, 0x1003 }, + { func1004_check_hangar_doors_opened, 0x1004 }, + { func1005_check_elvis_dead, 0x1005 }, + { func1006_wake_slayer_skedar, 0x1006 }, + { func1007_check_entered_slayer_area, 0x1007 }, + { func1008_hangar_lifts, 0x1008 }, + { func1009_keep_door_open_in_intro, 0x1009 }, + { func100a_check_hangar_kills_done, 0x100a }, + { func100b_msg_getshieldsdown, 0x100b }, + { func100c_engineroom, 0x100c }, + { func100d_prebridgelift, 0x100d }, + { func100e_bridgelift, 0x100e }, + { func100f_bridge_entry, 0x100f }, + { func1010_check_bridge_captured, 0x1010 }, + { func1011_check_end_level, 0x1011 }, + { func1012_update_elvis_target_chr, 0x1012 }, + { func1013_msg_gottogetshieldsdown, 0x1013 }, + { func1014_msg_hangarbaydoors, 0x1014 }, + { func1015_msg_starmaps, 0x1015 }, + { func1016_msg_ifwecontrolthebridge, 0x1016 }, + { func1017_pa_skedar_alertness, 0x1017 }, + { func1018_place_elvis_in_hangar, 0x1018 }, + { func1002_hangar_shuttle, 0x1019 }, + { func1019_check_shields_lowered, 0x1019 }, + { func101a_kill_maian, 0x101a }, + { func141b_setup_lifts, 0x141b }, + { func101c_lift_door_sounds, 0x101c }, + { func101d_unlock_doors, 0x101d }, + { func101e_bridge_music, 0x101e }, + { func101f_enable_bridge_skedar, 0x101f }, + { func1020_engine_hum_noise, 0x1020 }, + { func1021_check_ammo_wasted, 0x1021 }, + { func1022_setup_rtracker, 0x1022 }, + { func1423_setup_lighting, 0x1423 }, + { func1024_set_bridge_skedar_invincible, 0x1024 }, + { func1025_toggle_chrs, 0x1025 }, + { func1026_hide_necklace, 0x1026 }, + { func1003_intro, 0x0c00 }, + { func0c01_outro, 0x0c01 }, + { func0c01_outro, 0x0426 }, + { func040f_init_skedar, 0x040f }, + { func0410_wake_suspendedanim_skedar, 0x0410 }, + { func040d_elvis_wait_for_hangar_entry, 0x040d }, + { func040e_elvis_give_ar34, 0x040e }, + { func0409_elvis_follow, 0x0409 }, + { func040a_elvis_go_to_hangar_lift, 0x040a }, + { func040b_init_cass, 0x040b }, + { func040c_elvis_run_from_engineroom, 0x040c }, + { func0401_start_path00, 0x0401 }, + { func0402_start_path01, 0x0402 }, + { func0403_start_path02, 0x0403 }, + { func0404_start_path03, 0x0404 }, + { func0405_start_path04, 0x0405 }, + { func0406_start_path05, 0x0406 }, + { func0407_init_knifeable_skedar, 0x0407 }, + { func0408_knifeable_skedar, 0x0408 }, + { func0412_hangarspawner, 0x0412 }, + { func0413_init_hangarclone, 0x0413 }, + { func0414_hangarclone, 0x0414 }, + { func0415_bridgespawner, 0x0415 }, + { func0416_init_bridgeclone, 0x0416 }, + { func0417_init_spawner_reveal, 0x0417 }, + { func0418_init_hangar_maian, 0x0418 }, + { func0419_hangar_maian, 0x0419 }, + { func0415_bridgespawner, 0x0415 }, + { func0416_init_bridgeclone, 0x0416 }, + { func0417_init_spawner_reveal, 0x0417 }, + { func041a_bridgeclone, 0x041a }, + { func041b_elvis_at_bridge, 0x041b }, + { func041c_elvis_outside_prebridgelift, 0x041c }, + { func041d_init_elvis_outside_prebridgelift, 0x041d }, + { func041f_cloak_and_remove, 0x041f }, + { func041e_init_bridge1and2, 0x041e }, + { func0420_init_bridge3, 0x0420 }, + { func0421_bridge_skedar, 0x0421 }, + { func0422_cass, 0x0422 }, + { func0423_shy_skedar, 0x0423 }, + { func0423_shy_skedar_wait, 0x0424 }, + { func0425_init_shy_skedar, 0x0425 }, + { func0427_set_cloaked, 0x0427 }, + { func0428_set_uncloaked, 0x0428 }, + { NULL, 0 }, +}; + +struct aipaths paths[] = { + { path00, 0, 0 }, + { path01, 1, 0 }, + { path02, 2, 0 }, + { path03, 3, 0 }, + { path04, 4, 0 }, + { path05, 5, 0 }, + { NULL, 0, 0 }, +}; + diff --git a/src/setup/setuplen.c b/src/setup/setuplen.c new file mode 100644 index 000000000..83c8967ac --- /dev/null +++ b/src/setup/setuplen.c @@ -0,0 +1,40 @@ +// +// Stage ID 0x36 +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + intro_weapon(WEAPON_NONE, -1) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setuplip.c b/src/setup/setuplip.c new file mode 100644 index 000000000..7eb04839f --- /dev/null +++ b/src/setup/setuplip.c @@ -0,0 +1,4833 @@ +// +// Rescue +// + +#include "../include/setup.h" + +// Characters +#define CHR_ALIEN 0x38 +#define CHR_DOORMAN 0x39 +#define CHR_LABTECH_RECORDS 0x3a +#define CHR_LABTECH_LIGHTS 0x3b +#define CHR_LABTECH_DOORS1 0x3c +#define CHR_LABTECH_SHOWERS 0x3d +#define CHR_LABTECH_HARRYSMATE 0x3e +#define CHR_LABTECH_KEYCARDGUY 0x3f +#define CHR_BIOTECH1 0x40 +#define CHR_BIOTECH2 0x41 +#define CHR_LABTECH_DOORS2 0x42 +#define CHR_MECHANIC 0x43 +#define CHR_JONATHAN 0x48 +#define CHR_INTRO_DEAD_GUARD 0x49 + +// Objects +#define OBJ_LABCOAT1 0x00 +#define OBJ_DOOR_TERMINAL 0x02 +#define OBJ_DATAUPLINK_JOANNA 0x05 +#define OBJ_KEYCARD 0x06 +#define OBJ_CRATE 0x17 +#define OBJ_WALL 0x18 +#define OBJ_AUTOGUN 0x19 +#define OBJ_CHAMBER1 0x1a +#define OBJ_CHAMBER2 0x1b +#define OBJ_CHAMBER3 0x1c +#define OBJ_CHAMBER4 0x1d +#define OBJ_CHAMBER5 0x1e +#define OBJ_CHAMBER6 0x1f +#define OBJ_CHAMBER7 0x20 +#define OBJ_CHAMBER8 0x21 +#define OBJ_CHAMBER1_SWITCH 0x22 +#define OBJ_CHAMBER2_SWITCH 0x23 +#define OBJ_CHAMBER3_SWITCH 0x24 +#define OBJ_CHAMBER4_SWITCH 0x25 +#define OBJ_CHAMBER5_SWITCH 0x26 +#define OBJ_CHAMBER6_SWITCH 0x27 +#define OBJ_CHAMBER7_SWITCH 0x28 +#define OBJ_CHAMBER8_SWITCH 0x29 +#define OBJ_DATAUPLINK_VELVET 0x3a +#define OBJ_LABCOAT2 0x3e +#define OBJ_LABCOAT3 0x3f +#define OBJ_LABCOAT4 0x40 +#define OBJ_LABCOAT5 0x41 +#define OBJ_FALCON2SILENCED1 0x4c +#define OBJ_FALCON2SILENCED2 0x4d +#define OBJ_PHOENIX 0x4e + +// Stage flags +#define STAGEFLAG_CHAMBER4_RAISED 0x00000001 +#define STAGEFLAG_CHAMBER5_RAISED 0x00000002 +#define STAGEFLAG_CHAMBER6_RAISED 0x00000004 +#define STAGEFLAG_CHAMBER7_RAISED 0x00000008 +#define STAGEFLAG_CHAMBER8_RAISED 0x00000010 +#define STAGEFLAG_LOOKING_AT_CHAMBER 0x00000020 +#define STAGEFLAG_ONE_KEYCARD_GUARD_REMAINING 0x00000040 +#define STAGEFLAG_UPLINK_TERMINAL_DESTROYED 0x00000080 +#define STAGEFLAG_USED_DISGUISE 0x00000100 +#define STAGEFLAG_RECORDS_DESTROYED 0x00000200 +#define STAGEFLAG_DOOR_VIRUS_DOWNLOADED 0x00000400 +#define STAGEFLAG_LIGHT_VIRUS_DONE 0x00000800 +#define STAGEFLAG_AUTOGUN_VIRUS_DONE 0x00001000 +#define STAGEFLAG_ENTERED_LAB 0x00002000 +#define STAGEFLAG_DISGUISE_UNCOVERED 0x00010000 +#define STAGEFLAG_LABTECH_DEAD 0x00020000 +#define STAGEFLAG_DOORMAN_REJECTED 0x00040000 +#define STAGEFLAG_DOORMAN_DEAD 0x00080000 +#define STAGEFLAG_KEYCARDGUY_ANGRY 0x00100000 +#define STAGEFLAG_ENTERED_ELVIS_AREA 0x00200000 +#define STAGEFLAG_RESCUED_ELVIS 0x00400000 +#define STAGEFLAG_ELVIS_DEAD 0x00800000 +#define STAGEFLAG_XRAY_DONE 0x01000000 +#define STAGEFLAG_CHAMBER_SWITCH_DESTROYED 0x02000000 +#define STAGEFLAG_CRATE_DESTROYED 0x08000000 +#define STAGEFLAG_AUTOGUN_ACTIVATED 0x10000000 +#define STAGEFLAG_CHAMBER1_RAISED 0x20000000 +#define STAGEFLAG_CHAMBER2_RAISED 0x40000000 +#define STAGEFLAG_CHAMBER3_RAISED 0x80000000 + +// Functions +#define FUNC_LABTECH_SA_PA 0x0410 +#define FUNC_LABTECH_AGENT 0x0411 +#define FUNC_INIT_LABTECH 0x0412 +#define FUNC_MECHANIC 0x0413 +#define FUNC_INIT_MECHANIC 0x0414 +#define FUNC_WAREHOUSE_SPAWNER 0x0415 +#define FUNC_BECOME_UNAWARE 0x0416 +#define FUNC_WAREHOUSE_CLONE 0x0417 +#define FUNC_DOORMAN 0x0418 +#define FUNC_INIT_DOORMAN 0x0419 +#define FUNC_LABTECH_HARRYSMATE 0x041a +#define FUNC_LABTECH_KEYCARDGUY 0x041b +#define FUNC_LABTECH_LIGHTS 0x041f +#define FUNC_LABTECH_DOORS 0x0420 +#define FUNC_INIT_LABTECH_DOORS 0x0421 +#define FUNC_LABTECH_RECORDS 0x0422 +#define FUNC_INIT_LABTECH_RECORDS 0x0423 +#define FUNC_ALIEN 0x0424 +#define FUNC_HIDDENGUY 0x0425 +#define FUNC_CHECK_LOOKING_AT_ALIEN 0x0426 +#define FUNC_SHOCK_CLONE 0x0427 +#define FUNC_OUTRO 0x0428 +#define FUNC_DRAGON_GUARD 0x042c +#define FUNC_SUPERDRAGON_GUARD 0x042d +#define FUNC_BIOTECH_GUARD 0x042e +#define FUNC_BIOTECH_GUARD_ALERTED 0x042f +#define FUNC_BIOTECH2 0x0430 +#define FUNC_BIOTECH1 0x0431 +#define FUNC_INIT_BIOTECH1 0x0432 +#define FUNC_INIT_BIOTECH2 0x0433 + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + briefing(0, 0x2a01) + briefing(1, 0x2a00) + briefing(2, 0x2a02) + briefing(3, 0x2a03) + + beginobjective(0, 0x2a0a, (DIFFBIT_PA | DIFFBIT_PD)) // "Destroy computer records" + complete_flags(STAGEFLAG_RECORDS_DESTROYED) + fail_flags(STAGEFLAG_UPLINK_TERMINAL_DESTROYED) + endobjective + + beginobjective(1, 0x2a0b, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Locate conspiracy evidence" + complete_flags(STAGEFLAG_XRAY_DONE) + fail_flags(STAGEFLAG_CHAMBER_SWITCH_DESTROYED) + endobjective + + beginobjective(2, 0x2a09, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Obtain and use lab technician disguise" + complete_flags(STAGEFLAG_USED_DISGUISE) + fail_flags(STAGEFLAG_DISGUISE_UNCOVERED) + endobjective + + beginobjective(3, 0x2a0c, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Gain access to autopsy lab" + complete_flags(STAGEFLAG_ENTERED_LAB) + require_object_collected(OBJ_KEYCARD) + fail_flags(STAGEFLAG_DOORMAN_REJECTED) + fail_flags(STAGEFLAG_DOORMAN_DEAD) + endobjective + + beginobjective(4, 0x2a0d, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Rescue the crash Survivor" + complete_flags(STAGEFLAG_RESCUED_ELVIS) + fail_flags(STAGEFLAG_ELVIS_DEAD) + fail_flags(STAGEFLAG_CRATE_DESTROYED) + endobjective + + chr(0x00000200, 0x00, 0x039f, BODY_A51AIRMAN, HEAD_RANDOM, 0x0401, -1, -1, 1000, 20, 0x8c008800, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x01, 0x03a2, BODY_A51AIRMAN, HEAD_RANDOM, 0x0402, -1, -1, 1000, 20, 0x8c008800, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x02, 0x03a3, BODY_A51AIRMAN, HEAD_RANDOM, 0x0403, -1, -1, 1000, 20, 0x8c008800, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x03, 0x03a4, BODY_A51AIRMAN, HEAD_RANDOM, 0x0404, -1, -1, 1000, 20, 0xac008800, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0003, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x04, 0x03a5, BODY_A51AIRMAN, HEAD_RANDOM, 0x0405, -1, -1, 1000, 20, 0xac008800, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0004, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x05, 0x0386, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_GUARD, -1, -1, 2000, 20, 0xac008800, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0005, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x06, 0x0387, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_GUARD, -1, -1, 2000, 20, 0xac008800, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0006, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x07, 0x03a7, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_GUARD, -1, -1, 1000, 20, 0xa000c800, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0007, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x08, 0x03a6, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_GUARD, -1, -1, 1000, 20, 0x80008a00, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0008, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x09, 0x03a8, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_GUARD, -1, -1, 1000, 20, 0xa000c800, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0a, 0x03cb, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_GUARD, -1, -1, 1000, 20, 0xa000c800, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x000a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0b, 0x03a9, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_GUARD, -1, -1, 1000, 100, 0xc008c800, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x000b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0c, 0x03aa, BODY_A51AIRMAN, HEAD_RANDOM, 0x0406, -1, -1, 1000, 100, 0xc008c800, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0d, 0x01bb, BODY_A51AIRMAN, HEAD_RANDOM, 0x0406, -1, -1, 1000, 100, 0xc008c800, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0e, 0x01bc, BODY_A51AIRMAN, HEAD_RANDOM, 0x0406, -1, -1, 1000, 100, 0xc008c800, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0f, 0x03ab, BODY_AREA51GUARD, HEAD_RANDOM, 0x0407, -1, -1, 1000, 100, 0xc008c000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x000f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x10, 0x03ac, BODY_AREA51GUARD, HEAD_RANDOM, 0x0408, -1, -1, 1000, 100, 0xc008c000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0010, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x11, 0x03ae, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0x8000c000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0011, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00010000, 0x3a, 0x03af, BODY_LABTECH, HEAD_RANDOM, FUNC_INIT_LABTECH_RECORDS, -1, -1, 1000, 100, 0x0000c000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000) + chr(0x00000200, 0x27, 0x03bf, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, -1, -1, 100, 100, 0xc008c000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0027, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x28, 0x03c0, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, -1, -1, 100, 100, 0xc008c000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0028, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x12, 0x03b1, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0x8000c000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0012, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00014000, 0x3b, 0x03d8, BODY_LABTECH, HEAD_RANDOM, FUNC_LABTECH_LIGHTS, -1, -1, 1000, 6, 0x0000c000, 0x00000000, 0x02, 0x06, 0x3b, 0, 0x00010000) + chr(0x00000200, 0x13, 0x03b2, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0x8008c000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0013, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00010000, 0x3c, 0x03c9, BODY_LABTECH, HEAD_RANDOM, FUNC_INIT_LABTECH_DOORS, 0x03c8, -1, 1000, 100, 0x8008c000, 0x00000000, 0x20, 0x07, -1, 0, 0x00000000) + chr(0x00010000, 0x42, 0x03b3, BODY_LABTECH, HEAD_RANDOM, FUNC_INIT_LABTECH_DOORS, 0x03c9, -1, 1000, 100, 0x8008c004, 0x00000000, 0x20, 0x07, -1, 0, 0x00000000) + chr(0x00000200, 0x14, 0x00f7, BODY_AREA51GUARD, HEAD_RANDOM, 0x0409, -1, -1, 1000, 100, 0x8000c000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x15, 0x00f0, BODY_AREA51GUARD, HEAD_RANDOM, 0x040a, -1, -1, 1000, 100, 0x8000c000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0015, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00010000, 0x3d, 0x03b4, BODY_LABTECH, HEAD_RANDOM, FUNC_INIT_LABTECH, -1, -1, 1000, 100, 0x00000000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000) + chr(0x00000200, 0x18, 0x00c7, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0xc000a000, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1e, 0x0130, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, 0x0132, -1, 1000, 100, 0x800a8204, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x001e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x19, 0x0131, BODY_BIOTECH, HEAD_BIOTECH, FUNC_BIOTECH_GUARD, 0x0136, -1, 1000, 100, 0x800a8204, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRUGGUN, 0x0019, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1a, 0x013b, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, 0x013c, -1, 1000, 100, 0x800a8204, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1d, 0x0137, BODY_BIOTECH, HEAD_BIOTECH, FUNC_BIOTECH_GUARD, 0x013a, -1, 1000, 100, 0x800a8204, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRUGGUN, 0x001d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1b, 0x0123, BODY_AREA51GUARD, HEAD_RANDOM, 0x040b, -1, -1, 1000, 100, 0x8000a000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x001b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1c, 0x0124, BODY_AREA51GUARD, HEAD_RANDOM, 0x040c, -1, -1, 1000, 100, 0x8000a000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x001c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x3e, 0x03c1, BODY_LABTECH, HEAD_RANDOM, FUNC_LABTECH_HARRYSMATE, -1, -1, 1000, 100, 0x00084000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000) + chr(0x00000000, 0x3f, 0x03c2, BODY_LABTECH, HEAD_RANDOM, FUNC_LABTECH_KEYCARDGUY, -1, -1, 1000, 15, 0x00084000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000) + chr(0x00000400, 0x39, 0x0121, BODY_AREA51GUARD, HEAD_BEAU1, FUNC_INIT_DOORMAN, -1, -1, 1000, 100, 0x8008c000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0039, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x33, 0x03cc, BODY_BIOTECH, HEAD_BIOTECH, GFUNC_IDLE, -1, -1, 1000, 100, 0x80002000, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRUGGUN, 0x0033, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x34, 0x03cd, BODY_BIOTECH, HEAD_BIOTECH, GFUNC_IDLE, -1, -1, 1000, 100, 0x80002000, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRUGGUN, 0x0034, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x37, 0x03d0, BODY_AREA51GUARD, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 100, 0x8c080000, 0x00004000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0037, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x2c, 0x03d1, BODY_AREA51GUARD, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 100, 0x8c080000, 0x00004000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x002c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x2d, 0x03d2, BODY_AREA51GUARD, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 100, 0x8c080000, 0x00004000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x002d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x2e, 0x03d3, BODY_AREA51GUARD, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 100, 0x8c080000, 0x00004000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x002e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x2f, 0x03d4, BODY_BIOTECH, HEAD_BIOTECH, GFUNC_IDLE, -1, -1, 1000, 100, 0xc008a000, 0x00000000, 0x02, 0x0f, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRUGGUN, 0x002f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x30, 0x03d5, BODY_AREA51GUARD, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 100, 0xc008a000, 0x00000000, 0x02, 0x0f, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0030, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x31, 0x03d6, BODY_AREA51GUARD, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 100, 0xc008a000, 0x00000000, 0x02, 0x0f, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0031, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x32, 0x03d7, BODY_AREA51GUARD, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 100, 0xc008a000, 0x00000000, 0x02, 0x0f, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0032, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1f, 0x03b5, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0x84008000, 0x00004000, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x001f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x20, 0x03b6, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0x84008000, 0x00004000, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0020, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x21, 0x03b7, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0x84008000, 0x00004000, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0021, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x22, 0x03b8, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0x84008000, 0x00004000, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0022, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x23, 0x03b9, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0xc008c000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0023, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x24, 0x03ba, BODY_BIOTECH, HEAD_BIOTECH, FUNC_BIOTECH_GUARD, -1, -1, 1000, 100, 0xc008c000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRUGGUN, 0x0024, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x25, 0x03bb, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0xc008c000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0025, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x26, 0x03bc, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0xc008c000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0026, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000400, 0x40, 0x03be, BODY_BIOTECH, HEAD_BIOTECH, FUNC_INIT_BIOTECH1, -1, -1, 1000, 100, 0x0000c000, 0x00000000, 0x80, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSONICSCREWER, 0x0040, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_52, 0x00ffffff, 0x00000000) + chr(0x00000400, 0x41, 0x03dc, BODY_BIOTECH, HEAD_BIOTECH, FUNC_INIT_BIOTECH2, -1, -1, 1000, 100, 0x0000c000, 0x00000000, 0x80, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSONICSCREWER, 0x0041, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_52, 0x00ffffff, 0x00000000) + chr(0x00010000, 0x43, 0x01de, BODY_OVERALL, HEAD_RANDOM, FUNC_INIT_MECHANIC, -1, -1, 1000, 5, 0x0000c000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + tag(0x2f, 1) + hover_prop(0x0100, MODEL_HOVERBED, 0x03bd, 0x05120101, 0x00304300, 0x00100003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + chr(0x00000000, 0x44, 0x0196, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_HIDDENGUY, -1, -1, 1000, 100, 0x8008c600, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0044, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x47, 0x0119, BODY_AREA51GUARD, HEAD_RANDOM, 0x0429, -1, -1, 1000, 100, 0x80002000, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0047, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000400, 0x48, 0x020a, BODY_A51AIRMAN, HEAD_JONATHAN, GFUNC_IDLE, -1, -1, 1000, 100, 0x40004600, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDY357, 0x0048, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357MAGNUM, 0x00ffffff, 0x00000000) + chr(0x00000400, 0x49, 0x0197, BODY_A51AIRMAN, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 100, 0x40004600, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + chr(0x00004400, 0x38, 0x0134, BODY_ELVIS1, HEAD_ELVIS, FUNC_ALIEN, -1, -1, 2000, 100, 0xc0002400, 0x00000100, 0x80, 0x09, 0x1a, 0, 0x00010000) + door_scale(0x00008000) + tag(0x35, 1) + lift(0x0100, MODEL_A51_LIFT_STORE, 0x0334, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0334, 0x0335, 0xffffffff, 0x00000001, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x20000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51LIFTDOOR, 0x02e2, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00000000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51LIFTDOOR, 0x02e1, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00000000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-2, -3, 0, 0) + link_objects(-2, -4, 0, 1) + tag(0x39, 1) + lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x0336, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0336, 0x0337, 0xffffffff, 0x00000001, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x20000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51LIFTDOOR, 0x02e4, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00080000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51LIFTDOOR, 0x02e3, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00080000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-2, -3, 0, 0) + link_objects(-2, -4, 0, 1) + door_scale(0x00010000) + tag(0x00, 1) + weapon(0x0180, MODEL_LABCOAT, 0x042b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DISGUISE40, 0x00ffffff, 0x00000000) + rename_object(-1, 0x40, 0x2a0f, 0x2a10, 0x2a11, 0x2a12, 0x2a13, 0x0000, 0x0000) // "Obtain lab clothes." + tag(0x3e, 1) + weapon(0x0180, MODEL_LABCOAT, 0x042c, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DISGUISE40, 0x00ffffff, 0x00000000) + rename_object(-1, 0x40, 0x2a0f, 0x2a10, 0x2a11, 0x2a12, 0x2a13, 0x0000, 0x0000) // "Obtain lab clothes." + tag(0x3f, 1) + weapon(0x0180, MODEL_LABCOAT, 0x042d, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DISGUISE40, 0x00ffffff, 0x00000000) + rename_object(-1, 0x40, 0x2a0f, 0x2a10, 0x2a11, 0x2a12, 0x2a13, 0x0000, 0x0000) // "Obtain lab clothes." + tag(0x40, 1) + weapon(0x0180, MODEL_LABCOAT, 0x042e, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DISGUISE40, 0x00ffffff, 0x00000000) + rename_object(-1, 0x40, 0x2a0f, 0x2a10, 0x2a11, 0x2a12, 0x2a13, 0x0000, 0x0000) // "Obtain lab clothes." + tag(0x41, 1) + weapon(0x0180, MODEL_LABCOAT, 0x042f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DISGUISE40, 0x00ffffff, 0x00000000) + rename_object(-1, 0x40, 0x2a0f, 0x2a10, 0x2a11, 0x2a12, 0x2a13, 0x0000, 0x0000) // "Obtain lab clothes." + tag(0x03, 1) + singlemonitor(0x0033, MODEL_SINISTERSTATION, 0x0428, 0x000005e1, 0x00000001, 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, 0xffffff03) + tag(0x02, 1) + singlemonitor(0x0033, MODEL_SINISTERSTATION, 0x0427, 0x000005e1, 0x00000001, 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, 0xffffff03) + tag(0x01, 1) + singlemonitor(0x0033, MODEL_SINISTERSTATION, 0x0429, 0x000005e1, 0x00000001, 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, 0xffffff03) + tag(0x04, 1) + singlemonitor(0x0033, MODEL_SINISTERSTATION, 0x0426, 0x000005e1, 0x00000001, 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, 0xffffff03) + tag(0x05, 1) + weapon(0x0180, MODEL_CHRDATATHIEF, 0x00da, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DATAUPLINK, 0x00ffffff, 0x00000000) + rename_object(-1, 0x36, 0x2a18, 0x2a19, 0x2a1a, 0x2a1b, 0x2a1c, 0x0000, 0x0000) // "Obtain Data Uplink." + tag(0x3a, 1) + weapon(0x0180, MODEL_CHRDATATHIEF, 0x00da, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DATAUPLINK, 0x00ffffff, 0x00000000) + rename_object(-1, 0x36, 0x2a18, 0x2a19, 0x2a1a, 0x2a1b, 0x2a1c, 0x0000, 0x0000) // "Obtain Data Uplink." + tag(0x3c, 2) + tag(0x3d, 2) + singlemonitor(0x0033, MODEL_SINISTERSTATION, 0x03c6, 0x000005e1, 0x00000001, 0x00000000, 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, 0xffffff03) + singlemonitor(0x0033, MODEL_SINISTERSTATION, 0x03c7, 0x000005e1, 0x00000001, 0x00000000, 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, 0xffffff03) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x027f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x027e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x027d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x027c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x027a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x027b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0278, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0279, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0277, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0276, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0274, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000002, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0275, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000002, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0273, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000002, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0272, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000002, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0270, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0271, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x026f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x026e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x026c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x026d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x026b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x026a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0268, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0269, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x44, 2) + tag(0x45, 2) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0266, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0267, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x2b, 4) + tag(0x2c, 4) + tag(0x2d, 4) + tag(0x2e, 4) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02aa, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000080, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02ab, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000080, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02ac, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000080, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02ad, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000080, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x07, 2) + tag(0x08, 2) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0280, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000040, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0281, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000040, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x09, 2) + tag(0x0a, 2) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02b7, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02b8, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x0b, 2) + tag(0x0c, 2) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02b9, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02ba, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x0d, 2) + tag(0x0e, 2) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02bb, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02bc, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0283, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0282, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0284, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0285, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x028b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x028a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_GL, 0x0286, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00020004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x01f407d0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0287, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_GL, 0x0289, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00020004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x01f407d0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0288, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02a4, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02a5, 0x10000400, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00001999, 0x00000004, 0x00000020, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02a6, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_SECRET, 0x028e, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0000d555, 0x0000d555, 0x00001999, 0x00000004, 0x00000001, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x0292, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x0293, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x0294, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x0295, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51GATE_L, 0x02b5, 0x10000010, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00008000, 0x00000000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000f00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51GATE_R, 0x02b6, 0x10000010, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00004000, 0x00000000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x0299, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x0298, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x4a, 2) + tag(0x4b, 2) + door(0x0100, MODEL_A51_HORIZ_DOOR_GL, 0x02a8, 0x10000000, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00020004, 0x00000040, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x01f407d0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02a7, 0x10000000, 0x30000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000040, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x029a, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x029b, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x029c, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x029d, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x13, 1) + door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x029e, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x029f, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x30, 3) + tag(0x31, 3) + tag(0x11, 1) + door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x02a1, 0x12000010, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x02a0, 0x12000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x028c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x028d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02ae, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x028f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x12, 1) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x0290, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000080, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x0291, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02a2, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000a666, 0x0000a666, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02a3, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000a666, 0x0000a666, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + stdobject(0x00e6, MODEL_LAB_CONTAINER, 0x031c, 0x000001e1, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x02e5, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x02e6, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE3, 0x02e7, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x02e8, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x02e9, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE3, 0x02ea, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x02eb, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x02ec, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE3, 0x02ed, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x02ee, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x02ef, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE3, 0x02f0, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x02f1, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x02f2, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE3, 0x02f3, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x02f4, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x02f5, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE3, 0x02f6, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x02f7, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + link_paths(0x00000002, 0x011101bb, 0x00000000) + link_scenery(1, 0, 2) + door(0x0100, MODEL_A51_UNEXP1, 0x0422, 0x13500d00, 0x20304300, 0x00000000, 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) + stdobject(0x0100, MODEL_A51_EXP1, 0x0421, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x18, -2) + tag(0x46, 6) + tag(0x47, 6) + tag(0x48, 8) + tag(0x49, 8) + tag(0x38, 1) + lift(0x0100, MODEL_A51_LIFT_CONTROL, 0x032a, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x032a, 0x032b, 0xffffffff, 0x00000001, 0x00000005, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x0330, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x0331, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-2, -3, 0, 0) + link_objects(-2, -4, 0, 0) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x0332, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x0333, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-2, -7, 0, 1) + link_objects(-2, -8, 0, 1) + tag(0x14, 2) + tag(0x15, 2) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02b3, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02b4, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x33, 2) + tag(0x34, 2) + door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x02af, 0x10000010, 0x30000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x02b0, 0x10000010, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0321, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0327, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02b2, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02b1, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x17, 1) + hover_prop(0x00eb, MODEL_HOVERCRATE1, 0x01c7, 0x35100101, 0x80102301, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x02010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x06, 1) + key(0x0080, MODEL_KEYCARD, 0x003f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000020) + rename_object(-1, 0x47, 0x2a20, 0x2a21, 0x2a22, 0x2a23, 0x2a24, 0x0000, 0x0000) // "Obtain medlab 2 key card." + + // @bug: This keycard is given to guard 0x26 rather than being left + // unassigned. This breaks the keycard hot potato which is supposed to + // happen in the last room, because the keycard is not given to anyone until + // there's one guard left, and you can just kill guard 0x26 for it. + tag(0x10, 1) + key(0x0080, MODEL_KEYCARD, 0x0026, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000080) + rename_object(-1, 0x48, 0x2a3b, 0x2a3c, 0x2a3d, 0x2a3e, 0x2a3f, 0x0000, 0x0000) // "Obtain op room key card." + + stdobject(0x0100, MODEL_A51BOARD, 0x03c4, 0x05120101, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02bd, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02be, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02bf, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c0, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02c1, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c2, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02c3, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c4, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + glass(0x0100, MODEL_MEDLABWIN1, 0x0436, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_MEDLABWIN2, 0x0437, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_MEDLABWIN2, 0x0438, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_MEDLABWIN1, 0x0439, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_MEDLABWIN2, 0x043a, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_MEDLABWIN2, 0x043b, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0446, 0x14020b62, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0096012c, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0445, 0x14020b62, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0096012c, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x043d, 0x00420262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x043e, 0x00420262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x043f, 0x00420262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0440, 0x00420262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0441, 0x00420262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0442, 0x00420262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tag(0x19, 1) + autogun(0x00c0, MODEL_A51_ROOFGUN, 0x0405, 0x00000004, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x01080000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000da, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x1a, 2) + tag(0x22, 2) + lift(0x0100, MODEL_CHAMBER, 0x033c, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x033c, 0x033d, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x045c, 0x10000002, 0x00000001, 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, 0xffffff12) + tag(0x1c, 2) + tag(0x24, 2) + lift(0x0100, MODEL_CHAMBER, 0x0340, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0340, 0x0341, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x0459, 0x10000002, 0x00000001, 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, 0xffffff12) + tag(0x1e, 2) + tag(0x26, 2) + lift(0x0100, MODEL_CHAMBER, 0x0344, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0344, 0x0345, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x045a, 0x10000002, 0x00000001, 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, 0xffffff12) + tag(0x20, 2) + tag(0x28, 2) + lift(0x0100, MODEL_CHAMBER, 0x0348, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0348, 0x0349, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x045b, 0x10000002, 0x00000001, 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, 0xffffff12) + tag(0x1b, 2) + tag(0x23, 2) + lift(0x0100, MODEL_CHAMBER, 0x033f, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x033f, 0x033e, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x045e, 0x10000002, 0x00000001, 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, 0xffffff12) + tag(0x1d, 2) + tag(0x25, 2) + lift(0x0100, MODEL_CHAMBER, 0x0343, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0343, 0x0342, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x045f, 0x10000002, 0x00000001, 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, 0xffffff12) + tag(0x1f, 2) + tag(0x27, 2) + lift(0x0100, MODEL_CHAMBER, 0x0347, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0347, 0x0346, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x0460, 0x10000002, 0x00000001, 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, 0xffffff12) + tag(0x21, 2) + tag(0x29, 2) + lift(0x0100, MODEL_CHAMBER, 0x034b, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x034b, 0x034a, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x045d, 0x10000002, 0x00000001, 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, 0xffffff12) + tag(0x32, 1) + stdobject(0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0461, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0462, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0463, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0464, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0465, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0466, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0467, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0468, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0469, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x046a, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x046b, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x046c, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x046d, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x046e, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x046f, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0470, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0471, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0472, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0473, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0474, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0476, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0477, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0479, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x047a, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x047b, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x047c, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x047d, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x047e, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x047f, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0480, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0481, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0482, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0483, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0484, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0485, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x3b, 1) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0486, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0487, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0488, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0489, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x0491, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x0492, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x0493, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x0494, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x0495, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x0496, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x0497, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x0498, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x0499, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x049a, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x049b, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x049c, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x049d, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x049e, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x049f, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x04a0, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x04a1, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x04a2, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x04a3, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04a4, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04a5, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04a6, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04a7, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04a8, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04a9, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04aa, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04ab, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04ac, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE3, 0x031a, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x031b, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x04b7, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x04b8, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x04b9, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x04ba, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x04bb, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x04bc, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x04bd, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x04be, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c7, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c8, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c9, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02ca, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02cb, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02cc, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02cd, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02ce, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02cf, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02d0, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02d1, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02d2, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02d3, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02d4, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02d5, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02d6, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02d7, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02d8, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02d9, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02da, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02db, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + stdobject(0x0100, MODEL_A51TABLE, 0x04d4, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51GRATE, 0x0443, 0x000215e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x4c, 2) + tag(0x4d, 2) + weapon(0x0100, MODEL_CHRFALCON2SIL, 0x03db, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SILENCER, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRFALCON2SIL, 0x03db, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SILENCER, 0x00ffffff, 0x00000000) + link_collectibles(-1, -2) + tag(0x4e, 1) + weapon(0x0100, MODEL_CHRMAIANPISTOL, 0x0389, 0x00420001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PHOENIX, 0x00ffffff, 0x00000000) + tag(0x42, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x0004, 0x00004001, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000) + tag(0x43, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x0474, 0x00000001, 0x000000c0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000) + endprops +}; + +u8 intro[] = { + spawn(0x03a1) + intro_weapon(WEAPON_FALCON2_SILENCER, -1) + ammo(AMMOTYPE_PISTOL, 100) + intro_weapon(WEAPON_XRAYSCANNER, -1) + outfit(OUTFIT_DEFAULT) + endintro +}; + +s32 path00[] = { + 0x0194, + 0x0193, + 0x0196, + 0x0195, + -1, +}; + +s32 path01[] = { + 0x019a, + 0x019c, + 0x018b, + 0x018a, + 0x018f, + 0x01a0, + 0x0190, + 0x019e, + 0x0199, + -1, +}; + +s32 path02[] = { + 0x0190, + 0x019e, + 0x0199, + 0x019a, + 0x019c, + 0x018b, + 0x018a, + 0x018f, + 0x01a0, + -1, +}; + +s32 path03[] = { + 0x018d, + 0x0189, + 0x0191, + 0x018f, + 0x018e, + -1, +}; + +s32 path04[] = { + 0x0185, + 0x0186, + 0x0187, + 0x0182, + 0x0188, + -1, +}; + +s32 path05[] = { + 0x01bd, + 0x01bc, + 0x01bb, + 0x01bc, + 0x01bd, + -1, +}; + +s32 path06[] = { + 0x0111, + 0x010f, + 0x011a, + 0x0118, + 0x011a, + 0x010f, + 0x0111, + -1, +}; + +s32 path07[] = { + 0x0112, + 0x0113, + 0x0100, + 0x0102, + 0x0104, + 0x0102, + 0x0100, + 0x0113, + -1, +}; + +s32 path08[] = { + 0x00f7, + 0x00fa, + 0x00fb, + 0x00fc, + 0x00fb, + 0x00fa, + 0x00f7, + 0x00f8, + 0x00f9, + 0x00fa, + -1, +}; + +s32 path09[] = { + 0x00f0, + 0x00f2, + 0x00f3, + 0x00f4, + 0x00f3, + 0x00f2, + 0x00f0, + 0x00ef, + 0x00f3, + 0x00f2, + -1, +}; + +s32 path10[] = { + 0x0123, + 0x0124, + -1, +}; + +s32 path11[] = { + 0x0124, + 0x0123, + -1, +}; + +s32 path12[] = { + 0x0118, + 0x0119, + 0x011a, + 0x010d, + 0x010e, + 0x010f, + 0x0110, + 0x0111, + 0x0112, + 0x0113, + 0x0114, + 0x0100, + 0x0114, + 0x0113, + 0x0112, + 0x0111, + 0x0110, + 0x010f, + 0x010e, + 0x010d, + 0x011a, + 0x0119, + -1, +}; + +s32 path13[] = { + 0x00ed, + 0x0100, + 0x00ed, + -1, +}; + +s32 path14[] = { + 0x0100, + 0x0118, + 0x0100, + 0x00ed, + -1, +}; + +u8 func1400_give_datauplinks[] = { + yield + set_chr_alliance(CHR_COUNTEROP, 0x22) + give_object_to_chr(OBJ_DATAUPLINK_JOANNA, CHR_JOANNA) + give_object_to_chr(OBJ_DATAUPLINK_VELVET, CHR_VELVET) + set_function(CHR_SELF, GFUNC_REBUILD_GROUPS) + endfunction +}; + +u8 func1007_check_disguise_collected[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_has_object(CHR_P1P2, OBJ_LABCOAT1, /*goto*/ 0x06) + if_chr_has_object(CHR_P1P2, OBJ_LABCOAT2, /*goto*/ 0x06) + if_chr_has_object(CHR_P1P2, OBJ_LABCOAT3, /*goto*/ 0x06) + if_chr_has_object(CHR_P1P2, OBJ_LABCOAT4, /*goto*/ 0x06) + if_chr_has_object(CHR_P1P2, OBJ_LABCOAT5, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + dprint 'D','I','S','G','U','I','S','E','D',' ','U','P','\n',0, + + beginloop(0x08) + if_chr_flag_bank2(CHR_P1P2, CHRFLAG2_DISGUISED, /*goto*/ 0x2d) + endloop(0x08) + + label(0x2d) + set_stage_flag(STAGEFLAG_USED_DISGUISE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1026_check_records_destroyed[] = { + beginloop(0x04) + if_object_in_good_condition(0x04, /*goto*/ 0x06) + message(CHR_JOANNA, 0x2a0e) // "Research records destroyed." + set_stage_flag(STAGEFLAG_RECORDS_DESTROYED) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x06) + endloop(0x04) + + endfunction +}; + +u8 func1003_uplink_doors[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, 0x02, /*goto*/ 0x2d) + reloop(0x04) + + label(0x2d) + if_stage_flag_eq(STAGEFLAG_DOOR_VIRUS_DOWNLOADED, FALSE, /*goto*/ 0x06) + play_sound(0x8116, -1) + message(CHR_P1P2, 0x2a30) // "Virus has already been downloaded." + reloop(0x04) + + label(0x06) + if_chr_weapon_equipped(CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ 0x2d) + play_sound(0x8116, -1) + message(CHR_P1P2, 0x2a14) // "Access to door control systems denied." + reloop(0x04) + + label(0x2d) + message(CHR_P1P2, 0x2a1e) // "Data Uplink connected." + restart_timer + + beginloop(0x08) + if_timer_gt(60, /*goto*/ 0x06) + if_chr_distance_to_pad_gt(CHR_P1P2, 300, 0x0427, /*goto*/ 0x09) + if_chr_weapon_equipped(CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ 0x2d) + goto_next(0x09) + + label(0x2d) + endloop(0x08) + + label(0x06) + message(CHR_P1P2, 0x2a31) // "Initiating virus download." + restart_timer + assign_sound(0x01bf, CHANNEL_5) + control_sound_from_object(CHANNEL_5, 0x02, TRUE) + + beginloop(0x11) + if_timer_gt(400, /*goto*/ 0x06) + if_chr_distance_to_pad_gt(CHR_P1P2, 300, 0x0427, /*goto*/ 0x09) + if_chr_weapon_equipped(CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ 0x2d) + goto_next(0x09) + + label(0x2d) + endloop(0x11) + + label(0x06) + mute_channel(CHANNEL_5) + if_object_in_good_condition(0x02, /*goto*/ 0x2d) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2d) + assign_sound(0x01c1, CHANNEL_5) + control_sound_from_object(CHANNEL_5, 0x02, TRUE) + message(CHR_P1P2, 0x2a17) // "Virus downloaded to console." + yield + set_stage_flag(STAGEFLAG_DOOR_VIRUS_DOWNLOADED) + reloop(0x04) + + label(0x09) + message(CHR_P1P2, 0x2a1f) // "Data Uplink connection broken." + mute_channel(CHANNEL_5) + assign_sound(0x01c0, CHANNEL_6) + control_sound_from_object(CHANNEL_6, 0x02, TRUE) + restart_timer + + beginloop(0x13) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x13) + + label(0x06) + mute_channel(CHANNEL_6) + endloop(0x04) + + endfunction +}; + +u8 func1004_uplink_lights[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, 0x01, /*goto*/ 0x2d) + reloop(0x04) + + label(0x2d) + if_stage_flag_eq(STAGEFLAG_LIGHT_VIRUS_DONE, FALSE, /*goto*/ 0x06) + play_sound(0x8116, -1) + message(CHR_P1P2, 0x2a30) // "Virus has already been downloaded." + reloop(0x04) + + label(0x06) + if_chr_weapon_equipped(CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ 0x2d) + play_sound(0x8116, -1) + message(CHR_P1P2, 0x2a15) // "Access to light control systems denied." + reloop(0x04) + + label(0x2d) + message(CHR_P1P2, 0x2a1e) // "Data Uplink connected." + restart_timer + + beginloop(0x08) + if_timer_gt(60, /*goto*/ 0x06) + if_chr_distance_to_pad_gt(CHR_P1P2, 300, 0x0429, /*goto*/ 0x09) + if_chr_weapon_equipped(CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ 0x2d) + goto_next(0x09) + + label(0x2d) + endloop(0x08) + + label(0x06) + message(CHR_P1P2, 0x2a31) // "Initiating virus download." + restart_timer + assign_sound(0x01bf, CHANNEL_5) + control_sound_from_object(CHANNEL_5, 0x01, TRUE) + + beginloop(0x11) + if_timer_gt(400, /*goto*/ 0x06) + if_chr_distance_to_pad_gt(CHR_P1P2, 300, 0x0429, /*goto*/ 0x09) + if_chr_weapon_equipped(CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ 0x2d) + goto_next(0x09) + + label(0x2d) + endloop(0x11) + + label(0x06) + mute_channel(CHANNEL_5) + if_object_in_good_condition(0x01, /*goto*/ 0x2d) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2d) + assign_sound(0x01c1, CHANNEL_5) + control_sound_from_object(CHANNEL_5, 0x01, TRUE) + message(CHR_P1P2, 0x2a17) // "Virus downloaded to console." + yield + message(CHR_P1P2, 0x2a58) // "Lighting systems overloaded." + set_lighting(0x00c4, 0x0c, 0x6e) + set_lighting(0x00c3, 0x0c, 0x6e) + set_lighting(0x00c8, 0x0c, 0x6e) + set_lighting(0x00c9, 0x0c, 0x6e) + set_lighting(0x00ca, 0x0c, 0x6e) + set_lighting(0x00c7, 0x0c, 0x6e) + set_lighting(0x00c2, 0x0c, 0x6e) + set_lighting(0x00c1, 0x0c, 0x6e) + set_lighting(0x00c0, 0x0c, 0x6e) + set_lighting(0x00bf, 0x0c, 0x6e) + set_lighting(0x00c6, 0x0c, 0x6e) + set_lighting(0x00c5, 0x0c, 0x6e) + set_lighting(0x00a6, 0x0c, 0x6e) + set_stage_flag(STAGEFLAG_LIGHT_VIRUS_DONE) + reloop(0x04) + + label(0x09) + message(CHR_P1P2, 0x2a1f) // "Data Uplink connection broken." + mute_channel(CHANNEL_5) + assign_sound(0x01c0, CHANNEL_6) + control_sound_from_object(CHANNEL_6, 0x01, TRUE) + restart_timer + + beginloop(0x13) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x13) + + label(0x06) + mute_channel(CHANNEL_6) + endloop(0x04) + + endfunction +}; + +u8 func1005_uplink_autoguns[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, 0x03, /*goto*/ 0x2d) + reloop(0x04) + + label(0x2d) + if_stage_flag_eq(STAGEFLAG_LIGHT_VIRUS_DONE, FALSE, /*goto*/ 0x06) + play_sound(0x8116, -1) + message(CHR_P1P2, 0x2a30) // "Virus has already been downloaded." + reloop(0x04) + + label(0x06) + if_chr_weapon_equipped(CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ 0x2d) + play_sound(0x8116, -1) + message(CHR_P1P2, 0x2a16) // "Access to security control systems denied." + reloop(0x04) + + label(0x2d) + message(CHR_P1P2, 0x2a1e) // "Data Uplink connected." + restart_timer + + beginloop(0x08) + if_timer_gt(60, /*goto*/ 0x06) + if_chr_distance_to_pad_gt(CHR_P1P2, 300, 0x0428, /*goto*/ 0x09) + if_chr_weapon_equipped(CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ 0x2d) + goto_next(0x09) + + label(0x2d) + endloop(0x08) + + label(0x06) + message(CHR_P1P2, 0x2a31) // "Initiating virus download." + restart_timer + assign_sound(0x01bf, CHANNEL_5) + control_sound_from_object(CHANNEL_5, 0x03, TRUE) + + beginloop(0x11) + if_timer_gt(400, /*goto*/ 0x06) + if_chr_distance_to_pad_gt(CHR_P1P2, 300, 0x0428, /*goto*/ 0x09) + if_chr_weapon_equipped(CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ 0x2d) + goto_next(0x09) + + label(0x2d) + endloop(0x11) + + label(0x06) + mute_channel(CHANNEL_5) + if_object_in_good_condition(0x03, /*goto*/ 0x2d) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2d) + assign_sound(0x01c1, CHANNEL_5) + control_sound_from_object(CHANNEL_5, 0x00, TRUE) + message(CHR_P1P2, 0x2a17) // "Virus downloaded to console." + yield + message(CHR_P1P2, 0x2a69) // "Automatic Defenses Disabled." + set_stage_flag(STAGEFLAG_AUTOGUN_VIRUS_DONE) + reloop(0x04) + + label(0x09) + message(CHR_P1P2, 0x2a1f) // "Data Uplink connection broken." + mute_channel(CHANNEL_5) + assign_sound(0x01c0, CHANNEL_6) + control_sound_from_object(CHANNEL_6, 0x03, TRUE) + restart_timer + + beginloop(0x13) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x13) + + label(0x06) + mute_channel(CHANNEL_6) + reloop(0x04) + + message(CHR_P1P2, 0x2a17) // "Virus downloaded to console." + set_stage_flag(STAGEFLAG_AUTOGUN_VIRUS_DONE) + endloop(0x04) + + endfunction +}; + +u8 func1006_check_lab_accessed[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x008f, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + message(CHR_P1P2, 0x2a1d) // "Laboratory accessed successfully." + set_stage_flag(STAGEFLAG_ENTERED_LAB) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +#define init_path(accuracy, health, recovery, pathid) \ + set_chr_dodge_rating(2, 0x0a) \ + set_accuracy(accuracy) \ + set_reaction_speed(35) \ + set_chr_health(CHR_SELF, health) \ + set_armor(0) \ + set_recovery_speed(recovery) \ + set_shield(0) \ + assign_path(pathid) \ + start_path \ + set_function(CHR_SELF, GFUNC_UNALERTED_0004) + + + +u8 func0401_start_path00[] = { + init_path(8, 50, 35, 0x00) + endfunction +}; + +u8 func0402_start_path01[] = { + init_path(8, 50, 35, 0x01) + endfunction +}; + +u8 func0403_start_path02[] = { + init_path(8, 50, 35, 0x02) + endfunction +}; + +u8 func0404_start_path03[] = { + init_path(8, 50, 35, 0x03) + endfunction +}; + +u8 func0405_start_path04[] = { + init_path(8, 50, 35, 0x04) + endfunction +}; + +u8 func0406_start_path05[] = { + init_path(8, 50, 35, 0x05) + endfunction +}; + +u8 func0407_start_path06[] = { + init_path(10, 80, 0, 0x06) + endfunction +}; + +u8 func0408_start_path07[] = { + init_path(10, 80, 0, 0x07) + endfunction +}; + +u8 func0409_start_path08[] = { + init_path(10, 80, 0, 0x08) + endfunction +}; + +u8 func040a_start_path09[] = { + init_path(10, 80, 0, 0x09) + endfunction +}; + +u8 func040b_start_path10[] = { + init_path(10, 80, 0, 0x0a) + endfunction +}; + +u8 func040c_start_path11[] = { + init_path(10, 80, 0, 0x0b) + endfunction +}; + +u8 func040d_start_path12[] = { + init_path(10, 80, 0, 0x0c) + endfunction +}; + +u8 func040e_start_path13[] = { + init_path(10, 80, 0, 0x0d) + endfunction +}; + +u8 func040f_start_path14[] = { + init_path(10, 80, 0, 0x0e) + endfunction +}; + +u8 func1001_objectives_failed_msg[] = { + yield + set_chr_flag_bank3(CHR_LABTECH_RECORDS, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_LABTECH_LIGHTS, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_LABTECH_DOORS1, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_LABTECH_SHOWERS, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_LABTECH_HARRYSMATE, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_LABTECH_KEYCARDGUY, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_BIOTECH1, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_BIOTECH2, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_LABTECH_DOORS2, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_MECHANIC, CHRFLAG3_04000000) + set_function(CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG) + endfunction +}; + +u8 func0411_labtech_showers_agent[] = { + beginloop(0x04) + if_object_in_good_condition(OBJ_WALL, /*goto*/ 0x2d) + goto_next(0x64) + + label(0x2d) + endloop(0x04) + + beginloop(0x64) + damage_chr(CHR_SELF, 18) + if_chr_dying(CHR_SELF, /*goto*/ 0x2d) + endloop(0x64) + + label(0x2d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0412_init_labtech_showers[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2d) + goto_next(0x06) + + // Agent + label(0x2d) + run_to_pad(0x03ab) + + beginloop(0x08) + if_chr_stopped(/*goto*/ 0x2e) + endloop(0x08) + + label(0x2e) + set_function(CHR_SELF, FUNC_LABTECH_AGENT) + + // SA and PA + label(0x06) + set_function(CHR_SELF, FUNC_LABTECH_SA_PA) + endfunction +}; + +u8 func0410_labtech_showers_sa_pa[] = { + set_onshot_function(FUNC_LABTECH_SA_PA) + 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) + + label(0x06) + set_onshot_function(GFUNC_IDLE) + set_stage_flag(STAGEFLAG_LABTECH_DEAD) + restart_timer + + beginloop(0x54) + if_timer_gt(15, /*goto*/ 0x06) + endloop(0x54) + + 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) + + label(0x2d) + if_just_injured(CHR_SELF, /*goto*/ 0x06) + goto_next(0x2d) + + // Injured + label(0x06) + restart_timer + + beginloop(0x55) + if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06) + if_num_times_shot_lt(1, /*goto*/ 0x06) + if_timer_lt(20, /*goto*/ 0x06) + say_quip(CHR_JOANNA, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00) + say_quip(CHR_JOANNA, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00) + set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0) + label(0x06) + if_chr_stopped(/*goto*/ 0x58) + endloop(0x55) + + // Not injured, or recovered + label(0x2d) + stop_chr + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x2d) + if_chr_distance_lt(500, /*goto*/ 0x03) + endloop(0x04) + + // Detected Jo + label(0x2d) + label(0x03) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x56) + restart_timer + label(0x08) + try_face_entity(0x0200, 0x0000, /*goto*/ 0x09) + + beginloop(0x09) + if_angle_to_target_chr_lt(10, /*goto*/ 0x06) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + dprint 'T','A','L','K',' ','1','\n',0, + speak(TARGET_CHR, 0x2a25, 0x1b2d, CHANNEL_4, COLOR_08_RED) // "Who are you?" + restart_timer + try_face_entity(0x0200, 0x0000, /*goto*/ 0x64) + + // Wait until seeing Jo with a gun, or Jo has clothes + beginloop(0x64) + if_timer_lt(120, /*goto*/ 0x2d) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_NONE, /*goto*/ 0x2d) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x2d) + if_chr_in_view(/*goto*/ 0x53) + label(0x2d) + if_chr_has_object(TARGET_CHR, OBJ_LABCOAT1, /*goto*/ 0x0d) + if_chr_has_object(TARGET_CHR, OBJ_LABCOAT2, /*goto*/ 0x0d) + if_chr_has_object(TARGET_CHR, OBJ_LABCOAT3, /*goto*/ 0x0d) + if_chr_has_object(TARGET_CHR, OBJ_LABCOAT4, /*goto*/ 0x0d) + if_chr_has_object(TARGET_CHR, OBJ_LABCOAT5, /*goto*/ 0x0d) + endloop(0x64) + + // Jo has clothes + label(0x0d) + speak(TARGET_CHR, 0x2a26, 0x1b2e, CHANNEL_4, COLOR_08_RED) // "Hey - you've got my clothes." + restart_timer + + beginloop(0x0e) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_NONE, /*goto*/ 0x2d) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x2d) + goto_next(0x53) + + label(0x2d) + if_timer_gt(180, /*goto*/ 0x06) + endloop(0x0e) + + label(0x06) + speak(TARGET_CHR, 0x2a2b, 0x1b32, CHANNEL_4, COLOR_08_RED) // "Give me back my clothes - or else!" + restart_timer + + beginloop(0x0f) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_NONE, /*goto*/ 0x2d) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x2d) + goto_next(0x53) + + label(0x2d) + if_timer_gt(200, /*goto*/ 0x56) + endloop(0x0f) + + label(0x56) + if_chr_in_room(CHR_P1P2, 0x00, 0x00aa, /*goto*/ 0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x00a9, /*goto*/ 0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x00b4, /*goto*/ 0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x00b5, /*goto*/ 0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x00b6, /*goto*/ 0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x00be, /*goto*/ 0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x00b7, /*goto*/ 0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x00b8, /*goto*/ 0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x00b3, /*goto*/ 0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x009b, /*goto*/ 0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x00ae, /*goto*/ 0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x00af, /*goto*/ 0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x00b0, /*goto*/ 0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x00b1, /*goto*/ 0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x00b2, /*goto*/ 0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x00bc, /*goto*/ 0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x00ab, /*goto*/ 0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x00bb, /*goto*/ 0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x00ba, /*goto*/ 0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x00b9, /*goto*/ 0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x00ac, /*goto*/ 0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x00ad, /*goto*/ 0x2d) + goto_next(0x58) + + // Jo is in one of many rooms + label(0x2d) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_NONE, /*goto*/ 0x2d) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x2d) + goto_next(0x53) + + // Jo is in one of many rooms with nothing equipped - attack her + label(0x2d) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x2d) + speak(TARGET_CHR, 0x2a2c, 0x1b33, CHANNEL_4, COLOR_08_RED) // "Right - you've asked for it!" + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + goto_next(0x06) + + label(0x2d) + call_rng + if_rand_gt(25, /*goto*/ 0x06) + speak(TARGET_CHR, 0x2a2d, 0x1b34, CHANNEL_4, COLOR_08_RED) // "Give me my clothes." + label(0x06) + try_run_to_target_chr(/*goto*/ 0x6f) + restart_timer + + beginloop(0x6f) + if_chr_distance_lt(400, /*goto*/ 0x2d) + if_timer_gt(600, /*goto*/ 0x06) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x6f) + + label(0x2d) + set_return_function(CHR_SELF, FUNC_LABTECH_SA_PA) + set_function(CHR_SELF, GFUNC_HAND_COMBAT) + + // Chasing Jo for over 10 seconds - do room check again + label(0x06) + goto_first(0x56) + + // Jo in an unknown room + label(0x58) + goto_next(0x06) + + // Tech saw weapon + label(0x53) + animation(ANIM_SURPRISED_0202, 0, -1, 0x1010, CHR_SELF, 2) + dprint 'T','A','L','K',' ','1','\n',0, + speak(TARGET_CHR, 0x2a29, 0x8156, CHANNEL_4, COLOR_08_RED) // "Oh, my God - a gun!" + restart_timer + + beginloop(0x0a) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x0a) + + // Jo in an unknown room, or follow through from seeing weapon + label(0x06) + restart_timer + speak(TARGET_CHR, 0x2a27, 0x1b2f, CHANNEL_4, COLOR_08_RED) // "Help - help!" + try_target_chr_in_same_group(/*goto*/ 0x06) + + // No chr in same group - run to pad instead + run_to_pad(0x0121) + + beginloop(0x10) + if_chr_stopped(/*goto*/ 0x61) + endloop(0x10) + + label(0x06) + try_run_to_chr(FOLLOW_CHR, /*goto*/ 0x0b) + + beginloop(0x0b) + if_detected_chr(FOLLOW_CHR, /*goto*/ 0x61) + endloop(0x0b) + + label(0x61) + speak(TARGET_CHR, 0x2a2a, 0x1b31, CHANNEL_4, COLOR_08_RED) // "There's an intruder in the complex." + set_stage_flag(STAGEFLAG_DISGUISE_UNCOVERED) + set_group_alertness(100) + stop_chr + + beginloop(0x0c) + endloop(0x0c) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1009_disguise_timer[] = { + beginloop(0x04) + // Pointless check + if_stage_flag_eq(STAGEFLAG_LABTECH_DEAD, TRUE, /*goto*/ 0x2d) + label(0x2d) + if_chr_has_object(CHR_JOANNA, OBJ_LABCOAT1, /*goto*/ 0x2d) + if_chr_has_object(CHR_JOANNA, OBJ_LABCOAT2, /*goto*/ 0x2d) + if_chr_has_object(CHR_JOANNA, OBJ_LABCOAT3, /*goto*/ 0x2d) + if_chr_has_object(CHR_JOANNA, OBJ_LABCOAT4, /*goto*/ 0x2d) + if_chr_has_object(CHR_JOANNA, OBJ_LABCOAT5, /*goto*/ 0x2d) + if_chr_has_object(CHR_VELVET, OBJ_LABCOAT1, /*goto*/ 0x2d) + if_chr_has_object(CHR_VELVET, OBJ_LABCOAT2, /*goto*/ 0x2d) + if_chr_has_object(CHR_VELVET, OBJ_LABCOAT3, /*goto*/ 0x2d) + if_chr_has_object(CHR_VELVET, OBJ_LABCOAT4, /*goto*/ 0x2d) + if_chr_has_object(CHR_VELVET, OBJ_LABCOAT5, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + restart_timer + + beginloop(0x09) + if_timer_gt(180, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + speak(CHR_JOANNA, 0x2a2e, 0x72ab, CHANNEL_4, COLOR_09_BLUE) // "I don't have much time!!!" + if_difficulty_lt(DIFF_SA, /*goto*/ 0x5d) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x5f) + set_countdown_timer(90) + goto_next(0x2d) + + label(0x5d) + set_countdown_timer(180) + goto_next(0x2d) + + label(0x5f) + set_countdown_timer(135) + label(0x2d) + show_countdown_timer + start_countdown_timer + + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_ENTERED_LAB, TRUE, /*goto*/ 0x2d) + if_countdown_timer_lt(1, /*goto*/ 0x06) + if_door_locked(0x4a, 0x40, /*goto*/ 0x2e) + goto_next(0x0d) + + label(0x2e) + endloop(0x08) + + // Door unlocked + label(0x0d) + + // Entered lab + label(0x2d) + stop_countdown_timer + hide_countdown_timer + set_function(CHR_SELF, GFUNC_IDLE) + + // Timer expired + label(0x06) + stop_countdown_timer + hide_countdown_timer + restart_timer + label(0x66) + activate_alarm + yield + label(0x2d) + message(CHR_JOANNA, 0x2a2f) // "The enemy has discovered the disguise." + set_stage_flag(STAGEFLAG_DISGUISE_UNCOVERED) + hide_countdown_timer + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100a_random_doors[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_DOOR_VIRUS_DOWNLOADED, TRUE, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + set_object_flag_bank0(0x07, OBJECTFLAG0_02000000) + set_object_flag_bank0(0x09, OBJECTFLAG0_02000000) + set_object_flag_bank0(0x0b, OBJECTFLAG0_02000000) + set_object_flag_bank0(0x0d, OBJECTFLAG0_02000000) + set_object_flag_bank0(0x08, OBJECTFLAG0_02000000) + set_object_flag_bank0(0x0a, OBJECTFLAG0_02000000) + set_object_flag_bank0(0x0c, OBJECTFLAG0_02000000) + set_object_flag_bank0(0x0e, OBJECTFLAG0_02000000) + + beginloop(0x03) + // 55 in 256 chance of doing anything on a given frame + call_rng + if_rand_gt(200, /*goto*/ 0x06) + reloop(0x03) + + label(0x06) + call_rng + if_rand_lt(64, /*goto*/ 0x0a) + if_rand_lt(128, /*goto*/ 0x0c) + if_rand_lt(196, /*goto*/ 0x0e) + + // 25% chance //1 + label(0x08) + if_door_state(0x07, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x09) + open_door(0x07) + open_door(0x08) + reloop(0x03) + + label(0x09) + close_door(0x07) + close_door(0x08) + reloop(0x03) + + // 25% chance //2 + label(0x0a) + if_door_state(0x09, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x0b) + open_door(0x09) + open_door(0x0a) + reloop(0x03) + + label(0x0b) + close_door(0x09) + close_door(0x0a) + reloop(0x03) + + // 25% chance //3 + label(0x0c) + if_door_state(0x0b, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x0d) + open_door(0x0b) + open_door(0x0c) + reloop(0x03) + + label(0x0d) + close_door(0x0b) + close_door(0x0c) + reloop(0x03) + + // 25% chance //4 + label(0x0e) + if_door_state(0x0d, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x0f) + open_door(0x0d) + open_door(0x0e) + reloop(0x03) + + label(0x0f) + close_door(0x0d) + close_door(0x0e) + endloop(0x03) + + endfunction +}; + +u8 func0419_init_doorman[] = { + set_accuracy(10) + set_reaction_speed(35) + set_chr_health(CHR_SELF, 1) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, FUNC_DOORMAN) + endfunction +}; + +u8 func0418_doorman[] = { + set_onshot_function(GFUNC_ALERTED) + 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) + + label(0x06) + set_onshot_function(GFUNC_IDLE) + restart_timer + + beginloop(0x54) + if_timer_gt(15, /*goto*/ 0x06) + endloop(0x54) + + 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) + if_has_gun(CHR_SELF, /*goto*/ 0x2d) + + // Gun shot out of hand + label(0x06) + set_group_alertness(100) + set_target_chr(CHR_JOANNA) + set_function(CHR_SELF, GFUNC_ALERTED) + + // Waiting for Jo to arrive + label(0x2d) + stop_chr + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x03) + if_chr_distance_lt(500, /*goto*/ 0x03) + endloop(0x04) + + label(0x03) + restart_timer + label(0x08) + try_face_entity(0x0200, 0x0000, /*goto*/ 0x09) + + beginloop(0x09) + if_angle_to_target_chr_lt(10, /*goto*/ 0x06) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + speak(TARGET_CHR, 0x2a32, 0x8157, CHANNEL_4, COLOR_08_RED) // "So, you got here at last." + + beginloop(0x0a) + if_timer_gt(240, /*goto*/ 0x06) + endloop(0x0a) + + label(0x06) + if_stage_flag_eq(STAGEFLAG_DISGUISE_UNCOVERED, TRUE, /*goto*/ 0x2d) + if_stage_flag_eq(STAGEFLAG_USED_DISGUISE, TRUE, /*goto*/ 0x06) + + // Disguise not used, or uncovered + label(0x2d) + dprint 'T','A','L','K',' ','1','\n',0, + speak(TARGET_CHR, 0x2a33, 0x8158, CHANNEL_4, COLOR_08_RED) // "Hey, you're not... SECURITY ALERT!" + restart_timer + stop_chr + + beginloop(0x0b) + if_timer_lt(120, /*goto*/ 0x2d) + endloop(0x0b) + + label(0x2d) + set_stage_flag(STAGEFLAG_DOORMAN_REJECTED) + message(TARGET_CHR, 0x2a39) // "Cannot gain access to autopsy lab." + goto_next(0x64) + + // Disguised + label(0x06) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_NONE, /*goto*/ 0x59) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x59) + + // Jo has gun equipped + label(0x2d) + speak(TARGET_CHR, 0x2a34, 0x8159, CHANNEL_4, COLOR_08_RED) // "No guns allowed in here - put your weapon away." + restart_timer + + beginloop(0x0c) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_NONE, /*goto*/ 0x59) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x59) + if_timer_gt(300, /*goto*/ 0x06) + endloop(0x0c) + + label(0x06) + speak(TARGET_CHR, 0x2a35, 0x815a, CHANNEL_4, COLOR_08_RED) // "I won't tell you again - lose the weapon." + restart_timer + + beginloop(0x0d) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_NONE, /*goto*/ 0x59) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x59) + if_timer_gt(600, /*goto*/ 0x06) + endloop(0x0d) + + label(0x1b) + label(0x06) + speak(TARGET_CHR, 0x2a36, 0x815b, CHANNEL_4, COLOR_08_RED) // "Right - I'm calling security." + restart_timer + label(0x10) + set_stage_flag(STAGEFLAG_DOORMAN_REJECTED) + message(TARGET_CHR, 0x2a39) // "Cannot gain access to autopsy lab." + goto_next(0x64) + + // Jo disguised and unarmed + label(0x59) + speak(TARGET_CHR, 0x2a37, 0x815c, CHANNEL_4, COLOR_08_RED) // "Everyone's been waiting for you..." + restart_timer + + beginloop(0x0e) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x0e) + + label(0x06) + if_alarm_active(/*goto*/ 0x2d) + goto_next(0x06) + + label(0x2d) + goto_first(0x1b) + + // Unlocking + label(0x06) + unset_object_flag_bank1(0x4a, OBJECTFLAG1_20000000) + unset_object_flag_bank1(0x4b, OBJECTFLAG1_20000000) + unlock_door(0x4a, 0x40) + unlock_door(0x4b, 0x40) + open_door(0x4a) + open_door(0x4b) + + beginloop(0x0f) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x06) + if_shot_near_chr(0x00, /*goto*/ 0x06) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_NONE, /*goto*/ 0x2d) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x2d) + goto_next(0x06) + + label(0x2d) + if_door_state(0x4a, (DOORSTATE_CLOSED | DOORSTATE_CLOSING), /*goto*/ 0x2d) + reloop(0x0f) + + label(0x2d) + open_door(0x4a) + open_door(0x4b) + endloop(0x0f) + + label(0x06) + set_group_alertness(100) + set_target_chr(CHR_JOANNA) + set_function(CHR_SELF, GFUNC_ALERTED) + + label(0x64) + yield + goto_first(0x64) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100b_check_doorman_dead[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_dying(CHR_DOORMAN, /*goto*/ 0x2d) + if_chr_death_animation_finished(CHR_DOORMAN, /*goto*/ 0x2d) + if_chr_unloaded(CHR_DOORMAN, /*goto*/ 0x2d) + reloop(0x04) + + label(0x2d) + if_chr_has_object(CHR_JOANNA, 0x06, /*goto*/ 0x0d) + if_chr_has_object(CHR_VELVET, 0x06, /*goto*/ 0x0d) + if_door_locked(0x4a, 0x40, /*goto*/ 0x2d) + goto_next(0x0d) + + label(0x2d) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0083, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0084, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0085, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0086, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0087, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0088, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0089, /*goto*/ 0x06) + if_chr_in_room(CHR_JOANNA, 0x00, 0x008a, /*goto*/ 0x06) + message(CHR_P1P2, 0x2a38) // "Critical mission personnel killed." + restart_timer + + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x2d) + endloop(0x08) + + label(0x2d) + message(CHR_P1P2, 0x2a39) // "Cannot gain access to autopsy lab." + restart_timer + set_stage_flag(STAGEFLAG_DOORMAN_DEAD) + + beginloop(0x09) + if_timer_gt(120, /*goto*/ 0x2d) + endloop(0x09) + + label(0x2d) + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x06) + endloop(0x04) + + endfunction +}; + +/** + * The lab guy who stands in the room behind the doorman. + */ +u8 func041a_labtech_harrysmate[] = { + set_onshot_function(FUNC_LABTECH_HARRYSMATE) + 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) + + label(0x06) + set_onshot_function(GFUNC_IDLE) + restart_timer + + beginloop(0x54) + if_timer_gt(15, /*goto*/ 0x06) + endloop(0x54) + + 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) + + label(0x2d) + if_just_injured(CHR_SELF, /*goto*/ 0x06) + goto_next(0x2d) + + label(0x06) + restart_timer + + beginloop(0x55) + if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06) + if_num_times_shot_lt(1, /*goto*/ 0x06) + if_timer_lt(20, /*goto*/ 0x06) + say_quip(CHR_JOANNA, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00) + say_quip(CHR_JOANNA, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00) + set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0) + label(0x06) + if_chr_stopped(/*goto*/ 0x58) + endloop(0x55) + + label(0x58) + goto_next(0x5a) + + label(0x2d) + stop_chr + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_in_room(CHR_P1P2, 0x00, 0x0083, /*goto*/ 0x08) + endloop(0x04) + + beginloop(0x08) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x2d) + if_target_chr_in_sight(/*goto*/ 0x2d) + if_chr_distance_lt(500, /*goto*/ 0x2d) + endloop(0x08) + + label(0x2d) + restart_timer + label(0x08) + try_face_entity(0x0200, 0x0000, /*goto*/ 0x09) + + beginloop(0x09) + if_angle_to_target_chr_lt(10, /*goto*/ 0x06) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + speak(TARGET_CHR, 0x2a3a, 0x1abb, CHANNEL_4, COLOR_08_RED) // "Hey, that's not Harry. It's an intruder." + set_group_alertness(120) + restart_timer + animation(0x002e, 0, -1, 0x1810, CHR_SELF, 2) + + beginloop(0x0a) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x0a) + + label(0x06) + run_to_pad(0x011e) + + beginloop(0x0b) + if_chr_stopped(/*goto*/ 0x5a) + endloop(0x0b) + + label(0x5a) + animation(ANIM_DRAW_PISTOL_0288, 0, -1, 0x0010, CHR_SELF, 2) + + beginloop(0x0c) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x0c) + + label(0x06) + dprint 'C','R','E','A','T','E','D',' ','W','E','A','P','\n',0, + try_draw_weapon(MODEL_CHRDRUGGUN, WEAPON_TRANQUILIZER, 0x10000000, /*goto*/ 0x06) + label(0x06) + set_target_chr(CHR_JOANNA) + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +u8 func041b_labtech_keycardguy[] = { + set_onshot_function(FUNC_LABTECH_KEYCARDGUY) + 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(0x54) + if_timer_gt(15, /*goto*/ 0x06) + endloop(0x54) + + 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) + restart_timer + + beginloop(0x55) + if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06) + if_num_times_shot_lt(1, /*goto*/ 0x06) + if_timer_lt(20, /*goto*/ 0x06) + say_quip(CHR_JOANNA, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00) + say_quip(CHR_JOANNA, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00) + set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0) + label(0x06) + if_chr_stopped(/*goto*/ 0x58) + endloop(0x55) + + label(0x58) + goto_next(0x5a) + + // Not injured, or recovered + // Waiting to detect Jo + beginloop(0x08) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x2d) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x2d) + endloop(0x08) + + // Detected + label(0x2d) + jog_to_pad(0x011b) + + beginloop(0x08) + if_chr_distance_to_pad_lt(CHR_SELF, 100, 0x011b, /*goto*/ 0x2d) + endloop(0x08) + + label(0x2d) + restart_timer + animation(ANIM_SURRENDER_002E, 0, 190, 0x1010, CHR_SELF, 2) + + beginloop(0x09) + if_timer_gt(60, /*goto*/ 0x06) + reloop(0x09) + + label(0x06) + set_stage_flag(STAGEFLAG_KEYCARDGUY_ANGRY) + if_chr_stopped(/*goto*/ 0x5a) + endloop(0x09) + + label(0x5a) + animation(ANIM_DRAW_PISTOL_0288, 0, -1, 0x0010, CHR_SELF, 2) + + beginloop(0x0a) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x0a) + + label(0x06) + dprint 'C','R','E','A','T','E','D',' ','W','E','A','P','\n',0, + try_draw_weapon(MODEL_CHRDRUGGUN, WEAPON_TRANQUILIZER, 0x10000000, /*goto*/ 0x06) + label(0x06) + set_target_chr(CHR_JOANNA) + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +u8 func100c_keycardguy_lights[] = { + set_lights_state(0x0088, 0x01, 0x00, 0x00, 0x00) + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_KEYCARDGUY_ANGRY, TRUE, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + set_lights_state(0x0088, 0x01, 0x64, 0x00, 0x00) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100d_check_entered_lab[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0083, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0084, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0085, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0086, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0087, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0088, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0089, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x008a, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + set_stage_flag(STAGEFLAG_ENTERED_LAB) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100e_elvis_timer[] = { + beginloop(0x04) + if_door_state(0x13, (DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING), /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + set_stage_flag(STAGEFLAG_ENTERED_ELVIS_AREA) + play_x_music(CHANNEL_10, 60) + set_countdown_timer(60) + show_countdown_timer + start_countdown_timer + + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_RESCUED_ELVIS, TRUE, /*goto*/ 0x2d) + if_countdown_timer_lt(1, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + stop_countdown_timer + hide_countdown_timer + set_stage_flag(STAGEFLAG_ELVIS_DEAD) + message(CHR_JOANNA, 0x2a40) // "Elvis has been killed." + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2d) + stop_countdown_timer + hide_countdown_timer + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100f_check_end_level[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_distance_to_pad_lt(CHR_P1P2, 300, 0x02a1, /*goto*/ 0x06) + reloop(0x04) + + label(0x06) + set_stage_flag(STAGEFLAG_RESCUED_ELVIS) + yield + yield + if_all_objectives_complete(/*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + set_invincible(CHR_JOANNA) + revoke_control(CHR_JOANNA, 4) + hide_countdown_timer + stop_countdown_timer + restart_timer + + beginloop(0x5c) + 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_function(CHR_SELF, FUNC_OUTRO) + if_timer_gt(280, /*goto*/ 0x5b) + endloop(0x5c) + + label(0x5b) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1010_give_keycard[] = { + set_chr_flag_bank3(0x23, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x24, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x25, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x26, CHRFLAG3_KILLCOUNTABLE) + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_ONE_KEYCARD_GUARD_REMAINING, TRUE, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + label(0x2d) + if_chr_dying(0x23, /*goto*/ 0x06) + if_chr_death_animation_finished(0x23, /*goto*/ 0x06) + if_chr_unloaded(0x23, /*goto*/ 0x06) + give_object_to_chr(0x10, 0x23) + dprint 'G','I','V','E',' ','T','O','4',0, + goto_next(0x2d) + + label(0x06) + if_chr_dying(0x24, /*goto*/ 0x06) + if_chr_death_animation_finished(0x24, /*goto*/ 0x06) + if_chr_unloaded(0x24, /*goto*/ 0x06) + give_object_to_chr(0x10, 0x24) + dprint 'G','I','V','E',' ','T','O','5',0, + goto_next(0x2d) + + label(0x06) + if_chr_dying(0x25, /*goto*/ 0x06) + if_chr_death_animation_finished(0x25, /*goto*/ 0x06) + if_chr_unloaded(0x25, /*goto*/ 0x06) + give_object_to_chr(0x10, 0x25) + dprint 'G','I','V','E',' ','T','O','6',0, + goto_next(0x2d) + + label(0x06) + if_chr_death_animation_finished(0x26, /*goto*/ 0x2d) + if_chr_dying(0x26, /*goto*/ 0x2d) + if_chr_unloaded(0x26, /*goto*/ 0x2d) + dprint 'G','I','V','E',' ','T','O','7',0, + + label(0x2d) + unset_object_flag_bank1(0x10, OBJECTFLAG1_INVISIBLE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0414_init_mechanic[] = { + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, FUNC_MECHANIC) + endfunction +}; + +u8 func0413_mechanic[] = { + set_onshot_function(FUNC_MECHANIC) + 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) + + label(0x06) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + restart_timer + + beginloop(0x54) + if_timer_gt(15, /*goto*/ 0x06) + endloop(0x54) + + 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) + + label(0x2d) + if_just_injured(CHR_SELF, /*goto*/ 0x06) + goto_next(0x2d) + + // Injured + label(0x06) + restart_timer + + beginloop(0x55) + if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06) + if_num_times_shot_lt(1, /*goto*/ 0x06) + if_timer_lt(20, /*goto*/ 0x06) + say_quip(CHR_JOANNA, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00) + say_quip(CHR_JOANNA, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00) + set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0) + label(0x06) + if_chr_stopped(/*goto*/ 0x58) + endloop(0x55) + + // Main logic + label(0x2d) + stop_chr + + // Wait for player to attempt to open door + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0x0a) + if_chr_activated_object(CHR_P1P2, 0x14, /*goto*/ 0x2d) + if_chr_activated_object(CHR_P1P2, 0x15, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + restart_timer + + beginloop(0x0d) + if_timer_gt(180, /*goto*/ 0x06) + endloop(0x0d) + + label(0x06) + unlock_door(0x14, 0x10) + unlock_door(0x15, 0x10) + open_door(0x14) + open_door(0x15) + + beginloop(0x0a) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0x06) + endloop(0x0a) + + label(0x06) + restart_timer + + label(0x08) + try_face_entity(0x0200, 0x0000, /*goto*/ 0x09) + + beginloop(0x09) + if_angle_to_target_chr_lt(10, /*goto*/ 0x06) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + dprint 'T','A','L','K',' ','1','\n',0, + speak(CHR_JOANNA, 0x2a41, 0x80fb, CHANNEL_4, COLOR_08_RED) // "Get the hell out of here!" + restart_timer + animation(ANIM_SURRENDER_002E, 0, -1, 0x1810, CHR_SELF, 2) + + beginloop(0x64) + if_timer_gt(120, /*goto*/ 0x2d) + endloop(0x64) + + label(0x58) + label(0x2d) + run_to_pad(0x01ba) + + beginloop(0x0e) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x0e) + + label(0x06) + label(0x0f) + animation(ANIM_COWER_0229, -1, -1, 0x100a, CHR_SELF, 2) + + beginloop(0x8a) + if_chr_stopped(/*goto*/ 0x2d) + endloop(0x8a) + + label(0x2d) + goto_first(0x0f) + + endfunction +}; + +u8 func1011_unhide_warehouse_spawner[] = { + // Wait until player near second elevator + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x00f8, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x00f7, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x00f6, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x00f4, /*goto*/ 0x06) + endloop(0x04) + + // Unhide a guy at the top of the ramp near the start + label(0x06) + unset_chr_flag_bank3(0x44, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x44, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x44, FUNC_WAREHOUSE_SPAWNER) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0415_warehouse_spawner[] = { + set_self_flag_bank3(CHRFLAG3_00000002) + restart_timer + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0x08) + if_chr_in_room(TARGET_CHR, 0x00, 0x00f8, /*goto*/ 0x08) + if_chr_in_room(TARGET_CHR, 0x00, 0x00f7, /*goto*/ 0x08) + if_chr_in_room(TARGET_CHR, 0x00, 0x00f6, /*goto*/ 0x08) + if_chr_in_room(TARGET_CHR, 0x00, 0x00f4, /*goto*/ 0x08) + reloop(0x04) + + label(0x08) + dprint 'H','E','A','R','S','P','A','W','N','\n',0, + + label(0x2d) + if_never_been_onscreen(/*goto*/ 0x4e) + dprint 'N','E','V','E','R',' ','V','I','S','F','A','I','L','\n',0, + if_chr_sees_player(/*goto*/ 0x08) + reloop(0x04) + + label(0x08) + set_target_chr(CHR_JOANNA) + set_function(CHR_SELF, GFUNC_ALERTED) + + label(0x4e) + dprint 'C','H','E','C','K',' ','D','U','P','E','\n',0, + if_chr_death_animation_finished(CHR_CLONE, /*goto*/ 0x4e) + reloop(0x04) + + label(0x4e) + dprint 'C','R','E','A','T','E',' ','S','P','A','W','N','\n',0, + try_spawn_clone2(CHR_SELF, FUNC_WAREHOUSE_CLONE, 0x00000000, /*goto*/ 0x2d) + dprint 'C','R','E','A','T','E',' ','F','A','I','L','\n',0, + reloop(0x04) + + label(0x2d) + restart_timer + yield + endloop(0x04) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0417_warehouse_clone[] = { + set_target_chr(CHR_JOANNA) + set_alertness(100) + try_run_to_target_chr(/*goto*/ 0x2d) + label(0x2d) + set_return_function(CHR_SELF, GFUNC_UNALERTED) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func1013_check_chamber_switch_destroyed[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x0d) + + beginloop(0x04) + if_object_in_good_condition(OBJ_CHAMBER1_SWITCH, /*goto*/ 0x06) + if_stage_flag_eq(STAGEFLAG_CHAMBER1_RAISED, TRUE, /*goto*/ 0x2d) + message(CHR_JOANNA, 0x2a44) // "Mission critical equipment destroyed." + set_stage_flag(STAGEFLAG_CHAMBER_SWITCH_DESTROYED) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2d) + reloop(0x04) + + label(0x06) + endloop(0x04) + + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1014_check_crate_destroyed[] = { + // The unsetting of the wall's IMMUNE_TO_EXPLOSIVES flag suggests that the + // wall was originally intended to only be blown up via the crate. This must + // have been changed at some point, but the unsetting of the flag remains. + beginloop(0x04) + if_object_in_good_condition(OBJ_CRATE, /*goto*/ 0x06) + unset_object_flag_bank0(OBJ_WALL, OBJECTFLAG0_INVINCIBLE) + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + if_object_in_good_condition(OBJ_WALL, /*goto*/ 0x2d) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2d) + message(CHR_JOANNA, 0x2a44) // "Mission critical equipment destroyed." + set_stage_flag(STAGEFLAG_CRATE_DESTROYED) + + beginloop(0x08) + if_object_in_good_condition(OBJ_WALL, /*goto*/ 0x2d) + goto_next(0x2e) + + label(0x2d) + endloop(0x08) + + label(0x2e) + unset_stage_flag(STAGEFLAG_CRATE_DESTROYED) + message(CHR_JOANNA, 0x2a59) // "Alternative entrance to medlabs created." + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x06) + endloop(0x04) + + endfunction +}; + +/** + * @unused + */ +u8 func041c_unused_041c[] = { + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * @unused + */ +u8 func041d_unused_041d[] = { + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * @unused + */ +u8 func041e_unused_041e[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(10) + set_reaction_speed(35) + set_chr_health(CHR_SELF, 80) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_HIDDEN) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1016_check_undisguised[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_stage_flag_eq(STAGEFLAG_DISGUISE_UNCOVERED, TRUE, /*goto*/ 0x06) + if_chr_dying(CHR_LABTECH_HARRYSMATE, /*goto*/ 0x06) + if_chr_dying(CHR_LABTECH_KEYCARDGUY, /*goto*/ 0x06) + if_chr_dying(CHR_DOORMAN, /*goto*/ 0x06) + if_chr_has_object(CHR_P1P2, OBJ_KEYCARD, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + unset_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_DISGUISED) + unset_chr_flag_bank2(CHR_VELVET, CHRFLAG2_DISGUISED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func041f_labtech_lights[] = { + set_onshot_function(FUNC_LABTECH_LIGHTS) + 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) + + label(0x06) + restart_timer + + beginloop(0x54) + if_timer_gt(15, /*goto*/ 0x06) + endloop(0x54) + + 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) + + label(0x2d) + if_just_injured(CHR_SELF, /*goto*/ 0x06) + goto_next(0x5e) + + label(0x06) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + restart_timer + + beginloop(0x55) + if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06) + if_num_times_shot_lt(1, /*goto*/ 0x06) + if_timer_lt(20, /*goto*/ 0x06) + say_quip(CHR_JOANNA, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00) + say_quip(CHR_JOANNA, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00) + set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0) + label(0x06) + if_chr_stopped(/*goto*/ 0x5e) + endloop(0x55) + + label(0x5e) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x53) + call_rng + if_rand_lt(86, /*goto*/ 0x69) + if_rand_lt(172, /*goto*/ 0x6a) + animation(ANIM_SITTING_DORMANT, -1, -1, 0x1401, CHR_SELF, 2) + goto_next(0x04) + + label(0x69) + animation(ANIM_SITTING_DORMANT, -1, -1, 0x1401, CHR_SELF, 2) + goto_next(0x04) + + label(0x6a) + animation(ANIM_SITTING_DORMANT, -1, -1, 0x1401, CHR_SELF, 2) + goto_next(0x04) + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x53) + if_target_chr_in_sight(/*goto*/ 0x03) + if_chr_idle(/*goto*/ 0x06) + goto_first(0x5e) + + label(0x06) + endloop(0x04) + + // Jo in sight + label(0x03) + object_do_animation(0x025a, 0xff, 0x02ff, 0xff) + dprint 'T','A','L','K',' ','0','\n',0, + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x53) + restart_timer + label(0x08) + try_face_entity(0x0200, 0x0000, /*goto*/ 0x09) + + beginloop(0x09) + if_angle_to_target_chr_lt(10, /*goto*/ 0x06) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + dprint 'T','A','L','K',' ','1','\n',0, + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_DISGUISE_UNCOVERED, /*goto*/ 0x06) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x2d) + label(0x06) + object_do_animation(0x025a, 0xff, 0x02ff, 0xff) + speak(TARGET_CHR, 0x2a25, 0x8103, CHANNEL_4, COLOR_08_RED) // "Who are you?" + goto_next(0x06) + + label(0x2d) + speak(TARGET_CHR, 0x2a53, 0x127f, CHANNEL_4, COLOR_08_RED) // "Should you be in here?" + restart_timer + do_special_animation(-1) + + beginloop(0x64) + if_sound_finished(CHANNEL_4, /*goto*/ 0x06) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_NONE, /*goto*/ 0x2d) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x2d) + label(0x2d) + endloop(0x64) + + label(0x06) + stop_chr + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_DISGUISE_UNCOVERED, /*goto*/ 0x06) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x0c) + label(0x06) + speak(TARGET_CHR, 0x2a52, 0x1286, CHANNEL_4, COLOR_08_RED) // "Leave this area now." + restart_timer + do_special_animation(-1) + + beginloop(0x66) + if_sound_finished(CHANNEL_4, /*goto*/ 0x53) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_NONE, /*goto*/ 0x2d) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x2d) + label(0x2d) + endloop(0x66) + + label(0x53) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + + label(0x0a) + set_target_chr(CHR_JOANNA) + restart_timer + try_run_to_target_chr(/*goto*/ 0x0b) + + beginloop(0x0b) + if_timer_gt(60, /*goto*/ 0x06) + if_chr_distance_lt(400, /*goto*/ 0x2d) + endloop(0x0b) + + label(0x06) + goto_first(0x0a) + + label(0x2d) + set_self_flag_bankx(CHRFLAG0_00000004, BANK_0) + set_return_function(CHR_SELF, FUNC_LABTECH_LIGHTS) + set_function(CHR_SELF, GFUNC_HAND_COMBAT) + + label(0x0c) + walk_to_pad(0x020d) + + beginloop(0x0d) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x2d) + if_shot_near_chr(0x00, /*goto*/ 0x0f) + label(0x2d) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_NONE, /*goto*/ 0x2d) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x2d) + goto_next(0x0f) + + label(0x2d) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x0d) + + label(0x06) + set_self_flag_bank3(CHRFLAG3_00000080) + restart_timer + try_face_entity(0x0008, 0x0428, /*goto*/ 0x6e) + + beginloop(0x6e) + if_timer_gt(120, /*goto*/ 0x6f) + if_chr_stopped(/*goto*/ 0x6f) + endloop(0x6e) + + label(0x6f) + call_rng + if_rand_lt(86, /*goto*/ 0x64) + if_rand_lt(172, /*goto*/ 0x66) + animation(ANIM_OPERATE_0221, -1, -1, 0x100a, CHR_SELF, 2) + goto_next(0x0e) + + label(0x64) + animation(ANIM_OPERATE_0221, -1, -1, 0x100a, CHR_SELF, 2) + goto_next(0x0e) + + label(0x66) + animation(ANIM_OPERATE_0223, -1, -1, 0x100a, CHR_SELF, 2) + + beginloop(0x0e) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x2d) + if_shot_near_chr(0x00, /*goto*/ 0x0f) + label(0x2d) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_NONE, /*goto*/ 0x2d) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x2d) + goto_next(0x0f) + + label(0x2d) + if_chr_idle(/*goto*/ 0x2e) + goto_first(0x6f) + + label(0x2e) + endloop(0x0e) + + label(0x0f) + speak(TARGET_CHR, 0x2a54, 0x8124, CHANNEL_4, COLOR_08_RED) // "Holy..." + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + animation(ANIM_SURPRISED_0202, -1, -1, 0x140a, CHR_SELF, 2) + restart_timer + + beginloop(0x10) + if_timer_gt(60, /*goto*/ 0x2d) + endloop(0x10) + + label(0x2d) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + goto_first(0x53) + + endfunction +}; + +u8 func0421_init_labtech_doors[] = { + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, FUNC_LABTECH_DOORS) + endfunction +}; + +u8 func0420_labtech_doors[] = { + set_self_flag_bank3(CHRFLAG3_00000080) + set_onshot_function(FUNC_LABTECH_DOORS) + 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) + + 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) + + label(0x2d) + if_just_injured(CHR_SELF, /*goto*/ 0x06) + goto_next(0x5e) + + label(0x06) + restart_timer + + beginloop(0x55) + if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06) + if_num_times_shot_lt(1, /*goto*/ 0x06) + if_timer_lt(20, /*goto*/ 0x06) + say_quip(CHR_JOANNA, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00) + say_quip(CHR_JOANNA, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00) + set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0) + label(0x06) + if_chr_stopped(/*goto*/ 0x5e) + endloop(0x55) + + label(0x5e) + animation(ANIM_OPERATE_0221, -1, -1, 0x1001, CHR_SELF, 2) + goto_next(0x6f) + + label(0x64) + animation(ANIM_OPERATE_0221, -1, -1, 0x1001, CHR_SELF, 2) + goto_next(0x6f) + + label(0x66) + animation(ANIM_OPERATE_0223, -1, -1, 0x1001, CHR_SELF, 2) + label(0x6f) + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + set_target_chr(CHR_JOANNA) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_DISGUISE_UNCOVERED, /*goto*/ 0x06) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x2d) + label(0x06) + goto_next(0x2e) + + label(0x2d) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_NONE, /*goto*/ 0x2e) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x2e) + if_self_flag_bankx_eq(CHRFLAG0_08000000, TRUE, BANK_0, /*goto*/ 0x06) + label(0x2e) + if_chr_sees_player(/*goto*/ 0x03) + label(0x06) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x03) + if_shot_near_chr(0x00, /*goto*/ 0x03) + if_saw_death(0x00, /*goto*/ 0x03) + if_chr_idle(/*goto*/ 0x2d) + goto_first(0x5e) + + label(0x2d) + endloop(0x04) + + label(0x03) + restart_timer + label(0x08) + try_face_entity(0x0200, 0x0000, /*goto*/ 0x09) + + beginloop(0x09) + if_shot_near_chr(0x00, /*goto*/ 0x89) + if_saw_death(0x00, /*goto*/ 0x89) + if_angle_to_target_chr_lt(10, /*goto*/ 0x06) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + dprint 'T','A','L','K',' ','1','\n',0, + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_DISGUISE_UNCOVERED, /*goto*/ 0x06) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x2d) + label(0x06) + dprint 'T','A','L','K',' ','2','\n',0, + goto_next(0x06) + + label(0x2d) + dprint 'T','A','L','K',' ','3','\n',0, + if_chr_weapon_equipped(TARGET_CHR, WEAPON_NONE, /*goto*/ 0x2d) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x2d) + dprint 'T','A','L','K',' ','4','\n',0, + goto_next(0x06) + + label(0x2d) + do_special_animation(3) + say_quip(CHR_JOANNA, 0x1d, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00) + set_self_flag_bankx(CHRFLAG0_08000000, BANK_0) + + beginloop(0x7b) + if_shot_near_chr(0x00, /*goto*/ 0x89) + if_saw_death(0x00, /*goto*/ 0x89) + dprint 'T','A','L','K',' ','5','\n',0, + if_chr_propsoundcount_zero(CHR_SELF, /*goto*/ 0x2d) + endloop(0x7b) + + label(0x2d) + stop_chr + goto_first(0x5e) + + label(0x89) + label(0x06) + set_group_alertness(100) + + beginloop(0x83) + if_sound_finished(CHANNEL_4, /*goto*/ 0x2d) + endloop(0x83) + + label(0x2d) + if_self_flag_bankx_eq(CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x2e) + speak(CHR_JOANNA, 0x2a55, 0x1aa6, CHANNEL_4, COLOR_08_RED) // "It's a spy!" + goto_next(0x2d) + + label(0x2e) + speak(CHR_JOANNA, 0x2a57, 0x1aa5, CHANNEL_4, COLOR_08_RED) // "Imposter!" + label(0x2d) + label(0x06) + go_to_target_pad(SPEED_JOG) + + beginloop(0x0a) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x0a) + + label(0x06) + restart_timer + if_self_flag_bankx_eq(CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x2d) + try_face_entity(0x0008, 0x03c6, /*goto*/ 0x70) + label(0x2d) + try_face_entity(0x0008, 0x03c7, /*goto*/ 0x70) + + beginloop(0x70) + if_timer_gt(30, /*goto*/ 0x2d) + endloop(0x70) + + label(0x2d) + animation(ANIM_OPERATE_0221, -1, 120, 0x1001, CHR_SELF, 2) + restart_timer + + beginloop(0x71) + if_timer_gt(120, /*goto*/ 0x2d) + if_timer_lt(60, /*goto*/ 0x2d) + if_stage_flag_eq(STAGEFLAG_AUTOGUN_ACTIVATED, TRUE, /*goto*/ 0x06) + if_stage_flag_eq(STAGEFLAG_AUTOGUN_VIRUS_DONE, TRUE, /*goto*/ 0x2d) + set_stage_flag(STAGEFLAG_AUTOGUN_ACTIVATED) + if_self_flag_bankx_eq(CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x75) + assign_sound(0x043a, CHANNEL_7) + control_sound_from_object(CHANNEL_7, 0x3c, TRUE) + goto_next(0x2d) + + label(0x75) + assign_sound(0x043a, CHANNEL_7) + control_sound_from_object(CHANNEL_7, 0x3d, TRUE) + label(0x2d) + endloop(0x71) + + label(0x06) + restart_timer + try_face_entity(0x0008, 0x0107, /*goto*/ 0x73) + + beginloop(0x73) + if_timer_gt(30, /*goto*/ 0x06) + endloop(0x73) + + label(0x06) + dprint 'F','L','A','G',' ','S','E','T','\n',0, + label(0x10) + animation(ANIM_COWER_0229, -1, -1, 0x100a, CHR_SELF, 2) + + beginloop(0x77) + if_chr_stopped(/*goto*/ 0x2d) + endloop(0x77) + + label(0x2d) + goto_first(0x10) + + endfunction +}; + +u8 func1017_activate_autogun[] = { + set_object_flag_bank0(OBJ_AUTOGUN, OBJECTFLAG0_DEACTIVATED) + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_AUTOGUN_ACTIVATED, TRUE, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + if_object_in_good_condition(OBJ_AUTOGUN, /*goto*/ 0x2d) + goto_next(0x06) + + label(0x2d) + unset_object_flag_bank0(OBJ_AUTOGUN, OBJECTFLAG0_DEACTIVATED) + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0423_init_labtech_records[] = { + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, FUNC_LABTECH_RECORDS) + endfunction +}; + +u8 func0422_labtech_records[] = { + set_onshot_function(FUNC_LABTECH_RECORDS) + 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) + label(0x06) + set_onshot_function(GFUNC_IDLE) + restart_timer + label(0x54) + yield + if_timer_gt(15, /*goto*/ 0x06) + goto_first(0x54) + + 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) + label(0x2d) + if_just_injured(CHR_SELF, /*goto*/ 0x06) + goto_next(0x5e) + label(0x06) + restart_timer + label(0x55) + yield + if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06) + if_num_times_shot_lt(1, /*goto*/ 0x06) + if_timer_lt(20, /*goto*/ 0x06) + say_quip(CHR_JOANNA, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00) + say_quip(CHR_JOANNA, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00) + set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0) + label(0x06) + if_chr_stopped(/*goto*/ 0x5e) + goto_first(0x55) + + label(0x5e) + call_rng + if_rand_lt(32, /*goto*/ 0x64) + if_rand_lt(64, /*goto*/ 0x66) + if_rand_lt(96, /*goto*/ 0x68) + if_rand_lt(128, /*goto*/ 0x69) + if_rand_lt(160, /*goto*/ 0x6a) + if_rand_lt(192, /*goto*/ 0x6b) + if_rand_lt(224, /*goto*/ 0x6c) + animation(0x0221, -1, -1, 0x1001, CHR_SELF, 2) + goto_next(0x04) + label(0x64) + animation(0x0221, -1, -1, 0x1001, CHR_SELF, 2) + goto_next(0x04) + label(0x66) + animation(0x0223, -1, -1, 0x1001, CHR_SELF, 2) + goto_next(0x04) + label(0x68) + animation(0x0221, -1, -1, 0x1101, CHR_SELF, 2) + goto_next(0x04) + label(0x69) + animation(0x0221, -1, -1, 0x1101, CHR_SELF, 2) + goto_next(0x04) + label(0x6a) + animation(0x0223, -1, -1, 0x1101, CHR_SELF, 2) + goto_next(0x04) + label(0x6b) + animation(0x023a, -1, -1, 0x1101, CHR_SELF, 2) + goto_next(0x04) + label(0x6c) + animation(0x023b, -1, -1, 0x1101, CHR_SELF, 2) + label(0x04) + yield + if_chr_idle(/*goto*/ 0x2d) + goto_first(0x5e) + + label(0x2d) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x03) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x03) + if_chr_distance_lt(500, /*goto*/ 0x03) + goto_first(0x04) + + label(0x03) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_DISGUISE_UNCOVERED, /*goto*/ 0x06) + if_chr_flag_bank2(TARGET_CHR, CHRFLAG2_DISGUISED, /*goto*/ 0x2d) + goto_next(0x06) + label(0x2d) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_NONE, /*goto*/ 0x2d) + if_chr_weapon_equipped(TARGET_CHR, WEAPON_UNARMED, /*goto*/ 0x2d) + goto_next(0x06) + label(0x2d) + goto_first(0x04) + + label(0x2d) + restart_timer + label(0x08) + try_face_entity(0x0200, 0x0000, /*goto*/ 0x09) + label(0x09) + yield + if_angle_to_target_chr_lt(10, /*goto*/ 0x06) + if_timer_gt(60, /*goto*/ 0x06) + goto_first(0x09) + + label(0x06) + label(0x06) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x2d) + set_group_alertness(100) + speak(TARGET_CHR, 0x2a57, 0x1aa5, CHANNEL_4, COLOR_08_RED) // "Imposter!" + animation(0x0202, -1, -1, 0x140a, CHR_SELF, 2) + restart_timer + label(0x79) + yield + if_timer_gt(90, /*goto*/ 0x2d) + goto_first(0x79) + + label(0x2d) + dprint 'T','A','L','K',' ','1','\n',0, + speak(TARGET_CHR, 0x2a56, 0x04ce, CHANNEL_4, COLOR_08_RED) // "Warn the others..." + label(0x2d) + label(0x06) + run_to_pad(0x0108) + label(0x0a) + yield + if_chr_stopped(/*goto*/ 0x06) + goto_first(0x0a) + + label(0x06) + dprint 'F','L','A','G',' ','S','E','T','\n',0, + label(0x10) + animation(0x0229, -1, -1, 0x100a, CHR_SELF, 2) + label(0x0e) + yield + if_chr_stopped(/*goto*/ 0x2d) + goto_first(0x0e) + + label(0x2d) + goto_first(0x10) + + endfunction +}; + +/** + * Chambers are actually lifts. They must be disabled so they don't continuously + * go up and down. + */ +u8 func1018_disable_chambers[] = { + set_object_flag_bank0(OBJ_CHAMBER1, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(OBJ_CHAMBER2, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(OBJ_CHAMBER3, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(OBJ_CHAMBER4, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(OBJ_CHAMBER5, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(OBJ_CHAMBER6, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(OBJ_CHAMBER7, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(OBJ_CHAMBER8, OBJECTFLAG0_DEACTIVATED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +// This macro is here is reduce the amount of duplicate code. However, each +// chamber's code is not entirely consistant, hence why it's not used by all +// chambers. +#define chamber_logic(switch, chamber, stageflag) \ + /* Wait for player to activate chamber switch */ \ + beginloop(0x04) \ + consider_coop_for_p1p2_chr(CHR_SELF) \ + if_chr_activated_object(CHR_P1P2, switch, /*goto*/ 0x06) \ + reloop(0x04) \ + \ + label(0x06) \ + if_stage_flag_eq(stageflag, TRUE, /*goto*/ 0x2d) \ + mute_channel(CHANNEL_0) \ + \ + /* Raising chamber */ \ + assign_sound(0x042b, CHANNEL_0) \ + control_sound_from_object(CHANNEL_0, chamber, TRUE) \ + assign_sound(0x043a, CHANNEL_7) \ + control_sound_from_object(CHANNEL_7, switch, TRUE) \ + message(CHR_P1P2, 0x2a42) /* "Containment unit raised up." */ \ + set_object_image(switch, 0x00, 0x13) \ + unset_object_flag_bank0(chamber, OBJECTFLAG0_DEACTIVATED) \ + set_stage_flag(stageflag) \ + restart_timer \ + \ + beginloop(0x08) \ + if_timer_gt(200, /*goto*/ 0x06) \ + endloop(0x08) \ + \ + label(0x06) \ + mute_channel(CHANNEL_0) \ + assign_sound(0x042c, CHANNEL_0) \ + control_sound_from_object(CHANNEL_0, chamber, TRUE) \ + set_object_flag_bank0(chamber, OBJECTFLAG0_DEACTIVATED) \ + reloop(0x04) \ + \ + /* Lowering chamber */ \ + label(0x2d) \ + mute_channel(CHANNEL_0) \ + assign_sound(0x042b, CHANNEL_0) \ + control_sound_from_object(CHANNEL_0, chamber, TRUE) \ + assign_sound(0x043a, CHANNEL_7) \ + control_sound_from_object(CHANNEL_7, switch, TRUE) \ + message(CHR_P1P2, 0x2a43) /* "Containment unit lowered down." */ \ + set_object_image(switch, 0x00, 0x12) \ + unset_object_flag_bank0(chamber, OBJECTFLAG0_DEACTIVATED) \ + unset_stage_flag(stageflag) \ + restart_timer \ + \ + beginloop(0x09) \ + if_timer_gt(200, /*goto*/ 0x06) \ + endloop(0x09) \ + \ + label(0x06) \ + mute_channel(CHANNEL_0) \ + assign_sound(0x042c, CHANNEL_0) \ + control_sound_from_object(CHANNEL_0, chamber, TRUE) \ + set_object_flag_bank0(chamber, OBJECTFLAG0_DEACTIVATED) \ + endloop(0x04) + + + +/** + * This chamber has the alien in it. + */ +u8 func1019_chamber1[] = { + // Wait for player to activate chamber switch + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_CHAMBER1_SWITCH, /*goto*/ 0x06) + reloop(0x04) + + label(0x06) + if_stage_flag_eq(STAGEFLAG_CHAMBER1_RAISED, TRUE, /*goto*/ 0x2d) + mute_channel(CHANNEL_0) + + // Raising chamber + assign_sound(0x042b, CHANNEL_0) + control_sound_from_object(CHANNEL_0, OBJ_CHAMBER1, TRUE) + assign_sound(0x043a, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_CHAMBER1_SWITCH, TRUE) + set_object_image(OBJ_CHAMBER1_SWITCH, 0x00, 0x13) + message(CHR_P1P2, 0x2a42) // "Containment unit raised up." + unset_object_flag_bank0(OBJ_CHAMBER1, OBJECTFLAG0_DEACTIVATED) + set_stage_flag(STAGEFLAG_CHAMBER1_RAISED) + restart_timer + + beginloop(0x08) + if_timer_gt(200, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + mute_channel(CHANNEL_0) + assign_sound(0x042c, CHANNEL_0) + control_sound_from_object(CHANNEL_0, OBJ_CHAMBER1, TRUE) + set_chr_flag_bank2(CHR_ALIEN, CHRFLAG2_00100000) + + beginloop(0x64) + chr_move_to_pad(CHR_ALIEN, 0x03ca, 0x01, /*goto*/ 0x06) + endloop(0x64) + + label(0x06) + yield + unset_chr_flag_bank3(CHR_ALIEN, CHRFLAG3_HIDDEN) + set_function(CHR_ALIEN, FUNC_CHECK_LOOKING_AT_ALIEN) + label(0x06) + set_object_flag_bank0(OBJ_CHAMBER1, OBJECTFLAG0_DEACTIVATED) + reloop(0x04) + + // Lowering chamber + label(0x2d) + mute_channel(CHANNEL_0) + assign_sound(0x042b, CHANNEL_0) + control_sound_from_object(CHANNEL_0, OBJ_CHAMBER1, TRUE) + set_chr_flag_bank3(CHR_ALIEN, CHRFLAG3_HIDDEN) + assign_sound(0x043a, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_CHAMBER1_SWITCH, TRUE) + set_object_image(OBJ_CHAMBER1_SWITCH, 0x00, 0x12) + message(CHR_P1P2, 0x2a43) // "Containment unit lowered down." + unset_object_flag_bank0(OBJ_CHAMBER1, OBJECTFLAG0_DEACTIVATED) + unset_stage_flag(STAGEFLAG_CHAMBER1_RAISED) + restart_timer + + beginloop(0x09) + if_timer_gt(200, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + mute_channel(CHANNEL_0) + assign_sound(0x042c, CHANNEL_0) + control_sound_from_object(CHANNEL_0, OBJ_CHAMBER1, TRUE) + set_object_flag_bank0(OBJ_CHAMBER1, OBJECTFLAG0_DEACTIVATED) + endloop(0x04) + endfunction +}; + +u8 func101a_chamber2[] = { + // Wait for player to activate chamber switch + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_CHAMBER2_SWITCH, /*goto*/ 0x06) + reloop(0x04) + + label(0x06) + mute_channel(CHANNEL_0) + if_stage_flag_eq(STAGEFLAG_CHAMBER2_RAISED, TRUE, /*goto*/ 0x2d) + + // Raising chamber + assign_sound(0x042b, CHANNEL_0) + control_sound_from_object(CHANNEL_0, OBJ_CHAMBER2, TRUE) + assign_sound(0x043a, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_CHAMBER2_SWITCH, TRUE) + set_object_image(OBJ_CHAMBER2_SWITCH, 0x00, 0x13) + message(CHR_P1P2, 0x2a42) // "Containment unit raised up." + unset_object_flag_bank0(OBJ_CHAMBER2, OBJECTFLAG0_DEACTIVATED) + set_stage_flag(STAGEFLAG_CHAMBER2_RAISED) + restart_timer + + beginloop(0x08) + if_timer_gt(200, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + mute_channel(CHANNEL_0) + assign_sound(0x042c, CHANNEL_0) + control_sound_from_object(CHANNEL_0, OBJ_CHAMBER2, TRUE) + + set_object_flag_bank0(OBJ_CHAMBER2, OBJECTFLAG0_DEACTIVATED) + reloop(0x04) + + // Lowering chamber + label(0x2d) + mute_channel(CHANNEL_0) + assign_sound(0x042b, CHANNEL_0) + control_sound_from_object(CHANNEL_0, OBJ_CHAMBER2, TRUE) + assign_sound(0x043a, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_CHAMBER2_SWITCH, TRUE) + set_object_image(OBJ_CHAMBER2_SWITCH, 0x00, 0x12) + message(CHR_P1P2, 0x2a43) // "Containment unit lowered down." + unset_object_flag_bank0(OBJ_CHAMBER2, OBJECTFLAG0_DEACTIVATED) + unset_stage_flag(STAGEFLAG_CHAMBER2_RAISED) + restart_timer + + beginloop(0x09) + if_timer_gt(200, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + mute_channel(CHANNEL_0) + assign_sound(0x042c, CHANNEL_0) + control_sound_from_object(CHANNEL_0, OBJ_CHAMBER2, TRUE) + set_object_flag_bank0(OBJ_CHAMBER2, OBJECTFLAG0_DEACTIVATED) + endloop(0x04) + endfunction +}; + +u8 func101b_chamber3[] = { + chamber_logic(OBJ_CHAMBER3_SWITCH, OBJ_CHAMBER3, STAGEFLAG_CHAMBER3_RAISED) + endfunction +}; + +u8 func101c_chamber4[] = { + chamber_logic(OBJ_CHAMBER4_SWITCH, OBJ_CHAMBER4, STAGEFLAG_CHAMBER4_RAISED) + endfunction +}; + +u8 func101d_chamber5[] = { + chamber_logic(OBJ_CHAMBER5_SWITCH, OBJ_CHAMBER5, STAGEFLAG_CHAMBER5_RAISED) + endfunction +}; + +u8 func101e_chamber6[] = { + chamber_logic(OBJ_CHAMBER6_SWITCH, OBJ_CHAMBER6, STAGEFLAG_CHAMBER6_RAISED) + endfunction +}; + +u8 func101f_chamber7[] = { + chamber_logic(OBJ_CHAMBER7_SWITCH, OBJ_CHAMBER7, STAGEFLAG_CHAMBER7_RAISED) + endfunction +}; + +u8 func1020_chamber8[] = { + // Wait for player to activate chamber switch + beginloop(0x04) + // Likely @bug: Chamber 8 is the only chamber that doesn't call + // consider_coop_for_p1p2_chr here. + // Co-op player might not be able to activate chamber 8. + if_chr_activated_object(CHR_P1P2, OBJ_CHAMBER8_SWITCH, /*goto*/ 0x06) + reloop(0x04) + + label(0x06) + if_stage_flag_eq(STAGEFLAG_CHAMBER8_RAISED, TRUE, /*goto*/ 0x2d) + mute_channel(CHANNEL_0) + + // Raising chamber + assign_sound(0x042b, CHANNEL_0) + control_sound_from_object(CHANNEL_0, OBJ_CHAMBER8, TRUE) + assign_sound(0x043a, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_CHAMBER8_SWITCH, TRUE) + message(CHR_P1P2, 0x2a42) // "Containment unit raised up." + set_object_image(OBJ_CHAMBER8_SWITCH, 0x00, 0x13) + unset_object_flag_bank0(OBJ_CHAMBER8, OBJECTFLAG0_DEACTIVATED) + set_stage_flag(STAGEFLAG_CHAMBER8_RAISED) + restart_timer + + beginloop(0x08) + if_timer_gt(200, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + mute_channel(CHANNEL_0) + assign_sound(0x042c, CHANNEL_0) + control_sound_from_object(CHANNEL_0, OBJ_CHAMBER8, TRUE) + + set_object_flag_bank0(OBJ_CHAMBER8, OBJECTFLAG0_DEACTIVATED) + reloop(0x04) + + // Lowering chamber + label(0x2d) + mute_channel(CHANNEL_0) + assign_sound(0x042b, CHANNEL_0) + control_sound_from_object(CHANNEL_0, OBJ_CHAMBER8, TRUE) + + assign_sound(0x043a, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_CHAMBER8_SWITCH, TRUE) + message(CHR_P1P2, 0x2a43) // "Containment unit lowered down." + set_object_image(OBJ_CHAMBER8_SWITCH, 0x00, 0x12) + unset_object_flag_bank0(OBJ_CHAMBER8, OBJECTFLAG0_DEACTIVATED) + unset_stage_flag(STAGEFLAG_CHAMBER8_RAISED) + restart_timer + + beginloop(0x09) + if_timer_gt(200, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + mute_channel(CHANNEL_0) + assign_sound(0x042c, CHANNEL_0) + control_sound_from_object(CHANNEL_0, OBJ_CHAMBER8, TRUE) + set_object_flag_bank0(OBJ_CHAMBER8, OBJECTFLAG0_DEACTIVATED) + endloop(0x04) + endfunction +}; + +u8 func0424_alien[] = { + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(CHR_SELF, FUNC_CHECK_LOOKING_AT_ALIEN) + endfunction +}; + +/** + * Guy that's hidden near the start. He starts sending out clones once you reach + * the second elevator. + */ +u8 func0425_hiddenguy[] = { + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0426_check_looking_at_alien[] = { + beginloop(0x04) + set_target_chr(CHR_JOANNA) + if_self_flag_bank3(CHRFLAG3_HIDDEN, /*goto*/ 0x61) + if_chr_distance_lt(300, /*goto*/ 0x64) + goto_next(0x66) + + // Jo is in range + label(0x64) + if_player_looking_at_something_maybe(0x0a, 0x01, 0x00, /*goto*/ 0x2d) + + // Jo is too far away or not looking at alien + label(0x66) + set_target_chr(CHR_VELVET) + if_chr_distance_lt(300, /*goto*/ 0x68) + goto_next(0x69) + + // Velvet is in range + label(0x68) + if_player_looking_at_something_maybe(0x0a, 0x01, 0x00, /*goto*/ 0x2d) + + // Both players are too far away + label(0x69) + + // Alien is lowered/hidden + label(0x61) + unset_stage_flag(STAGEFLAG_LOOKING_AT_CHAMBER) + reloop(0x04) + + label(0x2d) + set_stage_flag(STAGEFLAG_LOOKING_AT_CHAMBER) + endloop(0x04) + + endfunction +}; + +u8 func1021_xray_scanning[] = { + beginloop(0x04) + // @bug? In co-op, the player wearing the xray may be the player who is + // not looking at the alien. + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_has_weapon_equipped(CHR_P1P2, WEAPON_XRAYSCANNER, /*goto*/ 0x06) + reloop(0x04) + + label(0x06) + if_stage_flag_eq(STAGEFLAG_LOOKING_AT_CHAMBER, TRUE, /*goto*/ 0x06) + reloop(0x04) + + label(0x06) + message(CHR_P1P2, 0x2a4a) // "Scanner target acquired." + restart_timer + + beginloop(0x08) + if_timer_gt(240, /*goto*/ 0x06) + if_stage_flag_eq(STAGEFLAG_LOOKING_AT_CHAMBER, FALSE, /*goto*/ 0x2d) + endloop(0x08) + + label(0x06) + message(CHR_P1P2, 0x2a4b) // "Target ID confirmed - XT origin." + set_stage_flag(STAGEFLAG_XRAY_DONE) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2d) + message(CHR_P1P2, 0x2a4c) // "Scanner lock lost." + endloop(0x04) + + endfunction +}; + +/** + * Waits until the player has been in the xray area for over 10 seconds, then + * spawns a dataDyne shock trooper. + * + * Rare may have decided that it was too challenging to have a guard attack you + * while xraying, hence removed the guard but left this function. + */ +u8 unregistered_function1[] = { + restart_timer + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_timer_gt(600, /*goto*/ 0x08) + pause_timer + if_chr_in_room(CHR_P1P2, 0x00, 0x010d, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0102, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0103, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0104, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0105, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0106, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0107, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0108, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0109, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x010c, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x00fa, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x00fb, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x00fc, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x00fd, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x00fe, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x00ff, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0100, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0101, /*goto*/ 0x06) + reloop(0x04) + + label(0x06) + resume_timer + reloop(0x04) + + // 10 seconds passed + label(0x08) + if_chr_death_animation_finished(0x46, /*goto*/ 0x2d) + reloop(0x04) + + label(0x2d) + try_spawn_chr(BODY_DDSHOCK, HEAD_DDSHOCK, 0x0101, 0x0427, 0x00000200, /*goto*/ 0x06) + goto_next(0x2d) + + label(0x06) + restart_timer + reloop(0x04) + + label(0x2d) + endloop(0x04) + + endfunction +}; + +/** + * Assigned by the above, which is an unregistered function. + * + * Makes the shock trooper run to one of two xray rooms, depending on which one + * you're in. + * + * @unused + */ +u8 func0427_shock_clone[] = { + stop_chr + set_chr_id(0x46) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + set_self_flag_bankx(CHRFLAG1_00080000, BANK_1) + try_draw_weapon(MODEL_CHRSUPERDRAGON, WEAPON_SUPERDRAGON, 0x10000000, /*goto*/ 0x04) + + label(0x04) + yield + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x010d, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0102, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0103, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0104, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0105, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0106, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0107, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0108, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0109, /*goto*/ 0x06) + run_to_pad(0x0184) + set_function(CHR_SELF, GFUNC_UNALERTED) + + label(0x06) + run_to_pad(0x013b) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func1023_setup_door_locks[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x06) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x09) + + // PA + set_function(CHR_SELF, GFUNC_IDLE) + + // Agent - lock big door at bottom of ramp near showers + label(0x06) + lock_door(0x44, 0x80) + lock_door(0x45, 0x80) + set_function(CHR_SELF, GFUNC_IDLE) + + // SA - unlock the small shower doors + label(0x09) + unlock_door(0x2b, 0x80) + unlock_door(0x2c, 0x80) + unlock_door(0x2d, 0x80) + unlock_door(0x2e, 0x80) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0c01_outro[] = { + set_invincible(CHR_JOANNA) + camera_movement(0x0198) + set_music_track(MUSIC_RESCUE_OUTRO) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0xf1, CHRFLAG3_HIDDEN) + set_function(CHR_P1P2, GFUNC_IDLE) + set_function(CHR_BIOTECH1, GFUNC_IDLE) + set_function(CHR_BIOTECH2, GFUNC_IDLE) + set_invincible(CHR_JOANNA) + + set_chr_flag_bank3(CHR_P1P2, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_P1P2, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_P1P2, CHRFLAG2_00020000) + animation(0x0199, -1, -1, 0x0600, CHR_P1P2, 4) + + set_chr_flag_bank3(CHR_BIOTECH1, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_BIOTECH1, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_BIOTECH1, CHRFLAG2_00020000) + animation(0x019a, -1, -1, 0x0600, CHR_BIOTECH1, 4) + + set_chr_flag_bank3(CHR_BIOTECH2, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_BIOTECH2, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_BIOTECH2, CHRFLAG2_00020000) + animation(0x019b, -1, -1, 0x0600, CHR_BIOTECH2, 4) + + set_object_flag_bank1(0x2f, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x2f, OBJECTFLAG2_00000010) + object_do_animation(0x01a1, 0x2f, 0x04ff, 0xff) + show_nonessential_chrs(FALSE) + restart_timer + set_cutscene_weapon(CHR_P1P2, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_P1P2, WEAPON_FALCON2_SCOPE, WEAPON_NONE) + + #define wait_until(time, loopid) \ + beginloop(loopid) \ + if_controller_button_pressed(/*goto*/ 0x8b) \ + if_timer_gt(time, /*goto*/ 0x06) \ + endloop(loopid) \ + label(0x06) + + + + wait_until(315, 0x73) + open_door(0x30) + open_door(0x31) + + wait_until(344, 0x64) + play_sound(0x0161, CHANNEL_10) + + wait_until(380, 0x66) + speak(CHR_P1P2, 0x2a64, 0x7433, CHANNEL_7, COLOR_09_BLUE) // "Put your hands up and step away from the alien." + + wait_until(390, 0x68) + play_sound(0x0162, CHANNEL_10) + + wait_until(460, 0x69) + play_sound(0x0163, CHANNEL_10) + + wait_until(500, 0x74) + + wait_until(514, 0x6a) + play_sound(0x0164, CHANNEL_10) + + wait_until(580, 0x6c) + speak(CHR_P1P2, 0x2a66, 0x7435, CHANNEL_7, COLOR_09_BLUE) // "Don't make me tell you again, Doctor. And turn tha..." + + wait_until(588, 0x6b) + play_sound(0x0161, CHANNEL_10) + + wait_until(606, 0x6d) + play_sound(0x0163, CHANNEL_10) + + wait_until(612, 0x6e) + play_sound(0x0164, CHANNEL_10) + + wait_until(618, 0x6f) + play_sound(0x0162, CHANNEL_10) + + wait_until(656, 0x70) + play_sound(0x0163, CHANNEL_10) + + wait_until(720, 0x71) + play_sound(0x0164, CHANNEL_10) + + wait_until(786, 0x72) + play_sound(0x0163, CHANNEL_10) + + beginloop(0x08) + if_camera_animating(/*goto*/ 0x2d) + goto_next(0x8b) + + label(0x2d) + if_controller_button_pressed(/*goto*/ 0x8b) + label(0x2d) + endloop(0x08) + + label(0x8b) + mute_channel(CHANNEL_10) + restart_default_music + reset_ambience + end_level + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1002_intro[] = { + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_music_track(MUSIC_RESCUE_INTRO) + camera_movement(0x01c6) + cmd0175(60) + + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x01c8, -1, -1, 0x0600, CHR_JOANNA, 4) + + set_chr_flag_bank3(CHR_JONATHAN, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_JONATHAN, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_JONATHAN, CHRFLAG2_00020000) + animation(0x01c7, -1, -1, 0x0600, CHR_JONATHAN, 4) + + set_chr_flag_bank3(CHR_INTRO_DEAD_GUARD, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_INTRO_DEAD_GUARD, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_INTRO_DEAD_GUARD, CHRFLAG2_00020000) + animation(0x01c9, -1, -1, 0x0600, CHR_INTRO_DEAD_GUARD, 4) + + set_object_flag_bank1(OBJ_CRATE, OBJECTFLAG1_04000000) + set_object_flag_bank2(OBJ_CRATE, OBJECTFLAG2_00000010) + object_do_animation(0x01ca, OBJ_CRATE, 0x04ff, 0xff) + + restart_timer + fade_to_color(0x000000ff, 0) + fade_to_color(0x00000000, 90) + set_cutscene_weapon(CHR_JOANNA, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_JOANNA, WEAPON_FALCON2_SILENCER, WEAPON_NONE) + + wait_until(62, 0x67) + play_sound(0x0161, CHANNEL_10) + + wait_until(90, 0x64) + speak(CHR_JOANNA, 0x2a5a, 0x7429, CHANNEL_5, COLOR_03_RED) // "The problem you have is that there is no way to sn..." + + wait_until(108, 0x66) + play_sound(0x0162, CHANNEL_10) + + wait_until(686, 0x68) + play_sound(0x0163, CHANNEL_10) + + wait_until(738, 0x69) + play_sound(0x0164, CHANNEL_10) + + wait_until(782, 0x6a) + play_sound(0x0161, CHANNEL_10) + + wait_until(810, 0x6b) + speak(CHR_JOANNA, 0x2a5b, 0x742a, CHANNEL_5, COLOR_09_BLUE) // "Doesn't sound like a problem to me. Where are thes..." + + wait_until(1104, 0x6c) + speak(CHR_JOANNA, 0x2a5c, 0x742b, CHANNEL_5, COLOR_03_RED) // "In that crate." + + wait_until(1186, 0x6d) + play_sound(0x0162, CHANNEL_10) + + wait_until(1222, 0x6e) + play_sound(0x0163, CHANNEL_10) + + wait_until(1246, 0x6f) + play_sound(0x0163, CHANNEL_10) + + wait_until(1316, 0x70) + play_sound(0x01dc, CHANNEL_10) + + wait_until(1346, 0x71) + assign_sound(0x8169, CHANNEL_1) + control_sound_from_object(CHANNEL_1, OBJ_CRATE, TRUE) + + wait_until(1390, 0x72) + speak(CHR_JOANNA, 0x2a5d, 0x742c, CHANNEL_5, COLOR_09_BLUE) // "Cute. Very cute." + + wait_until(1440, 0x73) + play_sound(0x0161, CHANNEL_10) + + wait_until(1492, 0x74) + play_sound(0x0162, CHANNEL_10) + + wait_until(1584, 0x75) + play_sound(0x0163, CHANNEL_10) + + wait_until(1597, 0x76) + speak(CHR_JOANNA, 0x2a5e, 0x742d, CHANNEL_5, COLOR_03_RED) // "By the way, the stores are crawling with guards. I..." + + wait_until(1628, 0x77) + play_sound(0x0161, CHANNEL_10) + + wait_until(1658, 0x78) + play_sound(0x0162, CHANNEL_10) + + wait_until(1724, 0x79) + play_sound(0x0163, CHANNEL_10) + + wait_until(1792, 0x7a) + play_sound(0x0164, CHANNEL_10) + + wait_until(1866, 0x7b) + play_sound(0x0163, CHANNEL_10) + + wait_until(1906, 0x7c) + play_sound(0x0161, CHANNEL_10) + + wait_until(2024, 0x7d) + play_sound(0x0162, CHANNEL_10) + + wait_until(2017, 0x7e) + speak(CHR_JOANNA, 0x2a5f, 0x742e, CHANNEL_5, COLOR_09_BLUE) // "Certainly. Any other pearls of wisdom?" + + wait_until(2275, 0x7f) + speak(CHR_JOANNA, 0x2a60, 0x742f, CHANNEL_5, COLOR_03_RED) // "That crate..." + + wait_until(2338, 0x80) + speak(CHR_JOANNA, 0x2a61, 0x7430, CHANNEL_5, COLOR_09_BLUE) // "Yes?" + + wait_until(2409, 0x81) + speak(CHR_JOANNA, 0x2a62, 0x7431, CHANNEL_5, COLOR_03_RED) // "It really doesn't like being shot." + + wait_until(2440, 0x65) + open_door(0x33) + open_door(0x34) + + wait_until(2648, 0x82) + play_sound(0x0172, CHANNEL_10) + + wait_until(2680, 0x83) + speak(CHR_JOANNA, 0x2a63, 0x7432, CHANNEL_5, COLOR_09_BLUE) // "Great. Now, if I can just fight the urge to report..." + + wait_until(2690, 0x84) + play_sound(0x0173, CHANNEL_10) + + wait_until(2986, 0x85) + play_sound(0x0161, CHANNEL_10) + + wait_until(3048, 0x86) + play_sound(0x0162, CHANNEL_10) + + wait_until(3104, 0x87) + play_sound(0x0163, CHANNEL_10) + + wait_until(3152, 0x88) + play_sound(0x0164, CHANNEL_10) + + beginloop(0x08) + if_camera_animating(/*goto*/ 0x2d) + goto_next(0x8b) + + label(0x2d) + if_controller_button_pressed(/*goto*/ 0x8b) + label(0x2d) + endloop(0x08) + + label(0x8b) + mute_channel(CHANNEL_10) + mute_channel(CHANNEL_5) + mute_channel(CHANNEL_1) + assign_sound(0x8169, CHANNEL_1) + control_sound_from_object(CHANNEL_1, OBJ_CRATE, TRUE) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x01c8, -2, -1, 0x0600, CHR_JOANNA, 2) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_JONATHAN, CHRFLAG3_UNPLAYABLE) + remove_chr(CHR_JONATHAN) + unset_chr_flag_bank3(CHR_INTRO_DEAD_GUARD, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank3(CHR_INTRO_DEAD_GUARD, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank2(CHR_INTRO_DEAD_GUARD, CHRFLAG2_00020000) + animation(0x01c9, -2, -1, 0x0600, CHR_INTRO_DEAD_GUARD, 2) + mute_channel(CHANNEL_10) + unset_object_flag_bank1(OBJ_CRATE, OBJECTFLAG1_04000000) + set_object_flag_bank2(OBJ_CRATE, OBJECTFLAG2_00000010) + object_do_animation(0x01ca, OBJ_CRATE, 0x01ff, 0xfe) + close_door(0x33) + close_door(0x34) + restart_default_music + reset_ambience + enter_firstperson + yield + set_chr_flag_bank3(CHR_INTRO_DEAD_GUARD, CHRFLAG3_00010000) + animation(0x01c9, 2, 3, 0x0600, CHR_INTRO_DEAD_GUARD, 2) + set_function(CHR_INTRO_DEAD_GUARD, GFUNC_IDLE) + yield + kill(CHR_INTRO_DEAD_GUARD) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1024_noop[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_LIGHT_VIRUS_DONE, TRUE, /*goto*/ 0x03) + endloop(0x04) + + label(0x03) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Disable chrs, wait until player has keycard, then activate them. + * Most likely guards in the final corridor. + */ +u8 func1025_toggle_guards[] = { + set_chr_flag_bank3(0x33, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0x34, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0x33, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(0x34, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(0x37, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0x2c, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0x2d, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0x2e, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0x37, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(0x2c, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(0x2d, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(0x2e, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(0x2f, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0x30, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0x31, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0x32, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0x2f, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(0x30, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(0x31, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(0x32, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + + beginloop(0x08) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_has_object(CHR_P1P2, OBJ_KEYCARD, /*goto*/ 0x2d) + endloop(0x08) + + label(0x2d) + unset_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_DISGUISED) + unset_chr_flag_bank3(0x33, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x34, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x33, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x34, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x33, FUNC_BIOTECH_GUARD_ALERTED) + set_function(0x34, FUNC_BIOTECH_GUARD_ALERTED) + unset_chr_flag_bank3(0x37, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x2c, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x2d, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x2e, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x37, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x2c, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x2d, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x2e, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x37, FUNC_SUPERDRAGON_GUARD) + set_function(0x2c, FUNC_SUPERDRAGON_GUARD) + set_function(0x2d, FUNC_SUPERDRAGON_GUARD) + set_function(0x2e, FUNC_SUPERDRAGON_GUARD) + unset_chr_flag_bank3(0x2f, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x30, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x31, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x32, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x2f, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x30, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x31, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x32, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x2f, FUNC_BIOTECH_GUARD) + set_function(0x30, FUNC_SUPERDRAGON_GUARD) + set_function(0x31, FUNC_SUPERDRAGON_GUARD) + set_function(0x32, FUNC_SUPERDRAGON_GUARD) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0429_spawn_while_xraying[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(8) + set_reaction_speed(35) + set_chr_health(CHR_SELF, 50) + set_armor(0) + set_recovery_speed(35) + set_shield(0) + 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) + restart_timer + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_flag_bank2(CHR_P1P2, CHRFLAG2_DISGUISED, /*goto*/ 0x0d) + if_timer_gt(1800, /*goto*/ 0x2d) + reloop(0x04) + + // 30 seconds passed and not disguised + label(0x2d) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_flag_bank2(CHR_P1P2, CHRFLAG2_DISGUISED, /*goto*/ 0x0d) + + // Xray area + if_chr_in_room(CHR_P1P2, 0x00, 0x010d, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0102, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0103, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0104, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0105, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0106, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0107, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0108, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0109, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x010c, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x00fa, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x00fb, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x00fc, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x00fd, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x00fe, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x00ff, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0100, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0101, /*goto*/ 0x06) + reloop(0x04) + + label(0x06) + dprint 'O','B','J','E','C','T','I','V','E',' ','D','O','N','E','\n',0, + label(0x4e) + if_chr_death_animation_finished(CHR_CLONE, /*goto*/ 0x4e) + reloop(0x04) + + label(0x4e) + try_spawn_clone2(CHR_SELF, 0x042a, 0x00000000, /*goto*/ 0x2d) + label(0x2d) + restart_timer + yield + endloop(0x04) + + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func042a_init_xray_clone[] = { + set_self_flag_bankx(CHRFLAG1_00080000, BANK_1) + label(0x04) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + try_inherit_properties(0x47, /*goto*/ 0x06) + label(0x06) + set_function(CHR_SELF, 0x042b) + endfunction +}; + +u8 func042b_xray_clone[] = { + set_target_chr(CHR_JOANNA) + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +u8 func042c_dragon_guard[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(8) + set_reaction_speed(35) + set_chr_health(CHR_SELF, 50) + set_armor(0) + set_recovery_speed(35) + set_shield(0) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func042d_superdragon_guard[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(10) + set_reaction_speed(35) + set_chr_health(CHR_SELF, 80) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func042e_biotech_guard[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(18) + set_reaction_speed(35) + set_chr_health(CHR_SELF, 80) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func042e_biotech_guard_alerted[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(18) + set_reaction_speed(35) + set_chr_health(CHR_SELF, 80) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + set_target_chr(CHR_JOANNA) + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +u8 func142d_start_lifts[] = { + activate_lift(1, 0x35) + activate_lift(4, 0x38) + activate_lift(5, 0x39) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1027_check_disguise_worn[] = { + beginloop(0x04) + if_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_DISGUISED, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + message(CHR_JOANNA, 0x2a4d) // "Disguise has been worn." + set_return_function(0x00, 0x0401) + set_return_function(0x01, 0x0402) + set_return_function(0x02, 0x0403) + set_return_function(0x03, 0x0404) + set_return_function(0x04, 0x0405) + set_return_function(0x05, FUNC_DRAGON_GUARD) + set_return_function(0x06, FUNC_DRAGON_GUARD) + set_return_function(0x07, FUNC_DRAGON_GUARD) + set_return_function(0x08, FUNC_DRAGON_GUARD) + set_return_function(0x09, FUNC_DRAGON_GUARD) + set_return_function(0x0a, FUNC_DRAGON_GUARD) + set_return_function(0x0b, FUNC_DRAGON_GUARD) + set_return_function(0x0c, 0x0406) + set_return_function(0x0d, 0x0406) + set_return_function(0x0e, 0x0406) + set_return_function(0x0f, 0x0407) + set_return_function(0x10, 0x0408) + set_return_function(0x11, FUNC_DRAGON_GUARD) + set_return_function(0x27, FUNC_DRAGON_GUARD) + set_return_function(0x28, FUNC_DRAGON_GUARD) + set_return_function(0x12, FUNC_DRAGON_GUARD) + set_return_function(0x13, FUNC_DRAGON_GUARD) + set_return_function(0x14, 0x0409) + set_return_function(0x15, 0x040a) + set_return_function(0x16, FUNC_DRAGON_GUARD) + set_return_function(0x17, FUNC_DRAGON_GUARD) + set_return_function(0x18, FUNC_DRAGON_GUARD) + set_return_function(0x1e, FUNC_DRAGON_GUARD) + set_return_function(0x19, FUNC_DRAGON_GUARD) + set_return_function(0x1a, FUNC_DRAGON_GUARD) + set_return_function(0x1d, FUNC_DRAGON_GUARD) + set_return_function(0x1b, 0x040b) + set_return_function(0x1c, 0x040c) + set_return_function(0x1f, FUNC_DRAGON_GUARD) + set_return_function(0x20, FUNC_DRAGON_GUARD) + set_return_function(0x21, FUNC_DRAGON_GUARD) + set_return_function(0x22, FUNC_DRAGON_GUARD) + set_function(0x00, FUNC_BECOME_UNAWARE) + set_function(0x01, FUNC_BECOME_UNAWARE) + set_function(0x02, FUNC_BECOME_UNAWARE) + set_function(0x03, FUNC_BECOME_UNAWARE) + set_function(0x04, FUNC_BECOME_UNAWARE) + set_function(0x05, FUNC_BECOME_UNAWARE) + set_function(0x06, FUNC_BECOME_UNAWARE) + set_function(0x07, FUNC_BECOME_UNAWARE) + set_function(0x08, FUNC_BECOME_UNAWARE) + set_function(0x09, FUNC_BECOME_UNAWARE) + set_function(0x0a, FUNC_BECOME_UNAWARE) + set_function(0x0b, FUNC_BECOME_UNAWARE) + set_function(0x0c, FUNC_BECOME_UNAWARE) + set_function(0x0d, FUNC_BECOME_UNAWARE) + set_function(0x0e, FUNC_BECOME_UNAWARE) + set_function(0x0f, FUNC_BECOME_UNAWARE) + set_function(0x10, FUNC_BECOME_UNAWARE) + set_function(0x11, FUNC_BECOME_UNAWARE) + set_function(0x27, FUNC_BECOME_UNAWARE) + set_function(0x28, FUNC_BECOME_UNAWARE) + set_function(0x12, FUNC_BECOME_UNAWARE) + set_function(0x13, FUNC_BECOME_UNAWARE) + set_function(0x14, FUNC_BECOME_UNAWARE) + set_function(0x15, FUNC_BECOME_UNAWARE) + set_function(0x16, FUNC_BECOME_UNAWARE) + set_function(0x17, FUNC_BECOME_UNAWARE) + set_function(0x18, FUNC_BECOME_UNAWARE) + set_function(0x1e, FUNC_BECOME_UNAWARE) + set_function(0x19, FUNC_BECOME_UNAWARE) + set_function(0x1a, FUNC_BECOME_UNAWARE) + set_function(0x1d, FUNC_BECOME_UNAWARE) + set_function(0x1b, FUNC_BECOME_UNAWARE) + set_function(0x1c, FUNC_BECOME_UNAWARE) + set_function(0x1f, FUNC_BECOME_UNAWARE) + set_function(0x20, FUNC_BECOME_UNAWARE) + set_function(0x21, FUNC_BECOME_UNAWARE) + set_function(0x22, FUNC_BECOME_UNAWARE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1028_toggle_mechanic[] = { + if_eeprom_flag_is_set(EEPROMFLAG_RESCUE_MECHANIC_DEAD, /*goto*/ 0x06) + dprint 'K','E','E','P',' ','M','E','C','H','\n',0, + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x06) + dprint 'D','E','L','E','T','E',' ','M','E','C','H','\n',0, + hide_chr(CHR_MECHANIC) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1029_msg_showers[] = { + beginloop(0x04) + if_chr_in_room(CHR_JOANNA, 0x00, 0x00a9, /*goto*/ 0x2d) + if_chr_in_room(CHR_JOANNA, 0x00, 0x00aa, /*goto*/ 0x2d) + if_chr_in_room(CHR_JOANNA, 0x00, 0x00a9, /*goto*/ 0x2d) + if_chr_in_room(CHR_JOANNA, 0x00, 0x00bc, /*goto*/ 0x2d) + if_chr_in_room(CHR_JOANNA, 0x00, 0x009b, /*goto*/ 0x2d) + if_chr_in_room(CHR_JOANNA, 0x00, 0x00b5, /*goto*/ 0x2d) + if_chr_in_room(CHR_JOANNA, 0x00, 0x00ad, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + speak(CHR_JOANNA, 0x2a4e, 0x73bc, CHANNEL_6, COLOR_09_BLUE) // "The showers... Now, if I can convince someone to p..." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func102a_msg_temperaturedropping[] = { + restart_timer + + beginloop(0x04) + if_chr_in_room(CHR_JOANNA, 0x00, 0x010a, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + speak(CHR_JOANNA, 0x2a4f, 0x8180, CHANNEL_6, COLOR_09_BLUE) // "The temperature's dropping... You must be close to..." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func102b_msg_airrecycled[] = { + beginloop(0x04) + if_chr_in_room(CHR_JOANNA, 0x00, 0x007f, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + speak(CHR_JOANNA, 0x2a50, 0x73be, CHANNEL_6, COLOR_09_BLUE) // "The air's heavily recycled around here - must be n..." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func102c_msg_hurry[] = { + beginloop(0x04) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0093, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + speak(CHR_JOANNA, 0x2a51, 0x8181, CHANNEL_6, COLOR_09_BLUE) // "There he is, Jo! Hurry or you'll be too late!" + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * This function is run on many guards when Jo puts on the disguise. + */ +u8 func0416_become_unaware[] = { + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_00002000) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x0f) + if_chr_dying(CHR_SELF, /*goto*/ 0x0f) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x0f) + if_chr_sees_player(/*goto*/ 0x2d) + set_alertness(0) + return + + label(0x2d) + set_target_chr(CHR_JOANNA) + set_function(CHR_SELF, GFUNC_ALERTED) + + // Dying/dead + label(0x0f) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 unregistered_function2[] = { + set_object_flag_bank0(OBJ_WALL, OBJECTFLAG0_INVINCIBLE) + + beginloop(0x04) + if_object_in_good_condition(OBJ_CRATE, /*goto*/ 0x2d) + goto_next(0x06) + + label(0x2d) + endloop(0x04) + + // Crate destroyed + label(0x06) + unset_object_flag_bank0(OBJ_WALL, OBJECTFLAG0_INVINCIBLE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func102f_shuffle_disguise[] = { + yield + yield + if_difficulty_lt(DIFF_PA, /*goto*/ 0x0c) + call_rng + if_rand_lt(51, /*goto*/ 0x08) + if_rand_lt(102, /*goto*/ 0x09) + if_rand_lt(153, /*goto*/ 0x0a) + if_rand_lt(204, /*goto*/ 0x0b) + + // Rand >= 204 (52 out of 256 chance) + hide_object(OBJ_LABCOAT1) + hide_object(OBJ_LABCOAT2) + hide_object(OBJ_LABCOAT3) + hide_object(OBJ_LABCOAT4) + set_function(CHR_SELF, GFUNC_IDLE) + + // Rand < 51 (51 out of 256 chance) + label(0x08) + hide_object(OBJ_LABCOAT2) + hide_object(OBJ_LABCOAT3) + hide_object(OBJ_LABCOAT4) + hide_object(OBJ_LABCOAT5) + set_function(CHR_SELF, GFUNC_IDLE) + + // Rand >= 51 and < 102 (51 out of 256 chance) + label(0x09) + hide_object(OBJ_LABCOAT1) + hide_object(OBJ_LABCOAT3) + hide_object(OBJ_LABCOAT4) + hide_object(OBJ_LABCOAT5) + set_function(CHR_SELF, GFUNC_IDLE) + + // Rand >= 102 and < 153 (51 out of 256 chance) + label(0x0a) + hide_object(OBJ_LABCOAT1) + hide_object(OBJ_LABCOAT2) + hide_object(OBJ_LABCOAT4) + hide_object(OBJ_LABCOAT5) + set_function(CHR_SELF, GFUNC_IDLE) + + // Rand >= 153 and < 204 (51 out of 256 chance) + label(0x0b) + hide_object(OBJ_LABCOAT1) + hide_object(OBJ_LABCOAT2) + hide_object(OBJ_LABCOAT3) + hide_object(OBJ_LABCOAT5) + set_function(CHR_SELF, GFUNC_IDLE) + + // A and SA + label(0x0c) + give_object_to_chr(OBJ_LABCOAT1, CHR_LABTECH_SHOWERS) + hide_object(OBJ_LABCOAT2) + hide_object(OBJ_LABCOAT3) + hide_object(OBJ_LABCOAT4) + hide_object(OBJ_LABCOAT5) + set_function(CHR_SELF, GFUNC_IDLE) + + // Unreachable + label(0x0d) + hide_object(OBJ_LABCOAT1) + hide_object(OBJ_LABCOAT2) + hide_object(OBJ_LABCOAT4) + hide_object(OBJ_LABCOAT5) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1030_lift_door_sounds[] = { + beginloop(0x5e) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, 0x46, /*goto*/ 0x2d) + if_chr_activated_object(CHR_P1P2, 0x47, /*goto*/ 0x2d) + if_chr_activated_object(CHR_P1P2, 0x48, /*goto*/ 0x2d) + if_chr_activated_object(CHR_P1P2, 0x49, /*goto*/ 0x2d) + reloop(0x5e) + + label(0x2d) + play_sound(0x81b0, -1) + restart_timer + + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + endloop(0x5e) + + endfunction +}; + +u8 func1031_toggle_doorman[] = { + yield + set_chr_flag_bank3(CHR_DOORMAN, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_DOORMAN, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + + beginloop(0x5e) + label(0x2d) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2d) + if_objective_complete(0, /*goto*/ 0x2d) + goto_first(0x5e) + + label(0x2d) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2d) + if_objective_complete(1, /*goto*/ 0x2d) + endloop(0x5e) + + label(0x2d) + unset_chr_flag_bank3(CHR_DOORMAN, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_DOORMAN, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1032_count_last_room_guards[] = { + beginloop(0x04) + set_var_a(0) + if_chr_dying(0x23, /*goto*/ 0x2d) + if_chr_death_animation_finished(0x23, /*goto*/ 0x2d) + if_chr_unloaded(0x23, /*goto*/ 0x2d) + goto_next(0x06) + + label(0x2d) + add_var_a(1) + label(0x06) + if_chr_dying(0x24, /*goto*/ 0x2d) + if_chr_death_animation_finished(0x24, /*goto*/ 0x2d) + if_chr_unloaded(0x24, /*goto*/ 0x2d) + goto_next(0x06) + + label(0x2d) + add_var_a(1) + label(0x06) + if_chr_dying(0x25, /*goto*/ 0x2d) + if_chr_death_animation_finished(0x25, /*goto*/ 0x2d) + if_chr_unloaded(0x25, /*goto*/ 0x2d) + goto_next(0x06) + + label(0x2d) + add_var_a(1) + label(0x06) + if_chr_dying(0x26, /*goto*/ 0x2d) + if_chr_death_animation_finished(0x26, /*goto*/ 0x2d) + if_chr_unloaded(0x26, /*goto*/ 0x2d) + goto_next(0x06) + + label(0x2d) + add_var_a(1) + label(0x06) + if_var_a_lt(3, /*goto*/ 0x2d) + set_stage_flag(STAGEFLAG_ONE_KEYCARD_GUARD_REMAINING) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2d) + endloop(0x04) + + endfunction +}; + +/** + * Not really sure what the point of this is. + */ +u8 func1033_update_buddy_placed_flag[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_flag_bank2(CHR_P1P2, CHRFLAG2_BUDDY_PLACED, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + restart_timer + + beginloop(0x64) + if_timer_gt(600, /*goto*/ 0x2d) + endloop(0x64) + + label(0x2d) + unset_chr_flag_bank2(CHR_P1P2, CHRFLAG2_BUDDY_PLACED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1034_setup_rtracker[] = { + yield + set_object_flag_bank2(OBJ_FALCON2SILENCED1, OBJECTFLAG2_RTRACKED_BLUE) + set_object_flag_bank2(OBJ_FALCON2SILENCED2, OBJECTFLAG2_RTRACKED_BLUE) + set_object_flag_bank2(OBJ_PHOENIX, OBJECTFLAG2_RTRACKED_BLUE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1435_setup_lighting[] = { + yield + set_lighting(0x007c, 0x05, 0x01) + set_lighting(0x007d, 0x05, 0x01) + set_lighting(0x007e, 0x05, 0x01) + set_lighting(0x007f, 0x05, 0x01) + set_lighting(0x0080, 0x05, 0x01) + set_lighting(0x0081, 0x05, 0x01) + set_lighting(0x0082, 0x05, 0x01) + set_lighting(0x0083, 0x05, 0x01) + set_lighting(0x0084, 0x05, 0x01) + set_lighting(0x0085, 0x05, 0x01) + set_lighting(0x0086, 0x05, 0x01) + set_lighting(0x0087, 0x05, 0x01) + set_lighting(0x0088, 0x05, 0x01) + set_lighting(0x0089, 0x05, 0x01) + set_lighting(0x008a, 0x05, 0x01) + set_lighting(0x008b, 0x05, 0x01) + set_lighting(0x008c, 0x05, 0x01) + set_lighting(0x008d, 0x05, 0x01) + set_lighting(0x008e, 0x05, 0x01) + set_lighting(0x008f, 0x05, 0x01) + set_lighting(0x0090, 0x05, 0x01) + set_lighting(0x0091, 0x05, 0x01) + set_lighting(0x0092, 0x05, 0x01) + set_lighting(0x0093, 0x05, 0x01) + set_lighting(0x0094, 0x05, 0x01) + set_lighting(0x0095, 0x05, 0x01) + set_lighting(0x0096, 0x05, 0x01) + set_lighting(0x0097, 0x05, 0x01) + set_lighting(0x0098, 0x05, 0x01) + set_lighting(0x0099, 0x05, 0x01) + set_lighting(0x009a, 0x05, 0x01) + set_lighting(0x009b, 0x05, 0x01) + set_lighting(0x00a5, 0x05, 0x01) + set_lighting(0x00a6, 0x05, 0x01) + set_lighting(0x00a7, 0x05, 0x01) + set_lighting(0x00a8, 0x05, 0x01) + set_lighting(0x00a9, 0x05, 0x01) + set_lighting(0x00aa, 0x05, 0x01) + set_lighting(0x00ab, 0x05, 0x01) + set_lighting(0x00ac, 0x05, 0x01) + set_lighting(0x00ad, 0x05, 0x01) + set_lighting(0x00ae, 0x05, 0x01) + set_lighting(0x00af, 0x05, 0x01) + set_lighting(0x00b0, 0x05, 0x01) + set_lighting(0x00b1, 0x05, 0x01) + set_lighting(0x00b3, 0x05, 0x01) + set_lighting(0x00b4, 0x05, 0x01) + set_lighting(0x00b5, 0x05, 0x01) + set_lighting(0x00b6, 0x05, 0x01) + set_lighting(0x00b7, 0x05, 0x01) + set_lighting(0x00b8, 0x05, 0x01) + set_lighting(0x00b9, 0x05, 0x01) + set_lighting(0x00ba, 0x05, 0x01) + set_lighting(0x00bb, 0x05, 0x01) + set_lighting(0x00bc, 0x05, 0x01) + set_lighting(0x00be, 0x05, 0x01) + set_lighting(0x00bf, 0x05, 0x01) + set_lighting(0x00c0, 0x05, 0x01) + set_lighting(0x00c1, 0x05, 0x01) + set_lighting(0x00c2, 0x05, 0x01) + set_lighting(0x00c3, 0x05, 0x01) + set_lighting(0x00c4, 0x05, 0x01) + set_lighting(0x00c5, 0x05, 0x01) + set_lighting(0x00c6, 0x05, 0x01) + set_lighting(0x00c7, 0x05, 0x01) + set_lighting(0x00c8, 0x05, 0x01) + set_lighting(0x00c9, 0x05, 0x01) + set_lighting(0x00ca, 0x05, 0x01) + set_lighting(0x00cb, 0x05, 0x01) + set_lighting(0x00f2, 0x05, 0x01) + set_lighting(0x00fa, 0x05, 0x01) + set_lighting(0x00fb, 0x05, 0x01) + set_lighting(0x00fc, 0x05, 0x01) + set_lighting(0x00fd, 0x05, 0x01) + set_lighting(0x00fe, 0x05, 0x01) + set_lighting(0x00ff, 0x05, 0x01) + set_lighting(0x0100, 0x05, 0x01) + set_lighting(0x0101, 0x05, 0x01) + set_lighting(0x0102, 0x05, 0x01) + set_lighting(0x0103, 0x05, 0x01) + set_lighting(0x0104, 0x05, 0x01) + set_lighting(0x0105, 0x05, 0x01) + set_lighting(0x0106, 0x05, 0x01) + set_lighting(0x0107, 0x05, 0x01) + set_lighting(0x0108, 0x05, 0x01) + set_lighting(0x0109, 0x05, 0x01) + set_lighting(0x010a, 0x05, 0x01) + set_lighting(0x010b, 0x05, 0x01) + set_lighting(0x010c, 0x05, 0x01) + set_lighting(0x010d, 0x05, 0x01) + set_lighting(0x010e, 0x05, 0x01) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0432_init_biotech1[] = { + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_UNEXPLODABLE) + set_function(CHR_SELF, FUNC_BIOTECH1) + endfunction +}; + +u8 func0433_init_biotech2[] = { + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_UNEXPLODABLE) + set_function(CHR_SELF, FUNC_BIOTECH2) + endfunction +}; + +u8 func0430_biotech2[] = { + label(0x0b) + call_rng + if_rand_gt(85, /*goto*/ 0x62) + if_rand_gt(170, /*goto*/ 0x63) + + animation(ANIM_OPERATE_0221, 0, -1, 0x1000, CHR_SELF, 2) + goto_next(0x04) + + label(0x62) + animation(ANIM_OPERATE_0222, 0, -1, 0x1000, CHR_SELF, 2) + goto_next(0x04) + + label(0x63) + animation(ANIM_OPERATE_0223, 0, -1, 0x1000, CHR_SELF, 2) + goto_next(0x04) + + beginloop(0x04) + if_chr_stopped(/*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + goto_first(0x0b) + + endfunction +}; + +u8 func0431_biotech1[] = { + label(0x0b) + call_rng + if_rand_gt(85, /*goto*/ 0x62) + if_rand_gt(170, /*goto*/ 0x63) + + animation(ANIM_OPERATE_0204, 0, -1, 0x1000, CHR_SELF, 2) + goto_next(0x04) + + label(0x62) + animation(ANIM_OPERATE_0205, 0, -1, 0x1000, CHR_SELF, 2) + goto_next(0x04) + + label(0x63) + animation(ANIM_OPERATE_0206, 0, -1, 0x1000, CHR_SELF, 2) + goto_next(0x04) + + beginloop(0x04) + if_chr_stopped(/*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + goto_first(0x0b) + + endfunction +}; + +u8 func1036_check_door_terminal_destroyed[] = { + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2e) + + beginloop(0x0b) + if_object_in_good_condition(OBJ_DOOR_TERMINAL, /*goto*/ 0x2d) + if_stage_flag_eq(STAGEFLAG_DOOR_VIRUS_DOWNLOADED, TRUE, /*goto*/ 0x2e) + message(CHR_JOANNA, 0x2a44) // "Mission critical equipment destroyed." + set_stage_flag(STAGEFLAG_UPLINK_TERMINAL_DESTROYED) + label(0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2d) + endloop(0x0b) + + endfunction +}; + +struct ailists functions[] = { + { func1400_give_datauplinks, 0x1400 }, + { func1001_objectives_failed_msg, 0x1001 }, + { func1002_intro, 0x1002 }, + { func1003_uplink_doors, 0x1003 }, + { func1004_uplink_lights, 0x1004 }, + { func1005_uplink_autoguns, 0x1005 }, + { func1006_check_lab_accessed, 0x1006 }, + { func1007_check_disguise_collected, 0x1007 }, + { func1009_disguise_timer, 0x1009 }, + { func100a_random_doors, 0x100a }, + { func100b_check_doorman_dead, 0x100b }, + { func100c_keycardguy_lights, 0x100c }, + { func100d_check_entered_lab, 0x100d }, + { func100e_elvis_timer, 0x100e }, + { func100f_check_end_level, 0x100f }, + { func1010_give_keycard, 0x1010 }, + { func1011_unhide_warehouse_spawner, 0x1011 }, + { func1013_check_chamber_switch_destroyed, 0x1013 }, + { func1014_check_crate_destroyed, 0x1014 }, + { func1016_check_undisguised, 0x1016 }, + { func1017_activate_autogun, 0x1017 }, + { func1018_disable_chambers, 0x1018 }, + { func1019_chamber1, 0x1019 }, + { func101a_chamber2, 0x101a }, + { func101b_chamber3, 0x101b }, + { func101c_chamber4, 0x101c }, + { func101d_chamber5, 0x101d }, + { func101e_chamber6, 0x101e }, + { func101f_chamber7, 0x101f }, + { func1020_chamber8, 0x1020 }, + { func1021_xray_scanning, 0x1021 }, + { func1023_setup_door_locks, 0x1023 }, + { func1024_noop, 0x1024 }, + { func1025_toggle_guards, 0x1025 }, + { func1026_check_records_destroyed, 0x1026 }, + { func1027_check_disguise_worn, 0x1027 }, + { func1028_toggle_mechanic, 0x1028 }, + { func1029_msg_showers, 0x1029 }, + { func102a_msg_temperaturedropping, 0x102a }, + { func102b_msg_airrecycled, 0x102b }, + { func102c_msg_hurry, 0x102c }, + { func142d_start_lifts, 0x142d }, + { func102f_shuffle_disguise, 0x102f }, + { func1030_lift_door_sounds, 0x1030 }, + { func1031_toggle_doorman, 0x1031 }, + { func1032_count_last_room_guards, 0x1032 }, + { func1033_update_buddy_placed_flag, 0x1033 }, + { func1034_setup_rtracker, 0x1034 }, + { func1435_setup_lighting, 0x1435 }, + { func1036_check_door_terminal_destroyed, 0x1036 }, + { func1002_intro, 0x0c00 }, + { func0c01_outro, 0x0c01 }, + { func0401_start_path00, 0x0401 }, + { func0402_start_path01, 0x0402 }, + { func0403_start_path02, 0x0403 }, + { func0404_start_path03, 0x0404 }, + { func0405_start_path04, 0x0405 }, + { func0406_start_path05, 0x0406 }, + { func0407_start_path06, 0x0407 }, + { func0408_start_path07, 0x0408 }, + { func0409_start_path08, 0x0409 }, + { func040a_start_path09, 0x040a }, + { func040b_start_path10, 0x040b }, + { func040c_start_path11, 0x040c }, + { func040d_start_path12, 0x040d }, + { func040e_start_path13, 0x040e }, + { func040f_start_path14, 0x040f }, + { func0410_labtech_showers_sa_pa, 0x0410 }, + { func0411_labtech_showers_agent, 0x0411 }, + { func0412_init_labtech_showers, 0x0412 }, + { func0413_mechanic, 0x0413 }, + { func0414_init_mechanic, 0x0414 }, + { func0415_warehouse_spawner, 0x0415 }, + { func0416_become_unaware, 0x0416 }, + { func0429_spawn_while_xraying, 0x0429 }, + { func042a_init_xray_clone, 0x042a }, + { func042b_xray_clone, 0x042b }, + { func0417_warehouse_clone, 0x0417 }, + { func0418_doorman, 0x0418 }, + { func0419_init_doorman, 0x0419 }, + { func041a_labtech_harrysmate, 0x041a }, + { func041b_labtech_keycardguy, 0x041b }, + { func041c_unused_041c, 0x041c }, + { func041d_unused_041d, 0x041d }, + { func041e_unused_041e, 0x041e }, + { func041f_labtech_lights, 0x041f }, + { func0420_labtech_doors, 0x0420 }, + { func0421_init_labtech_doors, 0x0421 }, + { func0422_labtech_records, 0x0422 }, + { func0423_init_labtech_records, 0x0423 }, + { func0424_alien, 0x0424 }, + { func0425_hiddenguy, 0x0425 }, + { func0426_check_looking_at_alien, 0x0426 }, + { func0427_shock_clone, 0x0427 }, + { func0c01_outro, 0x0428 }, + { func042c_dragon_guard, 0x042c }, + { func042d_superdragon_guard, 0x042d }, + { func042e_biotech_guard, 0x042e }, + { func042e_biotech_guard_alerted, 0x042f }, + { func0432_init_biotech1, 0x0432 }, + { func0433_init_biotech2, 0x0433 }, + { func0430_biotech2, 0x0430 }, + { func0431_biotech1, 0x0431 }, + { NULL, 0 }, +}; + +struct aipaths paths[] = { + { path00, 0, 0 }, + { path01, 1, 0 }, + { path02, 2, 0 }, + { path03, 3, 0 }, + { path04, 4, 0 }, + { path05, 5, 0 }, + { path06, 6, 0 }, + { path07, 7, 0 }, + { path08, 8, 0 }, + { path09, 9, 0 }, + { path10, 10, 0 }, + { path11, 11, 0 }, + { path12, 12, 0 }, + { path13, 13, 0 }, + { path14, 14, 0 }, + { NULL, 0, 0 }, +}; + diff --git a/src/setup/setuplue.c b/src/setup/setuplue.c new file mode 100644 index 000000000..5889ed2ae --- /dev/null +++ b/src/setup/setuplue.c @@ -0,0 +1,3361 @@ +// +// Infiltration +// + +#include "../include/setup.h" + +// Characters +#define CHR_MECHANIC 0x30 +#define CHR_JONATHAN 0x31 +#define CHR_OUTRO_GUARD 0x33 +#define CHR_ROCKETLAUNCHER_GUARD 0x34 + +// Objects +#define OBJ_INTERCEPTOR1 0x02 +#define OBJ_INTERCEPTOR2 0x03 +#define OBJ_INTERCEPTOR3 0x04 +#define OBJ_MAINGATE_SWITCH 0x05 +#define OBJ_ANTENNA 0x07 +#define OBJ_BUG1_JOANNA 0x08 +#define OBJ_ANTENNA_SWITCH 0x09 +#define OBJ_KEYCARD 0x0a +#define OBJ_LIFT1_SWITCH 0x0b +#define OBJ_LIFT2_SWITCH 0x0c +#define OBJ_RADAR_TERMINAL 0x10 +#define OBJ_MAINGATE1 0x13 +#define OBJ_MAINGATE2 0x14 +#define OBJ_MINE1 0x17 +#define OBJ_MINE2 0x18 +#define OBJ_MINE3 0x19 +#define OBJ_MINE4 0x1b +#define OBJ_MINE5 0x1c +#define OBJ_MINE6 0x1d +#define OBJ_BUG2_JOANNA 0x2e +#define OBJ_AUTOGUN_AT_START 0x35 +#define OBJ_BUG1_VELVET 0x36 +#define OBJ_BUG2_VELVET 0x37 +#define OBJ_ROCKETLAUNCHER 0x53 +#define OBJ_EXPLOSIVE_BRICK 0x54 +#define OBJ_HOVERBIKE 0x55 + +// Stage flags +#define STAGEFLAG_INTERCEPTOR1_DESTROYED 0x00000100 +#define STAGEFLAG_INTERCEPTOR2_DESTROYED 0x00000200 +#define STAGEFLAG_INTERCEPTOR3_DESTROYED 0x00000400 +#define STAGEFLAG_COMMSBUG_PLACED 0x00000800 +#define STAGEFLAG_COMMSBUG_MISPLACED 0x00001000 +#define STAGEFLAG_ANTENNA_DESTROYED 0x00002000 +#define STAGEFLAG_ANTENNA_LOWERED 0x00004000 +#define STAGEFLAG_LIFT1_CALLED 0x00008000 +#define STAGEFLAG_LIFT2_CALLED 0x00010000 +#define STAGEFLAG_HANGAR_ACCESSED 0x00020000 +#define STAGEFLAG_MET_JON 0x00040000 +#define STAGEFLAG_RADAR_SHUT_DOWN 0x00080000 +#define STAGEFLAG_EXPLOSIVES_PLACED 0x00200000 +#define STAGEFLAG_TRIGGER_INTERCEPTOR 0x00400000 +#define STAGEFLAG_ENTERED_FINAL_HANGAR 0x00800000 +#define STAGEFLAG_INTRO_FINISHED 0x01000000 +#define STAGEFLAG_LIFT_SWITCHES_DESTROYED 0x04000000 +#define STAGEFLAG_ONE_BUG_WASTED 0x08000000 +#define STAGEFLAG_ANY_LASER_DESTROYED 0x10000000 + +// Functions +#define FUNC_OUTRO 0x040e +#define FUNC_SPAWNED_GUARD 0x040f +#define FUNC_INTRO 0x0410 +#define FUNC_ALERT_WHEN_STOPPED 0x0415 +#define FUNC_MECHANIC 0x0416 +#define FUNC_TRAITOR 0x0417 +#define FUNC_INIT_ALERTED_SPAWNED_GUARD 0x041a +#define FUNC_ALERTED_SPAWNED_GUARD 0x041b +#define FUNC_TEMPLATE_GUARD 0x041c +#define FUNC_TROOPER_UNALERTED 0x041d +#define FUNC_DRAGON_UNALERTED 0x041e +#define FUNC_TROOPER_ALERTED 0x041f +#define FUNC_DRAGON_ALERTED 0x0420 +#define FUNC_ACTIVATE_AUTOGUN 0x0421 +#define FUNC_ACTIVATE_LASERS 0x0424 + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + briefing(0, 0x2c01) + briefing(1, 0x2c00) + briefing(2, 0x2c02) + briefing(3, 0x2c03) + + beginobjective(0, 0x2c09, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Shut down air intercept radar" + complete_flags(STAGEFLAG_RADAR_SHUT_DOWN) + endobjective + + beginobjective(1, 0x2c0a, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Plant comms device on antenna" + complete_flags(STAGEFLAG_COMMSBUG_PLACED) + fail_flags(STAGEFLAG_COMMSBUG_MISPLACED) + fail_flags(STAGEFLAG_ANTENNA_DESTROYED) + endobjective + + beginobjective(2, 0x2c0b, (DIFFBIT_PA | DIFFBIT_PD)) // "Disable all robot interceptors" + complete_flags(STAGEFLAG_INTERCEPTOR1_DESTROYED) + complete_flags(STAGEFLAG_INTERCEPTOR2_DESTROYED) + complete_flags(STAGEFLAG_INTERCEPTOR3_DESTROYED) + endobjective + + beginobjective(3, 0x2c0c, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Gain access to hangar lift" + complete_flags(STAGEFLAG_HANGAR_ACCESSED) + fail_flags(STAGEFLAG_LIFT_SWITCHES_DESTROYED) + endobjective + + beginobjective(4, 0x2c0d, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Make contact with CI spy" + complete_flags(STAGEFLAG_MET_JON) + endobjective + + tag(0x3c, 5) + tag(0x3d, 6) + tag(0x31, 2) + tag(0x0f, 2) + lift(0x0100, MODEL_A51_LIFT_HANGAR, 0x031e, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x031e, 0x031f, 0xffffffff, 0x00000001, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x14000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0321, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001900, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-1, -2, 0, 0) + door(0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0322, 0x10000000, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001900, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-1, -4, 0, 1) + tag(0x39, -2) + tag(0x3e, 5) + tag(0x3f, 6) + tag(0x32, 2) + tag(0x0e, 2) + lift(0x0100, MODEL_A51_LIFT_HANGAR, 0x0324, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0324, 0x0325, 0xffffffff, 0x00000001, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x14000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0327, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001900, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-1, -2, 0, 0) + door(0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0328, 0x10000000, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001900, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-1, -4, 0, 1) + tag(0x38, -2) + door(0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0320, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0326, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x40, 6) + tag(0x41, 6) + tag(0x42, 8) + tag(0x43, 8) + tag(0x33, 1) + lift(0x0100, MODEL_A51_LIFT_CONTROL, 0x0329, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0329, 0x032a, 0xffffffff, 0x00000001, 0x00000005, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x032e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x032f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-2, -3, 0, 0) + link_objects(-2, -4, 0, 0) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x0330, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x0331, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-2, -7, 0, 1) + link_objects(-2, -8, 0, 1) + chr(0x00004200, 0x00, 0x0354, BODY_A51TROOPER, HEAD_RANDOM, FUNC_TROOPER_UNALERTED, -1, -1, 10000, 100, 0x8000ae00, 0x00000100, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRLEEGUN1, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRGRENADE, 0x0000, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_GRENADE, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x01, 0x0355, BODY_A51TROOPER, HEAD_RANDOM, FUNC_TROOPER_UNALERTED, -1, -1, 10000, 100, 0x8000ae00, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRLEEGUN1, 0x0001, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x02, 0x0029, BODY_A51TROOPER, HEAD_RANDOM, 0x0402, -1, -1, 1000, 0, 0x8000ae08, 0x00000000, 0x02, 0x01, -1, 0, 0x02001400) + weapon(0x0100, MODEL_CHRLEEGUN1, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRGRENADE, 0x0002, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_GRENADE, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x03, 0x0012, BODY_A51TROOPER, HEAD_RANDOM, 0x0401, -1, -1, 1000, 0, 0x8000ae08, 0x00000000, 0x02, 0x01, -1, 0, 0x02000500) + weapon(0x0100, MODEL_CHRLEEGUN1, 0x0003, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRGRENADE, 0x0003, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_GRENADE, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x04, 0x0010, BODY_A51TROOPER, HEAD_RANDOM, FUNC_TEMPLATE_GUARD, -1, -1, 1000, 100, 0x8000ae08, 0x00000000, 0x02, 0x01, -1, 0, 0x02000500) + chr(0x00000300, 0x05, 0x0356, BODY_A51TROOPER, HEAD_RANDOM, 0x040d, -1, -1, 1000, 30, 0x10002800, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRLEEGUN1, 0x0005, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000) + chr(0x00000300, 0x06, 0x0357, BODY_A51TROOPER, HEAD_RANDOM, 0x040d, -1, -1, 1000, 30, 0x10002800, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRLEEGUN1, 0x0006, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x07, 0x0055, BODY_A51TROOPER, HEAD_RANDOM, 0x0403, 0x0370, -1, 1000, 100, 0x80028804, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRLEEGUN1, 0x0007, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRGRENADE, 0x0007, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_GRENADE, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x08, 0x004f, BODY_A51TROOPER, HEAD_RANDOM, 0x0403, 0x0371, -1, 1000, 100, 0x80028804, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRLEEGUN1, 0x0008, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRGRENADE, 0x0008, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_GRENADE, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x09, 0x003e, BODY_A51TROOPER, HEAD_RANDOM, 0x0404, -1, -1, 1000, 100, 0xc0080e01, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRLEEGUN1, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0c, 0x036d, BODY_A51TROOPER, HEAD_RANDOM, FUNC_TROOPER_UNALERTED, -1, -1, 2000, 100, 0xa0004800, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRLEEGUN1, 0x000c, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0d, 0x0085, BODY_A51TROOPER, HEAD_RANDOM, FUNC_TROOPER_UNALERTED, -1, -1, 2000, 100, 0xa0004800, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRLEEGUN1, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0e, 0x0089, BODY_A51TROOPER, HEAD_RANDOM, 0x0405, -1, -1, 1000, 100, 0x80082800, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRLEEGUN1, 0x000e, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0f, 0x0092, BODY_A51TROOPER, HEAD_RANDOM, 0x0406, -1, -1, 1000, 100, 0x80002800, 0x00002000, 0x02, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRLEEGUN1, 0x000f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x10, 0x036e, BODY_A51TROOPER, HEAD_RANDOM, FUNC_TROOPER_UNALERTED, -1, -1, 1000, 100, 0xac008800, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRLEEGUN1, 0x0010, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x11, 0x036f, BODY_A51TROOPER, HEAD_RANDOM, FUNC_TROOPER_UNALERTED, -1, -1, 1000, 100, 0x8c008800, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRLEEGUN1, 0x0011, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x12, 0x035a, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_UNALERTED, -1, -1, 1000, 20, 0xc0004800, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0012, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x13, 0x035b, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_UNALERTED, -1, -1, 1000, 20, 0xc0004800, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0013, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00010800, 0x30, 0x0358, BODY_OVERALL, HEAD_RANDOM, FUNC_MECHANIC, -1, -1, 1000, 5, 0x80002400, 0x20000000, 0x80, 0x07, -1, 0, 0x00000000) + tag(0x0a, 1) + key(0x0080, MODEL_KEYCARD, 0x0030, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + rename_object(-1, 0x4b, 0x2c1f, 0x2c20, 0x2c21, 0x2c22, 0x2c23, 0x0000, 0x0000) // "Obtain lift key card." + chr(0x00000200, 0x14, 0x035d, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_UNALERTED, -1, -1, 1000, 100, 0xcc080800, 0x00004000, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x15, 0x0362, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_UNALERTED, -1, -1, 1000, 100, 0xcc080800, 0x00004000, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0015, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x16, 0x035c, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_UNALERTED, -1, -1, 1000, 100, 0xcc080800, 0x00006000, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x17, 0x035e, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_UNALERTED, -1, -1, 1000, 100, 0xcc080800, 0x00004000, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0017, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x18, 0x035f, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_UNALERTED, -1, -1, 1000, 100, 0xc0000800, 0x00000040, 0x02, 0x09, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x19, 0x0361, BODY_A51AIRMAN, HEAD_RANDOM, 0x0407, -1, -1, 1000, 20, 0xc0000800, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0019, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1a, 0x0360, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_UNALERTED, -1, -1, 1000, 20, 0xc0000800, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1c, 0x0363, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_UNALERTED, -1, -1, 1000, 100, 0xc0004800, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x001c, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1d, 0x0364, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_DRAGON_UNALERTED, -1, -1, 1000, 100, 0xc0004a00, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x001d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1e, 0x0365, BODY_A51AIRMAN, HEAD_RANDOM, 0x0408, -1, -1, 1000, 100, 0xe0004800, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x001e, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1f, 0x037b, BODY_A51TROOPER, HEAD_RANDOM, GFUNC_IDLE, 0x007d, -1, 1000, 100, 0x81002000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRLEEGUN1, 0x001f, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x22, 0x037e, BODY_A51TROOPER, HEAD_RANDOM, GFUNC_IDLE, 0x007d, -1, 1000, 100, 0x81002000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRLEEGUN1, 0x0022, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x20, 0x003a, BODY_A51TROOPER, HEAD_RANDOM, GFUNC_IDLE, 0x0077, -1, 1000, 100, 0x89000000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRLEEGUN1, 0x0020, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x21, 0x0033, BODY_A51TROOPER, HEAD_RANDOM, GFUNC_IDLE, 0x0077, -1, 1000, 100, 0x89000000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRLEEGUN1, 0x0021, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x23, 0x01ba, BODY_A51AIRMAN, HEAD_RANDOM, GFUNC_IDLE, 0x007d, -1, 1000, 100, 0x00002800, 0x00002000, 0x02, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0023, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x24, 0x01b2, BODY_A51AIRMAN, HEAD_RANDOM, GFUNC_IDLE, 0x007d, -1, 1000, 100, 0x00002800, 0x00002000, 0x02, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0024, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x25, 0x01ce, BODY_A51AIRMAN, HEAD_RANDOM, 0x0419, 0x007d, -1, 1000, 100, 0x80002000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0025, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00010400, 0x31, 0x0196, BODY_A51AIRMAN, HEAD_JONATHAN, 0x0425, -1, -1, 1000, 100, 0xc0004e00, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDY357, 0x0031, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357MAGNUM, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x32, 0x0197, BODY_A51TROOPER, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 100, 0xc0004e00, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0032, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x33, 0x0199, BODY_A51AIRMAN, HEAD_KEN, 0x0425, -1, -1, 1000, 100, 0xc0004e00, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0033, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x29, 0x0158, BODY_LABTECH, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 100, 0xc0004e00, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + chr(0x00000000, 0x2a, 0x0157, BODY_BIOTECH, HEAD_BIOTECH, GFUNC_IDLE, -1, -1, 1000, 100, 0xc0004e00, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSONICSCREWER, 0x002a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_52, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x2b, 0x0156, BODY_BIOTECH, HEAD_BIOTECH, GFUNC_IDLE, -1, -1, 1000, 100, 0xc0004e00, 0x00000000, 0x02, 0x0a, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSONICSCREWER, 0x002b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_52, 0x00ffffff, 0x00000000) + tag(0x2f, 1) + hover_prop(0x0100, MODEL_HOVERBED, 0x0155, 0x05120101, 0x00304300, 0x00100003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + chr(0x00000000, 0x34, 0x040f, BODY_A51TROOPER, HEAD_RANDOM, GFUNC_IDLE, 0x007d, -1, 1000, 100, 0x81002000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDYROCKET, 0x0034, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_ROCKETLAUNCHER, 0x00ffffff, 0x00000000) + tag(0x53, -1) + chr(0x00000000, 0x35, 0x009f, BODY_AREA51GUARD, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 100, 0x04003000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRLEEGUN1, 0x0035, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRLEEGUN1, 0x0035, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000) + link_collectibles(-1, -2) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x027f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x027e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x027d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x027c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x027a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x027b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0278, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0279, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0277, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0276, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0274, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0275, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0273, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0272, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0270, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0271, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x026f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x026e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0266, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0267, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02a6, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00001999, 0x00000004, 0x00000040, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x11, 2) + tag(0x12, 2) + door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x02af, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x02b0, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x13, 2) + tag(0x14, 2) + door(0x0100, MODEL_A51GATE_L, 0x02b5, 0x10000010, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000ccc, 0x00014000, 0x00000111, 0x00000000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51GATE_R, 0x02b6, 0x10000010, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000ccc, 0x00014000, 0x00000111, 0x00000000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02b3, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02b4, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x028c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x028d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x0291, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02a9, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x00, 1) + autogun(0x0100, MODEL_A51_TURRET, 0x0380, 0x00000101, 0x00000300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000bb8, 0x00000000, 0x00000000, 0x0fff0000, 0x00280000, 0x00000000, 0x00020000, 0xfffe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000002d8, 0x001e0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + autogun(0x0100, MODEL_A51_TURRET, 0x0382, 0x00000101, 0x00000300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000bb8, 0x00000000, 0x00000000, 0x0fff0000, 0x002e0000, 0x00000000, 0x00020000, 0xfffe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000002d8, 0x001e0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x01, 1) + autogun(0x0100, MODEL_A51_TURRET, 0x0383, 0x00000101, 0x00000300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000bb8, 0x00000000, 0x00000000, 0x0fff0000, 0x00260000, 0x00000000, 0x00020000, 0xfffe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000016c, 0x001e0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x35, 1) + autogun(0x0100, MODEL_A51_TURRET, 0x0381, 0x00000101, 0x00000300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000, 0x00150000, 0x00000000, 0x00020000, 0xfffe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000002d8, 0x001e0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + autogun(0x00c0, MODEL_A51_ROOFGUN, 0x0401, 0x00000004, 0x000020e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x03660000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000da, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + autogun(0x00c0, MODEL_A51_ROOFGUN, 0x0402, 0x00000004, 0x000020e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x03680000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000da, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + autogun(0x00c0, MODEL_A51_ROOFGUN, 0x0403, 0x00000004, 0x000020e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x03670000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000da, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + autogun(0x00c0, MODEL_A51_ROOFGUN, 0x0404, 0x00000004, 0x000020e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x03690000, 0x00000000, 0x000031c7, 0xffffce39, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000da, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + autogun(0x00c0, MODEL_A51_ROOFGUN, 0x0401, 0x00000004, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x03660000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000e38, 0x003c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + autogun(0x00c0, MODEL_A51_ROOFGUN, 0x0402, 0x00000004, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x03680000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000e38, 0x003c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + autogun(0x00c0, MODEL_A51_ROOFGUN, 0x0403, 0x00000004, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x03670000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000e38, 0x003c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + autogun(0x00c0, MODEL_A51_ROOFGUN, 0x0404, 0x00000004, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x03690000, 0x00000000, 0x000031c7, 0xffffce39, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000e38, 0x003c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x55, 1) + hoverbike(0x0100, MODEL_HOVBIKE, 0x037a, 0x05120101, 0x00304300, 0x02000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x01010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x02, 1) + armed_vehicle(0x0a00, MODEL_A51INTERCEPTOR, 0x0359, 0x20000108, 0x00080000, 0x00008200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, 0x0000040c, 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) + tag(0x03, 1) + armed_vehicle(0x0a00, MODEL_A51INTERCEPTOR, 0x036c, 0x20000108, 0x00080000, 0x00008200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, 0x0000040c, 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) + tag(0x04, 1) + armed_vehicle(0x0a00, MODEL_A51INTERCEPTOR, 0x034e, 0x20000108, 0x00080000, 0x00008200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, 0x0000040a, 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) + tag(0x05, 1) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x0409, 0x10000002, 0x00000800, 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, 0xffffff12) + tag(0x08, 1) + weapon(0x0180, MODEL_CHRBUG, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_COMMSRIDER, 0x00ffffff, 0x00000000) + rename_object(-1, 0x3d, 0x2c15, 0x2c16, 0x2c17, 0x2c18, 0x2c19, 0x0000, 0x0000) // "Obtain comms rider." + tag(0x36, 1) + weapon(0x0180, MODEL_CHRBUG, 0xffff, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_COMMSRIDER, 0x00ffffff, 0x00000000) + rename_object(-1, 0x3d, 0x2c15, 0x2c16, 0x2c17, 0x2c18, 0x2c19, 0x0000, 0x0000) // "Obtain comms rider." + tag(0x2e, 1) + stdobject(0x0100, MODEL_CHRBUG, 0x035b, 0x012404e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + rename_object(-1, 0x3b, 0x2c30, 0x2c31, 0x2c32, 0x2c33, 0x2c34, 0x0000, 0x0000) // "Obtain explosive." + tag(0x37, 1) + stdobject(0x0100, MODEL_CHRBUG, 0x035b, 0x013004e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + rename_object(-1, 0x3b, 0x2c30, 0x2c31, 0x2c32, 0x2c33, 0x2c34, 0x0000, 0x0000) // "Obtain explosive." + tag(0x09, 1) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x0406, 0x10000002, 0x00002001, 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, 0xffffff13) + tag(0x0b, 1) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x0407, 0x10000002, 0x00000001, 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, 0xffffff03) + tag(0x0c, 1) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x0408, 0x10000002, 0x00000001, 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, 0xffffff03) + tag(0x10, 1) + multimonitor(0x0099, MODEL_PD_CONSOLE, 0x04f7, 0x000201a1, 0x00000800, 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, 0x03030000) + tag(0x54, 1) + stdobject(0x000c, MODEL_EXPLOSIVEBRICK, 0x036b, 0x01520408, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x17, 1) + remote_mine(0x0100, MODEL_CHRPROXIMITYMINE, 0x040c, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x21000000, 0x00000001, 0x00000000) + tag(0x18, 1) + remote_mine(0x0100, MODEL_CHRPROXIMITYMINE, 0x040d, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x21000000, 0x00000001, 0x00000000) + tag(0x19, 1) + remote_mine(0x0100, MODEL_CHRPROXIMITYMINE, 0x040e, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x21000000, 0x00000001, 0x00000000) + tag(0x1b, 1) + remote_mine(0x0100, MODEL_CHRPROXIMITYMINE, 0x0410, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x21000000, 0x00000001, 0x00000000) + tag(0x1c, 1) + remote_mine(0x0100, MODEL_CHRPROXIMITYMINE, 0x0411, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x21000000, 0x00000001, 0x00000000) + tag(0x1d, 1) + remote_mine(0x0100, MODEL_CHRPROXIMITYMINE, 0x0412, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x21000000, 0x00000001, 0x00000000) + stdobject(0x0100, MODEL_BARREL, 0x0413, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0414, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0415, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0416, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0417, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0418, 0x00000501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x0311, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0312, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE3, 0x0313, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x0314, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x0307, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0306, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE3, 0x0305, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x0304, 0x00020501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x02f9, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x02fa, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x02fb, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x02fc, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE3, 0x02fd, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x02fe, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x02ff, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE3, 0x0300, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x0301, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0302, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE3, 0x0303, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x0309, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x030a, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE3, 0x030b, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x030c, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x030d, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x030e, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x030f, 0x000201e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x0310, 0x000201e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x02f8, 0x000201e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x07, 1) + lift(0x0100, MODEL_A51DISH, 0x033b, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x033b, 0x033a, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0446, 0x14020b62, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0096012c, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0445, 0x14020b62, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0096012c, 0x0000ffff, 0x00000000) + tag(0x1e, 7) + tag(0x1f, 7) + tag(0x20, 7) + tag(0x21, 7) + tag(0x22, 7) + tag(0x23, 7) + tag(0x24, 7) + door(0x0100, MODEL_LASDOOR, 0x044a, 0x06000400, 0x02000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x044b, 0x06000400, 0x02000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x044c, 0x06000400, 0x02000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x044d, 0x06000400, 0x02000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x044e, 0x06000400, 0x02000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x044f, 0x06000400, 0x02000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_LASDOOR, 0x0450, 0x06000400, 0x02000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x25, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0050, 0x012204e1, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x26, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0050, 0x012204e1, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x27, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0050, 0x012204e1, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x28, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0050, 0x012204e1, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x29, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0050, 0x012204e1, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x2a, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0050, 0x012204e1, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x2b, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0050, 0x012204e1, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x2c, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0050, 0x012204e1, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x2d, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0050, 0x012204e1, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x51, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x04e8, 0x012204e1, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04e2, 0x000005e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04e3, 0x000005e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04e4, 0x000005e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04e5, 0x000005e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04e6, 0x000005e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04e7, 0x000005e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04e8, 0x000005e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04e9, 0x000005e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04ea, 0x000005e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04eb, 0x000005e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x040b, 0x10000002, 0x00000800, 0x00000000, 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, 0xffffff12) + stdobject(0x0100, MODEL_A51TABLE, 0x04d5, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x44, 2) + tag(0x45, 2) + stdobject(0x0100, MODEL_A51_CRATE1, 0x04f8, 0x000004e8, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x04f9, 0x000004e8, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x46, 2) + tag(0x47, 2) + stdobject(0x0100, MODEL_A51_CRATE1, 0x04fa, 0x000004e8, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x04fb, 0x000004e8, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x48, 2) + tag(0x49, 2) + stdobject(0x0100, MODEL_A51_CRATE1, 0x04fc, 0x000004e8, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x04fd, 0x000004e8, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x4a, 2) + tag(0x4b, 2) + stdobject(0x0100, MODEL_A51_CRATE1, 0x04fe, 0x000004e8, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x04ff, 0x000004e8, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x4c, 2) + tag(0x4d, 2) + stdobject(0x0100, MODEL_A51_CRATE1, 0x0500, 0x000004e8, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x0501, 0x000004e8, 0x00002010, 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) + stdobject(0x0100, MODEL_A51_CRATE1, 0x0502, 0x000004e8, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x0503, 0x000004e8, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x50, 2) + tag(0x52, 2) + stdobject(0x0100, MODEL_A51_CRATE1, 0x0504, 0x000004e8, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x0505, 0x000004e8, 0x00002010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x3a, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x0565, 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(0x3b, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x0096, 0x00000001, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000) + endprops +}; + +u8 intro[] = { + spawn(0x000f) + intro_weapon(WEAPON_FALCON2, -1) + ammo(AMMOTYPE_PISTOL, 100) + outfit(OUTFIT_DEFAULT) + endintro +}; + +s32 path34[] = { + 0x0560, + 0x0563, + 0x0562, + 0x0561, + -1, +}; + +s32 path00[] = { + 0x001a, + 0x001d, + 0x001e, + 0x0022, + 0x0024, + 0x0025, + 0x0026, + 0x0025, + 0x0024, + 0x0022, + 0x001e, + 0x001d, + 0x001a, + 0x0019, + 0x0013, + -1, +}; + +s32 path01[] = { + 0x0026, + 0x0025, + 0x0024, + 0x0022, + 0x001e, + 0x001d, + 0x001a, + 0x0019, + 0x0013, + 0x0019, + 0x001a, + 0x001d, + 0x001e, + 0x0022, + 0x0024, + 0x0025, + -1, +}; + +s32 path02[] = { + 0x0055, + 0x0054, + 0x004f, + 0x004e, + -1, +}; + +s32 path03[] = { + 0x003f, + 0x0077, + 0x0078, + 0x0079, + 0x007a, + 0x007b, + 0x007c, + 0x007d, + 0x007e, + 0x007f, + 0x007e, + 0x007d, + 0x007c, + 0x007b, + 0x007a, + 0x0079, + 0x0078, + 0x0077, + -1, +}; + +s32 path04[] = { + 0x008d, + 0x008e, + 0x0093, + 0x008e, + 0x0092, + 0x0091, + 0x0090, + 0x008c, + -1, +}; + +s32 path05[] = { + 0x0092, + 0x008e, + 0x0093, + 0x008e, + 0x008d, + 0x008c, + 0x0090, + 0x0091, + -1, +}; + +s32 unregistered_path1[] = { + 0x01dc, + 0x01b9, + 0x01b8, + 0x01b7, + 0x01b6, + 0x01b5, + 0x01b3, + 0x01b5, + 0x01b6, + 0x01b7, + 0x01b8, + 0x01b9, + -1, +}; + +s32 unregistered_path2[] = { + 0x01d6, + 0x01d6, + 0x01d4, + 0x01d3, + 0x01d2, + 0x01d1, + 0x01d2, + 0x01d3, + 0x01d4, + 0x01d6, + -1, +}; + +s32 path08[] = { + 0x0506, + 0x0507, + -1, +}; + +s32 path09[] = { + 0x0508, + 0x0509, + 0x050a, + -1, +}; + +s32 path10[] = { + 0x050b, + 0x050c, + 0x050d, + 0x050e, + 0x050f, + 0x0510, + -1, +}; + +s32 path11[] = { + 0x0511, + 0x0512, + 0x0513, + 0x0514, + -1, +}; + +s32 path12[] = { + 0x0515, + 0x0516, + 0x0517, + 0x0518, + 0x0519, + -1, +}; + +s32 path13[] = { + 0x051a, + 0x051b, + 0x051c, + 0x051d, + 0x051e, + 0x051f, + -1, +}; + +s32 path14[] = { + 0x0520, + 0x0521, + 0x0522, + 0x0523, + 0x0524, + 0x0525, + -1, +}; + +s32 path15[] = { + 0x0526, + 0x0527, + 0x0528, + 0x0529, + 0x052a, + 0x052b, + -1, +}; + +s32 path16[] = { + 0x052c, + 0x052d, + 0x052e, + 0x052f, + -1, +}; + +s32 path17[] = { + 0x0530, + 0x0531, + 0x0532, + 0x0533, + 0x0534, + 0x0535, + -1, +}; + +s32 path18[] = { + 0x0536, + 0x0537, + 0x0538, + 0x0539, + -1, +}; + +s32 path19[] = { + 0x053a, + 0x053b, + 0x053c, + 0x053d, + 0x053e, + 0x053f, + 0x0540, + 0x0541, + -1, +}; + +s32 path20[] = { + 0x0542, + 0x0543, + 0x0544, + -1, +}; + +s32 path21[] = { + 0x0545, + 0x0546, + 0x0547, + -1, +}; + +s32 path22[] = { + 0x0548, + 0x0553, + -1, +}; + +s32 path23[] = { + 0x0549, + 0x0552, + -1, +}; + +s32 path24[] = { + 0x054a, + 0x0551, + -1, +}; + +s32 path25[] = { + 0x054b, + 0x0550, + -1, +}; + +s32 path26[] = { + 0x054e, + 0x054d, + -1, +}; + +s32 path27[] = { + 0x054f, + 0x054c, + -1, +}; + +s32 path28[] = { + 0x0554, + 0x055f, + -1, +}; + +s32 path29[] = { + 0x0555, + 0x055e, + -1, +}; + +s32 path30[] = { + 0x0556, + 0x055d, + -1, +}; + +s32 path31[] = { + 0x0557, + 0x055c, + -1, +}; + +s32 path32[] = { + 0x0559, + 0x055a, + -1, +}; + +s32 path33[] = { + 0x0558, + 0x055b, + -1, +}; + +struct aipaths paths[] = { + { path00, 0, 0 }, + { path01, 1, 0 }, + { path02, 2, 1 }, + { path03, 3, 0 }, + { path04, 4, 0 }, + { path05, 5, 0 }, + { path08, 8, 0 }, + { path09, 9, 2 }, + { path10, 10, 2 }, + { path11, 11, 2 }, + { path12, 12, 2 }, + { path13, 13, 2 }, + { path14, 14, 2 }, + { path15, 15, 2 }, + { path16, 16, 2 }, + { path17, 17, 2 }, + { path18, 18, 2 }, + { path19, 19, 2 }, + { path20, 20, 2 }, + { path21, 21, 2 }, + { path22, 22, 2 }, + { path23, 23, 2 }, + { path24, 24, 2 }, + { path25, 25, 2 }, + { path26, 26, 2 }, + { path27, 27, 2 }, + { path28, 28, 2 }, + { path29, 29, 2 }, + { path30, 30, 2 }, + { path31, 31, 2 }, + { path32, 32, 2 }, + { path33, 33, 2 }, + { path34, 34, 2 }, + { NULL, 0, 0 }, +}; + +u8 func0426_8420[] = { + try_inherit_properties(0x04, /*goto*/ 0x2e) + label(0x2e) + set_function(CHR_SELF, GFUNC_UNALERTED_0004) + endfunction +}; + +#define init_path(pathid) \ + set_chr_dodge_rating(2, 0x0a) \ + set_accuracy(6) \ + set_reaction_speed(50) \ + set_chr_health(CHR_SELF, 40) \ + set_armor(0) \ + set_recovery_speed(0) \ + set_shield(0) \ + assign_path(pathid) \ + start_path \ + set_function(CHR_SELF, GFUNC_UNALERTED_0004) + + + +u8 func0401_start_path00[] = { + init_path(0) + endfunction +}; + +u8 func0402_start_path01[] = { + init_path(1) + endfunction +}; + +u8 func0403_start_path02[] = { + init_path(2) + endfunction +}; + +u8 func0404_start_path03[] = { + init_path(3) + endfunction +}; + +u8 func0405_start_path04[] = { + init_path(4) + endfunction +}; + +u8 func0406_start_path05[] = { + init_path(5) + endfunction +}; + +u8 func0407_start_path06[] = { + assign_path(6) + start_path + set_function(CHR_SELF, GFUNC_UNALERTED_0004) + endfunction +}; + +u8 func0408_start_path07[] = { + assign_path(7) + start_path + set_function(CHR_SELF, GFUNC_UNALERTED_0004) + endfunction +}; + +u8 func0409_set_rotor_speed[] = { + set_rotor_speed(0x026c, 0x1c, 0x20) + beginloop(0x04) + endloop(0x04) + + endfunction +}; + +u8 func040b_stop_vehicle[] = { + set_vehicle_speed(0, 1) + + beginloop(0x04) + endloop(0x04) + + endfunction +}; + +u8 func0c00_init_intro[] = { + set_return_function(CHR_SELF, GFUNC_END_CINEMA) + set_function(CHR_SELF, FUNC_INTRO) + endfunction +}; + +u8 func140e_check_interceptors_destroyed[] = { + set_object_flag_bank0(OBJ_AUTOGUN_AT_START, OBJECTFLAG0_DEACTIVATED) + + beginloop(0x04) + if_object_in_good_condition(OBJ_INTERCEPTOR1, /*goto*/ 0x2e) + if_stage_flag_eq(STAGEFLAG_INTERCEPTOR1_DESTROYED, TRUE, /*goto*/ 0x2e) + set_stage_flag(STAGEFLAG_INTERCEPTOR1_DESTROYED) + message(CHR_JOANNA, 0x2c13) // "Robot interceptor disabled." + + label(0x2e) + if_object_in_good_condition(OBJ_INTERCEPTOR2, /*goto*/ 0x2e) + if_stage_flag_eq(STAGEFLAG_INTERCEPTOR2_DESTROYED, TRUE, /*goto*/ 0x2e) + set_stage_flag(STAGEFLAG_INTERCEPTOR2_DESTROYED) + message(CHR_JOANNA, 0x2c13) // "Robot interceptor disabled." + + label(0x2e) + if_object_in_good_condition(OBJ_INTERCEPTOR3, /*goto*/ 0x2e) + if_stage_flag_eq(STAGEFLAG_INTERCEPTOR3_DESTROYED, TRUE, /*goto*/ 0x2e) + set_stage_flag(STAGEFLAG_INTERCEPTOR3_DESTROYED) + message(CHR_JOANNA, 0x2c13) // "Robot interceptor disabled." + + label(0x2e) + if_stage_flag_eq(STAGEFLAG_INTERCEPTOR1_DESTROYED, FALSE, /*goto*/ 0x2e) + if_stage_flag_eq(STAGEFLAG_INTERCEPTOR2_DESTROYED, FALSE, /*goto*/ 0x2e) + if_stage_flag_eq(STAGEFLAG_INTERCEPTOR3_DESTROYED, FALSE, /*goto*/ 0x2e) + message(CHR_JOANNA, 0x2c14) // "All robot interceptors disabled." + + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2e) + endloop(0x04) + + endfunction +}; + +u8 func100c_maingate_switch[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_door_state(OBJ_MAINGATE1, DOORSTATE_CLOSING, /*goto*/ 0x2e) + goto_next(0x06) + + label(0x2e) + set_object_image(OBJ_MAINGATE_SWITCH, 0x00, 0x12) + label(0x06) + if_chr_activated_object(CHR_P1P2, OBJ_MAINGATE_SWITCH, /*goto*/ 0x2e) + reloop(0x04) + + label(0x2e) + assign_sound(0x043f, CHANNEL_7) + play_sound_from_entity(CHANNEL_7, OBJ_MAINGATE_SWITCH, 0x012c, 0x0190, 0x00) + set_object_image(OBJ_MAINGATE_SWITCH, 0x00, 0x13) + if_door_state(OBJ_MAINGATE1, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x2e) + message(CHR_P1P2, 0x2c2b) // "Main gate has been opened." + open_door(OBJ_MAINGATE1) + open_door(OBJ_MAINGATE2) + restart_timer + + beginloop(0x09) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + reloop(0x04) + + label(0x2e) + assign_sound(0x043f, CHANNEL_7) + play_sound_from_entity(CHANNEL_7, OBJ_MAINGATE_SWITCH, 0x012c, 0x0190, 0x00) + set_object_image(OBJ_MAINGATE_SWITCH, 0x00, 0x12) + message(CHR_P1P2, 0x2c2c) // "Main gate has been closed." + close_door(OBJ_MAINGATE1) + close_door(OBJ_MAINGATE2) + restart_timer + + beginloop(0x0a) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x0a) + + label(0x06) + endloop(0x04) + + endfunction +}; + +u8 func1400_give_bugs[] = { + yield + set_chr_alliance(CHR_COUNTEROP, ALLIANCE_ENEMY) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2e) + give_object_to_chr(OBJ_BUG1_JOANNA, CHR_JOANNA) + label(0x2e) + give_object_to_chr(OBJ_BUG2_JOANNA, CHR_JOANNA) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x2e) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2e) + give_object_to_chr(OBJ_BUG1_VELVET, CHR_VELVET) + label(0x2e) + give_object_to_chr(OBJ_BUG2_VELVET, CHR_VELVET) + set_function(CHR_SELF, GFUNC_REBUILD_GROUPS) + label(0x2e) + set_function(CHR_SELF, GFUNC_REBUILD_GROUPS) + endfunction +}; + +#define check_bug_wasted(chr) \ + yield \ + beginloop(0x00) \ + if_ammo_quantity_lt(chr, AMMOTYPE_BUG, 1, /*goto*/ 0x2e) \ + endloop(0x00) \ + \ + beginloop(0x2e) \ + if_weapon_thrown(WEAPON_COMMSRIDER, /*goto*/ 0x06) \ + endloop(0x2e) \ + \ + label(0x06) \ + restart_timer \ + \ + beginloop(0x09) \ + if_weapon_thrown_on_object(WEAPON_COMMSRIDER, OBJ_ANTENNA, /*goto*/ 0x0a) \ + if_timer_gt(120, /*goto*/ 0x0b) \ + endloop(0x09) \ + \ + label(0x0a) \ + set_stage_flag(STAGEFLAG_COMMSBUG_PLACED) \ + message(chr, 0x2c1a) /* "Communications bug placed correctly." */ \ + set_function(CHR_SELF, GFUNC_IDLE) \ + \ + label(0x0b) \ + if_stage_flag_eq(STAGEFLAG_ONE_BUG_WASTED, TRUE, /*goto*/ 0x2e) \ + set_stage_flag(STAGEFLAG_ONE_BUG_WASTED) \ + set_function(CHR_SELF, GFUNC_IDLE) \ + \ + label(0x2e) \ + set_stage_flag(STAGEFLAG_COMMSBUG_MISPLACED) \ + message(chr, 0x2c1b) /* "Communications bug placed incorrectly." */ \ + set_function(CHR_SELF, GFUNC_IDLE) + + + +/** + * @unused + */ +u8 func0422_check_bug_wasted_target[] = { + check_bug_wasted(TARGET_CHR) + endfunction +}; + +u8 func1003_check_bug_wasted_joanna[] = { + set_target_chr(CHR_JOANNA) + check_bug_wasted(CHR_JOANNA) + endfunction +}; + +u8 func1023_check_bug_wasted_velvet[] = { + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x2e) + set_target_chr(CHR_VELVET) + goto_next(0x06) + + label(0x2e) + set_stage_flag(STAGEFLAG_ONE_BUG_WASTED) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x06) + check_bug_wasted(CHR_VELVET) + endfunction +}; + +u8 func1004_check_antenna_destroyed[] = { + beginloop(0x04) + if_object_in_good_condition(OBJ_ANTENNA, /*goto*/ 0x2e) + message(CHR_JOANNA, 0x2c1c) // "Antenna has been destroyed." + set_stage_flag(STAGEFLAG_ANTENNA_DESTROYED) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2e) + endloop(0x04) + + endfunction +}; + +u8 func1405_antenna_switch[] = { + set_object_flag_bank0(OBJ_ANTENNA, OBJECTFLAG0_DEACTIVATED) + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_ANTENNA_SWITCH, /*goto*/ 0x2e) + reloop(0x04) + + label(0x2e) + if_stage_flag_eq(STAGEFLAG_ANTENNA_LOWERED, TRUE, /*goto*/ 0x06) + play_sound_from_object2(CHANNEL_9, OBJ_ANTENNA_SWITCH, 0x801e, 0x00, 0x00) + play_sound_from_object2(CHANNEL_1, OBJ_ANTENNA, 0x00cd, 0x00, 0x02) + set_object_image(OBJ_ANTENNA_SWITCH, 0x00, 0x12) + unset_object_flag_bank0(OBJ_ANTENNA, OBJECTFLAG0_DEACTIVATED) + message(CHR_P1P2, 0x2c1e) // "Antenna lowered." + set_stage_flag(STAGEFLAG_ANTENNA_LOWERED) + restart_timer + + beginloop(0x09) + if_timer_gt(20, /*goto*/ 0x2e) + reloop(0x09) + + label(0x2e) + if_lift_stationary(OBJ_ANTENNA, /*goto*/ 0x2e) + endloop(0x09) + + label(0x2e) + mute_channel(CHANNEL_1) + play_sound_from_object2(CHANNEL_9, OBJ_ANTENNA_SWITCH, 0x801f, 0x00, 0x00) + set_object_flag_bank0(OBJ_ANTENNA, OBJECTFLAG0_DEACTIVATED) + reloop(0x04) + + label(0x06) + play_sound_from_object2(CHANNEL_9, OBJ_ANTENNA_SWITCH, 0x801e, 0x00, 0x00) + play_sound_from_object2(CHANNEL_1, OBJ_ANTENNA, 0x00cd, 0x00, 0x02) + set_object_image(OBJ_ANTENNA_SWITCH, 0x00, 0x13) + unset_object_flag_bank0(OBJ_ANTENNA, OBJECTFLAG0_DEACTIVATED) + unset_stage_flag(STAGEFLAG_ANTENNA_LOWERED) + message(CHR_P1P2, 0x2c1d) // "Antenna raised." + restart_timer + + beginloop(0x0a) + if_timer_gt(20, /*goto*/ 0x2e) + reloop(0x0a) + + label(0x2e) + if_lift_stationary(OBJ_ANTENNA, /*goto*/ 0x2e) + endloop(0x0a) + + label(0x2e) + mute_channel(CHANNEL_1) + play_sound_from_object2(CHANNEL_9, OBJ_ANTENNA_SWITCH, 0x801f, 0x00, 0x00) + set_object_flag_bank0(OBJ_ANTENNA, OBJECTFLAG0_DEACTIVATED) + endloop(0x04) + + endfunction +}; + +u8 func1006_lift_switches[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_LIFT1_SWITCH, /*goto*/ 0x09) + if_chr_activated_object(CHR_P1P2, OBJ_LIFT2_SWITCH, /*goto*/ 0x0a) + reloop(0x04) + + label(0x09) + assign_sound(0x043f, CHANNEL_7) + play_sound_from_entity(CHANNEL_7, OBJ_LIFT1_SWITCH, 0x012c, 0x0190, 0x00) + if_chr_has_object(CHR_P1P2, OBJ_KEYCARD, /*goto*/ 0x2e) + message(CHR_P1P2, 0x2c24) // "Lift access denied - key card needed." + goto_next(0x0b) + + label(0x2e) + set_object_image(OBJ_LIFT1_SWITCH, 0x00, 0x13) + if_stage_flag_eq(STAGEFLAG_LIFT1_CALLED, TRUE, /*goto*/ 0x06) + set_stage_flag(STAGEFLAG_LIFT1_CALLED) + open_door(0x0e) + open_door(0x38) + unlock_door(0x0e, 0x02) + unlock_door(0x38, 0x02) + message(CHR_P1P2, 0x2c25) // "Key card accepted - lift operational." + goto_next(0x0b) + + label(0x06) + message(CHR_P1P2, 0x2c26) // "Lift is fully operational." + goto_next(0x0b) + + label(0x0a) + assign_sound(0x043f, CHANNEL_7) + play_sound_from_entity(CHANNEL_7, OBJ_LIFT2_SWITCH, 0x012c, 0x0190, 0x00) + if_chr_has_object(CHR_JOANNA, OBJ_KEYCARD, /*goto*/ 0x2e) + message(CHR_P1P2, 0x2c24) // "Lift access denied - key card needed." + goto_next(0x0b) + + label(0x2e) + set_object_image(OBJ_LIFT2_SWITCH, 0x00, 0x13) + if_stage_flag_eq(STAGEFLAG_LIFT2_CALLED, TRUE, /*goto*/ 0x06) + set_stage_flag(STAGEFLAG_LIFT2_CALLED) + open_door(0x0f) + open_door(0x39) + yield + yield + unlock_door(0x0f, 0x02) + unlock_door(0x39, 0x02) + message(CHR_P1P2, 0x2c25) // "Key card accepted - lift operational." + goto_next(0x0b) + + label(0x06) + message(CHR_P1P2, 0x2c26) // "Lift is fully operational." + goto_next(0x0b) + + label(0x0b) + restart_timer + + beginloop(0x0c) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x0c) + + label(0x06) + endloop(0x04) + + endfunction +}; + +u8 func1007_check_hangar_accessed[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0042, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0043, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + set_stage_flag(STAGEFLAG_HANGAR_ACCESSED) + message(CHR_P1P2, 0x2c27) // "Hangar has been accessed." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1008_check_end_level[] = { + beginloop(0x04) + if_door_state(0x11, (DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING), /*goto*/ 0x09) + if_door_state(0x12, (DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING), /*goto*/ 0x09) + endloop(0x04) + + beginloop(0x09) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0060, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + message(CHR_P1P2, 0x2c28) // "Met up with CI agent." + set_stage_flag(STAGEFLAG_MET_JON) + yield + yield + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x2e) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x2e) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x2e) + goto_next(0x06) + + label(0x2e) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x2e) + if_chr_dying(CHR_VELVET, /*goto*/ 0x2e) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x2e) + goto_next(0x06) + + label(0x2e) + 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 +}; + +u8 func1009_check_radar_shut_down[] = { + beginloop(0x04) + if_object_in_good_condition(OBJ_RADAR_TERMINAL, /*goto*/ 0x06) + goto_next(0x2e) + label(0x06) + endloop(0x04) + + label(0x2e) + message(CHR_JOANNA, 0x2c29) // "Air intercept radar shut down." + mute_channel(CHANNEL_0) + set_stage_flag(STAGEFLAG_RADAR_SHUT_DOWN) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100b_final_hangar[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_objective_complete(0, /*goto*/ 0x2e) + reloop(0x04) + + label(0x2e) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2e) + if_objective_complete(1, /*goto*/ 0x2e) + reloop(0x04) + + label(0x2e) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2e) + if_objective_complete(2, /*goto*/ 0x2e) + reloop(0x04) + + label(0x2e) + if_objective_complete(3, /*goto*/ 0x2e) + reloop(0x04) + + label(0x2e) + if_chr_distance_to_pad_lt(CHR_P1P2, 200, 0x01d2, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + set_stage_flag(STAGEFLAG_ENTERED_FINAL_HANGAR) + play_x_music(CHANNEL_10, 60) + restart_timer + unlock_door(0x11, 0x08) + unlock_door(0x12, 0x08) + try_spawn_chr(BODY_A51AIRMAN, HEAD_RANDOM, 0x01c6, 0x0411, 0x00000210, /*goto*/ 0x09) + + beginloop(0x09) + if_timer_gt(30, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + try_spawn_chr(BODY_A51AIRMAN, HEAD_RANDOM, 0x01c6, 0x0412, 0x00000210, /*goto*/ 0x0a) + + beginloop(0x0a) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x0a) + + label(0x06) + try_spawn_chr(BODY_A51AIRMAN, HEAD_RANDOM, 0x01c6, 0x0413, 0x00000210, /*goto*/ 0x0b) + + beginloop(0x0b) + if_timer_gt(90, /*goto*/ 0x06) + endloop(0x0b) + + label(0x06) + try_spawn_chr(BODY_A51AIRMAN, HEAD_RANDOM, 0x01c6, 0x0414, 0x00000210, /*goto*/ 0x0c) + + // @bug: This timer check will pass immediately. + // It was probably intended to be 120. + beginloop(0x0c) + if_timer_gt(1, /*goto*/ 0x06) + endloop(0x0c) + + label(0x06) + + // This guard will shoot the spawned guards above, but this guard is NOT Jon + beginloop(0x60) + try_spawn_chr(BODY_A51AIRMAN, HEAD_RANDOM, 0x01c6, FUNC_TRAITOR, 0x00000210, /*goto*/ 0x0d) + endloop(0x60) + + label(0x0d) + yield + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0411_init_hangar_guard1[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(8) + set_reaction_speed(30) + set_chr_health(CHR_SELF, 40) + set_armor(10) + set_recovery_speed(35) + set_shield(0) + set_group(0x0b) + set_self_flag_bankx(CHRFLAG1_00080000, BANK_1) + set_self_flag_bank3(CHRFLAG3_00000040) + set_chr_id(0x2c) + set_self_flag_bankx(CHRFLAG0_10000000, BANK_0) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + try_draw_weapon(MODEL_CHRDRAGON, WEAPON_DRAGON, 0x00000000, /*goto*/ 0x06) + label(0x06) + jog_to_pad(0x0420) + yield + set_function(CHR_SELF, FUNC_ALERT_WHEN_STOPPED) + endfunction +}; + +u8 func0412_init_hangar_guard2[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(8) + set_reaction_speed(30) + set_chr_health(CHR_SELF, 40) + set_armor(10) + set_recovery_speed(35) + set_shield(0) + set_self_flag_bankx(CHRFLAG1_00080000, BANK_1) + set_group(0x0b) + set_self_flag_bank3(CHRFLAG3_00000040) + set_chr_id(0x2d) + set_self_flag_bankx(CHRFLAG0_10000000, BANK_0) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + try_draw_weapon(MODEL_CHRDRAGON, WEAPON_DRAGON, 0x00000000, /*goto*/ 0x06) + label(0x06) + jog_to_pad(0x041f) + yield + set_function(CHR_SELF, FUNC_ALERT_WHEN_STOPPED) + endfunction +}; + +u8 func0413_init_hangar_guard3[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(8) + set_reaction_speed(30) + set_chr_health(CHR_SELF, 40) + set_armor(10) + set_recovery_speed(35) + set_shield(0) + set_self_flag_bankx(CHRFLAG1_00080000, BANK_1) + set_group(0x0b) + set_self_flag_bank3(CHRFLAG3_00000040) + set_chr_id(0x2e) + set_self_flag_bankx(CHRFLAG0_10000000, BANK_0) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + try_draw_weapon(MODEL_CHRDRAGON, WEAPON_DRAGON, 0x00000000, /*goto*/ 0x06) + label(0x06) + jog_to_pad(0x041e) + yield + set_function(CHR_SELF, FUNC_ALERT_WHEN_STOPPED) + endfunction +}; + +u8 func0414_init_hangar_guard4[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(8) + set_reaction_speed(30) + set_chr_health(CHR_SELF, 40) + set_armor(10) + set_recovery_speed(35) + set_shield(0) + set_self_flag_bankx(CHRFLAG1_00080000, BANK_1) + set_group(0x0b) + set_self_flag_bank3(CHRFLAG3_00000040) + set_chr_id(0x2f) + set_self_flag_bankx(CHRFLAG0_10000000, BANK_0) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + try_draw_weapon(MODEL_CHRDRAGON, WEAPON_DRAGON, 0x00000000, /*goto*/ 0x06) + label(0x06) + jog_to_pad(0x041d) + yield + set_target_chr(CHR_JOANNA) + set_function(CHR_SELF, FUNC_ALERT_WHEN_STOPPED) + endfunction +}; + +u8 func0415_alert_when_stopped[] = { + // @bug: This loop should have a check for seeing Jo or a distance check to + // Jo. Without it, the guards will run past Jo at the end if she's already + // at the door. + beginloop(0x04) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x04) + + label(0x06) + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +/** + * This is NOT assigned to Jon. + */ +u8 func0417_traitor[] = { + set_self_flag_bank3(CHRFLAG3_00000040) + set_self_flag_bankx(CHRFLAG1_WARNED, BANK_1) + set_accuracy(100) + set_reaction_speed(100) + restart_timer + try_draw_weapon(MODEL_CHRDY357, WEAPON_DY357MAGNUM, 0x00000000, /*goto*/ 0x03) + + beginloop(0x03) + if_timer_gt(300, /*goto*/ 0x09) + endloop(0x03) + + label(0x09) + open_door(0x11) + if_chr_dying(0x2f, /*goto*/ 0x0d) + if_chr_unloaded(0x2f, /*goto*/ 0x0d) + set_target_chr(0x2f) + goto_next(0x2e) + + label(0x0d) + if_chr_dying(0x2e, /*goto*/ 0x0e) + if_chr_unloaded(0x2e, /*goto*/ 0x0e) + set_target_chr(0x2e) + goto_next(0x2e) + + label(0x0e) + if_chr_dying(0x2d, /*goto*/ 0x0f) + if_chr_unloaded(0x2d, /*goto*/ 0x0f) + set_target_chr(0x2d) + goto_next(0x2e) + + label(0x0f) + if_chr_dying(0x2c, /*goto*/ 0x10) + if_chr_unloaded(0x2c, /*goto*/ 0x10) + set_target_chr(0x2c) + + label(0x2e) + call_rng + if_rand_gt(128, /*goto*/ 0x2e) + try_chr_kneel_and_shoot_thing(0x0220, 0x0000, /*goto*/ 0x0a) + + label(0x2e) + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x0a) + dprint 'S','H','O','O','T','F','A','I','L','E','D','\n',0, + yield + label(0x0a) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x0b) + goto_next(0x0c) + + beginloop(0x0b) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_y(CHR_P1P2, -1373, OPERATOR_LESS_THAN, /*goto*/ 0x10) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_y(CHR_P1P2, -1373, OPERATOR_LESS_THAN, /*goto*/ 0x10) + if_chr_stopped(/*goto*/ 0x0c) + endloop(0x0b) + + label(0x0c) + if_chr_death_animation_finished(0x2f, /*goto*/ 0x2e) + chr_shoot_chr(CHR_SELF, 0x2f, WEAPON_DY357MAGNUM) + goto_next(0x06) + + label(0x2e) + if_chr_death_animation_finished(0x2e, /*goto*/ 0x2e) + chr_shoot_chr(CHR_SELF, 0x2e, WEAPON_DY357MAGNUM) + goto_next(0x06) + + label(0x2e) + if_chr_death_animation_finished(0x2d, /*goto*/ 0x2e) + chr_shoot_chr(CHR_SELF, 0x2d, WEAPON_DY357MAGNUM) + goto_next(0x06) + + label(0x2e) + if_chr_death_animation_finished(0x2c, /*goto*/ 0x06) + chr_shoot_chr(CHR_SELF, 0x2c, WEAPON_DY357MAGNUM) + label(0x06) + goto_first(0x09) + + label(0x10) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_00100000) + run_to_pad(0x0197) + + beginloop(0x60) + if_chr_stopped(/*goto*/ 0x2e) + endloop(0x60) + + label(0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0416_mechanic[] = { + set_onshot_function(FUNC_MECHANIC) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2e) + if_chr_dying(CHR_SELF, /*goto*/ 0x2e) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x06) + + label(0x2e) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x06) + if_just_injured(CHR_SELF, /*goto*/ 0x2e) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x0f) + goto_next(0x04) + + label(0x2e) + set_chr_alliance(CHR_SELF, ALLIANCE_ENEMY) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + + beginloop(0x6a) + if_chr_stopped(/*goto*/ 0x2e) + endloop(0x6a) + + // Not alert - at interceptor + label(0x04) + call_rng + animation(ANIM_STANDING_TYPE_ONE_HAND, 0, 193, 0x1010, CHR_SELF, 2) + + beginloop(0x09) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_stage_flag_eq(STAGEFLAG_TRIGGER_INTERCEPTOR, TRUE, /*goto*/ 0x2f) + if_just_injured(CHR_SELF, /*goto*/ 0x2e) + if_target_chr_in_sight(/*goto*/ 0x2e) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x09) + + label(0x06) + goto_first(0x04) + + label(0x2f) + jog_to_pad(0x0385) + + beginloop(0x0c) + if_chr_stopped(/*goto*/ 0x0e) + endloop(0x0c) + + // In bunker + label(0x0e) + animation(ANIM_STANDING_TYPE_ONE_HAND, 0, 193, 0x1010, CHR_SELF, 2) + + beginloop(0x0d) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_shot_at_close_range(/*goto*/ 0x2e) + if_target_chr_in_sight(/*goto*/ 0x2e) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x0d) + + label(0x06) + goto_first(0x0e) + + label(0x2e) + set_alertness(100) + restart_timer + try_face_entity(0x0200, 0x0000, /*goto*/ 0x0a) + + beginloop(0x0a) + if_angle_to_target_chr_lt(10, /*goto*/ 0x06) + if_timer_gt(30, /*goto*/ 0x06) + endloop(0x0a) + + label(0x0f) + set_chr_alliance(CHR_SELF, ALLIANCE_ENEMY) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + play_sound(0x80f7, CHANNEL_7) + label(0x06) + set_return_function(CHR_SELF, GFUNC_ALERTED) + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +u8 func1001_objectives_failed_msg[] = { + yield + set_object_flag_bank1(OBJ_MINE1, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank1(OBJ_MINE2, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank1(OBJ_MINE3, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank1(0x1a, OBJECTFLAG1_INVISIBLE) // invalid object + set_object_flag_bank1(OBJ_MINE4, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank1(OBJ_MINE5, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank1(OBJ_MINE6, OBJECTFLAG1_INVISIBLE) + set_chr_flag_bank3(CHR_MECHANIC, CHRFLAG3_04000000) + set_function(CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG) + endfunction +}; + +u8 func040a_top_interceptor[] = { + set_chr_health(CHR_SELF, 5000) + set_object_flag_bank0(OBJ_INTERCEPTOR3, OBJECTFLAG0_INTERCEPTOR_DISABLED) + restart_timer + + beginloop(0x03) + if_object_in_good_condition(OBJ_INTERCEPTOR3, /*goto*/ 0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2e) + if_stage_flag_eq(STAGEFLAG_TRIGGER_INTERCEPTOR, TRUE, /*goto*/ 0x06) + endloop(0x03) + + label(0x06) + unset_object_flag_bank0(OBJ_INTERCEPTOR3, OBJECTFLAG0_INTERCEPTOR_DISABLED) + cmd0143 + begin_hovercar_path(0x22) + set_chr_health(CHR_SELF, 5000) + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0x59) + endloop(0x04) + + label(0x58) + yield + label(0x09) + begin_hovercar_path(0x22) + + beginloop(0x0a) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + label(0x06) + if_chr_sees_player(/*goto*/ 0x59) + reloop(0x0a) + + // Unreachable + label(0x5a) + dprint 'C','H','A','N','G','E',' ','T','O',' ','L','O','W','\n',0, + goto_first(0x09) + + label(0x59) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x5b) + reloop(0x0a) + + label(0x5b) + yield + if_chr_sees_player(/*goto*/ 0x5c) + restart_timer + + beginloop(0x5d) + if_timer_gt(480, /*goto*/ 0x5e) + if_chr_sees_player(/*goto*/ 0x5c) + endloop(0x5d) + + label(0x5e) + stop_chr + endloop(0x0a) + + label(0x5c) + goto_first(0x5b) + + endfunction +}; + +u8 func040c_init_bottom_interceptors[] = { + set_chr_health(CHR_SELF, 5000) + set_object_flag_bank0(OBJ_INTERCEPTOR1, OBJECTFLAG0_INTERCEPTOR_DISABLED) + set_object_flag_bank0(OBJ_INTERCEPTOR2, OBJECTFLAG0_INTERCEPTOR_DISABLED) + + beginloop(0x04) + endloop(0x04) + + endfunction +}; + +u8 func040d_90c8[] = { + set_self_flag_bank3(CHRFLAG3_00000020) + set_accuracy(30) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func040e_outro[] = { + open_door(0x11) + hide_object(OBJ_HOVERBIKE) + camera_movement(0x017d) + set_music_track(MUSIC_INFILTRATION_OUTRO) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0xf1, CHRFLAG3_HIDDEN) + set_function(CHR_P1P2, GFUNC_IDLE) + set_chr_flag_bank3(CHR_JONATHAN, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_OUTRO_GUARD, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + + unset_chr_flag_bank3(CHR_P1P2, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_P1P2, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_P1P2, CHRFLAG2_00020000) + animation(0x017f, -1, -1, 0x0600, CHR_P1P2, 4) + set_chr_hud_visible(CHR_P1P2, TRUE) + + set_chr_flag_bank3(CHR_JONATHAN, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_JONATHAN, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_JONATHAN, CHRFLAG2_00020000) + animation(0x017e, -1, -1, 0x0600, CHR_JONATHAN, 4) + + set_chr_flag_bank3(CHR_OUTRO_GUARD, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_OUTRO_GUARD, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_OUTRO_GUARD, CHRFLAG2_00020000) + animation(0x0180, -1, -1, 0x0600, CHR_OUTRO_GUARD, 4) + + restart_timer + show_nonessential_chrs(FALSE) + set_cutscene_weapon(CHR_P1P2, -1, -1) + yield + set_cutscene_weapon(CHR_P1P2, -1, WEAPON_FALCON2) + + #define wait_until(time, loopid) \ + beginloop(loopid) \ + if_controller_button_pressed(/*goto*/ 0x54) \ + if_timer_gt(time, /*goto*/ 0x06) \ + endloop(loopid) \ + label(0x06) + + + + wait_until(1, 0x60) + speak(CHR_P1P2, 0x2c43, 0x7421, CHANNEL_5, COLOR_07_RED) // "Agent Dark! Over here!" + + wait_until(46, 0x61) + play_sound(0x0171, CHANNEL_7) + + wait_until(74, 0x62) + play_sound(0x0172, CHANNEL_6) + + wait_until(100, 0x64) + play_sound(0x0173, CHANNEL_7) + + wait_until(150, 0x65) + speak(CHR_P1P2, 0x2c44, 0x7422, CHANNEL_5, COLOR_09_BLUE) // "There you are! I was beginning to wonder if..." + + wait_until(188, 0x66) + play_sound(0x0174, CHANNEL_6) + + wait_until(278, 0x67) + play_sound(0x0175, CHANNEL_7) + + wait_until(290, 0x68) + set_chr_shooting_in_cutscene(CHR_JONATHAN, TRUE) + yield + yield + set_chr_shooting_in_cutscene(CHR_JONATHAN, FALSE) + + wait_until(296, 0x79) + play_sound(0x8076, CHANNEL_10) + + wait_until(310, 0x7a) + play_sound(0x0090, CHANNEL_10) + + wait_until(392, 0x69) + play_sound(0x808e, CHANNEL_10) + + wait_until(406, 0x6c) + speak(CHR_P1P2, 0x2c45, 0x7423, CHANNEL_5, COLOR_07_RED) // "If what?" + + wait_until(410, 0x6a) + play_sound(0x0176, CHANNEL_6) + + wait_until(424, 0x6b) + play_sound(0x0177, CHANNEL_6) + + wait_until(426, 0x6c) + play_sound(0x0177, CHANNEL_7) + + wait_until(464, 0x6d) + play_sound(0x007d, CHANNEL_10) + + wait_until(472, 0x6e) + speak(CHR_P1P2, 0x2c46, 0x7424, CHANNEL_5, COLOR_09_BLUE) // "If you'd been discovered yet. And frankly, if this..." + + wait_until(900, 0x70) + speak(CHR_P1P2, 0x2c47, 0x7425, CHANNEL_5, COLOR_07_RED) // "I was tidying up one of your loose ends." + + wait_until(936, 0x6f) + play_sound(0x0178, CHANNEL_7) + + wait_until(1080, 0x71) + speak(CHR_P1P2, 0x2c48, 0x7426, CHANNEL_5, COLOR_09_BLUE) // "My loose ends?" + + wait_until(1180, 0x72) + speak(CHR_P1P2, 0x2c49, 0x7427, CHANNEL_5, COLOR_07_RED) // "I'm sorry, I didn't realize you wanted him to shoo..." + + wait_until(1228, 0x73) + play_sound(0x0171, CHANNEL_7) + + wait_until(1286, 0x74) + play_sound(0x0172, CHANNEL_7) + + wait_until(1434, 0x75) + play_sound(0x0173, CHANNEL_7) + + wait_until(1462, 0x77) + play_sound(0x0174, CHANNEL_6) + + wait_until(1585, 0x76) + speak(CHR_P1P2, 0x2c4a, 0x7428, CHANNEL_5, COLOR_09_BLUE) // "Okay, okay, forget about it. I'm going to let the ..." + + wait_until(1588, 0x78) + play_sound(0x0175, CHANNEL_7) + + beginloop(0x09) + if_camera_animating(/*goto*/ 0x2e) + goto_next(0x54) + + label(0x2e) + if_controller_button_pressed(/*goto*/ 0x54) + label(0x2e) + endloop(0x09) + + label(0x54) + label(0x06) + remove_chr(CHR_OUTRO_GUARD) + set_chr_hud_visible(CHR_P1P2, FALSE) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0410_intro[] = { + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + if_controller_button_pressed(/*goto*/ 0x54) + set_music_track(MUSIC_INFILTRATION_INTRO) + camera_movement(0x0181) + set_chr_flag_bank3(0x0c, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0x0d, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0x32, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x32, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(0x32, CHRFLAG2_00020000) + animation(0x0182, -1, -1, 0x0600, 0x32, 4) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + restart_timer + fade_to_color(0x000000ff, 0) + fade_to_color(0x00000000, 90) + set_cutscene_weapon(CHR_JOANNA, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_JOANNA, WEAPON_FALCON2, WEAPON_NONE) + + wait_until(26, 0x60) + speak(CHR_JOANNA, 0x2c3a, 0x7418, CHANNEL_7, COLOR_06_WHITE) // "Okay, Joanna, take a look at this. Our operative i..." + + wait_until(500, 0x61) + speak(CHR_JOANNA, 0x2c3b, 0x7419, CHANNEL_7, COLOR_06_WHITE) // "This is your entry point... A deserted helipad on ..." + + wait_until(800, 0x62) + speak(CHR_JOANNA, 0x2c3c, 0x741a, CHANNEL_7, COLOR_06_WHITE) // "The lift down to the hangars and the rendezvous po..." + + wait_until(1200, 0x63) + + wait_until(1236, 0x64) + speak(CHR_JOANNA, 0x2c3d, 0x741b, CHANNEL_7, COLOR_06_WHITE) // "Here is the communications antenna. Attach a comms..." + + beginloop(0x09) + if_camera_animating(/*goto*/ 0x2e) + goto_next(0x06) + + label(0x2e) + if_controller_button_pressed(/*goto*/ 0x06) + label(0x2e) + endloop(0x09) + + label(0x06) + label(0x55) + unset_chr_flag_bank3(0x32, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + label(0x54) + if_controller_button_pressed(/*goto*/ 0x54) + camera_movement(0x0183) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + + set_chr_flag_bank3(0x29, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x29, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(0x29, CHRFLAG2_00020000) + animation(0x0184, -1, -1, 0x0600, 0x29, 4) + + set_chr_flag_bank3(0x2a, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x2a, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(0x2a, CHRFLAG2_00020000) + animation(0x0185, -1, -1, 0x0600, 0x2a, 4) + + set_chr_flag_bank3(0x2b, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x2b, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(0x2b, CHRFLAG2_00020000) + animation(0x0186, -1, -1, 0x0600, 0x2b, 4) + + set_object_flag_bank1(0x2f, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x2f, OBJECTFLAG2_00000010) + object_do_animation(0x0187, 0x2f, 0x04ff, 0xff) + restart_timer + + wait_until(186, 0x65) + speak(CHR_JOANNA, 0x2c3e, 0x81b9, CHANNEL_7, COLOR_09_BLUE) // "Oh, my God!" + + wait_until(380, 0x66) + speak(CHR_JOANNA, 0x2c3f, 0x741d, CHANNEL_7, COLOR_06_WHITE) // "Here is our friend. He appears to be physically un..." + + beginloop(0x0a) + if_camera_animating(/*goto*/ 0x2e) + goto_next(0x06) + + label(0x2e) + if_controller_button_pressed(/*goto*/ 0x06) + label(0x2e) + endloop(0x0a) + + label(0x06) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x29, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x2a, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x2b, CHRFLAG3_UNPLAYABLE) + unset_object_flag_bank1(0x2f, OBJECTFLAG1_04000000) + label(0x54) + if_controller_button_pressed(/*goto*/ 0x54) + camera_movement(0x0188) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + + set_chr_flag_bank3(0x2a, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x2a, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(0x2a, CHRFLAG2_00020000) + animation(0x0189, -1, -1, 0x0600, 0x2a, 4) + + set_chr_flag_bank3(0x2b, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x2b, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(0x2b, CHRFLAG2_00020000) + animation(0x018a, -1, -1, 0x0600, 0x2b, 4) + + set_object_flag_bank1(0x2f, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x2f, OBJECTFLAG2_00000010) + object_do_animation(0x018b, 0x2f, 0x04ff, 0xff) + restart_timer + + wait_until(416, 0x67) + speak(CHR_JOANNA, 0x2c40, 0x741e, CHANNEL_7, COLOR_09_BLUE) // "But who was...?" + + wait_until(485, 0x68) + speak(CHR_JOANNA, 0x2c41, 0x741f, CHANNEL_7, COLOR_06_WHITE) // "Any questions? No. Good. Away you go to the hangar..." + + beginloop(0x0b) + if_camera_animating(/*goto*/ 0x2e) + goto_next(0x06) + + label(0x2e) + if_controller_button_pressed(/*goto*/ 0x06) + label(0x2e) + endloop(0x0b) + + label(0x06) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x2a, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x2b, CHRFLAG3_UNPLAYABLE) + unset_object_flag_bank1(0x2f, OBJECTFLAG1_04000000) + label(0x54) + camera_movement(0x00f0) + cmd0175(60) + if_controller_button_pressed(/*goto*/ 0x54) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x00f1, -1, -1, 0x0600, CHR_JOANNA, 4) + set_chr_flag_bank3(0x03, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(0x03, CHRFLAG2_00020000) + unset_chr_flag_bank3(0x03, CHRFLAG3_HIDDEN) + restart_timer + + wait_until(1, 0x69) + speak(CHR_JOANNA, 0x2c42, 0x7420, CHANNEL_10, COLOR_09_BLUE) // "Agent Dark Mission Log, 1028 hours. Against my bet..." + + wait_until(340, 0x6a) + play_sound(0x80d5, CHANNEL_10) + + wait_until(364, 0x6b) + play_sound(0x04b0, CHANNEL_10) + + wait_until(458, 0x6c) + play_sound(0x046e, CHANNEL_10) + + play_sound(0x80d5, CHANNEL_10) + wait_until(496, 0x6d) + play_sound(0x80cc, CHANNEL_10) + + play_sound(0x80cd, CHANNEL_10) + wait_until(638, 0x6e) + + wait_until(688, 0x6f) + play_sound(0x046f, CHANNEL_10) + play_sound(0x80ce, CHANNEL_10) + play_sound(0x80cf, CHANNEL_10) + + wait_until(750, 0x70) + play_sound(0x016a, CHANNEL_10) + + wait_until(815, 0x71) + play_sound(0x016b, CHANNEL_10) + + wait_until(844, 0x72) + play_sound(0x016c, CHANNEL_10) + + wait_until(908, 0x73) + play_sound(0x0169, CHANNEL_10) + + wait_until(916, 0x74) + + beginloop(0x0c) + if_camera_animating(/*goto*/ 0x2e) + goto_next(0x54) + + label(0x2e) + if_controller_button_pressed(/*goto*/ 0x54) + label(0x2e) + endloop(0x0c) + + label(0x54) + mute_channel(CHANNEL_10) + mute_channel(CHANNEL_7) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x0c, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x0d, CHRFLAG3_HIDDEN) + remove_chr(0x32) + remove_chr(0x29) + remove_chr(0x2a) + remove_chr(0x2b) + hide_object(0x2f) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x00f1, -2, -1, 0x0600, CHR_JOANNA, 2) + unset_chr_flag_bank3(0x03, CHRFLAG3_UNPLAYABLE) + set_function(0x02, 0x0426) + set_function(0x03, 0x0426) + unset_object_flag_bank1(OBJ_INTERCEPTOR1, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank1(OBJ_INTERCEPTOR2, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank1(OBJ_INTERCEPTOR3, OBJECTFLAG1_INVISIBLE) + restart_default_music + reset_ambience + enter_firstperson + set_stage_flag(STAGEFLAG_INTRO_FINISHED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * This pad is right next to where you start. Most likely the guard was changed + * to use a path instead, but this function remained. + * + * @unused + */ +u8 func0418_walk_to_pad[] = { + walk_to_pad(0x0019) + beginloop(0x09) + endloop(0x09) + + endfunction +}; + +u8 func1010_bunker_lighting[] = { + yield + set_chr_alliance(CHR_COUNTEROP, ALLIANCE_ENEMY) + restart_timer + + beginloop(0x09) + if_stage_flag_eq(STAGEFLAG_EXPLOSIVES_PLACED, TRUE, /*goto*/ 0x06) + if_stage_flag_eq(STAGEFLAG_ANY_LASER_DESTROYED, TRUE, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + mute_channel(CHANNEL_0) + yield + assign_sound(0x04ac, CHANNEL_0) + play_sound_from_object(CHANNEL_0, 0x10, 0x0320, 0x044c) + set_lights_state(0x0009, 0x03, 0xff, 0x32, 0x78) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x0e) + restart_timer + + beginloop(0x0a) + if_timer_gt(30, /*goto*/ 0x2e) + endloop(0x0a) + + label(0x2e) + + beginloop(0x0b) + if_timer_gt(40, /*goto*/ 0x2e) + endloop(0x0b) + + label(0x2e) + label(0x0e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1012_bunker_laser1[] = { + if_difficulty_gt(DIFF_A, /*goto*/ 0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + + // SA and PA only + label(0x2e) + restart_timer + + beginloop(0x09) + if_stage_flag_eq(STAGEFLAG_EXPLOSIVES_PLACED, TRUE, /*goto*/ 0x0a) + if_stage_flag_eq(STAGEFLAG_ANY_LASER_DESTROYED, TRUE, /*goto*/ 0x0a) + endloop(0x09) + + label(0x0a) + restart_timer + close_door(0x1e) + + beginloop(0x0b) + if_stage_flag_eq(STAGEFLAG_RADAR_SHUT_DOWN, TRUE, /*goto*/ 0x10) + if_timer_gt(180, /*goto*/ 0x06) + endloop(0x0b) + + label(0x06) + restart_timer + open_door(0x1e) + + beginloop(0x0c) + if_stage_flag_eq(STAGEFLAG_RADAR_SHUT_DOWN, TRUE, /*goto*/ 0x10) + if_timer_gt(180, /*goto*/ 0x06) + endloop(0x0c) + + label(0x06) + goto_first(0x0a) + + label(0x10) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1013_bunker_lasers234[] = { + if_difficulty_gt(DIFF_A, /*goto*/ 0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2e) + restart_timer + + beginloop(0x09) + if_stage_flag_eq(STAGEFLAG_EXPLOSIVES_PLACED, TRUE, /*goto*/ 0x0a) + if_stage_flag_eq(STAGEFLAG_ANY_LASER_DESTROYED, TRUE, /*goto*/ 0x0a) + endloop(0x09) + + label(0x0a) + restart_timer + close_door(0x1f) + close_door(0x20) + close_door(0x21) + + beginloop(0x0b) + if_stage_flag_eq(STAGEFLAG_RADAR_SHUT_DOWN, TRUE, /*goto*/ 0x10) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x0b) + + label(0x06) + restart_timer + open_door(0x1f) + open_door(0x20) + open_door(0x21) + + beginloop(0x0c) + if_stage_flag_eq(STAGEFLAG_RADAR_SHUT_DOWN, TRUE, /*goto*/ 0x10) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x0c) + + label(0x06) + goto_first(0x0a) + + label(0x10) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1013_bunker_lasers56[] = { + if_difficulty_gt(DIFF_A, /*goto*/ 0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2e) + restart_timer + + beginloop(0x09) + if_stage_flag_eq(STAGEFLAG_EXPLOSIVES_PLACED, TRUE, /*goto*/ 0x0a) + if_stage_flag_eq(STAGEFLAG_ANY_LASER_DESTROYED, TRUE, /*goto*/ 0x0a) + endloop(0x09) + + label(0x0a) + restart_timer + close_door(0x22) + + beginloop(0x0b) + if_stage_flag_eq(STAGEFLAG_RADAR_SHUT_DOWN, TRUE, /*goto*/ 0x10) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x0b) + + label(0x06) + restart_timer + open_door(0x22) + close_door(0x23) + + beginloop(0x0c) + if_stage_flag_eq(STAGEFLAG_RADAR_SHUT_DOWN, TRUE, /*goto*/ 0x10) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x0c) + + label(0x06) + label(0x06) + restart_timer + open_door(0x23) + close_door(0x24) + + beginloop(0x0d) + if_stage_flag_eq(STAGEFLAG_RADAR_SHUT_DOWN, TRUE, /*goto*/ 0x10) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x0d) + + label(0x06) + label(0x06) + restart_timer + open_door(0x24) + + beginloop(0x0e) + if_stage_flag_eq(STAGEFLAG_RADAR_SHUT_DOWN, TRUE, /*goto*/ 0x10) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x0e) + + label(0x06) + goto_first(0x0a) + + label(0x10) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1013_bunker_lasers[] = { + if_difficulty_gt(DIFF_A, /*goto*/ 0x03) + + // Agent - hide lasers + hide_object(0x1e) + hide_object(0x1f) + hide_object(0x20) + hide_object(0x21) + hide_object(0x22) + hide_object(0x23) + hide_object(0x24) + set_function(CHR_SELF, GFUNC_IDLE) + + // SA and PA + label(0x03) + set_object_flag_bank0(0x1e, OBJECTFLAG0_40000000) + set_object_flag_bank0(0x1f, OBJECTFLAG0_40000000) + set_object_flag_bank0(0x20, OBJECTFLAG0_40000000) + set_object_flag_bank0(0x21, OBJECTFLAG0_40000000) + set_object_flag_bank0(0x22, OBJECTFLAG0_40000000) + set_object_flag_bank0(0x23, OBJECTFLAG0_40000000) + set_object_flag_bank0(0x24, OBJECTFLAG0_40000000) + open_door(0x1e) + open_door(0x1f) + open_door(0x20) + open_door(0x21) + open_door(0x22) + open_door(0x23) + open_door(0x24) + set_object_flag_bank0(0x1e, OBJECTFLAG0_40000000) + set_object_flag_bank0(0x1f, OBJECTFLAG0_40000000) + set_object_flag_bank0(0x20, OBJECTFLAG0_40000000) + set_object_flag_bank0(0x21, OBJECTFLAG0_40000000) + set_object_flag_bank0(0x22, OBJECTFLAG0_40000000) + set_object_flag_bank0(0x23, OBJECTFLAG0_40000000) + set_object_flag_bank0(0x24, OBJECTFLAG0_40000000) + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_EXPLOSIVES_PLACED, TRUE, /*goto*/ 0x09) + if_stage_flag_eq(STAGEFLAG_ANY_LASER_DESTROYED, TRUE, /*goto*/ 0x09) + if_door_state(0x1e, (DOORSTATE_CLOSED | DOORSTATE_CLOSING), /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + goto_first(0x03) + + beginloop(0x09) + if_stage_flag_eq(STAGEFLAG_RADAR_SHUT_DOWN, TRUE, /*goto*/ 0x2e) + endloop(0x09) + + label(0x2e) + open_door(0x1e) + open_door(0x1f) + open_door(0x20) + open_door(0x21) + open_door(0x22) + open_door(0x23) + open_door(0x24) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1011_bunker_explosives[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_RADAR_TERMINAL, /*goto*/ 0x2e) + reloop(0x04) + + label(0x2e) + if_chr_weapon_equipped(CHR_P1P2, WEAPON_EXPLOSIVES, /*goto*/ 0x2e) + message(CHR_P1P2, 0x2c2d) // "Access denied." + goto_first(0x04) + + label(0x2e) + unset_object_flag_bank1(OBJ_EXPLOSIVE_BRICK, OBJECTFLAG1_INVISIBLE) + message(CHR_P1P2, 0x2c2e) // "Explosive has been placed." + remove_weapon_from_inventory(WEAPON_EXPLOSIVES) + set_stage_flag(STAGEFLAG_EXPLOSIVES_PLACED) + restart_timer + + beginloop(0x0a) + if_timer_gt(180, /*goto*/ 0x06) + endloop(0x0a) + + label(0x06) + yield + set_countdown_timer(20) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2e) + if_stage_flag_eq(STAGEFLAG_ANY_LASER_DESTROYED, TRUE, /*goto*/ 0x06) + message(CHR_P1P2, 0x2c2f) // "Intruder detected - security system online." + goto_next(0x06) + + // Agent + label(0x2e) + message(CHR_P1P2, 0x2c4b) // "Foreign object detected - security alerted." + label(0x06) + play_x_music(CHANNEL_10, 20) + yield + show_countdown_timer + start_countdown_timer + + beginloop(0x09) + if_countdown_timer_lt(1, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + hide_countdown_timer + unset_object_flag_bank0(OBJ_RADAR_TERMINAL, OBJECTFLAG0_INVINCIBLE) + yield + move_object_to_pad(0x25, 0x036b) + hide_object(OBJ_EXPLOSIVE_BRICK) + unset_object_flag_bank0(0x25, OBJECTFLAG0_INVINCIBLE) + destroy_object(0x25) + destroy_object(OBJ_RADAR_TERMINAL) + mute_channel(CHANNEL_0) + assign_sound(0x0479, CHANNEL_0) + control_sound_from_object(CHANNEL_0, OBJ_RADAR_TERMINAL, TRUE) + restart_timer + + beginloop(0x0b) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x0b) + + label(0x06) + move_object_to_pad(0x26, 0x0375) + unset_object_flag_bank0(0x26, OBJECTFLAG0_INVINCIBLE) + destroy_object(0x26) + move_object_to_pad(0x27, 0x0376) + unset_object_flag_bank0(0x27, OBJECTFLAG0_INVINCIBLE) + destroy_object(0x27) + move_object_to_pad(0x28, 0x0372) + unset_object_flag_bank0(0x28, OBJECTFLAG0_INVINCIBLE) + destroy_object(0x28) + yield + restart_timer + + beginloop(0x0c) + if_timer_gt(90, /*goto*/ 0x06) + endloop(0x0c) + + label(0x06) + unset_object_flag_bank0(0x51, OBJECTFLAG0_INVINCIBLE) + destroy_object(0x51) + restart_timer + + beginloop(0x7b) + if_timer_gt(90, /*goto*/ 0x06) + endloop(0x7b) + + label(0x06) + unset_object_flag_bank0(0x2d, OBJECTFLAG0_INVINCIBLE) + move_object_to_pad(0x2d, 0x0379) + destroy_object(0x2d) + restart_timer + + beginloop(0x11) + if_timer_gt(90, /*goto*/ 0x06) + endloop(0x11) + + label(0x06) + label(0x06) + unset_object_flag_bank0(0x29, OBJECTFLAG0_INVINCIBLE) + move_object_to_pad(0x29, 0x0373) + destroy_object(0x29) + restart_timer + + beginloop(0x0d) + if_timer_gt(90, /*goto*/ 0x06) + endloop(0x0d) + + label(0x06) + unset_object_flag_bank0(0x2a, OBJECTFLAG0_INVINCIBLE) + move_object_to_pad(0x2a, 0x0374) + destroy_object(0x2a) + restart_timer + + beginloop(0x0e) + if_timer_gt(90, /*goto*/ 0x06) + endloop(0x0e) + + label(0x06) + unset_object_flag_bank0(0x2b, OBJECTFLAG0_INVINCIBLE) + move_object_to_pad(0x2b, 0x0377) + destroy_object(0x2b) + restart_timer + + beginloop(0x0f) + if_timer_gt(90, /*goto*/ 0x06) + endloop(0x0f) + + label(0x06) + unset_object_flag_bank0(0x2c, OBJECTFLAG0_INVINCIBLE) + move_object_to_pad(0x2c, 0x0378) + destroy_object(0x2c) + restart_timer + + beginloop(0x10) + if_timer_gt(90, /*goto*/ 0x06) + endloop(0x10) + + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1016_trigger_interceptor[] = { + restart_timer + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_COMMSBUG_PLACED, TRUE, /*goto*/ 0x2e) + reloop(0x04) + + label(0x2e) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x09) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x0a) + + // PA - 60 seconds + if_timer_gt(3600, /*goto*/ 0x06) + goto_first(0x04) + + // Agent - 120 seconds + label(0x09) + if_timer_gt(7200, /*goto*/ 0x06) + reloop(0x04) + + // SA - 90 seconds + label(0x0a) + if_timer_gt(5400, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + set_stage_flag(STAGEFLAG_TRIGGER_INTERCEPTOR) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1017_radar_terminal_noise[] = { + yield + assign_sound(0x8146, CHANNEL_0) + play_sound_from_object(CHANNEL_0, OBJ_RADAR_TERMINAL, 0x0320, 0x044c) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1018_unhide_guards[] = { + set_chr_flag_bank3(0x35, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0x1f, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0x20, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0x21, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0x22, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0x23, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0x24, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0x35, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(0x1f, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(0x20, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(0x21, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(0x22, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(0x23, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(0x24, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + + // Agent: wait until guards 0x10 and 0x11 are dead + // (two guards near antenna blue door) + // SA and PA: Wait until bug thrown on antenna + beginloop(0x04) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x06) + if_objective_complete(1, /*goto*/ 0x2e) + reloop(0x04) + + label(0x06) + if_chr_death_animation_finished(0x10, /*goto*/ 0x06) + if_chr_dying(0x10, /*goto*/ 0x06) + if_chr_unloaded(0x10, /*goto*/ 0x06) + goto_first(0x04) + + label(0x06) + if_chr_death_animation_finished(0x11, /*goto*/ 0x2e) + if_chr_dying(0x11, /*goto*/ 0x2e) + if_chr_unloaded(0x11, /*goto*/ 0x2e) + endloop(0x04) + + // Enable 4 more guards - the ones inside the blue door + label(0x2e) + unset_chr_flag_bank3(0x1f, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x20, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x21, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x22, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x1f, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x20, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x21, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x22, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x1f, FUNC_TROOPER_ALERTED) + set_function(0x20, FUNC_TROOPER_ALERTED) + set_function(0x21, FUNC_TROOPER_ALERTED) + set_function(0x22, FUNC_TROOPER_ALERTED) + + // Wait until player in room 0x0044 (first hangar ramp) + beginloop(0x09) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0044, /*goto*/ 0x2e) + endloop(0x09) + + // Enable 2 more guards + label(0x2e) + unset_chr_flag_bank3(0x23, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x24, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x23, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x24, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x23, FUNC_DRAGON_ALERTED) + set_function(0x24, FUNC_DRAGON_ALERTED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0419_clone_spawner[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(8) + set_reaction_speed(30) + set_chr_health(CHR_SELF, 40) + set_armor(10) + set_recovery_speed(35) + set_shield(0) + 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) + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_ENTERED_FINAL_HANGAR, TRUE, /*goto*/ 0x2e) + reloop(0x04) + + label(0x2e) + dprint 'O','B','J','E','C','T','I','V','E',' ','D','O','N','E','\n',0, + if_never_been_onscreen(/*goto*/ 0x4f) + if_chr_sees_player(/*goto*/ 0x09) + reloop(0x04) + + label(0x09) + set_function(CHR_SELF, FUNC_ALERTED_SPAWNED_GUARD) + + label(0x4f) + unset_self_flag_bank3(CHRFLAG3_HIDDEN) + unset_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + if_chr_death_animation_finished(CHR_CLONE, /*goto*/ 0x4f) + reloop(0x04) + + label(0x4f) + try_spawn_clone2(CHR_SELF, FUNC_INIT_ALERTED_SPAWNED_GUARD, 0x00000000, /*goto*/ 0x2e) + set_function(CHR_SELF, FUNC_ALERTED_SPAWNED_GUARD) + + label(0x2e) + yield + endloop(0x04) + + endfunction +}; + +u8 func041a_init_alerted_spawned_guard[] = { + set_self_flag_bankx(CHRFLAG1_00080000, BANK_1) + label(0x04) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + try_inherit_properties(0x25, /*goto*/ 0x06) + label(0x06) + set_function(CHR_SELF, FUNC_ALERTED_SPAWNED_GUARD) + endfunction +}; + +u8 func041b_alerted_spawned_guard[] = { + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +u8 func1019_spawn_guards_at_antenna[] = { + // Agent: wait until guards 0x10 and 0x11 are dead + // (two guards near antenna blue door) + // SA and PA: Wait until bug thrown on antenna + beginloop(0x04) + dprint 'C','H','E','C','K',' ','F','O','R',' ','O','B','J','E','C','T','I','V','E','\n',0, + if_difficulty_lt(DIFF_SA, /*goto*/ 0x06) + if_objective_complete(1, /*goto*/ 0x2e) + reloop(0x04) + + label(0x06) + if_chr_death_animation_finished(0x10, /*goto*/ 0x06) + if_chr_dying(0x10, /*goto*/ 0x06) + if_chr_unloaded(0x10, /*goto*/ 0x06) + reloop(0x04) + + label(0x06) + if_chr_death_animation_finished(0x11, /*goto*/ 0x2e) + if_chr_dying(0x11, /*goto*/ 0x2e) + if_chr_unloaded(0x11, /*goto*/ 0x2e) + endloop(0x04) + + // Spawn 3 guards + label(0x2e) + label(0x06) + set_var_a(3) + + beginloop(0x56) + dprint 'T','R','Y',' ','C','R','E','A','T','E','\n',0, + if_var_a_lt(1, /*goto*/ 0x06) + try_spawn_chr(BODY_A51TROOPER, HEAD_RANDOM, 0x00a0, FUNC_SPAWNED_GUARD, 0x00000200, /*goto*/ 0x57) + reloop(0x56) + + label(0x57) + yield + dprint 'C','R','E','A','T','E','\n',0, + subtract_var_a(1) + restart_timer + + beginloop(0x09) + if_timer_gt(10, /*goto*/ 0x2e) + endloop(0x09) + + label(0x2e) + endloop(0x56) + + label(0x06) + yield + yield + yield + yield + yield + unset_chr_flag_bank3(0x35, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x35, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x35, GFUNC_SEARCH_FOR_PLAYER) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040f_spawned_guard[] = { + try_draw_weapon(MODEL_CHRLEEGUN1, WEAPON_MAGSEC4, 0x00000000, /*goto*/ 0x06) + label(0x06) + set_chr_alliance(CHR_SELF, ALLIANCE_ENEMY) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + set_self_flag_bankx(CHRFLAG0_04000000, BANK_0) + set_group(0x0e) + set_self_flag_bank3(CHRFLAG3_00080000) + try_inherit_properties(0x35, /*goto*/ 0x06) + label(0x06) + restart_timer + + beginloop(0x0a) + if_timer_gt(300, /*goto*/ 0x2e) + endloop(0x0a) + + label(0x2e) + run_to_pad(0x0095) // outside blue door + + beginloop(0x09) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + set_function(CHR_SELF, GFUNC_SEARCH_FOR_PLAYER) + endfunction +}; + +#define init_guard(accuracy, reaction, armor, recovery, function) \ + set_accuracy(accuracy) \ + set_reaction_speed(reaction) \ + set_chr_health(CHR_SELF, 40) \ + set_armor(armor) \ + set_recovery_speed(recovery) \ + set_shield(0) \ + set_function(CHR_SELF, function) + + + +u8 func041d_trooper_unalerted[] = { + set_chr_dodge_rating(2, 0x0a) + init_guard(6, 50, 0, 0, GFUNC_UNALERTED) + endfunction +}; + +u8 func041f_trooper_alerted[] = { + set_chr_dodge_rating(2, 0x0a) + init_guard(6, 50, 0, 0, GFUNC_ALERTED) + endfunction +}; + +u8 func041e_dragon_unalerted[] = { + init_guard(8, 30, 10, 35, GFUNC_UNALERTED) + endfunction +}; + +u8 func0420_dragon_alerted[] = { + init_guard(8, 30, 10, 35, GFUNC_ALERTED) + endfunction +}; + +u8 func141f_start_lifts[] = { + activate_lift(2, 0x31) + activate_lift(3, 0x32) + activate_lift(4, 0x33) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101a_check_mechanic_dead[] = { + yield + unset_eeprom_flag(EEPROMFLAG_RESCUE_MECHANIC_DEAD) + + beginloop(0x04) + if_chr_dying(CHR_MECHANIC, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + set_eeprom_flag(EEPROMFLAG_RESCUE_MECHANIC_DEAD) + dprint 'D','E','L','E','T','E',' ','M','E','C','H','\n',0, + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * @bug: This message cannot be played because the player has no way to get to + * room 0x0001, which is above the bunker roof. + */ +u8 func101b_msg_airinterceptradar[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0001, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + speak(CHR_P1P2, 0x2c35, 0x817d, CHANNEL_6, COLOR_09_BLUE) // "The air intercept radar is controlled from that bu..." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101c_msg_cantthrow[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x0e) + restart_timer + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0013, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + speak(CHR_P1P2, 0x2c36, 0x73b9, CHANNEL_6, COLOR_09_BLUE) // "There's the antenna, but... I can't throw a bug th..." + label(0x0e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * This message is also unplayable. + */ +u8 func101d_msg_hangarlift[] = { + // Wait for radar shut down and player in room 0x0001 (which is impossible) + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_objective_complete(0, /*goto*/ 0x2e) + reloop(0x04) + + label(0x2e) + if_chr_in_room(CHR_P1P2, 0x00, 0x0001, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + speak(CHR_P1P2, 0x2c37, 0x817e, CHANNEL_6, COLOR_09_BLUE) // "The hangar lift is on the other side of that huge ..." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101e_msg_triggerfinger[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0051, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + speak(CHR_P1P2, 0x2c38, 0x817f, CHANNEL_6, COLOR_09_BLUE) // "Careful with that trigger finger, Agent Dark - you..." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0421_activate_autogun[] = { + set_onshot_function(GFUNC_ALERTED) + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x2e) + if_shot_at_close_range(/*goto*/ 0x2e) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + run_to_pad(0x0384) + + beginloop(0x09) + if_object_in_good_condition(OBJ_AUTOGUN_AT_START, /*goto*/ 0x06) + goto_next(0x0e) + + label(0x06) + if_chr_stopped(/*goto*/ 0x2e) + endloop(0x09) + + label(0x2e) + animation(ANIM_STANDING_TYPE_ONE_HAND, 0, 120, 0x1010, CHR_SELF, 2) + + beginloop(0x0a) + if_chr_stopped(/*goto*/ 0x2e) + endloop(0x0a) + + label(0x2e) + if_object_in_good_condition(OBJ_AUTOGUN_AT_START, /*goto*/ 0x2e) + goto_next(0x06) + + label(0x2e) + unset_object_flag_bank0(OBJ_AUTOGUN_AT_START, OBJECTFLAG0_DEACTIVATED) + label(0x06) + set_function(CHR_SELF, GFUNC_ALERTED) + + label(0x0e) + say_quip(CHR_JOANNA, 0x12, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) + restart_timer + animation(ANIM_SURPRISED_0202, 0, -1, 0x0010, CHR_SELF, 2) + + beginloop(0x7c) + if_timer_gt(60, /*goto*/ 0x7d) + endloop(0x7c) + + label(0x7d) + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +/** + * Randomly select one of two guards near the start to be the one who will + * attempt to activate the autogun. + */ +u8 func1020_choose_autogun_guard[] = { + yield + call_rng + if_rand_gt(128, /*goto*/ 0x2e) + set_function(0x00, FUNC_ACTIVATE_AUTOGUN) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2e) + set_function(0x01, FUNC_ACTIVATE_AUTOGUN) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1021_damage_rl_guard[] = { + yield + damage_chr(CHR_ROCKETLAUNCHER_GUARD, 18) + yield + damage_chr(CHR_ROCKETLAUNCHER_GUARD, 18) + yield + damage_chr(CHR_ROCKETLAUNCHER_GUARD, 18) + yield + damage_chr(CHR_ROCKETLAUNCHER_GUARD, 18) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1022_check_lift_switches_destroyed[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_LIFT1_CALLED, TRUE, /*goto*/ 0x06) + if_stage_flag_eq(STAGEFLAG_LIFT2_CALLED, TRUE, /*goto*/ 0x06) + if_object_in_good_condition(OBJ_LIFT1_SWITCH, /*goto*/ 0x2e) + if_object_in_good_condition(OBJ_LIFT2_SWITCH, /*goto*/ 0x2e) + message(CHR_JOANNA, 0x2c39) // "Lift access terminals destroyed." + set_stage_flag(STAGEFLAG_LIFT_SWITCHES_DESTROYED) + goto_next(0x06) + + label(0x2e) + endloop(0x04) + + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1024_lift_door_sounds[] = { + beginloop(0x7e) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, 0x3c, /*goto*/ 0x0a) + if_chr_activated_object(CHR_P1P2, 0x3e, /*goto*/ 0x0b) + if_chr_activated_object(CHR_P1P2, 0x3d, /*goto*/ 0x41) + if_chr_activated_object(CHR_P1P2, 0x3f, /*goto*/ 0x41) + if_chr_activated_object(CHR_P1P2, 0x40, /*goto*/ 0x2e) + if_chr_activated_object(CHR_P1P2, 0x41, /*goto*/ 0x2e) + if_chr_activated_object(CHR_P1P2, 0x42, /*goto*/ 0x2e) + if_chr_activated_object(CHR_P1P2, 0x43, /*goto*/ 0x2e) + goto_first(0x7e) + + label(0x0a) + if_door_locked(0x3c, 0x02, /*goto*/ 0x2f) + goto_next(0x41) + + label(0x0b) + if_door_locked(0x3e, 0x02, /*goto*/ 0x2f) + goto_next(0x41) + + label(0x41) + play_sound(0x01dc, -1) + goto_next(0x06) + + label(0x2e) + play_sound(0x81b0, -1) + goto_next(0x06) + + label(0x2f) + play_sound(0x05dd, -1) + label(0x06) + restart_timer + + beginloop(0x09) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + endloop(0x7e) + + endfunction +}; + +u8 func1025_spawn_bunker_guards[] = { + // This logic is pointless and all leads to label 0x04 anyway + if_difficulty_gt(DIFF_SA, /*goto*/ 0x2e) + goto_next(0x04) + label(0x2e) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x0e) + + beginloop(0x04) + yield + yield + yield + yield + if_stage_flag_eq(STAGEFLAG_EXPLOSIVES_PLACED, TRUE, /*goto*/ 0x2e) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x06) + if_stage_flag_eq(STAGEFLAG_ANY_LASER_DESTROYED, TRUE, /*goto*/ 0x2e) + label(0x06) + endloop(0x04) + + label(0x2e) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2e) + if_stage_flag_eq(STAGEFLAG_ANY_LASER_DESTROYED, FALSE, /*goto*/ 0x0e) + label(0x2e) + restart_timer + + beginloop(0x60) + try_spawn_chr(BODY_A51AIRMAN, HEAD_RANDOM, 0x0057, 0x0423, 0x00000300, /*goto*/ 0x0a) + endloop(0x60) + + beginloop(0x0a) + if_timer_gt(30, /*goto*/ 0x06) + endloop(0x0a) + + label(0x06) + + beginloop(0x61) + try_spawn_chr(BODY_A51AIRMAN, HEAD_RANDOM, 0x0050, 0x0423, 0x00000300, /*goto*/ 0x0b) + endloop(0x61) + + beginloop(0x0b) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x0b) + + label(0x06) + label(0x0e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0423_a5e8[] = { + try_inherit_properties(0x25, /*goto*/ 0x06) + label(0x06) + set_alertness(100) + set_self_flag_bankx(CHRFLAG0_CAN_HEAR_ALARMS, BANK_0) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + set_self_flag_bankx(CHRFLAG0_AIVSAI, BANK_0) + set_self_flag_bankx(CHRFLAG0_CAN_HEARSPAWN, BANK_0) + try_draw_weapon(MODEL_CHRDRAGON, WEAPON_DRAGON, 0x00000000, /*goto*/ 0x06) + label(0x06) + set_chr_alliance(CHR_SELF, ALLIANCE_ENEMY) + yield + yield + yield + yield + yield + yield + yield + yield + yield + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, FUNC_TROOPER_ALERTED) + endfunction +}; + +#define watch_for_laser_broken(crate1, crate2, laser) \ + if_difficulty_gt(DIFF_A, /*goto*/ 0x7e) \ + set_function(CHR_SELF, GFUNC_IDLE) \ + \ + /* SA and PA */ \ + beginloop(0x7e) \ + if_object_in_good_condition(crate1, /*goto*/ 0x2e) \ + goto_next(0x06) \ + \ + label(0x2e) \ + if_object_in_good_condition(crate2, /*goto*/ 0x2e) \ + goto_next(0x06) \ + \ + label(0x2e) \ + endloop(0x7e) \ + \ + label(0x06) \ + hide_object(laser) \ + set_function(CHR_SELF, FUNC_ACTIVATE_LASERS) + + + +u8 func1026_check_laser1_broken[] = { + watch_for_laser_broken(0x44, 0x45, 0x1e) + endfunction +}; + +u8 func1027_check_laser2_broken[] = { + watch_for_laser_broken(0x46, 0x47, 0x1f) + endfunction +}; + +u8 func1028_check_laser3_broken[] = { + watch_for_laser_broken(0x48, 0x49, 0x20) + endfunction +}; + +u8 func1029_check_laser4_broken[] = { + watch_for_laser_broken(0x4a, 0x4b, 0x21) + endfunction +}; + +u8 func102a_check_laser5_broken[] = { + watch_for_laser_broken(0x4c, 0x4d, 0x22) + endfunction +}; + +u8 func102b_check_laser6_broken[] = { + watch_for_laser_broken(0x4e, 0x4f, 0x23) + endfunction +}; + +u8 func102c_check_laser7_broken[] = { + watch_for_laser_broken(0x50, 0x52, 0x24) + endfunction +}; + +u8 func0424_activate_lasers[] = { + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2e) + + // PA + label(0x7e) + if_stage_flag_eq(STAGEFLAG_ANY_LASER_DESTROYED, TRUE, /*goto*/ 0x2e) + set_stage_flag(STAGEFLAG_ANY_LASER_DESTROYED) + if_stage_flag_eq(STAGEFLAG_EXPLOSIVES_PLACED, TRUE, /*goto*/ 0x2e) + message(CHR_JOANNA, 0x2c2f) // "Intruder detected - security system online." + + // A and SA + label(0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0425_a7d4[] = { + label(0x04) + yield + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_UNEXPLODABLE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * This hidden guard is used as a template for cloning others. + */ +u8 func041c_template_guard[] = { + label(0x04) + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_UNEXPLODABLE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func102d_check_antenna_switch_destroyed[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x0e) + + beginloop(0x04) + if_object_in_good_condition(OBJ_ANTENNA_SWITCH, /*goto*/ 0x06) + goto_next(0x2e) + + label(0x06) + endloop(0x04) + + label(0x2e) + if_stage_flag_eq(STAGEFLAG_ANTENNA_LOWERED, TRUE, /*goto*/ 0x2e) + message(CHR_JOANNA, 0x2c2a) // "Critical mission object destroyed." + set_stage_flag(STAGEFLAG_ANTENNA_DESTROYED) + label(0x2e) + label(0x0e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func102e_setup_rtracker[] = { + yield + set_object_flag_bank2(OBJ_ROCKETLAUNCHER, OBJECTFLAG2_RTRACKED_BLUE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func142f_setup_lighting[] = { + yield + set_lighting(0x0000, 0x00, 0x00) + set_lighting(0x0000, 0x01, 0x00) + set_lighting(0x0000, 0x02, 0x00) + set_lighting(0x0000, 0x03, 0x00) + set_lighting(0x0000, 0x04, 0x00) + set_lighting(0x0001, 0x06, 0x01) + set_lighting(0x0002, 0x05, 0x01) + set_lighting(0x0002, 0x06, 0x01) + set_lighting(0x0003, 0x05, 0x01) + set_lighting(0x0004, 0x05, 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(0x000a, 0x05, 0x01) + set_lighting(0x000b, 0x05, 0x01) + set_lighting(0x000e, 0x05, 0x01) + set_lighting(0x0010, 0x05, 0x01) + set_lighting(0x0011, 0x05, 0x01) + set_lighting(0x0012, 0x05, 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(0x0018, 0x05, 0x01) + set_lighting(0x0019, 0x05, 0x01) + set_lighting(0x001a, 0x05, 0x01) + set_lighting(0x001b, 0x05, 0x01) + set_lighting(0x001c, 0x05, 0x01) + set_lighting(0x001d, 0x05, 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(0x0017, 0x05, 0x01) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +struct ailists functions[] = { + { func0401_start_path00, 0x0401 }, + { func0402_start_path01, 0x0402 }, + { func0403_start_path02, 0x0403 }, + { func0404_start_path03, 0x0404 }, + { func0405_start_path04, 0x0405 }, + { func0406_start_path05, 0x0406 }, + { func0407_start_path06, 0x0407 }, + { func0408_start_path07, 0x0408 }, + { func0409_set_rotor_speed, 0x0409 }, + { func040a_top_interceptor, 0x040a }, + { func040b_stop_vehicle, 0x040b }, + { func040c_init_bottom_interceptors, 0x040c }, + { func040d_90c8, 0x040d }, + { func0411_init_hangar_guard1, 0x0411 }, + { func0412_init_hangar_guard2, 0x0412 }, + { func0413_init_hangar_guard3, 0x0413 }, + { func0414_init_hangar_guard4, 0x0414 }, + { func0415_alert_when_stopped, 0x0415 }, + { func0416_mechanic, 0x0416 }, + { func0417_traitor, 0x0417 }, + { func0418_walk_to_pad, 0x0418 }, + { func040f_spawned_guard, 0x040f }, + { func040e_outro, 0x040e }, + { func0410_intro, 0x0410 }, + { func0419_clone_spawner, 0x0419 }, + { func041a_init_alerted_spawned_guard, 0x041a }, + { func041c_template_guard, 0x041c }, + { func041b_alerted_spawned_guard, 0x041b }, + { func041d_trooper_unalerted, 0x041d }, + { func041e_dragon_unalerted, 0x041e }, + { func041f_trooper_alerted, 0x041f }, + { func0420_dragon_alerted, 0x0420 }, + { func0421_activate_autogun, 0x0421 }, + { func0422_check_bug_wasted_target, 0x0422 }, + { func0423_a5e8, 0x0423 }, + { func0424_activate_lasers, 0x0424 }, + { func0425_a7d4, 0x0425 }, + { func0426_8420, 0x0426 }, + { func0c00_init_intro, 0x0c00 }, + { func040e_outro, 0x0c01 }, + { func1400_give_bugs, 0x1400 }, + { func1001_objectives_failed_msg, 0x1001 }, + { func0c00_init_intro, 0x1002 }, + { func1003_check_bug_wasted_joanna, 0x1003 }, + { func1004_check_antenna_destroyed, 0x1004 }, + { func1405_antenna_switch, 0x1405 }, + { func1006_lift_switches, 0x1006 }, + { func1007_check_hangar_accessed, 0x1007 }, + { func1008_check_end_level, 0x1008 }, + { func1009_check_radar_shut_down, 0x1009 }, + { func100b_final_hangar, 0x100b }, + { func100c_maingate_switch, 0x100c }, + { func140e_check_interceptors_destroyed, 0x140e }, + { func1010_bunker_lighting, 0x1010 }, + { func1011_bunker_explosives, 0x1011 }, + { func1012_bunker_laser1, 0x1012 }, + { func1013_bunker_lasers, 0x1013 }, + { func1013_bunker_lasers234, 0x1014 }, + { func1013_bunker_lasers56, 0x1015 }, + { func1016_trigger_interceptor, 0x1016 }, + { func1017_radar_terminal_noise, 0x1017 }, + { func1018_unhide_guards, 0x1018 }, + { func1019_spawn_guards_at_antenna, 0x1019 }, + { func101a_check_mechanic_dead, 0x101a }, + { func101b_msg_airinterceptradar, 0x101b }, + { func101c_msg_cantthrow, 0x101c }, + { func101d_msg_hangarlift, 0x101d }, + { func101e_msg_triggerfinger, 0x101e }, + { func141f_start_lifts, 0x141f }, + { func1020_choose_autogun_guard, 0x1020 }, + { func1021_damage_rl_guard, 0x1021 }, + { func1022_check_lift_switches_destroyed, 0x1022 }, + { func1023_check_bug_wasted_velvet, 0x1023 }, + { func1024_lift_door_sounds, 0x1024 }, + { func1025_spawn_bunker_guards, 0x1025 }, + { func1026_check_laser1_broken, 0x1026 }, + { func1027_check_laser2_broken, 0x1027 }, + { func1028_check_laser3_broken, 0x1028 }, + { func1029_check_laser4_broken, 0x1029 }, + { func102a_check_laser5_broken, 0x102a }, + { func102b_check_laser6_broken, 0x102b }, + { func102c_check_laser7_broken, 0x102c }, + { func102d_check_antenna_switch_destroyed, 0x102d }, + { func102e_setup_rtracker, 0x102e }, + { func142f_setup_lighting, 0x142f }, + { NULL, 0 }, +}; + diff --git a/src/setup/setupmp1.c b/src/setup/setupmp1.c new file mode 100644 index 000000000..2c80668bb --- /dev/null +++ b/src/setup/setupmp1.c @@ -0,0 +1,39 @@ +// +// Base (MP) +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/asm/setup/setupmp10.s b/src/setup/setupmp10.c similarity index 65% rename from asm/setup/setupmp10.s rename to src/setup/setupmp10.c index 447252986..7af8ade4e 100644 --- a/asm/setup/setupmp10.s +++ b/src/setup/setupmp10.c @@ -1,24 +1,42 @@ -# -# Sewers (MP) -# +// +// Sewers (MP) +// -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" +#include "../include/setup.h" -props: - lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x006a, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x006a, 0x006b, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00003555, 0x00085555, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x006c, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x006c, 0x006d, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00003555, 0x00085555, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x006e, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x006e, 0x006f, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00003555, 0x00085555, 0x00000000, 0x00000000, 0x00000000, 0x00000000 +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x006a, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x006a, 0x006b, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00003555, 0x00085555, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x006c, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x006c, 0x006d, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00003555, 0x00085555, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x006e, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x006e, 0x006f, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00003555, 0x00085555, 0x00000000, 0x00000000, 0x00000000, 0x00000000) endprops +}; -intro: - outfit OUTFIT_DEFAULT +u8 intro[] = { + outfit(OUTFIT_DEFAULT) endintro +}; -paths: - endpaths +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; -functions: - endfunctions +struct ailists functions[] = { + { NULL, 0 }, +}; -.align 4 diff --git a/src/setup/setupmp11.c b/src/setup/setupmp11.c new file mode 100644 index 000000000..d77bb9699 --- /dev/null +++ b/src/setup/setupmp11.c @@ -0,0 +1,39 @@ +// +// Felicity (MP) +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setupmp12.c b/src/setup/setupmp12.c new file mode 100644 index 000000000..7faebb99d --- /dev/null +++ b/src/setup/setupmp12.c @@ -0,0 +1,39 @@ +// +// Fortress (MP) +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setupmp13.c b/src/setup/setupmp13.c new file mode 100644 index 000000000..25066175c --- /dev/null +++ b/src/setup/setupmp13.c @@ -0,0 +1,39 @@ +// +// Villa (MP) +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setupmp14.c b/src/setup/setupmp14.c new file mode 100644 index 000000000..6ac18d4a3 --- /dev/null +++ b/src/setup/setupmp14.c @@ -0,0 +1,39 @@ +// +// Stage ID 0x46 +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setupmp15.c b/src/setup/setupmp15.c new file mode 100644 index 000000000..6237677c3 --- /dev/null +++ b/src/setup/setupmp15.c @@ -0,0 +1,39 @@ +// +// Grid (MP) +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setupmp16.c b/src/setup/setupmp16.c new file mode 100644 index 000000000..989f2eb06 --- /dev/null +++ b/src/setup/setupmp16.c @@ -0,0 +1,39 @@ +// +// Stage ID 0x48 +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setupmp17.c b/src/setup/setupmp17.c new file mode 100644 index 000000000..485547ba4 --- /dev/null +++ b/src/setup/setupmp17.c @@ -0,0 +1,39 @@ +// +// Stage ID 0x49 +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setupmp18.c b/src/setup/setupmp18.c new file mode 100644 index 000000000..dcf69d68e --- /dev/null +++ b/src/setup/setupmp18.c @@ -0,0 +1,39 @@ +// +// Stage ID 0x4a +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setupmp19.c b/src/setup/setupmp19.c new file mode 100644 index 000000000..03d6fa23e --- /dev/null +++ b/src/setup/setupmp19.c @@ -0,0 +1,39 @@ +// +// Stage ID 0x4b +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setupmp2.c b/src/setup/setupmp2.c new file mode 100644 index 000000000..8828bb106 --- /dev/null +++ b/src/setup/setupmp2.c @@ -0,0 +1,39 @@ +// +// Stage ID 0x3a +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setupmp20.c b/src/setup/setupmp20.c new file mode 100644 index 000000000..627ac3d1a --- /dev/null +++ b/src/setup/setupmp20.c @@ -0,0 +1,39 @@ +// +// Stage ID 0x4c +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setupmp3.c b/src/setup/setupmp3.c new file mode 100644 index 000000000..97e56887e --- /dev/null +++ b/src/setup/setupmp3.c @@ -0,0 +1,46 @@ +// +// Area 52 (MP) +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 func1000_0038[] = { + cmd01b2_mponly(20) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +struct ailists functions[] = { + { func1000_0038, 0x1000 }, + { NULL, 0 }, +}; + diff --git a/src/setup/setupmp4.c b/src/setup/setupmp4.c new file mode 100644 index 000000000..5221d0b85 --- /dev/null +++ b/src/setup/setupmp4.c @@ -0,0 +1,46 @@ +// +// Warehouse (MP) +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + endintro +}; + +s32 path00[] = { + -1, +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 func0000_0034[] = { + endfunction +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setupmp5.c b/src/setup/setupmp5.c new file mode 100644 index 000000000..bc36d4fdf --- /dev/null +++ b/src/setup/setupmp5.c @@ -0,0 +1,39 @@ +// +// Car Park (MP) +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setupmp6.c b/src/setup/setupmp6.c new file mode 100644 index 000000000..f7f649ac2 --- /dev/null +++ b/src/setup/setupmp6.c @@ -0,0 +1,39 @@ +// +// Stage ID 0x3e +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setupmp7.c b/src/setup/setupmp7.c new file mode 100644 index 000000000..d98142ac5 --- /dev/null +++ b/src/setup/setupmp7.c @@ -0,0 +1,38 @@ +// +// Stage ID 0x3f +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setupmp8.c b/src/setup/setupmp8.c new file mode 100644 index 000000000..7a150d570 --- /dev/null +++ b/src/setup/setupmp8.c @@ -0,0 +1,42 @@ +// +// Stage ID 0x40 +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + endintro +}; + +s32 path00[] = { + -1, +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setupmp9.c b/src/setup/setupmp9.c new file mode 100644 index 000000000..29a637464 --- /dev/null +++ b/src/setup/setupmp9.c @@ -0,0 +1,39 @@ +// +// Ruins (MP) +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setupoat.c b/src/setup/setupoat.c new file mode 100644 index 000000000..5e6cea620 --- /dev/null +++ b/src/setup/setupoat.c @@ -0,0 +1,269 @@ +// +// Skedar (MP) +// + +#include "../include/setup.h" + +// Functions +#define FUNC0401_INIT_ENEMY 0x0401 +#define FUNC0402_INIT_MAIAN 0x0402 + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + spawn(0x0063) + outfit(OUTFIT_DEFAULT) + intro_weapon(WEAPON_FALCON2, -1) + intro_weapon(WEAPON_CMP150, -1) + intro_weapon(WEAPON_AR34, -1) + intro_weapon(WEAPON_REAPER, -1) + ammo(AMMOTYPE_PISTOL, 500) + ammo(AMMOTYPE_RIFLE, 500) + endintro +}; + +u8 func0406_idle[] = { + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0408_idle_with_10_health[] = { + set_chr_health(CHR_SELF, 10) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0404_spawn_enemies[] = { + // Spawn 12 enemies + set_chr_alliance(CHR_SELF, ALLIANCE_ENEMY) + restart_timer + dprint 'B','4','C','H','E','C','K','\n',0, + set_var_a(12) + label(0x04) + if_var_a_lt(1, /*goto*/ 0x01) + try_spawn_clone(BODY_DDSHOCK, HEAD_DDSHOCK, 0x06, FUNC0401_INIT_ENEMY, 0x00000010, /*goto*/ 0xa2) + goto_next(0x01) + label(0xa2) + yield + subtract_var_a(1) + goto_first(0x04) + + label(0x01) + yield + yield + yield + yield + yield + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, FUNC0401_INIT_ENEMY) + endfunction +}; + +u8 func0401_init_enemy[] = { + try_draw_weapon(MODEL_CHRCMP150, WEAPON_CMP150, 0x00000000, /*goto*/ 0x01) + label(0x01) + try_inherit_properties(0x06, /*goto*/ 0x01) + label(0x01) + assign_path(0) + start_path + set_return_function(CHR_SELF, GFUNC_CHOOSE_TARGET_CHR) + set_function(CHR_SELF, GFUNC_CHOOSE_TARGET_CHR) + endfunction +}; + +u8 func0405_spawn_maians[] = { + // Spawn 12 Maians + set_chr_alliance(CHR_SELF, ALLIANCE_ALLY) + stop_chr + restart_timer + dprint 'B','4','C','H','E','K','\n',0, + set_var_a(12) + label(0x04) + if_var_a_lt(1, /*goto*/ 0x01) + try_spawn_clone(BODY_ELVIS1, HEAD_ELVIS, 0x07, FUNC0402_INIT_MAIAN, 0x00000010, /*goto*/ 0xa2) + goto_next(0x01) + label(0xa2) + yield + subtract_var_a(1) + goto_first(0x04) + + label(0x01) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + yield + yield + yield + yield + yield + set_function(CHR_SELF, FUNC0402_INIT_MAIAN) + endfunction +}; + +u8 func0402_init_maian[] = { + set_chr_alliance(CHR_SELF, ALLIANCE_ALLY) + try_draw_weapon(MODEL_CHRFALCON2, WEAPON_MAGSEC4, 0x00000000, /*goto*/ 0x01) + label(0x01) + try_inherit_properties(0x07, /*goto*/ 0x01) + label(0x01) + assign_path(0) + start_path + set_return_function(CHR_SELF, GFUNC_CHOOSE_TARGET_CHR) + set_function(CHR_SELF, GFUNC_CHOOSE_TARGET_CHR) + endfunction +}; + +u8 func1001_01a4[] = { + noop016c + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 unregistered_function1[] = { + // Print "t" to console when Joanna is looking at some object. + // The object doesn't exist in the props code though, so was likely removed. + label(0x04) + yield + if_chr_looking_at_object(CHR_JOANNA, 0x00, /*goto*/ 0x01) + goto_first(0x04) + + label(0x01) + dprint 't',0, + goto_first(0x04) + + endfunction +}; + +u8 func1000_idle[] = { + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0403_init_some_sound[] = { + play_sound(0x0037, -1) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +// This function is never assigned. +u8 func0407_defend_pad[] = { + set_onshot_function(0x0407) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0xa5) + if_chr_distance_to_pad_lt(CHR_SELF, 200, TARGET_PAD, /*goto*/ 0x01) + + // Go to target pad, but stop when seen player or when near pad + label(0xdb) + jog_to_pad(TARGET_PAD) + label(0xdc) + yield + dprint 'G','O',' ','T','O',' ','P','A','D','\n',0, + if_enemy_distance_lt_and_los(2540, /*goto*/ 0xa5) + if_chr_distance_to_pad_lt(CHR_SELF, 200, TARGET_PAD, /*goto*/ 0x01) + goto_first(0xdc) + + // Near pad. Wait until detected player. + label(0x01) + stop_chr + label(0xa6) + yield + dprint 'A','T',' ','P','A','D','\n',0, + if_enemy_distance_lt_and_los(2540, /*goto*/ 0xa5) + if_chr_distance_to_pad_gt(CHR_SELF, 300, TARGET_PAD, /*goto*/ 0x01) + goto_first(0xa6) + + label(0x01) + goto_first(0xdb) + + // Do combat + label(0xa5) + dprint 'D','E','T','E','C','T','E','D','\n',0, + set_return_function(CHR_SELF, 0x0407) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + endfunction +}; + +struct ailists functions[] = { + { func0401_init_enemy, 0x0401 }, + { func0402_init_maian, 0x0402 }, + { func0403_init_some_sound, 0x0403 }, + { func0404_spawn_enemies, 0x0404 }, + { func0405_spawn_maians, 0x0405 }, + { func0406_idle, 0x0406 }, + { func0407_defend_pad, 0x0407 }, + { func0408_idle_with_10_health, 0x0408 }, + { func1000_idle, 0x1000 }, + { func1001_01a4, 0x1001 }, + { NULL, 0 }, +}; + +s32 path00[] = { + 0x0014, + 0x0015, + -1, +}; + +s32 path01[] = { + 0x0064, + 0x0066, + -1, +}; + +s32 path02[] = { + 0x0037, + 0x0033, + 0x0034, + -1, +}; + +s32 path03[] = { + 0x0038, + 0x0039, + 0x003a, + -1, +}; + +s32 path04[] = { + 0x0033, + 0x0037, + 0x0036, + 0x003d, + 0x003e, + 0x003f, + 0x0045, + 0x0048, + 0x003b, + 0x003a, + 0x0039, + -1, +}; + +struct aipaths paths[] = { + { path00, 0, 0 }, + { path01, 1, 0 }, + { path00, 0, 0 }, + { path02, 2, 0 }, + { path03, 3, 0 }, + { path04, 4, 0 }, + { NULL, 0, 0 }, +}; + diff --git a/src/setup/setupold.c b/src/setup/setupold.c new file mode 100644 index 000000000..72f7b1d2d --- /dev/null +++ b/src/setup/setupold.c @@ -0,0 +1,171 @@ +// +// Stage ID 0x4e +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + tag(0x00, 1) + stdobject(0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x01, 1) + stdobject(0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x02, 1) + stdobject(0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +/** + * Some kind of camera movement test? When you press a button it jumps forward + * to the next camera animation rather than ending the cutscene. + */ +u8 func0c00_017c[] = { + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_music_track(MUSIC_G5_INTRO) + camera_movement(0x045d) + cmd01c8(2) + + beginloop(0x12) + cmd01c9(/*goto*/ 0x59) + endloop(0x12) + + label(0x59) + cmd01c8(3) + + beginloop(0x13) + cmd01c9(/*goto*/ 0x59) + endloop(0x13) + + label(0x59) + camera_movement(0x045d) + show_object(0x00) + set_object_flag_bank1(0x00, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x00, OBJECTFLAG2_00000010) + object_do_animation(0x045e, 0x00, 0x04ff, 0xff) + + beginloop(0x08) + if_camera_animating(/*goto*/ 0x31) + goto_next(0x59) + + label(0x31) + if_controller_button_pressed(/*goto*/ 0x59) + label(0x31) + endloop(0x08) + + label(0x59) + hide_object(0x00) + camera_movement(0x0464) + show_object(0x01) + set_object_flag_bank1(0x01, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x01, OBJECTFLAG2_00000010) + object_do_animation(0x0465, 0x01, 0x04ff, 0xff) + + beginloop(0x0b) + if_camera_animating(/*goto*/ 0x31) + goto_next(0x59) + + label(0x31) + if_controller_button_pressed(/*goto*/ 0x59) + label(0x31) + endloop(0x0b) + + label(0x59) + hide_object(0x01) + camera_movement(0x0461) + + show_object(0x00) + set_object_flag_bank1(0x00, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x00, OBJECTFLAG2_00000010) + object_do_animation(0x0462, 0x00, 0x04ff, 0xff) + + show_object(0x01) + set_object_flag_bank1(0x01, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x01, OBJECTFLAG2_00000010) + object_do_animation(0x0463, 0x01, 0x04ff, 0xff) + + beginloop(0x0a) + if_camera_animating(/*goto*/ 0x31) + goto_next(0x59) + + label(0x31) + if_controller_button_pressed(/*goto*/ 0x59) + label(0x31) + endloop(0x0a) + + label(0x59) + hide_object(0x01) + hide_object(0x00) + camera_movement(0x046c) + + show_object(0x01) + unset_object_flag_bank1(0x01, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x01, OBJECTFLAG2_00000010) + object_do_animation(0x046e, 0x01, 0x04ff, 0xff) + + show_object(0x00) + set_object_flag_bank1(0x00, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x00, OBJECTFLAG2_00000010) + object_do_animation(0x046d, 0x00, 0x04ff, 0xff) + + show_object(0x02) + set_object_flag_bank1(0x02, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x02, OBJECTFLAG2_00000010) + object_do_animation(0x046f, 0x02, 0x04ff, 0xff) + + beginloop(0x0e) + if_camera_animating(/*goto*/ 0x31) + goto_next(0x59) + + label(0x31) + if_controller_button_pressed(/*goto*/ 0x59) + label(0x31) + endloop(0x0e) + + label(0x59) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + cmd01c8(5) + + beginloop(0x15) + cmd01c9(/*goto*/ 0x59) + endloop(0x15) + + label(0x59) + restart_default_music + reset_ambience + enter_firstperson + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +struct ailists functions[] = { + { func0c00_017c, 0x0401 }, + { func0c00_017c, 0x0c00 }, + { NULL, 0 }, +}; + diff --git a/src/setup/setuppam.c b/src/setup/setuppam.c new file mode 100644 index 000000000..f4d123265 --- /dev/null +++ b/src/setup/setuppam.c @@ -0,0 +1,4869 @@ +// +// Deep Sea +// + +#include "../include/setup.h" + +// Characters +#define CHR_ELVIS 0x00 +#define CHR_BLONDE1 0x22 +#define CHR_BLONDE2 0x23 +#define CHR_DRCAROLL 0x24 + +// Objects +#define OBJ_POWERNODE1 0x00 +#define OBJ_POWERNODE2 0x01 +#define OBJ_POWERNODE3 0x02 +#define OBJ_BACKUPDISK 0x74 +#define OBJ_PROXYMINES 0xb0 + +// Stage flags +#define STAGEFLAG_DRCAROLL_RESTORED 0x00000001 +#define STAGEFLAG_ELVIS_SAID_SABOTAGE 0x00000002 +#define STAGEFLAG_DONE_FIRST_TELEPORT 0x00000004 +#define STAGEFLAG_PURPLE_GUARD_SHOT_JO_OR_ELVIS 0x00000010 +#define STAGEFLAG_TELEPORT_DONE 0x00000020 +#define STAGEFLAG_ELVIS_FOLLOWING_VELVET 0x00000080 +#define STAGEFLAG_TELEPORTALS_ACTIVATED 0x00000100 +#define STAGEFLAG_MIDCUTSCENE_FINISHED 0x00000200 +#define STAGEFLAG_ESCAPED 0x00000400 +#define STAGEFLAG_ALLY_DEAD 0x00000800 +#define STAGEFLAG_FARSIGHT_AMMO_WASTED 0x00001000 +#define STAGEFLAG_TIMER_EXPIRED 0x00002000 +#define STAGEFLAG_AGENT_MEGAWEAPON_DISABLED 0x00004000 +#define STAGEFLAG_BLONDES_DEAD 0x00008000 +#define STAGEFLAG_SA_EXIT_TELEPORT_DISABLED 0x00010000 +#define STAGEFLAG_MEGAWEAPON_DISABLED 0x00020000 +#define STAGEFLAG_TRIGGER_MINISKEDAR_SPAWNING 0x00040000 +#define STAGEFLAG_ELVIS_STARTED_SA_MEGAWEAPON 0x00080000 +#define STAGEFLAG_PA_EARLYDOORCYLINDER1_DESTROYED 0x00100000 +#define STAGEFLAG_PA_EARLYDOORCYLINDER2_DESTROYED 0x00200000 +#define STAGEFLAG_PA_EARLYDOORCYLINDER3_DESTROYED 0x00400000 +#define STAGEFLAG_PA_EARLYDOORCYLINDER4_DESTROYED 0x00800000 +#define STAGEFLAG_PA_EARLYDOORCYLINDER5_DESTROYED 0x01000000 +#define STAGEFLAG_PA_LATEDOORCYLINDER1_DESTROYED 0x02000000 +#define STAGEFLAG_PA_LATEDOORCYLINDER2_DESTROYED 0x04000000 +#define STAGEFLAG_PA_LATEDOORCYLINDER3_DESTROYED 0x08000000 +#define STAGEFLAG_PA_LATEDOORCYLINDER4_DESTROYED 0x10000000 +#define STAGEFLAG_PA_CANISTER1_DESTROYED 0x20000000 +#define STAGEFLAG_PA_CANISDER2_DESTROYED 0x40000000 +#define STAGEFLAG_PA_MIDDOORCYLINDER_DESTROYED 0x80000000 + +// Functions +#define FUNC_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS 0x0402 +#define FUNC_ELVIS_GIVE_FARSIGHT 0x0403 +#define FUNC_ELVIS_FOLLOW_AND_DO_AGENT_MEGAWEAPON 0x0404 +#define FUNC_ELVIS_FOLLOW_AND_DO_SA_MEGAWEAPON 0x0406 +#define FUNC_ELVIS_GO_TO_SA_TELEPORT 0x0407 +#define FUNC_INIT_ELVIS 0x040b +#define FUNC_BLONDE 0x040c +#define FUNC_MINISKEDAR_SEND_CLONES 0x040d +#define FUNC_INIT_MINISKEDAR 0x040e +#define FUNC_MINISKEDAR 0x040f +#define FUNC_OUTRO 0x0410 +#define FUNC_HIDE 0x0411 +#define FUNC_CLOAK_AND_HIDE 0x0413 +#define FUNC_TELEPORT_JOANNA_TO_SAPA 0x0414 +#define FUNC_TELEPORT_JOANNA_TO_DRCAROLL 0x0415 +#define FUNC_TELEPORT_JOANNA_TO_A_PA_DRCAROLL 0x0416 +#define FUNC_TELEPORT_VELVET_TO_SAPA 0x0417 +#define FUNC_TELEPORT_VELVET_TO_DRCAROLL 0x0418 +#define FUNC_TELEPORT_VELVET_TO_A_PA_DRCAROLL 0x0419 +#define FUNC_INIT_SNIPER 0x041a +#define FUNC_SNIPER_WAIT_FOR_DETECTION 0x041b +#define FUNC_TELEPORT_ACTIVATION_RESPONDER 0x041c +#define FUNC_SNIPER 0x041d +#define FUNC_INIT_SA_MEGAWEAPON_MINISKEDAR 0x041e +#define FUNC_INIT_PA_CIRCLEROOM_MINISKEDAR 0x041f +#define FUNC_INIT_PA_DEADENDROOM_MINISKEDAR 0x0420 +#define FUNC_MIDCUTSCENE 0x042a +#define FUNC_RUN_TO_EXIT 0x042b +#define FUNC_ELVIS_STOP 0x042c +#define FUNC_ELVIS_WARP_TO_OUTSIDE_DRCAROLL 0x042d +#define FUNC_ELVIS_RUN_TO_EXIT 0x042e +#define FUNC_INIT_PELAGIC_GUARD 0x042f +#define FUNC_MINISKEDAR_UNALERTED 0x0431 +#define FUNC_DEAD_SKEDAR 0x0432 + +// Pads +#define PAD_STARTAREA_TELEPORT 0x0116 +#define PAD_AGENTAREA_ENTRY 0x01a2 +#define PAD_AGENTAREA_TELEPORT 0x01fd +#define PAD_SAPAAREA_ENTRY 0x01b6 +#define PAD_SAPAAREA_TELEPORT 0x01f9 +#define PAD_PAAREA_ENTRY 0x01a5 +#define PAD_PAAREA_TELEPORT 0x0200 +#define PAD_DRCAROLLROOM_ENTRY 0x01cb + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + briefing(0, 0x3001) + briefing(1, 0x3000) + briefing(2, 0x3002) + briefing(3, 0x3003) + + beginobjective(0, 0x3005, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Reactivate teleportals" + complete_flags(STAGEFLAG_TELEPORTALS_ACTIVATED) + endobjective + + beginobjective(1, 0x3006, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Disable Cetan megaweapon" + complete_flags(STAGEFLAG_MEGAWEAPON_DISABLED) + fail_flags(STAGEFLAG_FARSIGHT_AMMO_WASTED) + endobjective + + beginobjective(2, 0x3007, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Secure control room" + complete_flags(STAGEFLAG_BLONDES_DEAD) + endobjective + + beginobjective(3, 0x3008, (DIFFBIT_PA | DIFFBIT_PD)) // "Restore Dr. Caroll's personality" + complete_flags(STAGEFLAG_DRCAROLL_RESTORED) + endobjective + + beginobjective(4, 0x3009, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Escape from Cetan ship" + complete_flags(STAGEFLAG_ESCAPED) + fail_flags(STAGEFLAG_ALLY_DEAD) + fail_flags(STAGEFLAG_TIMER_EXPIRED) + endobjective + + chr(0x00000400, 0x40, 0x01b3, BODY_DDSNIPER, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 1000, 200, 0x00002000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x0040, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) + chr(0x00010000, 0x00, 0x002e, BODY_THEKING, HEAD_ELVIS, GFUNC_IDLE, -1, -1, 1000, 200, 0x00002000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRZ2020, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FARSIGHTXR20, 0x00ffffff, 0x00000000) + tag(0x73, -1) + chr(0x00000200, 0x01, 0x018d, BODY_DDSNIPER, HEAD_RANDOM, FUNC_INIT_SNIPER, -1, -1, 100, 30, 0x48080000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x02, 0x019a, BODY_DDSNIPER, HEAD_RANDOM, FUNC_INIT_SNIPER, -1, -1, 100, 100, 0x48080000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x03, 0x019b, BODY_DDSNIPER, HEAD_RANDOM, FUNC_INIT_SNIPER, -1, -1, 100, 100, 0x48080000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x0003, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x04, 0x0006, BODY_DDSNIPER, HEAD_RANDOM, FUNC_INIT_SNIPER, -1, -1, 100, 100, 0x48080000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x0004, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x05, 0x019c, BODY_DDSNIPER, HEAD_RANDOM, FUNC_INIT_SNIPER, -1, -1, 100, 100, 0x48080000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x0005, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x06, 0x0190, BODY_DDSNIPER, HEAD_RANDOM, FUNC_INIT_SNIPER, -1, -1, 100, 100, 0x48080000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x0006, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x07, 0x0191, BODY_DDSNIPER, HEAD_RANDOM, FUNC_INIT_SNIPER, -1, -1, 100, 100, 0x48080000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x0007, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x08, 0x0008, BODY_DDSNIPER, HEAD_RANDOM, FUNC_INIT_SNIPER, -1, -1, 100, 100, 0x48080000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x0008, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x09, 0x000a, BODY_DDSNIPER, HEAD_RANDOM, FUNC_INIT_SNIPER, -1, -1, 100, 100, 0x48080000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0a, 0x019d, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0421, -1, -1, 1000, 100, 0xc0008601, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0b, 0x019e, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_INIT_PELAGIC_GUARD, -1, -1, 1000, 100, 0xc8080000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0c, 0x009a, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_INIT_PELAGIC_GUARD, -1, -1, 1000, 100, 0xc8080000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0d, 0x001e, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0422, -1, -1, 1000, 100, 0xe8080000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0e, 0x001b, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0423, -1, -1, 1000, 100, 0xe8080000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0f, 0x0022, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0425, -1, -1, 1000, 100, 0xe8080000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x10, 0x0021, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0424, -1, -1, 1000, 100, 0xe8080000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0010, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x11, 0x002c, BODY_MRBLONDE, HEAD_MRBLONDE, GFUNC_UNALERTED, 0x0027, -1, 3000, 10, 0x80028004, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0011, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x12, 0x0029, BODY_PELAGIC_GUARD, HEAD_RANDOM, GFUNC_UNALERTED, 0x0024, -1, 3000, 100, 0x80028204, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0012, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x13, 0x002b, BODY_PELAGIC_GUARD, HEAD_RANDOM, GFUNC_UNALERTED, 0x0026, -1, 3000, 100, 0x80028204, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0013, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x14, 0x01b3, BODY_DDSNIPER, HEAD_RANDOM, FUNC_CLOAK_AND_HIDE, 0x01b3, -1, 1000, 100, 0x80028004, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x15, 0x01b4, BODY_DDSNIPER, HEAD_RANDOM, FUNC_CLOAK_AND_HIDE, 0x01b4, -1, 1000, 100, 0x80028004, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0015, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x16, 0x01b5, BODY_DDSNIPER, HEAD_RANDOM, FUNC_CLOAK_AND_HIDE, 0x01b5, -1, 1000, 100, 0x80028004, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x25, 0x0064, BODY_MINISKEDAR, 0x00, FUNC_HIDE, -1, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + chr(0x00000000, 0x26, 0x0079, BODY_MINISKEDAR, 0x00, FUNC_HIDE, -1, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + chr(0x00000000, 0x27, 0x0067, BODY_MINISKEDAR, 0x00, FUNC_HIDE, -1, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + chr(0x00000000, 0x28, 0x0075, BODY_MINISKEDAR, 0x00, FUNC_HIDE, -1, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + chr(0x00000000, 0x29, 0x0080, BODY_MINISKEDAR, 0x00, FUNC_HIDE, -1, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + chr(0x00000000, 0x2a, 0x0085, BODY_MINISKEDAR, 0x00, FUNC_HIDE, -1, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + chr(0x00000000, 0x2b, 0x007c, BODY_MINISKEDAR, 0x00, FUNC_HIDE, -1, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + chr(0x000002c0, 0x17, 0x00c5, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0426, -1, -1, 100, 100, 0xc8090000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0017, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x000002c0, 0x18, 0x00c7, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0427, -1, -1, 100, 100, 0xc8090000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x000002c0, 0x19, 0x00cb, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0428, -1, -1, 100, 100, 0xc8090000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0019, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x000002c0, 0x1a, 0x01b8, BODY_PELAGIC_GUARD, HEAD_RANDOM, GFUNC_UNALERTED, -1, -1, 100, 100, 0xc8090000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x000002c0, 0x1b, 0x01b7, BODY_PELAGIC_GUARD, HEAD_RANDOM, GFUNC_UNALERTED, -1, -1, 100, 100, 0xc8090000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x001b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x000002c0, 0x1c, 0x00be, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0429, -1, -1, 100, 100, 0xc8090000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x001c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x000002c0, 0x1d, 0x01b9, BODY_PELAGIC_GUARD, HEAD_RANDOM, GFUNC_UNALERTED, -1, -1, 100, 100, 0xc0012000, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x001d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x000002c0, 0x1e, 0x01ba, BODY_PELAGIC_GUARD, HEAD_RANDOM, GFUNC_UNALERTED, -1, -1, 100, 100, 0xc0012000, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x001e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x000002c0, 0x1f, 0x01bb, BODY_PELAGIC_GUARD, HEAD_RANDOM, GFUNC_UNALERTED, -1, -1, 100, 100, 0xc0012000, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x001f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x000002c0, 0x20, 0x01bc, BODY_PELAGIC_GUARD, HEAD_RANDOM, GFUNC_UNALERTED, -1, -1, 100, 100, 0xc0012000, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0020, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000100, 0x22, 0x0192, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_BLONDE, -1, -1, 100, 100, 0xc8082000, 0x00000000, 0x10, 0x0f, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0022, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00010500, 0x24, 0x0193, BODY_DRCARROLL, 0x00, GFUNC_IDLE, -1, -1, 100, 100, 0xc8080000, 0x00000000, 0x10, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0024, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000100, 0x23, 0x0194, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_BLONDE, -1, -1, 100, 100, 0xc8082000, 0x00000000, 0x10, 0x0f, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0023, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x2f, 0x01a6, BODY_MINISKEDAR, 0x00, FUNC_MINISKEDAR_UNALERTED, -1, -1, 1000, 12, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + chr(0x00000100, 0x30, 0x01a7, BODY_MINISKEDAR, 0x00, GFUNC_IDLE, -1, -1, 1000, 12, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + chr(0x00000100, 0x31, 0x01a8, BODY_MINISKEDAR, 0x00, GFUNC_IDLE, -1, -1, 1000, 12, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + chr(0x00000100, 0x32, 0x01a9, BODY_MINISKEDAR, 0x00, GFUNC_IDLE, -1, -1, 1000, 12, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + chr(0x00000100, 0x33, 0x01aa, BODY_MINISKEDAR, 0x00, GFUNC_IDLE, -1, -1, 1000, 12, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + chr(0x00000100, 0x34, 0x01ab, BODY_MINISKEDAR, 0x00, GFUNC_IDLE, -1, -1, 1000, 12, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + chr(0x00000100, 0x35, 0x01ac, BODY_MINISKEDAR, 0x00, GFUNC_IDLE, -1, -1, 1000, 12, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + chr(0x00000000, 0x36, 0x01ad, BODY_MINISKEDAR, 0x00, FUNC_MINISKEDAR_UNALERTED, -1, -1, 1000, 12, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + chr(0x00000000, 0x37, 0x01ae, BODY_MINISKEDAR, 0x00, FUNC_MINISKEDAR_UNALERTED, -1, -1, 1000, 12, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + chr(0x00000000, 0x38, 0x01af, BODY_MINISKEDAR, 0x00, GFUNC_IDLE, -1, -1, 1000, 11, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + chr(0x00000000, 0x39, 0x01b0, BODY_MINISKEDAR, 0x00, GFUNC_IDLE, -1, -1, 1000, 11, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + chr(0x00000000, 0x3a, 0x01b1, BODY_MINISKEDAR, 0x00, GFUNC_IDLE, -1, -1, 1000, 11, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + chr(0x00000000, 0x3b, 0x01b2, BODY_MINISKEDAR, 0x00, GFUNC_IDLE, -1, -1, 1000, 11, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + chr(0x00000200, 0x3c, 0x01c0, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 5, 0xe8080000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x003c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x3d, 0x01c1, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 5, 0xe8080000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x003d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x3e, 0x01c2, BODY_PELAGIC_GUARD, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 5, 0xe8080000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x003e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x3f, 0x0012, BODY_PELAGIC_GUARD, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 100, 30, 0x48080000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x003f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) + chr(0x00004400, 0x21, 0x0117, BODY_SKEDAR, HEAD_RANDOM, FUNC_DEAD_SKEDAR, -1, -1, 100, 100, 0xc8090000, 0x00000000, 0x80, 0x07, -1, 0, 0x00000000) + tag(0x75, 1) + door(0x0100, MODEL_CETANDOOR, 0x0157, 0x10000000, 0x30000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00007333, 0x00006666, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0xae, 1) + door(0x0100, MODEL_CETANDOOR, 0x0156, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00007333, 0x00006666, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0xab, 1) + door(0x0100, MODEL_CETANDOOR, 0x015c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00007333, 0x00006666, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CETANDOOR, 0x0158, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00007333, 0x00006666, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0xb3, 2) + tag(0xb4, 2) + door(0x0100, MODEL_AL_AIRLOCK, 0x014b, 0x10000000, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00006666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AL_AIRLOCK, 0x014c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00006666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0xb5, 2) + tag(0xb6, 2) + door(0x0100, MODEL_AL_AIRLOCK, 0x014d, 0x10000000, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00006666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AL_AIRLOCK, 0x014e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00006666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AL_AIRLOCK, 0x014f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000570a, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AL_AIRLOCK, 0x0150, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000570a, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AL_AIRLOCK, 0x0151, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00005c28, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AL_AIRLOCK, 0x0152, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00005c28, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x03, 3) + tag(0x04, 3) + tag(0x05, 3) + door(0x0100, MODEL_CETANSMALLDOOR, 0x0153, 0x02000400, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000001, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CETANSMALLDOOR, 0x0155, 0x02000400, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000001, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CETANSMALLDOOR, 0x0154, 0x02000400, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000001, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CETANDOOR, 0x016f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CETANDOOR, 0x016e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CETANDOORSIDE, 0x0174, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000b333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CETANDOORSIDE, 0x0175, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000b333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0xb7, 2) + tag(0xb8, 2) + door(0x0100, MODEL_CETANDOORSIDE, 0x0177, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000b333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CETANDOORSIDE, 0x0176, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000b333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CETANDOORSIDE, 0x0179, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000b333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CETANDOORSIDE, 0x0178, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000b333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CETANDOOR, 0x0169, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CETANDOOR, 0x016a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CETANDOOR, 0x016b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0xb1, 1) + door(0x0100, MODEL_CETANDOOR, 0x016c, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CETANDOOR, 0x016d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x09, 1) + door(0x0100, MODEL_CETANDOOR, 0x0159, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00009999, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CETANDOOR, 0x015a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00009999, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CETANDOOR, 0x015d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00009999, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CETANDOOR, 0x015b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00009999, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x0b, 1) + door(0x0100, MODEL_CETANDOOR, 0x015e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CETANDOOR, 0x015f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CETANDOOR, 0x0160, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CETANDOOR, 0x0161, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CETANDOOR, 0x0162, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CETANDOOR, 0x0163, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CETANDOOR, 0x0164, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CETANDOOR, 0x0165, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x0d, 1) + door(0x0100, MODEL_CETANDOOR, 0x0166, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CETANDOOR, 0x0167, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x0f, 1) + door(0x0100, MODEL_CETANDOOR, 0x0168, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x07, 1) + lift(0x0100, MODEL_AL_DOCKLIFT, 0x0185, 0x03520508, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0185, 0x0186, 0x01870186, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x00085555, 0x15000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x00, 3) + tag(0x01, 3) + tag(0x02, 3) + stdobject(0x00e6, MODEL_POWERNODE, 0x028d, 0x004005e1, 0x00000300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00e6, MODEL_POWERNODE, 0x028e, 0x004005e1, 0x00000300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00e6, MODEL_POWERNODE, 0x028f, 0x004005e1, 0x00000300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x08, 1) + weapon(0x0180, MODEL_CHRBUG, 0xffff, 0x00000001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FARSIGHTXR20, 0x00ffffff, 0x00000000) + tag(0x11, 4) + tag(0x12, 4) + tag(0x13, 4) + tag(0x9c, 4) + glass(0x0100, MODEL_CETANWINDOW1, 0x0203, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW1, 0x0204, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW1, 0x0205, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0291, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x14, 4) + tag(0x15, 4) + tag(0x16, 4) + tag(0x9d, 4) + glass(0x0100, MODEL_CETANWINDOW1, 0x0206, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW1, 0x0207, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW1, 0x0208, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0290, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x17, 4) + tag(0x18, 4) + tag(0x19, 4) + tag(0x9e, 4) + glass(0x0100, MODEL_CETANWINDOW1, 0x0209, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW1, 0x020a, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW1, 0x020b, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0292, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x1a, 4) + tag(0x1b, 4) + tag(0x1c, 4) + tag(0x9f, 4) + glass(0x0100, MODEL_CETANWINDOW1, 0x020c, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW1, 0x020d, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW1, 0x020e, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0293, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x1d, 4) + tag(0x1e, 4) + tag(0x1f, 4) + tag(0xa0, 4) + glass(0x0100, MODEL_CETANWINDOW1, 0x020f, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW1, 0x0210, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW1, 0x0211, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0294, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x20, 12) + tag(0x21, 12) + tag(0x22, 12) + tag(0x23, 12) + tag(0x24, 12) + tag(0x25, 12) + tag(0x26, 12) + tag(0x27, 12) + tag(0x28, 12) + tag(0x29, 12) + tag(0x2a, 12) + tag(0x2b, 12) + glass(0x0100, MODEL_CETANWINDOW2, 0x0212, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x0213, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x0214, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x0215, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x0216, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x0217, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x0218, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x0219, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x021a, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x021b, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x021c, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x021d, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0295, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0xa1, -1) + tag(0x2c, 12) + tag(0x2d, 12) + tag(0x2e, 12) + tag(0x2f, 12) + tag(0x30, 12) + tag(0x31, 12) + tag(0x32, 12) + tag(0x33, 12) + tag(0x34, 12) + tag(0x35, 12) + tag(0x36, 12) + tag(0x37, 12) + glass(0x0100, MODEL_CETANWINDOW2, 0x021e, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x021f, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x0220, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x0221, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x0222, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x0223, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x0224, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x0225, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x0226, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x0227, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x0228, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x0229, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0296, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0xa2, -1) + tag(0x38, 12) + tag(0x39, 12) + tag(0x3a, 12) + tag(0x3b, 12) + tag(0x3c, 12) + tag(0x3d, 12) + tag(0x3e, 12) + tag(0x3f, 12) + tag(0x40, 12) + tag(0x41, 12) + tag(0x42, 12) + tag(0x43, 12) + glass(0x0100, MODEL_CETANWINDOW2, 0x022a, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x022b, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x022c, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x022d, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x022e, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x022f, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x0230, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x0231, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x0232, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x0233, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x0234, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x0235, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0297, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0xa3, -1) + tag(0x44, 12) + tag(0x45, 12) + tag(0x46, 12) + tag(0x47, 12) + tag(0x48, 12) + tag(0x49, 12) + tag(0x4a, 12) + tag(0x4b, 12) + tag(0x4c, 12) + tag(0x4d, 12) + tag(0x4e, 12) + tag(0x4f, 12) + glass(0x0100, MODEL_CETANWINDOW2, 0x0236, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x0237, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x0238, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x0239, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x023a, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x023b, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x023c, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x023d, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x023e, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x023f, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x0240, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x0241, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0298, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0xa4, -1) + tag(0x50, 12) + tag(0x51, 12) + tag(0x52, 12) + tag(0x52, 12) + tag(0x53, 12) + tag(0x54, 12) + tag(0x55, 12) + tag(0x56, 12) + tag(0x57, 12) + tag(0x58, 12) + tag(0x59, 12) + tag(0x5a, 12) + glass(0x0100, MODEL_CETANWINDOW2, 0x0242, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x0243, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x0244, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x0245, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x0246, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x0247, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x0248, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x0249, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x024a, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x024b, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x024c, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x024d, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0299, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0xa5, -1) + chr(0x00000100, 0x41, 0x024e, BODY_MINISKEDAR, HEAD_MRBLONDE, GFUNC_IDLE, -1, -1, 100, 100, 0xc8082000, 0x00000000, 0x80, 0x0f, -1, 0, 0x00000000) + chr(0x00000100, 0x42, 0x025a, BODY_MINISKEDAR, HEAD_MRBLONDE, GFUNC_IDLE, -1, -1, 100, 100, 0xc8082000, 0x00000000, 0x80, 0x0f, -1, 0, 0x00000000) + tag(0x5b, 12) + tag(0x5c, 12) + tag(0x5d, 12) + tag(0x5e, 12) + tag(0x5f, 12) + tag(0x60, 12) + tag(0x61, 12) + tag(0x62, 12) + tag(0x63, 12) + tag(0x64, 12) + tag(0x65, 12) + tag(0x66, 12) + glass(0x0100, MODEL_CETANWINDOW2, 0x024e, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x024f, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x0250, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x0251, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x0252, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x0253, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x0254, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x0255, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x0256, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x0257, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x0258, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x0259, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x029a, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0xa6, -1) + tag(0x67, 12) + tag(0x68, 12) + tag(0x69, 12) + tag(0x6a, 12) + tag(0x6b, 12) + tag(0x6c, 12) + tag(0x6d, 12) + tag(0x6e, 12) + tag(0x6f, 12) + tag(0x70, 12) + tag(0x71, 12) + tag(0x72, 12) + glass(0x0100, MODEL_CETANWINDOW2, 0x025a, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x025b, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x025c, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x025d, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x025e, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x025f, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x0260, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x0261, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x0262, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x0263, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW2, 0x0264, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_CETANWINDOW3, 0x0265, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x029b, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0xa7, -1) + tag(0xa8, 1) + autogun(0x0100, MODEL_CETROOFGUN, 0x0188, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00e40000, 0x00000000, 0x00020000, 0xfffe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000da, 0x00640000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0xa9, 1) + autogun(0x0100, MODEL_CETROOFGUN, 0x0189, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00f80000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000da, 0x00640000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0xaa, 1) + autogun(0x0100, MODEL_CETROOFGUN, 0x018a, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00e40000, 0x00000000, 0x00008000, 0xffff8000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000da, 0x00640000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x0266, 0x14020b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0xbb, 1) + stdobject(0x0040, MODEL_ZIGGYCARD, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x74, 1) + weapon(0x0180, MODEL_CHRDATATHIEF, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_BACKUPDISK, 0x00ffffff, 0x00000000) + rename_object(-1, 0x44, 0x3017, 0x3018, 0x3019, 0x301a, 0x301b, 0x0000, 0x0000) // "" + tag(0x76, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x77, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x78, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x79, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x7a, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x7b, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x7c, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x7d, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x7e, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x7f, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x80, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x81, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x82, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x83, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x84, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x85, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x86, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x87, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x88, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x89, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x8a, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x8b, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x8c, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x8d, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x8e, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x8f, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x90, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x91, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x92, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x93, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x94, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x95, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x96, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x97, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x98, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x99, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x9a, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x9b, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0xac, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x0012, 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(0xad, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x001a, 0x00004001, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000) + tag(0xb0, 1) + weapon(0x0080, MODEL_MULTI_AMMO_CRATE, 0x0008, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PROXIMITYMINE, 0x00ffffff, 0x00000000) + endprops +}; + +u8 intro[] = { + intro_weapon(WEAPON_FALCON2_SCOPE, -1) + ammo(AMMOTYPE_PISTOL, 50) + ammo(AMMOTYPE_PROXY_MINE, 2) + intro_weapon(WEAPON_SHOTGUN, -1) + ammo(AMMOTYPE_SHOTGUN, 100) + ammo(AMMOTYPE_FARSIGHT, 50) + intro_weapon(WEAPON_IRSCANNER, -1) + spawn(0x018b) + outfit(OUTFIT_DEEPSEA) + endintro +}; + +s32 path02[] = { + 0x0099, + 0x0098, + 0x000e, + 0x000d, + 0x000c, + -1, +}; + +s32 path03[] = { + 0x001e, + 0x0096, + 0x0095, + -1, +}; + +s32 path04[] = { + 0x001b, + 0x001a, + 0x001c, + 0x001d, + -1, +}; + +s32 path05[] = { + 0x0021, + 0x0020, + 0x001f, + -1, +}; + +s32 path06[] = { + 0x0022, + 0x001a, + 0x001c, + -1, +}; + +s32 path07[] = { + 0x00c4, + 0x00c5, + 0x00c6, + 0x00c7, + -1, +}; + +s32 path08[] = { + 0x00c7, + 0x00c8, + -1, +}; + +s32 path09[] = { + 0x00cb, + 0x00cc, + -1, +}; + +s32 path10[] = { + 0x00be, + 0x00bf, + 0x00c1, + -1, +}; + +u8 func0401_unused[] = { + dprint 'h','o','v','\n',0, + begin_hovercar_path(0x00) + set_vehicle_speed(384, 120) + + beginloop(0x04) + endloop(0x04) + + endfunction +}; + +u8 func1001_objectives_failed_msg[] = { + yield + set_function(CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG) + endfunction +}; + +u8 func1400_setup_counterop[] = { + yield + set_chr_alliance(CHR_COUNTEROP, ALLIANCE_ENEMY) + set_function(CHR_SELF, GFUNC_REBUILD_GROUPS) + endfunction +}; + +u8 func040b_init_elvis[] = { + set_self_flag_bank3(CHRFLAG3_00080000) + set_self_flag_bank3(CHRFLAG3_00040000) + set_self_flag_bank3(CHRFLAG3_01000000) + set_accuracy(100) + set_reaction_speed(100) + set_alertness(100) + set_chr_health(CHR_SELF, 1) + set_armor(900) + set_function(CHR_SELF, FUNC_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS) + endfunction +}; + +u8 func0402_elvis_follow_and_reactive_teleportals[] = { + dprint 'B','A','C','K',' ','T','O',' ','E','L','V','I','S','\n',0, + set_return_function(CHR_SELF, FUNC_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS) + set_onshot_function(FUNC_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS) + set_target_chr(FOLLOW_CHR) + if_chr_dying(CHR_SELF, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2e) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x06) + + // Dying + label(0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x06) + if_just_injured(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x06) + + // Injured + label(0x2e) + if_sound_finished(CHANNEL_6, /*goto*/ 0x2f) + goto_next(0x12) + + label(0x2f) + say_quip(CHR_JOANNA, 0x29, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00) + + beginloop(0x12) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x12) + + // Not injured + label(0x06) + if_self_flag_bankx_eq(CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x2e) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x08) + goto_next(0x06) + + // Has flag + label(0x2e) + if_enemy_distance_lt_and_los(100, /*goto*/ 0x08) + + // No enemy nearby + label(0x06) + set_target_chr(FOLLOW_CHR) + if_chr_distance_lt(200, /*goto*/ 0x06) + + // Jo distance >= 200 + label(0x03) + dprint 'G','O','T','O','W','\n',0, + set_target_chr(FOLLOW_CHR) + restart_timer + if_chr_distance_gt(300, /*goto*/ 0x06) + try_run_to_target_chr_with_hand_up(/*goto*/ 0x04) + + // Jo distance < 200 or distance > 300 + label(0x06) + try_run_to_target_chr(/*goto*/ 0x04) + + beginloop(0x04) + if_self_flag_bankx_eq(CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x2e) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x08) + goto_next(0x06) + label(0x2e) + if_enemy_distance_lt_and_los(100, /*goto*/ 0x08) + label(0x06) + if_stage_flag_eq(STAGEFLAG_TELEPORTALS_ACTIVATED, TRUE, /*goto*/ 0x2e) + if_chr_in_room(CHR_ELVIS, 0x00, 0x003c, /*goto*/ 0x5f) + label(0x2e) + set_target_chr(FOLLOW_CHR) + if_chr_distance_lt(200, /*goto*/ 0x06) + if_timer_gt(60, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + goto_first(0x03) + + // Waiting next to Jo? + label(0x06) + stop_chr + + beginloop(0x09) + if_self_flag_bankx_eq(CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x2e) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x08) + goto_next(0x06) + label(0x2e) + if_enemy_distance_lt_and_los(100, /*goto*/ 0x08) + label(0x06) + if_stage_flag_eq(STAGEFLAG_TELEPORTALS_ACTIVATED, TRUE, /*goto*/ 0x2e) + if_chr_in_room(CHR_ELVIS, 0x00, 0x003c, /*goto*/ 0x5f) + label(0x2e) + set_target_chr(FOLLOW_CHR) + if_chr_distance_gt(300, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + goto_first(0x03) + + // Enemy detected + label(0x08) + yield + if_sound_finished(CHANNEL_6, /*goto*/ 0x06) + goto_next(0x2e) + label(0x06) + call_rng + if_rand_lt(85, /*goto*/ 0x63) + if_rand_lt(170, /*goto*/ 0x64) + + say_quip(CHR_JOANNA, 0x26, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) + goto_next(0x2e) + + label(0x63) + say_quip(CHR_JOANNA, 0x27, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) + goto_next(0x2e) + + label(0x64) + say_quip(CHR_JOANNA, 0x28, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) + label(0x2e) + set_onshot_function(FUNC_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS) + set_return_function(CHR_SELF, FUNC_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + + // In teleport control room + label(0x5f) + stop_chr + speak(TARGET_CHR, 0x301d, 0x14eb, CHANNEL_6, COLOR_04_ORANGE) // "Time to reactivate those teleportals." + jog_to_pad(0x01c3) + + beginloop(0x0f) + if_chr_stopped(/*goto*/ 0x2e) + endloop(0x0f) + + label(0x6f) + label(0x2e) + unset_self_flag_bank3(CHRFLAG3_01000000) + animation(ANIM_OPERATE_0204, -1, -1, 0x0210, CHR_SELF, 2) + + beginloop(0x10) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x10) + + label(0x06) + say_quip(CHR_JOANNA, 0x2c, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00) + message(CHR_JOANNA, 0x301e) // "Teleportals have been reactivated." + set_stage_flag(STAGEFLAG_TELEPORTALS_ACTIVATED) + set_self_flag_bank3(CHRFLAG3_01000000) + play_sound(0x8148, -1) + set_lights_state(0x003c, 0x04, 0x00, 0xff, 0xb4) + set_chr_flag_bank3(0x14, CHRFLAG3_00040000) + set_chr_flag_bank3(0x15, CHRFLAG3_00040000) + set_chr_flag_bank3(0x16, CHRFLAG3_00040000) + unset_chr_flag_bank3(0x14, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x15, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x16, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x14, FUNC_TELEPORT_ACTIVATION_RESPONDER) + set_function(0x15, FUNC_TELEPORT_ACTIVATION_RESPONDER) + set_function(0x16, FUNC_TELEPORT_ACTIVATION_RESPONDER) + goto_first(0x03) + + label(0x60) + set_function(CHR_SELF, FUNC_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS) + endfunction +}; + +u8 func0433_unused[] = { + beginloop(0x04) + set_target_chr(CHR_JOANNA) + if_within_units_of_sight(30, /*goto*/ 0x06) + set_target_chr(CHR_VELVET) + if_within_units_of_sight(30, /*goto*/ 0x06) + set_target_chr(CHR_COUNTEROP) + if_within_units_of_sight(30, /*goto*/ 0x06) + goto_next(0x2e) + + label(0x06) + endloop(0x04) + + label(0x2e) + unset_self_flag_bankx(CHRFLAG0_UNSURPRISABLE, BANK_0) + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +/** + * This is also assigned to Elvis on PA, but in that case it's a general follow + * function because he can't enter the agent megaweapon room on PA. + */ +u8 func0404_elvis_follow_and_do_agent_megaweapon[] = { + set_self_flag_bank3(CHRFLAG3_00080000) + unset_self_flag_bankx(CHRFLAG1_00200000, BANK_1) + set_onshot_function(FUNC_ELVIS_FOLLOW_AND_DO_AGENT_MEGAWEAPON) + set_target_chr(FOLLOW_CHR) + if_chr_dying(CHR_SELF, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2e) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x06) + + // Dying + label(0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x06) + if_just_injured(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x06) + + // Injured + label(0x2e) + say_quip(CHR_JOANNA, 0x29, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00) + + beginloop(0x12) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x12) + + // Healthy + label(0x06) + if_stage_flag_eq(STAGEFLAG_AGENT_MEGAWEAPON_DISABLED, TRUE, /*goto*/ 0x2e) + if_stage_flag_eq(STAGEFLAG_ELVIS_SAID_SABOTAGE, TRUE, /*goto*/ 0x5f) + label(0x2e) + if_enemy_distance_lt_and_los(2000, /*goto*/ 0x08) + set_target_chr(FOLLOW_CHR) + if_chr_distance_lt(200, /*goto*/ 0x06) + label(0x03) + set_target_chr(FOLLOW_CHR) + restart_timer + if_chr_distance_gt(300, /*goto*/ 0x06) + try_run_to_target_chr_with_hand_up(/*goto*/ 0x04) + label(0x06) + try_run_to_target_chr(/*goto*/ 0x04) + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_AGENT_MEGAWEAPON_DISABLED, TRUE, /*goto*/ 0x2e) + if_chr_in_room(CHR_ELVIS, 0x00, 0x006c, /*goto*/ 0x1d) + label(0x2e) + dprint 'G','O',' ','T','O',' ','P','A','D','\n',0, + if_enemy_distance_lt_and_los(2000, /*goto*/ 0x08) + set_target_chr(FOLLOW_CHR) + if_chr_distance_lt(200, /*goto*/ 0x06) + if_timer_gt(60, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + goto_first(0x03) + + label(0x06) + stop_chr + + beginloop(0x09) + dprint 'B','4',' ','P','A','D','\n',0, + if_stage_flag_eq(STAGEFLAG_AGENT_MEGAWEAPON_DISABLED, TRUE, /*goto*/ 0x2e) + if_chr_in_room(CHR_ELVIS, 0x00, 0x006c, /*goto*/ 0x1d) + label(0x2e) + dprint 'A','T',' ','P','A','D','\n',0, + if_enemy_distance_lt_and_los(2000, /*goto*/ 0x08) + set_target_chr(FOLLOW_CHR) + if_chr_distance_gt(300, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + goto_first(0x03) + + label(0x08) + dprint 'D','E','T','E','C','T','E','D','\n',0, + call_rng + if_rand_lt(85, /*goto*/ 0x63) + if_rand_lt(170, /*goto*/ 0x64) + + say_quip(CHR_JOANNA, 0x26, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) + goto_next(0x2e) + + label(0x63) + say_quip(CHR_JOANNA, 0x27, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) + goto_next(0x2e) + + label(0x64) + say_quip(CHR_JOANNA, 0x28, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) + + label(0x2e) + set_onshot_function(FUNC_ELVIS_FOLLOW_AND_DO_AGENT_MEGAWEAPON) + set_return_function(CHR_SELF, FUNC_ELVIS_FOLLOW_AND_DO_AGENT_MEGAWEAPON) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + + // In Agent megaweapon room + label(0x1d) + speak(TARGET_CHR, 0x301c, 0x14ec, CHANNEL_6, COLOR_04_ORANGE) // "It looks like this could benefit from a little bit..." + label(0x5f) + set_stage_flag(STAGEFLAG_ELVIS_SAID_SABOTAGE) + stop_chr + jog_to_pad(0x005f) + + beginloop(0x0f) + if_chr_stopped(/*goto*/ 0x2e) + endloop(0x0f) + + label(0x6f) + label(0x2e) + unset_self_flag_bank3(CHRFLAG3_01000000) + restart_timer + animation(ANIM_OPERATE_0205, -1, -1, 0x0010, CHR_SELF, 2) + + beginloop(0x10) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x10) + + label(0x06) + say_quip(CHR_JOANNA, 0x2c, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00) + set_self_flag_bank3(CHRFLAG3_01000000) + message(CHR_JOANNA, 0x3014) // "Cetan megaweapon has been disabled." + set_stage_flag(STAGEFLAG_AGENT_MEGAWEAPON_DISABLED) + set_stage_flag(STAGEFLAG_MEGAWEAPON_DISABLED) + set_lights_state(0x006c, 0x03, 0x64, 0xff, 0x78) + assign_sound(0x8148, CHANNEL_7) + play_sound_from_entity(CHANNEL_7, CHR_SELF, 0x0bb8, 0x1770, 0x01) + unlock_door(0xb7, 0x02) + unlock_door(0xb8, 0x02) + goto_first(0x03) + + label(0x60) + set_function(CHR_SELF, FUNC_ELVIS_FOLLOW_AND_DO_AGENT_MEGAWEAPON) + endfunction +}; + +/** + * Seems to be a general follow function for Elvis. + * He does not engage in combat. + * + * @unused + */ +u8 func0405_elvis_follow_nocombat[] = { + set_self_flag_bank3(CHRFLAG3_00080000) + unset_self_flag_bankx(CHRFLAG1_00200000, BANK_1) + set_onshot_function(0x0405) + set_target_chr(FOLLOW_CHR) + if_chr_dying(CHR_SELF, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2e) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x06) + + // Dying + label(0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x06) + if_just_injured(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x06) + + // Injured + label(0x2e) + say_quip(CHR_JOANNA, 0x29, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00) + + beginloop(0x12) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x12) + + label(0x06) + if_enemy_distance_lt_and_los(300, /*goto*/ 0x08) + set_target_chr(FOLLOW_CHR) + if_chr_distance_lt(200, /*goto*/ 0x06) + label(0x03) + set_target_chr(FOLLOW_CHR) + restart_timer + if_chr_distance_gt(300, /*goto*/ 0x06) + try_run_to_target_chr_with_hand_up(/*goto*/ 0x04) + label(0x06) + try_run_to_target_chr(/*goto*/ 0x04) + + beginloop(0x04) + label(0x2e) + dprint 'G','O',' ','T','O',' ','P','A','D','\n',0, + if_enemy_distance_lt_and_los(300, /*goto*/ 0x08) + set_target_chr(FOLLOW_CHR) + if_chr_distance_lt(200, /*goto*/ 0x06) + if_timer_gt(60, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + goto_first(0x03) + + label(0x06) + stop_chr + + beginloop(0x09) + dprint 'B','4',' ','P','A','D','\n',0, + label(0x2e) + dprint 'A','T',' ','P','A','D','\n',0, + if_enemy_distance_lt_and_los(2000, /*goto*/ 0x08) + set_target_chr(FOLLOW_CHR) + if_chr_distance_gt(300, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + goto_first(0x03) + + // Detected enemy + label(0x08) + restart_timer + say_quip(CHR_JOANNA, 0x29, 0xff, 0x14, 0xff, BANK_1, 0x00, 0x00) + retreat(0x02, 0x01) + + beginloop(0x09) + if_timer_gt(120, /*goto*/ 0x2e) + endloop(0x09) + + label(0x2e) + goto_first(0x03) + + endfunction +}; + +u8 func0406_elvis_follow_and_do_sa_megaweapon[] = { + set_onshot_function(FUNC_ELVIS_FOLLOW_AND_DO_SA_MEGAWEAPON) + set_target_chr(FOLLOW_CHR) + if_chr_dying(CHR_SELF, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2e) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x06) + + // Dying + label(0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x06) + if_just_injured(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x5f) + + // Injured + label(0x2e) + say_quip(CHR_JOANNA, 0x29, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) + + beginloop(0x12) + if_chr_stopped(/*goto*/ 0x5f) + endloop(0x12) + + label(0x5f) + if_stage_flag_eq(STAGEFLAG_ELVIS_STARTED_SA_MEGAWEAPON, TRUE, /*goto*/ 0x1b) + restart_timer + if_chr_distance_lt(400, /*goto*/ 0x2e) + jog_to_pad(0x00b4) + goto_next(0x0f) + + label(0x2e) + label(0x1c) + run_to_pad(0x00b4) + + beginloop(0x0f) + if_timer_gt(300, /*goto*/ 0x06) + if_chr_stopped(/*goto*/ 0x2e) + endloop(0x0f) + + label(0x06) + goto_first(0x5f) + + label(0x2e) + restart_timer + try_face_entity(0x0008, 0x0115, /*goto*/ 0x97) + + beginloop(0x97) + if_timer_gt(60, /*goto*/ 0x06) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x97) + + label(0x06) + restart_timer + + label(0x1b) + set_stage_flag(STAGEFLAG_ELVIS_STARTED_SA_MEGAWEAPON) + unset_self_flag_bank3(CHRFLAG3_01000000) + call_rng + if_rand_lt(86, /*goto*/ 0x63) + if_rand_lt(172, /*goto*/ 0x64) + + animation(ANIM_OPERATE_0204, -1, -1, 0x0210, CHR_SELF, 2) + goto_next(0x11) + + label(0x63) + animation(ANIM_OPERATE_0205, -1, -1, 0x0210, CHR_SELF, 2) + goto_next(0x11) + + label(0x64) + animation(ANIM_OPERATE_0206, -1, -1, 0x0210, CHR_SELF, 2) + goto_next(0x11) + + beginloop(0x11) + if_chr_idle(/*goto*/ 0x2e) + goto_next(0x06) + + label(0x2e) + if_timer_gt(3600, /*goto*/ 0x2e) + endloop(0x11) + + label(0x06) + goto_first(0x1b) + + label(0x2e) + say_quip(CHR_JOANNA, 0x2c, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) + set_self_flag_bank3(CHRFLAG3_01000000) + message(CHR_JOANNA, 0x3014) // "Cetan megaweapon has been disabled." + set_stage_flag(STAGEFLAG_MEGAWEAPON_DISABLED) + try_draw_weapon(MODEL_CHRMAIANPISTOL, WEAPON_PHOENIX, 0x00000000, /*goto*/ 0x04) + label(0x04) + set_function(CHR_SELF, FUNC_ELVIS_GO_TO_SA_TELEPORT) + goto_first(0x03) + + label(0x60) + set_function(CHR_SELF, FUNC_ELVIS_FOLLOW_AND_DO_SA_MEGAWEAPON) + endfunction +}; + +u8 func0407_elvis_go_to_sa_teleport[] = { + set_onshot_function(FUNC_ELVIS_GO_TO_SA_TELEPORT) + set_target_chr(FOLLOW_CHR) + if_chr_dying(CHR_SELF, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2e) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x06) + + // Dying + label(0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x06) + if_just_injured(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x5f) + + // Injured + label(0x2e) + say_quip(CHR_JOANNA, 0x29, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) + + beginloop(0x12) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x12) + + label(0x06) + set_target_chr(FOLLOW_CHR) + label(0x5f) + restart_timer + if_chr_distance_lt(1400, /*goto*/ 0x2e) + jog_to_pad(0x00c0) + goto_next(0x0f) + + label(0x2e) + run_to_pad(0x00c0) + + beginloop(0x0f) + if_enemy_distance_lt_and_los(800, /*goto*/ 0x08) + if_timer_gt(300, /*goto*/ 0x06) + if_chr_stopped(/*goto*/ 0x2e) + endloop(0x0f) + + label(0x06) + goto_first(0x5f) + + label(0x2e) + stop_chr + + beginloop(0x10) + if_enemy_distance_lt_and_los(800, /*goto*/ 0x08) + endloop(0x10) + + label(0x06) + restart_timer + label(0x08) + dprint 'D','E','T','E','C','T','E','D','\n',0, + call_rng + if_rand_lt(85, /*goto*/ 0x63) + if_rand_lt(170, /*goto*/ 0x64) + say_quip(CHR_JOANNA, 0x26, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) + goto_next(0x2e) + + label(0x63) + say_quip(CHR_JOANNA, 0x27, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) + goto_next(0x2e) + + label(0x64) + say_quip(CHR_JOANNA, 0x28, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) + label(0x2e) + set_onshot_function(FUNC_ELVIS_GO_TO_SA_TELEPORT) + set_return_function(CHR_SELF, FUNC_ELVIS_GO_TO_SA_TELEPORT) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + endfunction +}; + +u8 func0403_elvis_give_farsight[] = { + set_onshot_function(FUNC_ELVIS_GIVE_FARSIGHT) + set_target_chr(FOLLOW_CHR) + if_chr_dying(CHR_SELF, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2e) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x06) + + // Dying + label(0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x06) + if_just_injured(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x06) + + // Injured + label(0x2e) + say_quip(CHR_JOANNA, 0x29, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) + + beginloop(0x12) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x12) + + // Healthy + label(0x06) + set_target_chr(FOLLOW_CHR) + if_chr_distance_lt(200, /*goto*/ 0x06) + + label(0x03) + set_target_chr(FOLLOW_CHR) + restart_timer + if_chr_distance_gt(300, /*goto*/ 0x06) + try_run_to_target_chr_with_hand_up(/*goto*/ 0x04) + label(0x06) + try_run_to_target_chr(/*goto*/ 0x04) + + beginloop(0x04) + dprint 'G','O',' ','T','O',' ','P','A','D','\n',0, + set_target_chr(FOLLOW_CHR) + if_chr_distance_lt(200, /*goto*/ 0x06) + if_timer_gt(60, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + goto_first(0x03) + + label(0x06) + stop_chr + label(0x09) + do_special_animation(5) + speak(TARGET_CHR, 0x3012, 0x12ea, CHANNEL_6, COLOR_04_ORANGE) // "Here, take this gun and keep those Skedar off my b..." + give_object_to_chr(0x73, TARGET_CHR) + yield + set_stage_flag(STAGEFLAG_TRIGGER_MINISKEDAR_SPAWNING) + + beginloop(0x0a) + if_sound_finished(CHANNEL_6, /*goto*/ 0x2e) + endloop(0x0a) + + label(0x2e) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2e) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x06) + + // PA + unset_self_flag_bankx(CHRFLAG1_00200000, BANK_1) + yield + try_draw_weapon(MODEL_CHRMAIANPISTOL, WEAPON_PHOENIX, 0x00000000, /*goto*/ 0x2f) + label(0x2f) + set_function(CHR_SELF, FUNC_ELVIS_FOLLOW_AND_DO_AGENT_MEGAWEAPON) + + // SA + label(0x06) + set_function(CHR_SELF, FUNC_ELVIS_FOLLOW_AND_DO_SA_MEGAWEAPON) + + // Agent + label(0x2e) + yield + try_draw_weapon(MODEL_CHRMAIANPISTOL, WEAPON_PHOENIX, 0x00000000, /*goto*/ 0x2e) + label(0x2e) + set_function(CHR_SELF, FUNC_ELVIS_FOLLOW_AND_DO_AGENT_MEGAWEAPON) + endfunction +}; + +u8 func1003_powernode1[] = { + beginloop(0x04) + if_object_in_good_condition(OBJ_POWERNODE1, /*goto*/ 0x2e) + if_door_state(0x03, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x2e) + open_door(0x03) + endloop(0x04) + + label(0x2e) + if_object_health_lt(OBJ_POWERNODE1, 250, /*goto*/ 0x2e) + set_object_health(OBJ_POWERNODE1, 0) + set_object_flag_bank0(OBJ_POWERNODE1, OBJECTFLAG0_INVINCIBLE) + open_door(0x03) + set_object_flag_bank0(0x03, OBJECTFLAG0_40000000) + goto_first(0x04) + + label(0x2e) + goto_first(0x04) + endfunction +}; + +u8 func1004_powernode2[] = { + beginloop(0x04) + if_object_in_good_condition(OBJ_POWERNODE2, /*goto*/ 0x2e) + if_door_state(0x04, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x2e) + open_door(0x04) + endloop(0x04) + + label(0x2e) + if_object_health_lt(OBJ_POWERNODE2, 250, /*goto*/ 0x2e) + set_object_health(OBJ_POWERNODE2, 0) + set_object_flag_bank0(OBJ_POWERNODE2, OBJECTFLAG0_INVINCIBLE) + open_door(0x04) + set_object_flag_bank0(0x04, OBJECTFLAG0_40000000) + goto_first(0x04) + + label(0x2e) + goto_first(0x04) + endfunction +}; + +u8 func1005_powernode3[] = { + beginloop(0x04) + if_object_in_good_condition(OBJ_POWERNODE3, /*goto*/ 0x2e) + if_door_state(0x05, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x2e) + open_door(0x05) + endloop(0x04) + + label(0x2e) + if_object_health_lt(OBJ_POWERNODE3, 250, /*goto*/ 0x2e) + set_object_flag_bank0(OBJ_POWERNODE3, OBJECTFLAG0_INVINCIBLE) + set_object_health(OBJ_POWERNODE3, 0) + open_door(0x05) + set_object_flag_bank0(0x05, OBJECTFLAG0_40000000) + goto_first(0x04) + + label(0x2e) + goto_first(0x04) + endfunction +}; + +u8 func0c01_midcutscene[] = { + remove_weapon_from_inventory(WEAPON_BACKUPDISK) + fade_to_color(0x000000ff, 0) + fade_to_color(0x00000000, 15) + set_chr_flag_bank3(0xf1, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_function(CHR_ELVIS, GFUNC_IDLE) + set_music_track(MUSIC_DEEPSEA_MIDCUTSCENE) + camera_movement(0x01d4) + set_chr_flag_bank3(CHR_P1P2, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_P1P2, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_P1P2, CHRFLAG2_00020000) + animation(0x01d5, -1, -1, 0x0600, CHR_P1P2, 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(0x01d6, -1, -1, 0x0600, CHR_ELVIS, 4) + set_chr_flag_bank3(CHR_DRCAROLL, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_DRCAROLL, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_DRCAROLL, CHRFLAG2_00020000) + animation(0x01d7, -1, -1, 0x0600, CHR_DRCAROLL, 4) + show_object(0xbb) + set_object_flag_bank1(0xbb, OBJECTFLAG1_04000000) + set_object_flag_bank2(0xbb, OBJECTFLAG2_00000010) + object_do_animation(0x01d8, 0xbb, 0x04ff, 0xff) + restart_timer + set_cutscene_weapon(CHR_P1P2, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_P1P2, WEAPON_NONE, WEAPON_NONE) + set_cutscene_weapon(CHR_ELVIS, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_ELVIS, WEAPON_NONE, WEAPON_NONE) + show_nonessential_chrs(FALSE) + + #define wait_until(time, loopid) \ + beginloop(loopid) \ + if_controller_button_pressed(/*goto*/ 0x57) \ + if_timer_gt(time, /*goto*/ 0x06) \ + endloop(loopid) \ + label(0x06) + + + + #define wait_until_with_images(time, loopid, image1, image2) \ + beginloop(loopid) \ + set_drcaroll_image(CHR_DRCAROLL, image1, image2) \ + if_controller_button_pressed(/*goto*/ 0x57) \ + if_timer_gt(time, /*goto*/ 0x06) \ + endloop(loopid) \ + label(0x06) + + + + wait_until(114, 0x63) + speak(CHR_JOANNA, 0x3023, 0x746d, CHANNEL_10, COLOR_09_BLUE) // "Here goes. I just hope dataDyne haven't done anyth..." + + wait_until(300, 0x64) + play_sound(0x0171, CHANNEL_2) + + wait_until(378, 0x65) + play_sound(0x04fc, CHANNEL_3) + + wait_until(408, 0x6a) + play_sound(0x0423, CHANNEL_5) + + wait_until(440, 0x1a) + play_sound(0x04f7, CHANNEL_10) + + wait_until(490, 0x6b) + speak(CHR_JOANNA, 0x3024, 0x746e, CHANNEL_10, COLOR_04_ORANGE) // "Virus detected." + + wait_until(570, 0x69) + + label(0x6c) + set_drcaroll_image(CHR_DRCAROLL, 0x02, 0x03) + yield + set_drcaroll_image(CHR_DRCAROLL, 0x03, 0x02) + yield + if_controller_button_pressed(/*goto*/ 0x57) + if_timer_gt(600, /*goto*/ 0x06) + goto_first(0x6c) + + label(0x06) + set_drcaroll_image(CHR_DRCAROLL, 0x02, 0x02) + speak(CHR_JOANNA, 0x3025, 0x746f, CHANNEL_10, COLOR_09_BLUE) // "Me and my big mouth." + + wait_until(700, 0x6d) + play_sound(0x0172, CHANNEL_6) + + wait_until(712, 0x6f) + play_sound(0x04f8, CHANNEL_2) + + wait_until(716, 0x70) + play_sound(0x0127, CHANNEL_3) + + label(0x71) + yield + set_drcaroll_image(CHR_DRCAROLL, 0x07, 0x07) + if_controller_button_pressed(/*goto*/ 0x57) + if_timer_gt(742, /*goto*/ 0x06) + goto_first(0x71) + + label(0x06) + speak(CHR_JOANNA, 0x3026, 0x7470, CHANNEL_10, COLOR_04_ORANGE) // "Commencing countermeasures. Commenc..... *** ooOOo..." + + wait_until_with_images(746, 0x73, 0x02, 0x08) + play_sound(0x0128, CHANNEL_5) + + wait_until_with_images(760, 0x75, 0x08, 0x08) + emit_sparks(CHR_DRCAROLL) + + wait_until_with_images(764, 0x76, 0x08, 0x02) + play_sound(0x0173, CHANNEL_2) + + wait_until_with_images(784, 0x79, 0x08, 0x08) + play_sound(0x0174, CHANNEL_5) + + wait_until_with_images(808, 0x7c, 0x08, 0x02) + emit_sparks(CHR_DRCAROLL) + + wait_until_with_images(872, 0x81, 0x08, 0x08) + play_sound(0x04fa, CHANNEL_7) + + wait_until_with_images(886, 0x83, 0x00, 0x08) + play_sound(0x0129, CHANNEL_3) + + wait_until_with_images(894, 0x85, 0x08, 0x02) + play_sound(0x012a, CHANNEL_5) + label(0x86) + + wait_until_with_images(914, 0x87, 0x08, 0x08) + emit_sparks(CHR_DRCAROLL) + + wait_until_with_images(980, 0x8b, 0x00, 0x08) + emit_sparks(CHR_DRCAROLL) + + wait_until_with_images(992, 0x8e, 0x08, 0x00) + play_sound(0x04f9, CHANNEL_2) + + wait_until_with_images(1012, 0x90, 0x08, 0x08) + play_sound(0x012b, CHANNEL_4) + + wait_until_with_images(1018, 0x91, 0x00, 0x08) + emit_sparks(CHR_DRCAROLL) + + wait_until_with_images(1026, 0x93, 0x08, 0x08) + play_sound(0x0129, CHANNEL_7) + + wait_until_with_images(1034, 0x94, 0x08, 0x00) + play_sound(0x0176, CHANNEL_2) + set_drcaroll_image(CHR_DRCAROLL, 0x00, 0x00) + + wait_until_with_images(1036, 0x95, 0x08, 0x08) + emit_sparks(CHR_DRCAROLL) + + wait_until_with_images(1068, 0x98, 0x08, 0x00) + play_sound(0x0177, CHANNEL_6) + emit_sparks(CHR_DRCAROLL) + + wait_until_with_images(1074, 0x99, 0x08, 0x08) + emit_sparks(CHR_DRCAROLL) + + wait_until_with_images(1090, 0xfc, 0x00, 0x08) + emit_sparks(CHR_DRCAROLL) + + wait_until_with_images(1112, 0x9e, 0x08, 0x08) + play_sound(0x0127, CHANNEL_6) + + wait_until_with_images(1124, 0xa0, 0x08, 0x00) + play_sound(0x04f7, CHANNEL_2) + emit_sparks(CHR_DRCAROLL) + + wait_until_with_images(1130, 0xa1, 0x00, 0x08) + play_sound(0x04ff, CHANNEL_3) + emit_sparks(CHR_DRCAROLL) + + wait_until_with_images(1188, 0xa7, 0x08, 0x08) + emit_sparks(CHR_DRCAROLL) + + wait_until_with_images(1238, 0xaa, 0x08, 0x00) + play_sound(0x04f7, CHANNEL_6) + emit_sparks(CHR_DRCAROLL) + + wait_until_with_images(1304, 0xb2, 0x00, 0x08) + play_sound(0x0129, CHANNEL_2) + + wait_until_with_images(1308, 0xb3, 0x08, 0x08) + play_sound(0x0178, CHANNEL_3) + + wait_until_with_images(1354, 0xba, 0x08, 0x00) + play_sound(0x04f7, CHANNEL_4) + + wait_until_with_images(1406, 0xc5, 0x00, 0x08) + emit_sparks(CHR_DRCAROLL) + + wait_until_with_images(1468, 0xcd, 0x00, 0x08) + play_sound(0x012b, CHANNEL_5) + + wait_until_with_images(1480, 0xcf, 0x00, 0x08) + play_sound(0x0173, CHANNEL_6) + + wait_until_with_images(1487, 0xd0, 0x08, 0x00) + play_sound(0x04f9, CHANNEL_2) + emit_sparks(CHR_DRCAROLL) + + wait_until_with_images(1494, 0xd1, 0x08, 0x00) + play_sound(0x0171, CHANNEL_3) + + wait_until_with_images(1500, 0xd4, 0x08, 0x00) + speak(CHR_JOANNA, 0x3027, 0x7471, CHANNEL_10, COLOR_09_BLUE) // "Dr. Caroll? Are you in control again? Can you stop..." + set_drcaroll_image(CHR_DRCAROLL, 0x00, 0x00) + + wait_until(1534, 0xd6) + play_sound(0x04f9, CHANNEL_6) + + wait_until(1564, 0xda) + play_sound(0x0178, CHANNEL_5) + + wait_until(1630, 0xe0) + play_sound(0x0175, CHANNEL_5) + + wait_until(1810, 0xe3) + speak(CHR_JOANNA, 0x3028, 0x7472, CHANNEL_10, COLOR_04_ORANGE) // "Yes, I'm back again, my dear. But the program has ..." + + wait_until(1810, 0xe5) + play_sound(0x0177, CHANNEL_3) + + wait_until(1886, 0xe7) + play_sound(0x0175, CHANNEL_5) + + wait_until(2378, 0xe9) + mute_channel(CHANNEL_7) + speak(CHR_JOANNA, 0x3029, 0x7473, CHANNEL_10, COLOR_09_BLUE) // "What do you mean?" + + wait_until(2510, 0xea) + speak(CHR_JOANNA, 0x302a, 0x7474, CHANNEL_10, COLOR_04_ORANGE) // "When the program has run, I will have control of a..." + + wait_until(3126, 0xf5) + play_sound(0x012b, CHANNEL_5) + + wait_until(3156, 0xf6) + emit_sparks(CHR_DRCAROLL) + + set_drcaroll_image(CHR_DRCAROLL, 0x00, 0x08) + yield + set_drcaroll_image(CHR_DRCAROLL, 0x00, 0x08) + yield + set_drcaroll_image(CHR_DRCAROLL, 0x00, 0x08) + yield + set_drcaroll_image(CHR_DRCAROLL, 0x00, 0x00) + + wait_until(3266, 0xf7) + emit_sparks(CHR_DRCAROLL) + + set_drcaroll_image(CHR_DRCAROLL, 0x00, 0x08) + yield + set_drcaroll_image(CHR_DRCAROLL, 0x00, 0x08) + yield + set_drcaroll_image(CHR_DRCAROLL, 0x00, 0x08) + yield + set_drcaroll_image(CHR_DRCAROLL, 0x00, 0x00) + + wait_until(3556, 0xf8) + + set_drcaroll_image(CHR_DRCAROLL, 0x00, 0x08) + yield + set_drcaroll_image(CHR_DRCAROLL, 0x00, 0x08) + yield + set_drcaroll_image(CHR_DRCAROLL, 0x00, 0x08) + yield + set_drcaroll_image(CHR_DRCAROLL, 0x00, 0x00) + emit_sparks(CHR_DRCAROLL) + + wait_until(3606, 0xf9) + emit_sparks(CHR_DRCAROLL) + + set_drcaroll_image(CHR_DRCAROLL, 0x00, 0x08) + yield + set_drcaroll_image(CHR_DRCAROLL, 0x00, 0x08) + yield + set_drcaroll_image(CHR_DRCAROLL, 0x00, 0x08) + yield + set_drcaroll_image(CHR_DRCAROLL, 0x00, 0x00) + + wait_until(3985, 0x10) + play_sound(0x0424, CHANNEL_1) + + wait_until(4046, 0xfa) + emit_sparks(CHR_DRCAROLL) + + set_drcaroll_image(CHR_DRCAROLL, 0x00, 0x08) + yield + set_drcaroll_image(CHR_DRCAROLL, 0x00, 0x08) + yield + set_drcaroll_image(CHR_DRCAROLL, 0x00, 0x08) + yield + set_drcaroll_image(CHR_DRCAROLL, 0x00, 0x00) + + wait_until(4106, 0xfb) + emit_sparks(CHR_DRCAROLL) + + label(0x11) + yield + if_controller_button_pressed(/*goto*/ 0x57) + if_timer_gt(4250, /*goto*/ 0x06) + mute_channel(CHANNEL_1) + goto_first(0x11) + + label(0x06) + fade_to_color(0x000000ff, 250) + + wait_until(4500, 0x12) + play_sound(0x012b, CHANNEL_5) + + beginloop(0x08) + if_camera_animating(/*goto*/ 0x2e) + goto_next(0x57) + + label(0x2e) + if_controller_button_pressed(/*goto*/ 0x57) + label(0x2e) + endloop(0x08) + + label(0x57) + mute_channel(CHANNEL_10) + mute_channel(CHANNEL_7) + mute_channel(CHANNEL_6) + mute_channel(CHANNEL_5) + mute_channel(CHANNEL_4) + mute_channel(CHANNEL_3) + mute_channel(CHANNEL_2) + mute_channel(CHANNEL_1) + mute_channel(CHANNEL_0) + fade_to_color(0xffffffff, 0) + fade_to_color(0x00000000, 15) + hide_object(0xbb) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_P1P2, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_P1P2, CHRFLAG2_00020000) + animation(0x01d5, -2, -1, 0x0600, CHR_P1P2, 2) + unset_chr_flag_bank3(CHR_ELVIS, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_ELVIS, CHRFLAG2_00020000) + animation(0x01d6, -2, -1, 0x0600, CHR_ELVIS, 2) + unset_chr_flag_bank3(CHR_DRCAROLL, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_DRCAROLL, CHRFLAG2_00020000) + animation(0x01d7, -2, -1, 0x0600, CHR_DRCAROLL, 2) + set_cutscene_weapon(CHR_ELVIS, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_ELVIS, WEAPON_PHOENIX, WEAPON_NONE) + set_function(CHR_ELVIS, GFUNC_IDLE) + yield + chr_move_to_pad(CHR_ELVIS, 0x0013, 0x01, /*goto*/ 0x2e) + label(0x2e) + set_chr_flag_bank2(CHR_ELVIS, CHRFLAG2_00020000) + chr_move_to_pad(CHR_JOANNA, 0x019f, 0x01, /*goto*/ 0x2e) + label(0x2e) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + restart_default_music + reset_ambience + play_x_music(CHANNEL_10, 60) + set_function(CHR_ELVIS, GFUNC_IDLE) + chr_move_to_pad(CHR_ELVIS, 0x0017, 0x01, /*goto*/ 0x2e) + label(0x2e) + remove_weapon_from_inventory(WEAPON_BACKUPDISK) + set_function(CHR_ELVIS, FUNC_ELVIS_WARP_TO_OUTSIDE_DRCAROLL) + show_nonessential_chrs(TRUE) + set_stage_flag(STAGEFLAG_MIDCUTSCENE_FINISHED) + set_function(CHR_SELF, GFUNC_END_CINEMA) + endfunction +}; + +u8 func042d_elvis_warp_to_outside_drcaroll[] = { + stop_chr + + beginloop(0x04) + dprint 'T','E','L','E','P','O','R','T',' ','F','A','I','L','E','D','\n',0, + chr_move_to_pad(CHR_ELVIS, 0x0017, 0x01, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + dprint 'T','E','L','E','P','O','R','T',' ','G','O','O','D','\n',0, + set_chr_flag_bank2(CHR_ELVIS, CHRFLAG2_00020000) + stop_chr + set_function(CHR_SELF, FUNC_ELVIS_RUN_TO_EXIT) + endfunction +}; + +u8 func0c02_outro[] = { + show_nonessential_chrs(FALSE) + hide_countdown_timer + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_music_track(MUSIC_DEEPSEA_OUTRO) + camera_movement(0x02d7) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_ELVIS, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_ELVIS, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + restart_timer + + // @bug: Missing button checks makes the outro unskippable until a certain + // point. + #define blow_mine1(time, loopid, msg, mine, pad) \ + beginloop(loopid) \ + if_timer_gt(time, /*goto*/ 0x2e) \ + endloop(loopid) \ + label(0x2e) \ + dprint msg, '\n', 0, \ + show_object(mine) \ + yield \ + move_object_to_pad(mine, pad) \ + yield \ + destroy_object(mine) + + #define blow_mine2(time, loopid, msg1, msg2, mine, pad) \ + beginloop(loopid) \ + if_timer_gt(time, /*goto*/ 0x2e) \ + endloop(loopid) \ + label(0x2e) \ + dprint msg1, msg2, '\n', 0, \ + show_object(mine) \ + yield \ + move_object_to_pad(mine, pad) \ + yield \ + destroy_object(mine) + + blow_mine1(40, 0x63, '1', 0x76, 0x028c) + blow_mine1(72, 0x64, '2', 0x77, 0x028b) + blow_mine1(155, 0x65, '3', 0x78, 0x028a) + blow_mine1(176, 0x66, '4', 0x79, 0x0289) + blow_mine1(194, 0x6a, '5', 0x7a, 0x0288) + blow_mine1(252, 0x6b, '6', 0x7b, 0x0287) + blow_mine1(300, 0x6c, '7', 0x7c, 0x0286) + blow_mine1(331, 0x6d, '8', 0x7d, 0x0285) + blow_mine1(355, 0x6e, '9', 0x7e, 0x0284) + blow_mine2(411, 0x6f, '1','0', 0x7f, 0x0283) + blow_mine2(441, 0x70, '1','1', 0x80, 0x0282) + blow_mine2(485, 0x71, '1','2', 0x81, 0x0281) + blow_mine2(543, 0x72, '1','3', 0x82, 0x0280) + blow_mine2(594, 0x73, '1','4', 0x83, 0x027f) + blow_mine2(607, 0x74, '1','5', 0x84, 0x027e) + blow_mine2(629, 0x75, '1','6', 0x85, 0x027d) + blow_mine2(671, 0x76, '1','7', 0x86, 0x027c) + blow_mine2(720, 0x77, '1','8', 0x87, 0x027b) + blow_mine2(776, 0x78, '1','9', 0x88, 0x027a) + blow_mine2(865, 0x79, '2','0', 0x89, 0x0279) + blow_mine2(914, 0x7a, '2','1', 0x8a, 0x0278) + blow_mine2(991, 0x7b, '2','2', 0x8b, 0x0277) + + beginloop(0x7c) + if_timer_gt(1011, /*goto*/ 0x2e) + endloop(0x7c) + + label(0x2e) + dprint '2','3','\n',0, + + blow_mine2(1038, 0x7d, '2','4', 0x8d, 0x0275) + blow_mine2(1071, 0x7e, '2','5', 0x8e, 0x0274) + blow_mine2(1090, 0x7f, '2','6', 0x8f, 0x0273) + blow_mine2(1110, 0x80, '2','7', 0x90, 0x0272) + blow_mine2(1137, 0x81, '2','8', 0x91, 0x0271) + + wait_until(1150, 0x8e) + open_door(0xb3) + open_door(0xb4) + open_door(0xb5) + open_door(0xb6) + + blow_mine2(1191, 0x82, '2','9', 0x92, 0x0270) + blow_mine2(1214, 0x83, '3','0', 0x93, 0x026f) + blow_mine2(1266, 0x84, '3','1', 0x94, 0x026e) + blow_mine2(1285, 0x85, '3','2', 0x95, 0x026d) + blow_mine2(1296, 0x86, '3','3', 0x96, 0x026c) + blow_mine2(1320, 0x87, '3','4', 0x97, 0x026b) + + wait_until(1355, 0x8f) + close_door(0xb5) + close_door(0xb6) + + blow_mine2(1360, 0x88, '3','5', 0x98, 0x026a) + blow_mine2(1390, 0x89, '3','6', 0x99, 0x0269) + blow_mine2(1412, 0x8a, '3','7', 0x9a, 0x0268) + + wait_until(1416, 0x90) + close_door(0xb3) + close_door(0xb4) + + blow_mine2(1424, 0x8b, '3','8', 0x9b, 0x0267) + + beginloop(0x08) + if_camera_animating(/*goto*/ 0x2e) + goto_next(0x57) + + label(0x2e) + if_controller_button_pressed(/*goto*/ 0x57) + label(0x2e) + endloop(0x08) + + label(0x57) + if_all_objectives_complete(/*goto*/ 0x06) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + explosions_around_chr(CHR_JOANNA) + label(0x2e) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + enter_firstperson + grant_control(CHR_JOANNA) + restart_timer + + beginloop(0x0d) + if_timer_gt(120, /*goto*/ 0x2f) + endloop(0x0d) + + label(0x2f) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x2e) + explosions_around_chr(CHR_VELVET) + label(0x2e) + + beginloop(0x0e) + if_timer_gt(240, /*goto*/ 0x06) + endloop(0x0e) + + label(0x06) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x2e) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1002_intro[] = { + set_drcaroll_image(CHR_DRCAROLL, 0x02, 0x02) + chr_draw_weapon_in_cutscene(CHR_JOANNA, WEAPON_FALCON2_SCOPE) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_music_track(MUSIC_DEEPSEA_INTRO) + camera_movement(0x01ef) + cmd0175(60) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x01f0, -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(0x01f1, -1, -1, 0x0600, CHR_ELVIS, 4) + set_object_flag_bank0(0x07, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank1(0x07, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x07, OBJECTFLAG2_00000010) + object_do_animation(0x01f2, 0x07, 0x04ff, 0xff) + set_chr_flag_bank3(0x40, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x40, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(0x40, CHRFLAG2_00020000) + animation(0x0471, -1, -1, 0x0600, 0x40, 4) + restart_timer + set_cutscene_weapon(CHR_JOANNA, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_JOANNA, WEAPON_FALCON2_SCOPE, WEAPON_NONE) + + wait_until(0, 0x63) + play_sound_from_object2(CHANNEL_5, 0x07, 0x81aa, 0x00, 0x00) + + wait_until(260, 0x8a) + play_sound(0x80d5, CHANNEL_10) + + wait_until(280, 0x8b) + play_sound(0x80d4, CHANNEL_10) + + wait_until(300, 0x89) + play_sound(0x005b, CHANNEL_7) + set_chr_flag_bank2(0x40, CHRFLAG2_CLOAKED) + play_sound(0x80d7, CHANNEL_10) + + wait_until(320, 0x8c) + play_sound(0x80d6, CHANNEL_10) + + wait_until(852, 0x64) + play_sound(0x0171, CHANNEL_7) + + wait_until(1210, 0x65) + speak(CHR_JOANNA, 0x301f, 0x7469, CHANNEL_10, COLOR_04_ORANGE) // "This doesn't seem normal. No one's around." + + wait_until(1266, 0x66) + play_sound(0x0172, CHANNEL_7) + + wait_until(1300, 0x6a) + play_sound(0x0171, CHANNEL_7) + + wait_until(1430, 0x6b) + mute_channel(CHANNEL_5) + play_sound_from_object2(CHANNEL_5, 0x07, 0x81a9, 0x00, 0x00) + + wait_until(1522, 0x6c) + speak(CHR_JOANNA, 0x3020, 0x746a, CHANNEL_10, COLOR_09_BLUE) // "No signs of conflict. No spent ammo cases or bulle..." + + wait_until(1548, 0x6d) + play_sound(0x0174, CHANNEL_7) + + wait_until(1594, 0x6e) + play_sound(0x0175, CHANNEL_7) + + wait_until(1662, 0x6f) + play_sound(0x0176, CHANNEL_7) + + wait_until(1762, 0x70) + play_sound(0x0177, CHANNEL_7) + + wait_until(1945, 0x71) + speak(CHR_JOANNA, 0x3021, 0x746b, CHANNEL_10, COLOR_04_ORANGE) // "But there ought to be a rear guard at least. It ma..." + + wait_until(1958, 0x72) + play_sound(0x0178, CHANNEL_7) + + wait_until(2066, 0x73) + play_sound(0x0171, CHANNEL_7) + + wait_until(2118, 0x74) + play_sound(0x0172, CHANNEL_7) + + wait_until(2167, 0x75) + play_sound(0x0173, CHANNEL_7) + + wait_until(2213, 0x76) + play_sound(0x0174, CHANNEL_7) + + wait_until(2346, 0x77) + play_sound(0x0175, CHANNEL_7) + + wait_until(2362, 0x78) + play_sound(0x0176, CHANNEL_7) + + wait_until(2376, 0x79) + play_sound(0x0177, CHANNEL_7) + + wait_until(2390, 0x7a) + play_sound(0x0178, CHANNEL_7) + + wait_until(2420, 0x7b) + speak(CHR_JOANNA, 0x3022, 0x746c, CHANNEL_10, COLOR_09_BLUE) // "There has to be someone farther inside. Cover me." + + wait_until(2426, 0x7c) + play_sound(0x0171, CHANNEL_7) + + wait_until(2470, 0x7d) + play_sound(0x0172, CHANNEL_7) + + wait_until(2485, 0x7e) + play_sound(0x0173, CHANNEL_7) + + wait_until(2520, 0x7f) + play_sound(0x0174, CHANNEL_7) + + wait_until(2545, 0x80) + play_sound(0x0175, CHANNEL_7) + + wait_until(2582, 0x81) + play_sound(0x0171, CHANNEL_7) + + wait_until(2585, 0x82) + play_sound(0x0176, CHANNEL_6) + + wait_until(2720, 0x83) + play_sound(0x0172, CHANNEL_7) + + wait_until(2842, 0x84) + play_sound(0x0173, CHANNEL_7) + + wait_until(2880, 0x85) + play_sound(0x0174, CHANNEL_7) + + wait_until(2898, 0x86) + play_sound(0x0175, CHANNEL_7) + + wait_until(3040, 0x87) + play_sound(0x0176, CHANNEL_7) + + wait_until(3042, 0x88) + play_sound(0x0177, CHANNEL_6) + + beginloop(0x08) + if_camera_animating(/*goto*/ 0x2e) + goto_next(0x57) + + label(0x2e) + if_controller_button_pressed(/*goto*/ 0x57) + label(0x2e) + endloop(0x08) + + label(0x57) + mute_channel(CHANNEL_7) + mute_channel(CHANNEL_6) + mute_channel(CHANNEL_5) + mute_channel(CHANNEL_4) + mute_channel(CHANNEL_10) + remove_chr(0x40) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x01f0, -2, -1, 0x0600, CHR_JOANNA, 2) + unset_chr_flag_bank3(CHR_ELVIS, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_ELVIS, CHRFLAG2_00020000) + animation(0x01f1, -2, -1, 0x0600, CHR_ELVIS, 2) + if_coop_mode(/*goto*/ 0x45) + unset_object_flag_bank0(0x07, OBJECTFLAG0_DEACTIVATED) + unset_object_flag_bank1(0x07, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x07, OBJECTFLAG2_00000010) + object_do_animation(0x01f2, 0x07, 0x01ff, 0xfe) + goto_next(0x46) + + label(0x45) + hide_object(0x07) + label(0x46) + restart_default_music + reset_ambience + label(0x0d) + enter_firstperson + yield + set_function(CHR_ELVIS, FUNC_INIT_ELVIS) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func042f_init_pelagic_guard[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(20) + set_reaction_speed(65) + set_chr_health(CHR_SELF, 70) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func0430_unused[] = { + set_accuracy(20) + set_reaction_speed(65) + set_chr_health(CHR_SELF, 10) + set_armor(70) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func1006_msg_thiswillhelpus[] = { + beginloop(0x04) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x0d) + if_chr_dying(CHR_ELVIS, /*goto*/ 0x0d) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x0d) + if_objective_complete(0, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + restart_timer + + beginloop(0x08) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x0d) + if_chr_dying(CHR_ELVIS, /*goto*/ 0x0d) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x0d) + if_timer_gt(180, /*goto*/ 0x2e) + endloop(0x08) + + label(0x2e) + speak(CHR_P1P2, 0x300a, 0x73d4, CHANNEL_6, COLOR_04_ORANGE) // "This will help us to get round the ship quicker." + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1007_msg_antibodymasking[] = { + restart_timer + + beginloop(0x04) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x0d) + if_chr_dying(CHR_ELVIS, /*goto*/ 0x0d) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x0d) + endloop(0x04) + + // Unreachable + label(0x2e) + speak(CHR_JOANNA, 0x300b, 0x73d5, CHANNEL_6, COLOR_09_BLUE) // "This antibody masking will protect us from the aut..." + + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1008_msg_theresdrcaroll[] = { + beginloop(0x04) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x0d) + if_chr_dying(CHR_ELVIS, /*goto*/ 0x0d) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x0d) + + if_chr_death_animation_finished(CHR_DRCAROLL, /*goto*/ 0x0d) + if_chr_dying(CHR_DRCAROLL, /*goto*/ 0x0d) + if_chr_unloaded(CHR_DRCAROLL, /*goto*/ 0x0d) + + if_door_state(0xae, (DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING), /*goto*/ 0x2e) + reloop(0x04) + + label(0x2e) + if_chr_in_room(CHR_ELVIS, 0x00, 0x004c, /*goto*/ 0x2e) + goto_next(0x0d) + + label(0x2e) + if_chr_propsoundcount_zero(CHR_ELVIS, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + speak(CHR_JOANNA, 0x300c, 0x73d6, CHANNEL_6, COLOR_04_ORANGE) // "There's Dr. Caroll. Let's see if we can reverse wh..." + + // Elvis dead, Dr Caroll dead, or Elvis didn't get teleported + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1009_msg_getoutofhere[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_MIDCUTSCENE_FINISHED, TRUE, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + restart_timer + + beginloop(0x08) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x0d) + if_chr_dying(CHR_ELVIS, /*goto*/ 0x0d) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x0d) + if_timer_gt(120, /*goto*/ 0x2e) + endloop(0x08) + + label(0x2e) + speak(CHR_JOANNA, 0x300d, 0x73d7, CHANNEL_6, COLOR_04_ORANGE) // "We have to get out of here!" + + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Entry point for all of Joanna's teleports. + * + * Map of how these functions call each other: + * + * 100a func100a_joanna_teleports + * - calls 0414 teleport_joanna_to_sapa + * - calls 0416 teleport_joanna_to_a_pa_drcaroll + * - calls 0415 teleport_joanna_to_drcaroll + * - calls 0415 teleport_joanna_to_drcaroll + */ +u8 func100a_joanna_teleports[] = { + beginloop(0x1f) + if_stage_flag_eq(STAGEFLAG_TELEPORTALS_ACTIVATED, TRUE, /*goto*/ 0x04) + endloop(0x1f) + + beginloop(0x04) + if_chr_distance_to_pad_lt(CHR_JOANNA, 250, PAD_STARTAREA_TELEPORT, /*goto*/ 0x59) + if_chr_distance_to_pad_lt(CHR_JOANNA, 250, PAD_SAPAAREA_TELEPORT, /*goto*/ 0x09) + if_chr_distance_to_pad_lt(CHR_JOANNA, 250, PAD_AGENTAREA_TELEPORT, /*goto*/ 0x08) + if_chr_distance_to_pad_lt(CHR_JOANNA, 250, PAD_PAAREA_TELEPORT, /*goto*/ 0x08) + if_stage_flag_eq(STAGEFLAG_DONE_FIRST_TELEPORT, TRUE, /*goto*/ 0x2e) + endloop(0x04) + + // Done first teleport + label(0x2e) + if_difficulty_gt(DIFF_A, /*goto*/ 0x2e) + goto_first(0x04) + + label(0x2e) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2e) + goto_first(0x04) + + // Done first teleport and difficulty is SA + label(0x2e) + set_stage_flag(STAGEFLAG_SA_EXIT_TELEPORT_DISABLED) + if_objective_complete(1, /*goto*/ 0x2e) + goto_first(0x04) + + // Done first teleport, difficult is SA and megaweapon is disabled + label(0x2e) + unset_stage_flag(STAGEFLAG_SA_EXIT_TELEPORT_DISABLED) + goto_first(0x04) + + // + // At start area teleport + // + label(0x59) + set_stage_flag(STAGEFLAG_DONE_FIRST_TELEPORT) + revoke_control(CHR_JOANNA, 0) + teleport_to_pad(PAD_STARTAREA_TELEPORT, CHR_JOANNA) + + label(0x5b) + if_teleport_full_white(/*goto*/ 0x5e, CHR_JOANNA) + yield + goto_first(0x5b) + + label(0x5e) + set_function(CHR_ELVIS, FUNC_ELVIS_STOP) + + label(0x2e) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x64) + set_function(CHR_JOANNA, FUNC_TELEPORT_JOANNA_TO_SAPA) + unset_stage_flag(STAGEFLAG_TELEPORT_DONE) + + beginloop(0x31) + if_stage_flag_eq(STAGEFLAG_TELEPORT_DONE, TRUE, /*goto*/ 0x2e) + endloop(0x31) + + label(0x2e) + grant_control(CHR_JOANNA) + teleport_to_pad(0x0000, CHR_JOANNA) + goto_first(0x04) + + // + // At SA/PA area teleport + // + beginloop(0x09) + if_difficulty_gt(DIFF_SA, /*goto*/ 0x2e) + set_stage_flag(STAGEFLAG_SA_EXIT_TELEPORT_DISABLED) + if_objective_complete(1, /*goto*/ 0x2e) + reloop(0x09) + + // Teleport is active + label(0x2e) + unset_stage_flag(STAGEFLAG_SA_EXIT_TELEPORT_DISABLED) + if_chr_distance_to_pad_lt(CHR_JOANNA, 250, PAD_SAPAAREA_TELEPORT, /*goto*/ 0x59) + endloop(0x09) + + label(0x59) + teleport_to_pad(0x00c0, CHR_JOANNA) + revoke_control(CHR_JOANNA, 0) + + label(0x5c) + if_teleport_full_white(/*goto*/ 0x5e, CHR_JOANNA) + yield + goto_first(0x5c) + + label(0x5e) + set_function(CHR_ELVIS, FUNC_ELVIS_STOP) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x64) + goto_next(0x2e) + + // + // At start area teleport on Agent, or SA/PA area teleport on SA + // + label(0x64) + goto_next(0x2e) + + label(0x2e) + set_function(CHR_JOANNA, FUNC_TELEPORT_JOANNA_TO_A_PA_DRCAROLL) + unset_stage_flag(STAGEFLAG_TELEPORT_DONE) + + beginloop(0x32) + if_stage_flag_eq(STAGEFLAG_TELEPORT_DONE, TRUE, /*goto*/ 0x2e) + endloop(0x32) + + label(0x2e) + grant_control(CHR_JOANNA) + teleport_to_pad(0x0000, CHR_JOANNA) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x06) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2e) + label(0x06) + goto_first(0x04) + + label(0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + + // + // At Agent or PA teleport + // + beginloop(0x08) + if_chr_distance_to_pad_lt(CHR_JOANNA, 250, PAD_AGENTAREA_TELEPORT, /*goto*/ 0x59) + if_chr_distance_to_pad_lt(CHR_JOANNA, 250, PAD_PAAREA_TELEPORT, /*goto*/ 0x5a) + endloop(0x08) + + // Agent teleport + label(0x59) + revoke_control(CHR_JOANNA, 0) + teleport_to_pad(0x0054, CHR_JOANNA) + goto_next(0x5d) + + // PA teleport + label(0x5a) + revoke_control(CHR_JOANNA, 0) + teleport_to_pad(0x0111, CHR_JOANNA) + + label(0x5d) + if_teleport_full_white(/*goto*/ 0x5e, CHR_JOANNA) + yield + goto_first(0x5d) + + label(0x5e) + set_function(CHR_ELVIS, FUNC_ELVIS_STOP) + set_function(CHR_JOANNA, FUNC_TELEPORT_JOANNA_TO_DRCAROLL) + unset_stage_flag(STAGEFLAG_TELEPORT_DONE) + + beginloop(0x33) + if_stage_flag_eq(STAGEFLAG_TELEPORT_DONE, TRUE, /*goto*/ 0x2e) + endloop(0x33) + + label(0x2e) + grant_control(CHR_JOANNA) + teleport_to_pad(0x0000, CHR_JOANNA) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0414_teleport_joanna_to_sapa[] = { + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP) + if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_VELVET, FALSE, /*goto*/ 0x61) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x61) + if_chr_dying(CHR_VELVET, /*goto*/ 0x61) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x61) + goto_next(0x62) + + label(0x61) + set_function(CHR_ELVIS, FUNC_ELVIS_STOP) + + label(0x08) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x06) + if_chr_dying(CHR_ELVIS, /*goto*/ 0x06) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x06) + + beginloop(0x63) + chr_move_to_pad(CHR_ELVIS, 0x01c6, 0x01, /*goto*/ 0x06) + endloop(0x63) + + label(0x06) + set_chr_flag_bank2(CHR_ELVIS, CHRFLAG2_00020000) + label(0x62) + + beginloop(0x64) + chr_move_to_pad(CHR_SELF, PAD_SAPAAREA_ENTRY, 0x01, /*goto*/ 0x06) + endloop(0x64) + + label(0x06) + yield + stop_chr + set_stage_flag(STAGEFLAG_TELEPORT_DONE) + if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_VELVET, FALSE, /*goto*/ 0x61) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x61) + if_chr_dying(CHR_VELVET, /*goto*/ 0x61) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x61) + goto_next(0x62) + label(0x61) + set_function(CHR_ELVIS, FUNC_ELVIS_GIVE_FARSIGHT) + label(0x62) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0415_teleport_joanna_to_drcaroll[] = { + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP) + if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_VELVET, FALSE, /*goto*/ 0x61) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x61) + if_chr_dying(CHR_VELVET, /*goto*/ 0x61) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x61) + goto_next(0x62) + + label(0x61) + set_function(CHR_ELVIS, FUNC_ELVIS_STOP) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x07) + if_chr_dying(CHR_ELVIS, /*goto*/ 0x07) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x07) + + beginloop(0x65) + chr_move_to_pad(CHR_ELVIS, 0x01bf, 0x01, /*goto*/ 0x06) + endloop(0x65) + + label(0x06) + set_chr_flag_bank2(CHR_ELVIS, CHRFLAG2_00020000) + goto_next(0x63) + label(0x07) + message(CHR_JOANNA, 0x300e) // "Elvis has been killed." + + label(0x62) + + beginloop(0x63) + chr_move_to_pad(CHR_SELF, PAD_DRCAROLLROOM_ENTRY, 0x01, /*goto*/ 0x06) + endloop(0x63) + + label(0x06) + stop_chr + yield + set_stage_flag(STAGEFLAG_TELEPORT_DONE) + if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_VELVET, FALSE, /*goto*/ 0x61) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x61) + if_chr_dying(CHR_VELVET, /*goto*/ 0x61) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x61) + goto_next(0x62) + + label(0x61) + set_function(CHR_ELVIS, FUNC_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS) + + label(0x62) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * If Agent: Warp to Agent area + * If SA: Warp to Dr Caroll Area + * If PA: Warp to PA area + */ +u8 func0416_teleport_joanna_to_a_pa_drcaroll[] = { + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP) + if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_VELVET, FALSE, /*goto*/ 0x61) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x61) + if_chr_dying(CHR_VELVET, /*goto*/ 0x61) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x61) + goto_next(0x62) + + label(0x61) + set_function(CHR_ELVIS, FUNC_ELVIS_STOP) + + label(0x62) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x09) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x08) + + // PA + if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_VELVET, FALSE, /*goto*/ 0x61) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x61) + if_chr_dying(CHR_VELVET, /*goto*/ 0x61) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x61) + goto_next(0x62) + + label(0x61) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x07) + if_chr_dying(CHR_ELVIS, /*goto*/ 0x07) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x07) + + beginloop(0x66) + chr_move_to_pad(CHR_ELVIS, 0x01be, 0x01, /*goto*/ 0x06) + endloop(0x66) + + label(0x06) + set_chr_flag_bank2(CHR_ELVIS, CHRFLAG2_00020000) + label(0x62) + label(0x07) + + beginloop(0x67) + chr_move_to_pad(CHR_SELF, PAD_PAAREA_ENTRY, 0x01, /*goto*/ 0x06) + endloop(0x67) + + label(0x06) + label(0x2e) + stop_chr + yield + if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_VELVET, FALSE, /*goto*/ 0x61) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x61) + if_chr_dying(CHR_VELVET, /*goto*/ 0x61) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x61) + goto_next(0x62) + + label(0x61) + set_function(CHR_ELVIS, FUNC_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS) + + label(0x62) + set_stage_flag(STAGEFLAG_TELEPORT_DONE) + set_function(CHR_SELF, GFUNC_IDLE) + + // SA + label(0x08) + set_function(CHR_SELF, FUNC_TELEPORT_JOANNA_TO_DRCAROLL) + + // Agent + label(0x09) + if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_VELVET, FALSE, /*goto*/ 0x61) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x61) + if_chr_dying(CHR_VELVET, /*goto*/ 0x61) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x61) + goto_next(0x62) + + label(0x61) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x07) + if_chr_dying(CHR_ELVIS, /*goto*/ 0x07) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x07) + + beginloop(0x6b) + chr_move_to_pad(CHR_ELVIS, 0x0040, 0x01, /*goto*/ 0x06) + endloop(0x6b) + + label(0x06) + set_chr_flag_bank2(CHR_ELVIS, CHRFLAG2_00020000) + label(0x62) + label(0x07) + + beginloop(0x68) + chr_move_to_pad(CHR_SELF, PAD_AGENTAREA_ENTRY, 0x01, /*goto*/ 0x06) + endloop(0x68) + + label(0x06) + label(0x2e) + stop_chr + yield + set_stage_flag(STAGEFLAG_TELEPORT_DONE) + if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_VELVET, FALSE, /*goto*/ 0x61) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x61) + if_chr_dying(CHR_VELVET, /*goto*/ 0x61) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x61) + goto_next(0x62) + + label(0x61) + set_function(CHR_ELVIS, FUNC_ELVIS_GIVE_FARSIGHT) + label(0x62) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Entry point for all of Velvet's teleports. + * + * Map of how these functions call each other: + * + * 100b func100b_velvet_teleports + * - calls 0417 teleport_velvet_to_sapa + * - calls 0419 teleport_velvet_to_a_pa_drcaroll + * - calls 0418 teleport_velvet_to_drcaroll + * - calls 0418 teleport_velvet_to_drcaroll + */ +u8 func100b_velvet_teleports[] = { + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x2e) + goto_next(0x1f) + + label(0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + + beginloop(0x1f) + if_stage_flag_eq(STAGEFLAG_TELEPORTALS_ACTIVATED, TRUE, /*goto*/ 0x04) + endloop(0x1f) + + beginloop(0x04) + if_chr_distance_to_pad_lt(CHR_VELVET, 250, PAD_STARTAREA_TELEPORT, /*goto*/ 0x59) + if_chr_distance_to_pad_lt(CHR_VELVET, 250, PAD_SAPAAREA_TELEPORT, /*goto*/ 0x09) + if_chr_distance_to_pad_lt(CHR_VELVET, 250, PAD_AGENTAREA_TELEPORT, /*goto*/ 0x08) + if_chr_distance_to_pad_lt(CHR_VELVET, 250, PAD_PAAREA_TELEPORT, /*goto*/ 0x08) + endloop(0x04) + + // + // At start area teleport + // + label(0x59) + revoke_control(CHR_VELVET, 0) + teleport_to_pad(PAD_STARTAREA_TELEPORT, CHR_VELVET) + + label(0x5b) + if_teleport_full_white(/*goto*/ 0x5e, CHR_VELVET) + yield + goto_first(0x5b) + + label(0x5e) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x61) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x61) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x61) + goto_next(0x62) + + label(0x61) + set_function(CHR_ELVIS, FUNC_ELVIS_STOP) + label(0x62) + label(0x2e) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x64) + set_function(CHR_VELVET, FUNC_TELEPORT_VELVET_TO_SAPA) + unset_stage_flag(STAGEFLAG_TELEPORT_DONE) + + beginloop(0x31) + if_stage_flag_eq(STAGEFLAG_TELEPORT_DONE, TRUE, /*goto*/ 0x2e) + endloop(0x31) + + label(0x2e) + grant_control(CHR_VELVET) + teleport_to_pad(0x0000, CHR_VELVET) + goto_first(0x04) + + // + // At SA/PA area teleport + // + beginloop(0x09) + if_difficulty_gt(DIFF_SA, /*goto*/ 0x2e) + set_stage_flag(STAGEFLAG_SA_EXIT_TELEPORT_DISABLED) + if_objective_complete(1, /*goto*/ 0x2e) + reloop(0x09) + + label(0x2e) + unset_stage_flag(STAGEFLAG_SA_EXIT_TELEPORT_DISABLED) + if_chr_distance_to_pad_lt(CHR_VELVET, 250, PAD_SAPAAREA_TELEPORT, /*goto*/ 0x59) + endloop(0x09) + + label(0x59) + teleport_to_pad(0x00c0, CHR_VELVET) + revoke_control(CHR_VELVET, 0) + + label(0x5c) + if_teleport_full_white(/*goto*/ 0x5e, CHR_VELVET) + yield + goto_first(0x5c) + + label(0x5e) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x61) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x61) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x61) + goto_next(0x62) + + label(0x61) + set_function(CHR_ELVIS, FUNC_ELVIS_STOP) + label(0x62) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x64) + goto_next(0x2e) + + label(0x64) + goto_next(0x2e) + + label(0x2e) + set_function(CHR_VELVET, FUNC_TELEPORT_VELVET_TO_A_PA_DRCAROLL) + unset_stage_flag(STAGEFLAG_TELEPORT_DONE) + + beginloop(0x32) + if_stage_flag_eq(STAGEFLAG_TELEPORT_DONE, TRUE, /*goto*/ 0x2e) + endloop(0x32) + + label(0x2e) + grant_control(CHR_VELVET) + teleport_to_pad(0x0000, CHR_VELVET) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x06) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2e) + label(0x06) + goto_first(0x04) + + label(0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + + // + // At Agent or PA area teleport + // + beginloop(0x08) + if_chr_distance_to_pad_lt(CHR_VELVET, 250, PAD_AGENTAREA_TELEPORT, /*goto*/ 0x59) + if_chr_distance_to_pad_lt(CHR_VELVET, 250, PAD_PAAREA_TELEPORT, /*goto*/ 0x5a) + endloop(0x08) + + // Agent teleport + label(0x59) + revoke_control(CHR_VELVET, 0) + teleport_to_pad(0x0054, CHR_VELVET) + goto_next(0x5d) + + // PA teleport + label(0x5a) + revoke_control(CHR_VELVET, 0) + teleport_to_pad(0x0111, CHR_VELVET) + + label(0x5d) + if_teleport_full_white(/*goto*/ 0x5e, CHR_VELVET) + yield + goto_first(0x5d) + + label(0x5e) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x61) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x61) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x61) + goto_next(0x62) + + label(0x61) + set_function(CHR_ELVIS, FUNC_ELVIS_STOP) + label(0x62) + set_function(CHR_VELVET, FUNC_TELEPORT_VELVET_TO_DRCAROLL) + unset_stage_flag(STAGEFLAG_TELEPORT_DONE) + + beginloop(0x33) + if_stage_flag_eq(STAGEFLAG_TELEPORT_DONE, TRUE, /*goto*/ 0x2e) + endloop(0x33) + + label(0x2e) + grant_control(CHR_VELVET) + teleport_to_pad(0x0000, CHR_VELVET) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0417_teleport_velvet_to_sapa[] = { + if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_VELVET, TRUE, /*goto*/ 0x61) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x61) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x61) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x61) + goto_next(0x62) + + label(0x61) + set_function(CHR_ELVIS, FUNC_ELVIS_STOP) + + label(0x08) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x06) + if_chr_dying(CHR_ELVIS, /*goto*/ 0x06) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x06) + + beginloop(0x63) + chr_move_to_pad(CHR_ELVIS, 0x01c6, 0x01, /*goto*/ 0x06) + endloop(0x63) + + label(0x06) + set_chr_flag_bank2(CHR_ELVIS, CHRFLAG2_00020000) + label(0x62) + + beginloop(0x64) + chr_move_to_pad(CHR_SELF, PAD_SAPAAREA_ENTRY, 0x01, /*goto*/ 0x06) + endloop(0x64) + + label(0x06) + yield + stop_chr + set_stage_flag(STAGEFLAG_TELEPORT_DONE) + if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_VELVET, TRUE, /*goto*/ 0x61) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x61) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x61) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x61) + goto_next(0x62) + + label(0x61) + set_function(CHR_ELVIS, FUNC_ELVIS_GIVE_FARSIGHT) + + label(0x62) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0418_teleport_velvet_to_drcaroll[] = { + if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_VELVET, TRUE, /*goto*/ 0x61) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x61) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x61) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x61) + goto_next(0x62) + + label(0x61) + set_function(CHR_ELVIS, FUNC_ELVIS_STOP) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x07) + if_chr_dying(CHR_ELVIS, /*goto*/ 0x07) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x07) + + beginloop(0x65) + chr_move_to_pad(CHR_ELVIS, 0x01bf, 0x01, /*goto*/ 0x06) + endloop(0x65) + + label(0x06) + set_chr_flag_bank2(CHR_ELVIS, CHRFLAG2_00020000) + goto_next(0x63) + + label(0x07) + message(CHR_JOANNA, 0x300e) // "Elvis has been killed." + label(0x62) + + beginloop(0x63) + chr_move_to_pad(CHR_SELF, PAD_DRCAROLLROOM_ENTRY, 0x01, /*goto*/ 0x06) + endloop(0x63) + + label(0x06) + stop_chr + yield + set_stage_flag(STAGEFLAG_TELEPORT_DONE) + if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_VELVET, TRUE, /*goto*/ 0x61) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x61) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x61) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x61) + goto_next(0x62) + + label(0x61) + set_function(CHR_ELVIS, FUNC_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS) + label(0x62) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * If Agent: Warp to Agent area + * If SA: Warp to Dr Caroll Area + * If PA: Warp to PA area + */ +u8 func0419_teleport_velvet_to_a_pa_drcaroll[] = { + if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_VELVET, TRUE, /*goto*/ 0x61) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x61) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x61) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x61) + goto_next(0x62) + + label(0x61) + set_function(CHR_ELVIS, FUNC_ELVIS_STOP) + label(0x62) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x09) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x08) + + // PA + if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_VELVET, TRUE, /*goto*/ 0x61) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x61) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x61) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x61) + goto_next(0x62) + + label(0x61) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x07) + if_chr_dying(CHR_ELVIS, /*goto*/ 0x07) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x07) + + beginloop(0x66) + chr_move_to_pad(CHR_ELVIS, 0x01be, 0x01, /*goto*/ 0x06) + endloop(0x66) + + label(0x06) + set_chr_flag_bank2(CHR_ELVIS, CHRFLAG2_00020000) + label(0x62) + label(0x07) + + beginloop(0x67) + chr_move_to_pad(CHR_SELF, PAD_PAAREA_ENTRY, 0x01, /*goto*/ 0x06) + endloop(0x67) + + label(0x06) + label(0x2e) + stop_chr + yield + if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_VELVET, TRUE, /*goto*/ 0x61) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x61) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x61) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x61) + goto_next(0x62) + + label(0x61) + set_function(CHR_ELVIS, FUNC_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS) + label(0x62) + set_stage_flag(STAGEFLAG_TELEPORT_DONE) + set_function(CHR_SELF, GFUNC_IDLE) + + // SA + label(0x08) + set_function(CHR_SELF, FUNC_TELEPORT_VELVET_TO_DRCAROLL) + + // Agent + label(0x09) + if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_VELVET, TRUE, /*goto*/ 0x61) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x61) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x61) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x61) + goto_next(0x62) + label(0x61) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x07) + if_chr_dying(CHR_ELVIS, /*goto*/ 0x07) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x07) + + beginloop(0x6b) + chr_move_to_pad(CHR_ELVIS, 0x0040, 0x01, /*goto*/ 0x06) + endloop(0x6b) + + label(0x06) + set_chr_flag_bank2(CHR_ELVIS, CHRFLAG2_00020000) + label(0x62) + label(0x07) + + beginloop(0x68) + chr_move_to_pad(CHR_SELF, PAD_AGENTAREA_ENTRY, 0x01, /*goto*/ 0x06) + endloop(0x68) + + label(0x06) + label(0x2e) + stop_chr + yield + set_stage_flag(STAGEFLAG_TELEPORT_DONE) + if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_VELVET, TRUE, /*goto*/ 0x61) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x61) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x61) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x61) + goto_next(0x62) + + label(0x61) + set_function(CHR_ELVIS, FUNC_ELVIS_GIVE_FARSIGHT) + label(0x62) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Wait until not in sight of player (usually immediately), then unhide. + * + * Once the teleportals are activated, this is assigned to 3 guards at the + * entrance to the grotto thing. + */ +u8 func041c_teleport_activation_responder[] = { + beginloop(0x04) + set_target_chr(CHR_JOANNA) + if_chr_sees_player(/*goto*/ 0x2e) + set_target_chr(CHR_VELVET) + if_chr_sees_player(/*goto*/ 0x2e) + unset_self_flag_bank3(CHRFLAG3_HIDDEN) + set_function(CHR_SELF, FUNC_INIT_SNIPER) + label(0x2e) + endloop(0x04) + + endfunction +}; + +u8 func041a_init_sniper[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2e) + + // SA and PA + set_accuracy(30) + set_reaction_speed(65) + set_chr_health(CHR_SELF, 10) + set_armor(70) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, FUNC_SNIPER_WAIT_FOR_DETECTION) + + // Agent + label(0x2e) + set_accuracy(20) + set_reaction_speed(65) + set_chr_health(CHR_SELF, 10) + set_armor(70) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, FUNC_SNIPER_WAIT_FOR_DETECTION) + endfunction +}; + +u8 func041b_sniper_wait_for_detection[] = { + unset_self_flag_bank3(CHRFLAG3_UNEXPLODABLE) + yield + set_onshot_function(FUNC_SNIPER) + label(0x06) + set_reaction_speed(100) + set_onshot_function(FUNC_SNIPER) + restart_timer + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0x2e) + if_enemy_distance_lt_and_los(1000, /*goto*/ 0x2e) + if_saw_death(0x00, /*goto*/ 0x2e) + reloop(0x04) + + label(0x2e) + if_chr_distance_lt(400, /*goto*/ 0x06) + if_distance_to_target_chr_lt(30, /*goto*/ 0x06) + if_chr_in_view(/*goto*/ 0x06) + if_saw_death(0x00, /*goto*/ 0x06) + if_alertness(100, OPERATOR_GREATER_THAN, /*goto*/ 0x06) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2e) + if_timer_gt(180, /*goto*/ 0x06) + label(0x2e) + endloop(0x04) + + label(0x06) + set_group_alertness(100) + set_self_flag_bank3(CHRFLAG3_00040000) + set_chr_cloaked(CHR_SELF, TRUE, TRUE) + set_function(CHR_SELF, FUNC_SNIPER) + endfunction +}; + +u8 func041d_sniper[] = { + set_self_flag_bank3(CHRFLAG3_00000040) + set_onshot_function(FUNC_SNIPER) + set_chr_cloaked(CHR_SELF, TRUE, FALSE) + 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(0x03) + + // Dying + label(0x06) + goto_next(0x10) + + // Alive + label(0x03) + restart_timer + cmd0139(70, 0x02, TRUE) + + beginloop(0x63) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_sees_player(/*goto*/ 0x2e) + dprint 'N','O',' ','P','L','A','Y','E','R',' ','T','A','R','G','E','T','\n',0, + if_enemy_distance_lt_and_los(1000, /*goto*/ 0x2f) + dprint 'N','O',' ','O','P','P','\n',0, + goto_next(0x2f) + + label(0x2e) + set_target_chr(CHR_P1P2) + label(0x2f) + if_chr_lost_track_of_target_maybe(/*goto*/ 0x2f) + goto_next(0x2e) + + label(0x2f) + dprint 'T','H','E',' ','P','L','A','Y','E','R',' ','i','s',' ','i','t','\n',0, + if_timer_gt(180, /*goto*/ 0x06) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x63) + + label(0x06) + dprint '1','\n',0, + stop_chr + call_rng + if_rand_gt(128, /*goto*/ 0x06) + restart_timer + + beginloop(0x0e) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x0e) + + label(0x06) + dprint '2','\n',0, + set_follow_chr(TARGET_CHR) + goto_next(0x06) + + // Unreachable + if_chr_lost_track_of_target_maybe(/*goto*/ 0x2e) + goto_next(0x06) + + label(0x2e) + dprint 'C','H','E','C','K',' ','P','L','A','Y','E','R',' ','D','I','R','\n',0, + if_player_looking_at_something_maybe(0x14, 0x01, 0x00, /*goto*/ 0x0d) + dprint '3','\n',0, + label(0x06) + if_chr_sees_player(/*goto*/ 0x2e) + dprint '4','\n',0, + goto_next(0x0d) + + label(0x2e) + restart_timer + dprint '5','\n',0, + set_chr_cloaked(CHR_SELF, FALSE, TRUE) + label(0x0a) + label(0x2e) + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x2e) + label(0x2e) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x0b) + + beginloop(0x0b) + if_chr_stopped(/*goto*/ 0x0c) + endloop(0x0b) + + label(0x0c) + if_chr_lost_track_of_target_maybe(/*goto*/ 0x2e) + goto_next(0x06) + + label(0x2e) + if_chr_injured_target(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x06) + + label(0x2e) + set_stage_flag(STAGEFLAG_PURPLE_GUARD_SHOT_JO_OR_ELVIS) + label(0x06) + set_chr_cloaked(CHR_SELF, TRUE, TRUE) + label(0x0d) + set_target_chr(FOLLOW_CHR) + goto_first(0x03) + + label(0x10) + if_chr_flag_bank2(CHR_SELF, CHRFLAG2_CLOAKED, /*goto*/ 0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2e) + set_chr_cloaked(CHR_SELF, FALSE, TRUE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040c_blonde[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x004c, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + unset_self_flag_bank3(CHRFLAG3_UNEXPLODABLE) + set_chr_alliance(CHR_SELF, ALLIANCE_ENEMY) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_onshot_function(GFUNC_ALERTED) + + beginloop(0x08) + if_shot_near_chr(0x00, /*goto*/ 0x06) + if_saw_death(0x00, /*goto*/ 0x06) + if_chr_sees_player(/*goto*/ 0x06) + endloop(0x08) + + label(0x06) + set_return_function(CHR_SELF, GFUNC_ALERTED) + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +u8 func100c_countdown_timer[] = { + beginloop(0x03) + if_stage_flag_eq(STAGEFLAG_MIDCUTSCENE_FINISHED, TRUE, /*goto*/ 0x2e) + endloop(0x03) + + label(0x2e) + set_countdown_timer(60) + show_countdown_timer + start_countdown_timer + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_countdown_timer_lt(1, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x000c, /*goto*/ 0x2e) + endloop(0x04) + + // Timer expired + label(0x06) + set_stage_flag(STAGEFLAG_TIMER_EXPIRED) + yield + set_function(CHR_SELF, FUNC_OUTRO) + set_function(CHR_SELF, GFUNC_IDLE) + + // Player escaped + label(0x2e) + message(CHR_P1P2, 0x3010) // "Cetan ship evacuation successful." + set_stage_flag(STAGEFLAG_ESCAPED) + restart_timer + stop_countdown_timer + hide_countdown_timer + + label(0x09) + yield + label(0x2e) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x2e) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x2e) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x2e) + goto_next(0x06) + + label(0x2e) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x2e) + if_chr_dying(CHR_VELVET, /*goto*/ 0x2e) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x2e) + goto_next(0x06) + + // Both players dead + label(0x2e) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + + // Mission complete + label(0x06) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(CHR_SELF, FUNC_OUTRO) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100e_check_elvis_dead[] = { + beginloop(0x04) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x2e) + if_chr_dying(CHR_ELVIS, /*goto*/ 0x2e) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + message(CHR_JOANNA, 0x300e) // "Elvis has been killed." + set_stage_flag(STAGEFLAG_ALLY_DEAD) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100f_check_drcaroll_dead[] = { + beginloop(0x04) + if_chr_death_animation_finished(CHR_DRCAROLL, /*goto*/ 0x2e) + if_chr_dying(CHR_DRCAROLL, /*goto*/ 0x2e) + if_chr_unloaded(CHR_DRCAROLL, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + message(CHR_JOANNA, 0x300f) // "Dr. Caroll has been killed." + set_stage_flag(STAGEFLAG_ALLY_DEAD) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040f_miniskedar_send_clones[] = { + dprint 'D','E','T','E','C','T','E','D','\n',0, + set_self_flag_bank3(CHRFLAG3_00000002) + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_self_flag_bank3(CHRFLAG3_00040000) + + beginloop(0x04) + goto_next(0x52) + reloop(0x04) + + label(0x52) + if_chr_death_animation_finished(CHR_CLONE, /*goto*/ 0x52) + reloop(0x04) + + label(0x52) + try_spawn_clone2(CHR_SELF, FUNC_INIT_MINISKEDAR, 0x00000010, /*goto*/ 0x2e) + reloop(0x04) + + label(0x2e) + yield + endloop(0x04) + + endfunction +}; + +u8 func040e_init_miniskedar[] = { + set_self_flag_bank3(CHRFLAG3_00080000) + set_self_flag_bank3(CHRFLAG3_00020000) + set_accuracy(0) + set_reaction_speed(65) + set_chr_health(CHR_SELF, 20) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + set_self_flag_bank3(CHRFLAG3_00080000) + set_chr_alliance(CHR_SELF, ALLIANCE_ENEMY) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, FUNC_MINISKEDAR) + endfunction +}; + +u8 func040f_miniskedar[] = { + set_onshot_function(FUNC_MINISKEDAR) + if_chr_dying(CHR_SELF, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2e) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x06) + + // Dying + label(0x2e) + yield + restart_timer + + beginloop(0x10) + if_timer_gt(30, /*goto*/ 0x2e) + endloop(0x10) + + label(0x2e) + say_quip(CHR_JOANNA, 0x05, 0xff, 0x00, 0xff, BANK_0, 0x00, 0x00) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x06) + + beginloop(0x03) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x2e) + label(0x2e) + if_chr_sees_player(/*goto*/ 0x2e) + goto_next(0x1e) + + label(0x2e) + if_chr_distance_lt(400, /*goto*/ 0x30) + label(0x1e) + restart_timer + + label(0x09) + restart_timer + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x06) + label(0x06) + try_run_to_target_chr(/*goto*/ 0x0a) + + beginloop(0x0a) + if_chr_sees_player(/*goto*/ 0x2e) + goto_next(0x06) + + label(0x2e) + if_chr_distance_lt(400, /*goto*/ 0x30) + label(0x06) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x0a) + + label(0x06) + goto_first(0x09) + + label(0x30) + restart_timer + dprint 'F','A','C','E',' ','T','A','R','G','E','T','\n',0, + stop_chr + try_face_entity(0x0200, 0x0000, /*goto*/ 0x0b) + + beginloop(0x0b) + if_timer_gt(30, /*goto*/ 0x06) + reloop(0x0b) + + label(0x2e) + if_angle_to_target_chr_lt(10, /*goto*/ 0x06) + cmd004f(246, /*goto*/ 0x06) + endloop(0x0b) + + label(0x06) + say_quip(CHR_JOANNA, 0x04, 0xff, 0x00, 0xff, BANK_0, 0x00, 0x00) + if_chr_distance_lt(200, /*goto*/ 0x2f) + miniskedar_try_pounce(0x04, 0x000e, /*goto*/ 0x34) + reloop(0x03) + + beginloop(0x34) + if_chr_stopped(/*goto*/ 0x2e) + endloop(0x34) + + label(0x2e) + restart_timer + if_chr_injured_target(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x06) + + label(0x2e) + label(0x2f) + retreat(0x02, 0x01) + + beginloop(0x0c) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x0c) + + label(0x06) + endloop(0x03) + + endfunction +}; + +u8 func1010_agent_hallway_spawner[] = { + // This flag is also set when Elvis gives you the Farsight, so perhaps that + // used to be the trigger for miniskedar spawning but was changed so they + // spawn immediately. + set_stage_flag(STAGEFLAG_TRIGGER_MINISKEDAR_SPAWNING) + + beginloop(0x03) + if_stage_flag_eq(STAGEFLAG_TRIGGER_MINISKEDAR_SPAWNING, TRUE, /*goto*/ 0x2e) + endloop(0x03) + + label(0x2e) + set_function(0x25, FUNC_MINISKEDAR_SEND_CLONES) + set_function(0x26, FUNC_MINISKEDAR_SEND_CLONES) + + // Wait until player in a certain room + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0054, /*goto*/ 0x2e) + endloop(0x04) + + // Activate a different set of miniskedar + label(0x2e) + remove_chr(0x25) + remove_chr(0x26) + set_function(0x27, FUNC_MINISKEDAR_SEND_CLONES) + set_function(0x28, FUNC_MINISKEDAR_SEND_CLONES) + + // Wait until player in a certain room + beginloop(0x08) + consider_coop_for_p1p2_chr(CHR_P1P2) + if_chr_in_room(CHR_P1P2, 0x00, 0x005a, /*goto*/ 0x2e) + endloop(0x08) + + // Activate a different set of miniskedar + label(0x2e) + remove_chr(0x27) + remove_chr(0x28) + set_function(0x2b, FUNC_MINISKEDAR_SEND_CLONES) + set_function(0x2a, FUNC_MINISKEDAR_SEND_CLONES) + + // Wait until player in a certain room + beginloop(0x09) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0067, /*goto*/ 0x2e) + endloop(0x09) + + label(0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0411_hide[] = { + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_00040000) + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0412_unused[] = { + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_CLOAKED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Assigned to 3 guards who appear after teleports activated. + */ +u8 func0413_cloak_and_hide[] = { + set_chr_cloaked(CHR_SELF, TRUE, FALSE) + stop_chr + yield + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_00040000) + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1012_sa_megaweapon_spawner[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_ELVIS_STARTED_SA_MEGAWEAPON, TRUE, /*goto*/ 0x1f) + endloop(0x04) + + label(0x1f) + restart_timer + + beginloop(0x20) + dprint 'T','I','M','E','\n',0, + if_stage_flag_eq(STAGEFLAG_MEGAWEAPON_DISABLED, TRUE, /*goto*/ 0x06) + + // Megaweapon not disabled yet - spawn every 8 seconds + if_timer_lt(480, /*goto*/ 0x21) + goto_next(0x2e) + + // Megaweapon disabled - spawn every 48 seconds + label(0x06) + if_timer_lt(2880, /*goto*/ 0x21) + + // Consider spawn + label(0x2e) + dprint 'S','Q','U','A','D','\n',0, + if_num_chrs_in_group_gt(5, 0x0e, /*goto*/ 0x21) + call_rng + if_rand_gt(86, /*goto*/ 0x63) + if_rand_gt(172, /*goto*/ 0x64) + try_spawn_chr(BODY_MINISKEDAR, HEAD_RANDOM, 0x01f4, FUNC_INIT_SA_MEGAWEAPON_MINISKEDAR, 0x00000010, /*goto*/ 0x22) + goto_next(0x21) + + label(0x63) + try_spawn_chr(BODY_MINISKEDAR, HEAD_RANDOM, 0x01f5, FUNC_INIT_SA_MEGAWEAPON_MINISKEDAR, 0x00000010, /*goto*/ 0x22) + goto_next(0x21) + + label(0x64) + try_spawn_chr(BODY_MINISKEDAR, HEAD_RANDOM, 0x01f6, FUNC_INIT_SA_MEGAWEAPON_MINISKEDAR, 0x00000010, /*goto*/ 0x22) + goto_next(0x21) + + label(0x21) + endloop(0x20) + + label(0x22) + yield + cmd0145_rebuild_groups + cmd0146_rebuild_groups + goto_first(0x1f) + + endfunction +}; + +// SA megaweapon miniskedar +u8 func041e_init_sa_megaweapon_miniskedar[] = { + set_group(0x0e) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, FUNC_INIT_MINISKEDAR) + endfunction +}; + +/** + * On PA, in the room with 5 cylinders that must be destroyed to open the door. + */ +#define doorcylinder_logic(glass1, glass2, glass3, mine, stageflag) \ + beginloop(0x04) \ + if_object_in_good_condition(glass1, /*goto*/ 0x2e) \ + goto_next(0x06) \ + label(0x2e) \ + if_object_in_good_condition(glass2, /*goto*/ 0x2e) \ + goto_next(0x06) \ + label(0x2e) \ + if_object_in_good_condition(glass3, /*goto*/ 0x2e) \ + goto_next(0x06) \ + label(0x2e) \ + endloop(0x04) \ + \ + label(0x06) \ + assign_sound(0x8147, CHANNEL_7) \ + control_sound_from_object(CHANNEL_7, mine, TRUE) \ + yield \ + destroy_object(mine) \ + destroy_object(glass1) \ + destroy_object(glass2) \ + destroy_object(glass3) \ + set_stage_flag(stageflag) \ + set_function(CHR_SELF, 0x0408) + + + +u8 func1013_pa_doorcylinder1[] = { + set_lights_state(0x00a1, 0x04, 0x00, 0xff, 0xb4) + set_lights_state(0x00a9, 0x04, 0x00, 0xff, 0xb4) + set_lights_state(0x00ac, 0x04, 0x00, 0xff, 0xb4) + set_lights_state(0x00b4, 0x04, 0x00, 0xff, 0xb4) + set_lights_state(0x00b7, 0x04, 0x00, 0xff, 0xb4) + set_lights_state(0x00bf, 0x04, 0x00, 0xff, 0xb4) + set_lights_state(0x00c0, 0x04, 0x00, 0xff, 0xb4) + set_lights_state(0x00c1, 0x04, 0x00, 0xff, 0xb4) + set_lights_state(0x00c2, 0x04, 0x00, 0xff, 0xb4) + set_lights_state(0x00c3, 0x04, 0x00, 0xff, 0xb4) + set_lights_state(0x006c, 0x04, 0x00, 0xff, 0xf0) + + doorcylinder_logic(0x11, 0x12, 0x13, 0x9c, STAGEFLAG_PA_EARLYDOORCYLINDER1_DESTROYED) + endfunction +}; + +u8 func1014_pa_doorcylinder2[] = { + doorcylinder_logic(0x14, 0x15, 0x16, 0x9d, STAGEFLAG_PA_EARLYDOORCYLINDER2_DESTROYED) + endfunction +}; + +u8 func1015_pa_doorcylinder3[] = { + doorcylinder_logic(0x17, 0x18, 0x19, 0x9e, STAGEFLAG_PA_EARLYDOORCYLINDER3_DESTROYED) + endfunction +}; + +u8 func1016_pa_doorcylinder4[] = { + doorcylinder_logic(0x1a, 0x1b, 0x1c, 0x9f, STAGEFLAG_PA_EARLYDOORCYLINDER4_DESTROYED) + endfunction +}; + +u8 func1017_pa_doorcylinder5[] = { + doorcylinder_logic(0x1d, 0x1e, 0x1f, 0xa0, STAGEFLAG_PA_EARLYDOORCYLINDER5_DESTROYED) + endfunction +}; + +u8 func0408_check_pa_earlydoorcylinders_destroyed[] = { + label(0x04) + yield + if_stage_flag_eq(STAGEFLAG_PA_EARLYDOORCYLINDER1_DESTROYED, TRUE, /*goto*/ 0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2e) + if_stage_flag_eq(STAGEFLAG_PA_EARLYDOORCYLINDER2_DESTROYED, TRUE, /*goto*/ 0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2e) + if_stage_flag_eq(STAGEFLAG_PA_EARLYDOORCYLINDER3_DESTROYED, TRUE, /*goto*/ 0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2e) + if_stage_flag_eq(STAGEFLAG_PA_EARLYDOORCYLINDER4_DESTROYED, TRUE, /*goto*/ 0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2e) + if_stage_flag_eq(STAGEFLAG_PA_EARLYDOORCYLINDER5_DESTROYED, TRUE, /*goto*/ 0x08) + set_function(CHR_SELF, GFUNC_IDLE) + + beginloop(0x08) + if_door_state(0x09, (DOORSTATE_CLOSED | DOORSTATE_CLOSING), /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + set_lights_state(0x008b, 0x03, 0xff, 0x0a, 0x78) + set_lights_state(0x00bf, 0x03, 0xff, 0x0a, 0x78) + set_lights_state(0x00c0, 0x03, 0xff, 0x0a, 0x78) + set_lights_state(0x00c1, 0x03, 0xff, 0x0a, 0x78) + set_lights_state(0x00c2, 0x03, 0xff, 0x0a, 0x78) + set_lights_state(0x00c3, 0x03, 0xff, 0x0a, 0x78) + open_door(0x09) + open_door(0x0a) + goto_first(0x08) + + endfunction +}; + +#define pa_cylinder(glass, mine) \ + /* Wait until any object destroyed */ \ + beginloop(0x04) \ + if_object_in_good_condition(glass, /*goto*/ 0x2e) \ + goto_next(0x06) \ + label(0x2e) \ + if_object_in_good_condition(glass + 1, /*goto*/ 0x2e) \ + goto_next(0x06) \ + label(0x2e) \ + if_object_in_good_condition(glass + 2, /*goto*/ 0x2e) \ + goto_next(0x06) \ + label(0x2e) \ + if_object_in_good_condition(glass + 3, /*goto*/ 0x2e) \ + goto_next(0x06) \ + label(0x2e) \ + if_object_in_good_condition(glass + 4, /*goto*/ 0x2e) \ + goto_next(0x06) \ + label(0x2e) \ + if_object_in_good_condition(glass + 5, /*goto*/ 0x2e) \ + goto_next(0x06) \ + label(0x2e) \ + if_object_in_good_condition(glass + 6, /*goto*/ 0x2e) \ + goto_next(0x06) \ + label(0x2e) \ + if_object_in_good_condition(glass + 7, /*goto*/ 0x2e) \ + goto_next(0x06) \ + label(0x2e) \ + if_object_in_good_condition(glass + 8, /*goto*/ 0x2e) \ + goto_next(0x06) \ + label(0x2e) \ + if_object_in_good_condition(glass + 9, /*goto*/ 0x2e) \ + goto_next(0x06) \ + label(0x2e) \ + if_object_in_good_condition(glass + 10, /*goto*/ 0x2e) \ + goto_next(0x06) \ + label(0x2e) \ + if_object_in_good_condition(glass + 11, /*goto*/ 0x2e) \ + goto_next(0x06) \ + label(0x2e) \ + endloop(0x04) \ + \ + label(0x06) \ + destroy_object(mine) \ + destroy_object(glass) \ + destroy_object(glass + 1) \ + destroy_object(glass + 2) \ + destroy_object(glass + 3) \ + destroy_object(glass + 4) \ + destroy_object(glass + 5) \ + destroy_object(glass + 6) \ + destroy_object(glass + 7) \ + destroy_object(glass + 8) \ + destroy_object(glass + 9) \ + destroy_object(glass + 10) \ + destroy_object(glass + 11) + + + +u8 func1018_pa_door1[] = { + pa_cylinder(0x20, 0xa1) + set_stage_flag(STAGEFLAG_PA_MIDDOORCYLINDER_DESTROYED) + set_lights_state(0x00a1, 0x03, 0xff, 0x0a, 0x78) + + beginloop(0x08) + if_door_state(0x0b, (DOORSTATE_CLOSED | DOORSTATE_CLOSING), /*goto*/ 0x06) + reloop(0x08) + + label(0x06) + open_door(0x0b) + open_door(0x0c) + endloop(0x08) + + endfunction +}; + +/** + * The 4 cylinders in the tunnels that must be destroyed before the door to the + * final room opens. + */ +u8 func0409_check_pa_latedoorcylinders_destroyed[] = { + label(0x04) + yield + if_stage_flag_eq(STAGEFLAG_PA_LATEDOORCYLINDER1_DESTROYED, TRUE, /*goto*/ 0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2e) + if_stage_flag_eq(STAGEFLAG_PA_LATEDOORCYLINDER2_DESTROYED, TRUE, /*goto*/ 0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2e) + if_stage_flag_eq(STAGEFLAG_PA_LATEDOORCYLINDER3_DESTROYED, TRUE, /*goto*/ 0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2e) + if_stage_flag_eq(STAGEFLAG_PA_LATEDOORCYLINDER4_DESTROYED, TRUE, /*goto*/ 0x08) + set_function(CHR_SELF, GFUNC_IDLE) + + beginloop(0x08) + if_door_state(0x0d, (DOORSTATE_CLOSED | DOORSTATE_CLOSING), /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + open_door(0x0d) + open_door(0x0e) + goto_first(0x08) + + endfunction +}; + +u8 func1019_pa_door2[] = { + pa_cylinder(0x2c, 0xa2) + set_lights_state(0x00a9, 0x03, 0xff, 0x0a, 0x78) + label(0x08) + set_stage_flag(STAGEFLAG_PA_LATEDOORCYLINDER1_DESTROYED) + set_function(CHR_SELF, 0x0409) + endfunction +}; + +u8 func101a_pa_door3[] = { + pa_cylinder(0x38, 0xa3) + set_lights_state(0x00ac, 0x03, 0xff, 0x0a, 0x78) + label(0x08) + set_stage_flag(STAGEFLAG_PA_LATEDOORCYLINDER2_DESTROYED) + set_function(CHR_SELF, 0x0409) + endfunction +}; + +u8 func101b_pa_door4[] = { + pa_cylinder(0x44, 0xa4) + set_lights_state(0x00b4, 0x03, 0xff, 0x0a, 0x78) + label(0x08) + set_stage_flag(STAGEFLAG_PA_LATEDOORCYLINDER3_DESTROYED) + set_function(CHR_SELF, 0x0409) + endfunction +}; + +u8 func101c_pa_door5[] = { + // @bug: One of the PA door glasses is checked twice, and one is not + // checked at all, hence why this doesn't use the pa_cylindar macro. + + // Wait until any object destroyed + beginloop(0x04) + if_object_in_good_condition(0x50, /*goto*/ 0x2e) + goto_next(0x06) + label(0x2e) + if_object_in_good_condition(0x51, /*goto*/ 0x2e) + goto_next(0x06) + label(0x2e) + if_object_in_good_condition(0x52, /*goto*/ 0x2e) + goto_next(0x06) + label(0x2e) + if_object_in_good_condition(0x52, /*goto*/ 0x2e) + goto_next(0x06) + label(0x2e) + if_object_in_good_condition(0x53, /*goto*/ 0x2e) + goto_next(0x06) + label(0x2e) + if_object_in_good_condition(0x54, /*goto*/ 0x2e) + goto_next(0x06) + label(0x2e) + if_object_in_good_condition(0x55, /*goto*/ 0x2e) + goto_next(0x06) + label(0x2e) + if_object_in_good_condition(0x56, /*goto*/ 0x2e) + goto_next(0x06) + label(0x2e) + if_object_in_good_condition(0x57, /*goto*/ 0x2e) + goto_next(0x06) + label(0x2e) + if_object_in_good_condition(0x58, /*goto*/ 0x2e) + goto_next(0x06) + label(0x2e) + if_object_in_good_condition(0x59, /*goto*/ 0x2e) + goto_next(0x06) + label(0x2e) + if_object_in_good_condition(0x5a, /*goto*/ 0x2e) + goto_next(0x06) + label(0x2e) + endloop(0x04) + + label(0x06) + destroy_object(0xa5) + destroy_object(0x50) + destroy_object(0x51) + destroy_object(0x52) + destroy_object(0x52) + destroy_object(0x53) + destroy_object(0x54) + destroy_object(0x55) + destroy_object(0x56) + destroy_object(0x57) + destroy_object(0x58) + destroy_object(0x59) + destroy_object(0x5a) + + set_lights_state(0x00b7, 0x03, 0xff, 0x0a, 0x78) + label(0x08) + set_stage_flag(STAGEFLAG_PA_LATEDOORCYLINDER4_DESTROYED) + set_function(CHR_SELF, 0x0409) + endfunction +}; + +u8 func101d_pa_canister1[] = { + pa_cylinder(0x5b, 0xa6) + label(0x08) + set_stage_flag(STAGEFLAG_PA_CANISTER1_DESTROYED) + set_function(CHR_SELF, 0x040a) + endfunction +}; + +u8 func101e_pa_canister2[] = { + pa_cylinder(0x67, 0xa7) + label(0x08) + set_stage_flag(STAGEFLAG_PA_CANISDER2_DESTROYED) + set_function(CHR_SELF, 0x040a) + endfunction +}; + +u8 func040a_check_pa_canisters_destroyed[] = { + label(0x04) + yield + if_stage_flag_eq(STAGEFLAG_PA_CANISTER1_DESTROYED, TRUE, /*goto*/ 0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2e) + if_stage_flag_eq(STAGEFLAG_PA_CANISDER2_DESTROYED, TRUE, /*goto*/ 0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + + // Both canisters destroyed + label(0x2e) + set_object_flag_bank0(0x0f, OBJECTFLAG0_40000000) + set_lights_state(0x00bc, 0x03, 0xff, 0x0a, 0x78) + + beginloop(0x08) + if_door_state(0x0f, (DOORSTATE_CLOSED | DOORSTATE_CLOSING), /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + if_stage_flag_eq(STAGEFLAG_MEGAWEAPON_DISABLED, TRUE, /*goto*/ 0x2e) + message(CHR_JOANNA, 0x302b) // "Cetan megaweapon has been disabled." + set_stage_flag(STAGEFLAG_MEGAWEAPON_DISABLED) + label(0x2e) + open_door(0x0f) + open_door(0x10) + goto_first(0x08) + + endfunction +}; + +/** + * The room with 5 cylinders that open a door. + */ +u8 func101f_pa_circleroom_spawner[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_door_state(0x09, (DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING), /*goto*/ 0x2e) + if_chr_in_room(CHR_P1P2, 0x00, 0x008b, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + restart_timer + + beginloop(0x0d) + if_door_state(0x09, (DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING), /*goto*/ 0x1f) + if_timer_gt(300, /*goto*/ 0x1f) + endloop(0x0d) + + label(0x1f) + restart_timer + + beginloop(0x20) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x008c, /*goto*/ 0x58) + dprint 'T','I','M','E','\n',0, + if_timer_lt(300, /*goto*/ 0x21) + label(0x2e) + dprint 'S','Q','U','A','D','\n',0, + if_num_chrs_in_group_gt(3, 0x0d, /*goto*/ 0x21) + call_rng + if_rand_gt(128, /*goto*/ 0x63) + try_spawn_chr(BODY_MINISKEDAR, HEAD_RANDOM, 0x00dd, FUNC_INIT_PA_CIRCLEROOM_MINISKEDAR, 0x00000000, /*goto*/ 0x22) + goto_next(0x21) + label(0x63) + try_spawn_chr(BODY_MINISKEDAR, HEAD_RANDOM, 0x00dd, FUNC_INIT_PA_CIRCLEROOM_MINISKEDAR, 0x00000000, /*goto*/ 0x22) + goto_next(0x21) + label(0x21) + endloop(0x20) + + label(0x22) + yield + cmd0145_rebuild_groups + cmd0146_rebuild_groups + goto_first(0x1f) + + label(0x58) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func041f_init_pa_circleroom_miniskedar[] = { + set_group(0x0d) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, FUNC_INIT_MINISKEDAR) + endfunction +}; + +u8 func1020_pa_deadendroom_spawner[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x00b4, /*goto*/ 0x2e) + if_chr_in_room(CHR_P1P2, 0x00, 0x00b8, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + set_function(0x38, FUNC_INIT_PA_DEADENDROOM_MINISKEDAR) + set_function(0x39, FUNC_INIT_PA_DEADENDROOM_MINISKEDAR) + set_function(0x3a, FUNC_INIT_PA_DEADENDROOM_MINISKEDAR) + set_function(0x3b, FUNC_INIT_PA_DEADENDROOM_MINISKEDAR) + label(0x1f) + restart_timer + + beginloop(0x20) + dprint 'T','I','M','E','\n',0, + if_timer_lt(300, /*goto*/ 0x21) + label(0x2e) + dprint 'S','Q','U','A','D','\n',0, + if_num_chrs_in_group_gt(3, 0x0b, /*goto*/ 0x21) + call_rng + if_rand_gt(64, /*goto*/ 0x63) + if_rand_gt(128, /*goto*/ 0x64) + if_rand_gt(196, /*goto*/ 0x65) + try_spawn_chr(BODY_MINISKEDAR, HEAD_RANDOM, 0x01af, FUNC_INIT_PA_DEADENDROOM_MINISKEDAR, 0x00000000, /*goto*/ 0x22) + goto_next(0x21) + label(0x63) + try_spawn_chr(BODY_MINISKEDAR, HEAD_RANDOM, 0x01b0, FUNC_INIT_PA_DEADENDROOM_MINISKEDAR, 0x00000000, /*goto*/ 0x22) + goto_next(0x21) + label(0x64) + try_spawn_chr(BODY_MINISKEDAR, HEAD_RANDOM, 0x01b1, FUNC_INIT_PA_DEADENDROOM_MINISKEDAR, 0x00000000, /*goto*/ 0x22) + goto_next(0x21) + label(0x65) + try_spawn_chr(BODY_MINISKEDAR, HEAD_RANDOM, 0x01b2, FUNC_INIT_PA_DEADENDROOM_MINISKEDAR, 0x00000000, /*goto*/ 0x22) + goto_next(0x21) + label(0x21) + endloop(0x20) + + label(0x22) + yield + cmd0145_rebuild_groups + cmd0146_rebuild_groups + goto_first(0x1f) + + endfunction +}; + +u8 func0420_init_pa_deadendroom_miniskedar[] = { + set_group(0x0b) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, FUNC_INIT_MINISKEDAR) + endfunction +}; + +u8 func1021_c6c4[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_PA_MIDDOORCYLINDER_DESTROYED, TRUE, /*goto*/ 0x2e) + if_chr_dying(0x30, /*goto*/ 0x2e) + if_chr_dying(0x31, /*goto*/ 0x2e) + if_chr_dying(0x32, /*goto*/ 0x2e) + if_chr_dying(0x33, /*goto*/ 0x2e) + if_chr_dying(0x34, /*goto*/ 0x2e) + if_chr_dying(0x35, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + set_function(0x30, FUNC_INIT_MINISKEDAR) + set_function(0x31, FUNC_INIT_MINISKEDAR) + set_function(0x32, FUNC_INIT_MINISKEDAR) + set_function(0x33, FUNC_INIT_MINISKEDAR) + set_function(0x34, FUNC_INIT_MINISKEDAR) + set_function(0x35, FUNC_INIT_MINISKEDAR) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +#define init_path(pathid, function) \ + set_chr_dodge_rating(2, 0x0a) \ + set_accuracy(20) \ + set_reaction_speed(65) \ + set_chr_health(CHR_SELF, 70) \ + set_armor(0) \ + set_recovery_speed(0) \ + set_shield(0) \ + set_return_function(CHR_SELF, function) \ + assign_path(pathid) \ + start_path \ + set_function(CHR_SELF, GFUNC_UNALERTED_0004) + + + +u8 func0421_start_path02[] = { + init_path(2, 0x0421) + endfunction +}; + +u8 func0422_start_path03[] = { + init_path(3, 0x0422) + endfunction +}; + +u8 func0423_start_path04[] = { + init_path(4, 0x0423) + endfunction +}; + +u8 func0424_start_path05[] = { + init_path(5, 0x0424) + endfunction +}; + +u8 func0425_start_path06[] = { + init_path(6, 0x0425) + endfunction +}; + +u8 func0426_start_path07[] = { + init_path(7, 0x0426) + endfunction +}; + +u8 func0427_start_path08[] = { + init_path(8, 0x0427) + endfunction +}; + +u8 func0428_start_path09[] = { + init_path(9, 0x0428) + endfunction +}; + +u8 func0429_start_path10[] = { + init_path(10, 0x0429) + endfunction +}; + +u8 func1022_control_room[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x2e) + goto_next(0x04) + + // Agent + label(0x2e) + remove_chr(CHR_BLONDE1) + remove_chr(CHR_BLONDE2) + set_function(CHR_SELF, GFUNC_IDLE) + + // SA and PA + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x004c, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + if_chr_dying(CHR_BLONDE1, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_BLONDE1, /*goto*/ 0x2e) + if_chr_unloaded(CHR_BLONDE1, /*goto*/ 0x2e) + goto_first(0x04) + + label(0x2e) + if_chr_dying(CHR_BLONDE2, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_BLONDE2, /*goto*/ 0x2e) + if_chr_unloaded(CHR_BLONDE2, /*goto*/ 0x2e) + goto_first(0x04) + + label(0x2e) + message(CHR_P1P2, 0x3015) // "Control Room has been secured." + set_stage_flag(STAGEFLAG_BLONDES_DEAD) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1023_check_drcaroll_restored[] = { + if_difficulty_lt(DIFF_PA, /*goto*/ 0x04) + yield + give_object_to_chr(OBJ_BACKUPDISK, CHR_JOANNA) + + beginloop(0x04) + if_chr_death_animation_finished(CHR_DRCAROLL, /*goto*/ 0x0d) + if_chr_dying(CHR_DRCAROLL, /*goto*/ 0x0d) + if_chr_unloaded(CHR_DRCAROLL, /*goto*/ 0x0d) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x0d) + if_chr_dying(CHR_ELVIS, /*goto*/ 0x0d) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x0d) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_distance_to_pad_lt(CHR_P1P2, 200, 0x0193, /*goto*/ 0x2e) + reloop(0x04) + + label(0x2e) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x08) + if_stage_flag_eq(STAGEFLAG_BLONDES_DEAD, TRUE, /*goto*/ 0x2e) + reloop(0x04) + + label(0x2e) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x08) + if_chr_distance_to_pad_lt(CHR_P1P2, 200, 0x0193, /*goto*/ 0x2e) + reloop(0x04) + + label(0x2e) + if_chr_weapon_equipped(CHR_P1P2, WEAPON_BACKUPDISK, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + set_stage_flag(STAGEFLAG_DRCAROLL_RESTORED) + label(0x08) + set_function(CHR_SELF, FUNC_MIDCUTSCENE) + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1024_update_elvis_target_chr[] = { + beginloop(0x04) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x08) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x08) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x08) + set_chr_target_chr(CHR_ELVIS, CHR_JOANNA) + unset_stage_flag(STAGEFLAG_ELVIS_FOLLOWING_VELVET) + endloop(0x04) + + beginloop(0x08) + if_chr_dying(CHR_VELVET, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x2e) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x2e) + set_chr_target_chr(CHR_ELVIS, CHR_VELVET) + set_stage_flag(STAGEFLAG_ELVIS_FOLLOWING_VELVET) + endloop(0x08) + + label(0x2e) + goto_first(0x04) + + endfunction +}; + +u8 unregistered_function1[] = { + label(0x04) + chr_move_to_pad(CHR_ELVIS, 0x01bf, 0x01, /*goto*/ 0x06) + label(0x06) + set_chr_flag_bank2(CHR_ELVIS, CHRFLAG2_00020000) + set_function(CHR_ELVIS, FUNC_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1026_setup_autoguns[] = { + yield + set_autoturret_type(0xa8, 0x12) + set_autoturret_type(0xa9, 0x12) + set_autoturret_type(0xaa, 0x12) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func042e_elvis_run_to_exit[] = { + set_self_flag_bank3(CHRFLAG3_00080000) + set_onshot_function(FUNC_ELVIS_RUN_TO_EXIT) + set_return_function(CHR_SELF, FUNC_ELVIS_RUN_TO_EXIT) + set_target_chr(FOLLOW_CHR) + if_chr_dying(CHR_SELF, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2e) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x06) + + // Dying + label(0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x06) + if_just_injured(CHR_SELF, /*goto*/ 0x2e) + goto_next(0x5f) + + // Injured + label(0x2e) + say_quip(CHR_JOANNA, 0x29, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) + + beginloop(0x12) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x12) + + // Healthy + label(0x1f) + label(0x06) + set_target_chr(FOLLOW_CHR) + label(0x5f) + restart_timer + if_chr_distance_lt(1400, /*goto*/ 0x2e) + jog_to_pad(0x0004) + goto_next(0x0f) + + label(0x2e) + run_to_pad(0x0004) + + beginloop(0x0f) + if_enemy_distance_lt_and_los(800, /*goto*/ 0x08) + if_timer_gt(300, /*goto*/ 0x06) + if_chr_stopped(/*goto*/ 0x2e) + endloop(0x0f) + + label(0x06) + goto_first(0x5f) + + label(0x2e) + stop_chr + goto_first(0x1f) + + label(0x06) + restart_timer + label(0x08) + if_chr_lost_track_of_target_maybe(/*goto*/ 0x06) + goto_next(0x2e) + label(0x06) + goto_first(0x1f) + + label(0x2e) + dprint 'D','E','T','E','C','T','E','D','\n',0, + call_rng + if_rand_lt(85, /*goto*/ 0x63) + if_rand_lt(170, /*goto*/ 0x64) + say_quip(CHR_JOANNA, 0x26, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) + goto_next(0x2e) + label(0x63) + say_quip(CHR_JOANNA, 0x27, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) + goto_next(0x2e) + label(0x64) + say_quip(CHR_JOANNA, 0x28, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) + label(0x2e) + set_onshot_function(FUNC_ELVIS_RUN_TO_EXIT) + set_return_function(CHR_SELF, FUNC_ELVIS_RUN_TO_EXIT) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + endfunction +}; + +u8 func1027_powernode_illumination[] = { + beginloop(0x04) + if_door_state(0x03, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x2e) + unset_object_flag_bank0(OBJ_POWERNODE1, OBJECTFLAG0_ILLUMINATED) + goto_next(0x06) + label(0x2e) + set_object_flag_bank0(OBJ_POWERNODE1, OBJECTFLAG0_ILLUMINATED) + + label(0x06) + if_door_state(0x04, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x2e) + unset_object_flag_bank0(OBJ_POWERNODE2, OBJECTFLAG0_ILLUMINATED) + goto_next(0x06) + label(0x2e) + set_object_flag_bank0(OBJ_POWERNODE2, OBJECTFLAG0_ILLUMINATED) + + label(0x06) + if_door_state(0x05, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x2e) + unset_object_flag_bank0(OBJ_POWERNODE3, OBJECTFLAG0_ILLUMINATED) + goto_next(0x06) + label(0x2e) + set_object_flag_bank0(OBJ_POWERNODE3, OBJECTFLAG0_ILLUMINATED) + label(0x06) + endloop(0x04) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Enables 3 guards near the grotto entrace during the escape timer. + */ +u8 func1028_enable_last_3_guards[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_MIDCUTSCENE_FINISHED, TRUE, /*goto*/ 0x2e) + reloop(0x04) + + label(0x2e) + if_door_state(0xab, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + unset_chr_flag_bank3(0x3c, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x3d, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x3e, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x3c, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x3d, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(0x3e, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x3c, FUNC_RUN_TO_EXIT) + set_function(0x3d, FUNC_RUN_TO_EXIT) + set_function(0x3e, FUNC_RUN_TO_EXIT) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func042b_run_to_exit[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(40) + set_reaction_speed(65) + set_chr_health(CHR_SELF, 10) + set_armor(70) + set_recovery_speed(0) + set_shield(0) + label(0x04) + run_to_pad(0x0000) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func1429_start_lift[] = { + if_coop_mode(/*goto*/ 0x45) + activate_lift(1, 0x07) + label(0x45) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func102a_kill_pelagic_guard[] = { + yield + damage_chr(0x3f, 18) + yield + damage_chr(0x3f, 18) + yield + damage_chr(0x3f, 18) + yield + damage_chr(0x3f, 18) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func102b_proxymines[] = { + beginloop(0x04) + if_chr_death_animation_finished(0x08, /*goto*/ 0x06) + if_chr_dying(0x08, /*goto*/ 0x06) + if_chr_unloaded(0x08, /*goto*/ 0x06) + if_stage_flag_eq(STAGEFLAG_PURPLE_GUARD_SHOT_JO_OR_ELVIS, TRUE, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + set_object_flag_bank0(OBJ_PROXYMINES, OBJECTFLAG0_00100000) + set_object_flag_bank1(OBJ_PROXYMINES, OBJECTFLAG1_INVISIBLE) + + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func102c_lock_doors[] = { + label(0x04) + yield + if_difficulty_lt(DIFF_PA, /*goto*/ 0x2e) + + // PA + lock_door(0xb1, 0x80) + lock_door(0xb2, 0x80) + set_object_flag_bank1(0xb1, OBJECTFLAG1_20000000) + set_object_flag_bank1(0xb2, OBJECTFLAG1_20000000) + + // A and SA + label(0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040f_miniskedar_unalerted[] = { + set_onshot_function(FUNC_MINISKEDAR) + set_self_flag_bank3(CHRFLAG3_00080000) + set_self_flag_bank3(CHRFLAG3_00020000) + set_accuracy(0) + set_reaction_speed(65) + set_chr_health(CHR_SELF, 20) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + set_self_flag_bank3(CHRFLAG3_00080000) + set_chr_alliance(CHR_SELF, ALLIANCE_ENEMY) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + set_function(CHR_SELF, FUNC_MINISKEDAR) + endfunction +}; + +u8 func0432_dead_skedar[] = { + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + + label(0x08) + yield + animation(ANIM_SKEDAR_COLLAPSE, -1, -1, 0x0600, 0x21, 2) + label(0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 unregistered_function2[] = { + set_lights_state(0x0009, 0x04, 0x00, 0xff, 0xfa) + + beginloop(0x08) + endloop(0x08) + + label(0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func102e_open_powernode_doors_on_agent[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x08) + set_function(CHR_SELF, GFUNC_IDLE) + + // Agent + label(0x08) + open_door(0x03) + set_object_flag_bank0(0x03, OBJECTFLAG0_40000000) + open_door(0x04) + set_object_flag_bank0(0x04, OBJECTFLAG0_40000000) + open_door(0x05) + set_object_flag_bank0(0x05, OBJECTFLAG0_40000000) + label(0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Stop whatever Elvis is doing in preparation for teleporting. + */ +u8 func042c_elvis_stop[] = { + label(0x08) + stop_chr + + // @bug: This needs to set the onshot function to GFUNC_IDLE too, otherwise + // his function will be reassigned if he takes damage between here and the + // teleport. This causes him to not teleport. + label(0x2e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func102f_unlock_drcaroll_door[] = { + // Wait until player in Dr Caroll room + beginloop(0x08) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x004c, /*goto*/ 0x2e) + endloop(0x08) + + // Unlock exit door + label(0x2e) + unlock_door(0x75, 0x02) + unlock_door(0x76, 0x02) + unset_object_flag_bank1(0x75, OBJECTFLAG1_20000000) + unset_object_flag_bank1(0x76, OBJECTFLAG1_20000000) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1030_unlock_agent_teleport_door[] = { + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_MEGAWEAPON_DISABLED, TRUE, /*goto*/ 0x2e) + endloop(0x08) + + // Agent area, near megaweapon. Door that leads to exit teleport. + label(0x2e) + unlock_door(0xb7, 0x02) + unlock_door(0xb8, 0x02) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Wait until Jo has the trigger buddy warp flag set, then unset it 30 seconds + * later. + */ +u8 func1031_unset_trigger_buddy_warp[] = { + beginloop(0x08) + if_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP, /*goto*/ 0x2e) + reloop(0x08) + + label(0x2e) + restart_timer + + beginloop(0x09) + if_timer_gt(1800, /*goto*/ 0x2e) + endloop(0x09) + + label(0x2e) + unset_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP) + endloop(0x08) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Toggle a stage flag every 5 seconds. + * + * There's a good chance that this flag had a different meaning back when this + * was working. + */ +u8 unregistered_function3[] = { + label(0x1f) + restart_timer + + beginloop(0x08) + if_timer_gt(300, /*goto*/ 0x2e) + endloop(0x08) + + label(0x2e) + unset_stage_flag(STAGEFLAG_SA_EXIT_TELEPORT_DISABLED) + restart_timer + + beginloop(0x09) + if_timer_gt(300, /*goto*/ 0x2e) + endloop(0x09) + + label(0x2e) + set_stage_flag(STAGEFLAG_SA_EXIT_TELEPORT_DISABLED) + goto_first(0x1f) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1032_setup_rtracker[] = { + yield + set_object_flag_bank2(OBJ_PROXYMINES, OBJECTFLAG2_RTRACKED_BLUE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1433_setup_lighting[] = { + yield + set_lighting(0x0000, 0x09, 0x01) + set_lighting(0x0002, 0x05, 0x00) + set_lighting(0x0003, 0x05, 0x00) + set_lighting(0x0004, 0x05, 0x00) + set_lighting(0x0006, 0x05, 0x00) + set_lighting(0x0007, 0x05, 0x00) + set_lighting(0x0008, 0x05, 0x00) + set_lighting(0x000c, 0x05, 0x00) + set_lighting(0x000d, 0x05, 0x00) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1034_enable_blondes[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x0d) + yield + hide_chr(CHR_BLONDE1) + hide_chr(CHR_BLONDE2) + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x004c, /*goto*/ 0x2e) + endloop(0x04) + + label(0x2e) + show_chr(CHR_BLONDE1) + show_chr(CHR_BLONDE2) + set_function(CHR_BLONDE1, FUNC_BLONDE) + set_function(CHR_BLONDE2, FUNC_BLONDE) + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func102d_check_farsight_ammo_wasted[] = { + if_difficulty_lt(DIFF_PA, /*goto*/ 0x0d) + + // Probable @bug: Looks like the objective will fail if one buddy uses all + // their ammo but the other is still stocked. + beginloop(0x1f) + if_chr_weapon_equipped(CHR_JOANNA, WEAPON_FARSIGHTXR20, /*goto*/ 0x2e) + if_chr_weapon_equipped(CHR_VELVET, WEAPON_FARSIGHTXR20, /*goto*/ 0x2f) + endloop(0x1f) + + label(0x2e) + set_target_chr(CHR_JOANNA) + goto_next(0x63) + + label(0x2f) + set_target_chr(CHR_VELVET) + + beginloop(0x63) + if_objective_complete(1, /*goto*/ 0x0d) + if_ammo_quantity_lt(TARGET_CHR, AMMOTYPE_FARSIGHT, 1, /*goto*/ 0x2e) + endloop(0x63) + + label(0x2e) + message(CHR_JOANNA, 0x302c) // "Ammo wasted - unable to disable megaweapon." + set_stage_flag(STAGEFLAG_FARSIGHT_AMMO_WASTED) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 unregistered_function4[] = { + cmd0185_mponly + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +struct ailists functions[] = { + { func0401_unused, 0x0401 }, + { func1400_setup_counterop, 0x1400 }, + { func1001_objectives_failed_msg, 0x1001 }, + { func1002_intro, 0x1002 }, + { func1003_powernode1, 0x1003 }, + { func1004_powernode2, 0x1004 }, + { func1005_powernode3, 0x1005 }, + { func1006_msg_thiswillhelpus, 0x1006 }, + { func1007_msg_antibodymasking, 0x1007 }, + { func1008_msg_theresdrcaroll, 0x1008 }, + { func1009_msg_getoutofhere, 0x1009 }, + { func100a_joanna_teleports, 0x100a }, + { func100b_velvet_teleports, 0x100b }, + { func100c_countdown_timer, 0x100c }, + { func100e_check_elvis_dead, 0x100e }, + { func100f_check_drcaroll_dead, 0x100f }, + { func1010_agent_hallway_spawner, 0x1010 }, + { func1012_sa_megaweapon_spawner, 0x1012 }, + { func1013_pa_doorcylinder1, 0x1013 }, + { func1014_pa_doorcylinder2, 0x1014 }, + { func1015_pa_doorcylinder3, 0x1015 }, + { func1016_pa_doorcylinder4, 0x1016 }, + { func1017_pa_doorcylinder5, 0x1017 }, + { func1018_pa_door1, 0x1018 }, + { func1019_pa_door2, 0x1019 }, + { func101a_pa_door3, 0x101a }, + { func101b_pa_door4, 0x101b }, + { func101c_pa_door5, 0x101c }, + { func101d_pa_canister1, 0x101d }, + { func101e_pa_canister2, 0x101e }, + { func101f_pa_circleroom_spawner, 0x101f }, + { func1020_pa_deadendroom_spawner, 0x1020 }, + { func1021_c6c4, 0x1021 }, + { func1022_control_room, 0x1022 }, + { func1023_check_drcaroll_restored, 0x1023 }, + { func1024_update_elvis_target_chr, 0x1024 }, + { func1026_setup_autoguns, 0x1026 }, + { func1027_powernode_illumination, 0x1027 }, + { func1028_enable_last_3_guards, 0x1028 }, + { func1429_start_lift, 0x1429 }, + { func102a_kill_pelagic_guard, 0x102a }, + { func102b_proxymines, 0x102b }, + { func102c_lock_doors, 0x102c }, + { func102d_check_farsight_ammo_wasted, 0x102d }, + { func102e_open_powernode_doors_on_agent, 0x102e }, + { func102f_unlock_drcaroll_door, 0x102f }, + { func1030_unlock_agent_teleport_door, 0x1030 }, + { func1031_unset_trigger_buddy_warp, 0x1031 }, + { func1032_setup_rtracker, 0x1032 }, + { func1433_setup_lighting, 0x1433 }, + { func1034_enable_blondes, 0x1034 }, + { func1002_intro, 0x0c00 }, + { func0c01_midcutscene, 0x0c01 }, + { func0c02_outro, 0x0c02 }, + { func0411_hide, 0x0411 }, + { func0412_unused, 0x0412 }, + { func040e_init_miniskedar, 0x040e }, + { func040f_miniskedar, 0x040f }, + { func0c02_outro, 0x0410 }, + { func040f_miniskedar_send_clones, 0x040d }, + { func040c_blonde, 0x040c }, + { func040b_init_elvis, 0x040b }, + { func0402_elvis_follow_and_reactive_teleportals, 0x0402 }, + { func0403_elvis_give_farsight, 0x0403 }, + { func0404_elvis_follow_and_do_agent_megaweapon, 0x0404 }, + { func0405_elvis_follow_nocombat, 0x0405 }, + { func0406_elvis_follow_and_do_sa_megaweapon, 0x0406 }, + { func0407_elvis_go_to_sa_teleport, 0x0407 }, + { func0408_check_pa_earlydoorcylinders_destroyed, 0x0408 }, + { func0409_check_pa_latedoorcylinders_destroyed, 0x0409 }, + { func040a_check_pa_canisters_destroyed, 0x040a }, + { func0414_teleport_joanna_to_sapa, 0x0414 }, + { func0415_teleport_joanna_to_drcaroll, 0x0415 }, + { func0416_teleport_joanna_to_a_pa_drcaroll, 0x0416 }, + { func0417_teleport_velvet_to_sapa, 0x0417 }, + { func0418_teleport_velvet_to_drcaroll, 0x0418 }, + { func0419_teleport_velvet_to_a_pa_drcaroll, 0x0419 }, + { func041a_init_sniper, 0x041a }, + { func041b_sniper_wait_for_detection, 0x041b }, + { func041c_teleport_activation_responder, 0x041c }, + { func041d_sniper, 0x041d }, + { func041e_init_sa_megaweapon_miniskedar, 0x041e }, + { func041f_init_pa_circleroom_miniskedar, 0x041f }, + { func0420_init_pa_deadendroom_miniskedar, 0x0420 }, + { func0421_start_path02, 0x0421 }, + { func0422_start_path03, 0x0422 }, + { func0423_start_path04, 0x0423 }, + { func0424_start_path05, 0x0424 }, + { func0425_start_path06, 0x0425 }, + { func0426_start_path07, 0x0426 }, + { func0427_start_path08, 0x0427 }, + { func0428_start_path09, 0x0428 }, + { func0429_start_path10, 0x0429 }, + { func042b_run_to_exit, 0x042b }, + { func042d_elvis_warp_to_outside_drcaroll, 0x042d }, + { func042e_elvis_run_to_exit, 0x042e }, + { func0c01_midcutscene, 0x042a }, + { func0413_cloak_and_hide, 0x0413 }, + { func042f_init_pelagic_guard, 0x042f }, + { func0430_unused, 0x0430 }, + { func040f_miniskedar_unalerted, 0x0431 }, + { func0432_dead_skedar, 0x0432 }, + { func0433_unused, 0x0433 }, + { func042c_elvis_stop, 0x042c }, + { NULL, 0 }, +}; + +struct aipaths paths[] = { + { path02, 2, 0 }, + { path03, 3, 0 }, + { path04, 4, 0 }, + { path05, 5, 0 }, + { path06, 6, 0 }, + { path07, 7, 0 }, + { path08, 8, 0 }, + { path09, 9, 0 }, + { path10, 10, 0 }, + { NULL, 0, 0 }, +}; + diff --git a/src/setup/setuppete.c b/src/setup/setuppete.c new file mode 100644 index 000000000..39afb4bfd --- /dev/null +++ b/src/setup/setuppete.c @@ -0,0 +1,3341 @@ +// +// Chicago +// + +#include "../include/setup.h" + +// Characters +#define CHR_TOPSTAIRS 0x07 +#define CHR_SEALER1 0x0d +#define CHR_SEALER2 0x0e +#define CHR_SEALER3 0x0f +#define CHR_SEALER4 0x10 +#define CHR_FBI1 0x17 +#define CHR_FBI2 0x18 +#define CHR_FBI3 0x19 +#define CHR_CIA1 0x1a +#define CHR_CIA2 0x1b // bug spotter +#define CHR_CIA3 0x1c +#define CHR_CIA4 0x1d +#define CHR_HIDDENGUY 0x1e // positioned just behind Jo's starting place, never unhidden, and used for distance checks and something related to the robot +#define CHR_ROBOT 0x1f + +// Objects +#define OBJ_CAR1 0x00 +#define OBJ_CAR2 0x01 +#define OBJ_CAR3 0x02 +#define OBJ_CAR4 0x03 +#define OBJ_CAR5 0x05 +#define OBJ_BRIEFCASE1 0x06 +#define OBJ_BRIEFCASE2 0x07 +#define OBJ_FIREDOORTOP 0x08 +#define OBJ_FIREDOORBOTTOM 0x09 +#define OBJ_TAXI 0x0a +#define OBJ_LIMO 0x0c +#define OBJ_SWITCH 0x0e +#define OBJ_BRIEFCASE3 0x0f +#define OBJ_MINE1 0x12 +#define OBJ_MINE2 0x13 +#define OBJ_BRIEFCASE4 0x1b +#define OBJ_BRIEFCASE5 0x1d +#define OBJ_BRIEFCASE6 0x1e +#define OBJ_WIREFENCE 0x21 +#define OBJ_FALCON2 0x22 +#define OBJ_DUMPSTER 0x25 + +// Stage flags +#define STAGEFLAG_ALARM_GROUP1_DEAD 0x00000001 +#define STAGEFLAG_ALARM_GROUP2_DEAD 0x00000002 +#define STAGEFLAG_ALARM_GROUP3_DEAD 0x00000004 +#define STAGEFLAG_TRACERBUG_SPOTTED 0x00000008 +#define STAGEFLAG_CRASH_FINISHED 0x00000010 +#define STAGEFLAG_TRIGGER_CRASH 0x00000020 +#define STAGEFLAG_ROBOT_NEAR_CORNER 0x00000040 +#define STAGEFLAG_TRACERBUG_SAFE 0x00000080 +#define STAGEFLAG_ONE_BUG_REMAINING 0x00000100 +#define STAGEFLAG_MINE_PLACED 0x00000200 +#define STAGEFLAG_MINE_WASTED 0x00000400 +#define STAGEFLAG_TAXI_REPROGRAMMED 0x00000800 +#define STAGEFLAG_TRACERBUG_PLACED 0x00001000 +#define STAGEFLAG_TRACERBUG_WASTED 0x00002000 +#define STAGEFLAG_LIMO_DESTROYED 0x00004000 +#define STAGEFLAG_TAXI_DESTROYED 0x00008000 +#define STAGEFLAG_ROBOT_DESTROYED 0x00010000 +#define STAGEFLAG_IN_ELEVATOR 0x00020000 +#define STAGEFLAG_LIMO_READY_TO_LEAVE 0x00040000 +#define STAGEFLAG_LIMO_READY_15SEC_AGO 0x00080000 +#define STAGEFLAG_TRIGGER_TAXI_LEAVE 0x00100000 +#define STAGEFLAG_TAXI_ALMOST_READY_TO_CRASH 0x00200000 +#define STAGEFLAG_ALARM_SOUNDED 0x00400000 +#define STAGEFLAG_ROBOT_NEAR_HOME 0x00800000 +#define STAGEFLAG_ROBOT_ON_DRAIN_STREET 0x01000000 +#define STAGEFLAG_TRIGGER_INTRO 0x02000000 +#define STAGEFLAG_LIMO_ESCAPED 0x04000000 +#define STAGEFLAG_CIVILIAN_DEAD 0x08000000 +#define STAGEFLAG_ELEVATOR_SEALED 0x10000000 +#define STAGEFLAG_INTRO_FINISHED 0x20000000 +#define STAGEFLAG_DIVERSION_CREATED 0x40000000 +#define STAGEFLAG_TAXI_READY_TO_CRASH 0x80000000 + +// Functions +#define FUNC_OUTRO 0x040b +#define FUNC_CIA 0x0412 +#define FUNC_BUGSPOTTER 0x0413 +#define FUNC_INIT_CIA1 0x0419 +#define FUNC_ROBOT 0x041a +#define FUNC_INIT_ROBOT 0x041b +#define FUNC_HIDDENGUY 0x041c +#define FUNC_FBI 0x041d +#define FUNC_SEALER1 0x041e +#define FUNC_ALARM_RESPONDER 0x041f +#define FUNC_JOG_TO_ACCIDENT 0x0420 + +// Other +#define GROUP_ALARM_RESPONDER 0x09 + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + briefing(0, 0x3201) + briefing(1, 0x3200) + briefing(2, 0x3202) + briefing(3, 0x3203) + + beginobjective(0, 0x3209, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Retrieve drop point equipment" + require_object_collected(OBJ_BRIEFCASE1) + require_object_collected(OBJ_BRIEFCASE2) + endobjective + + beginobjective(1, 0x320a, (DIFFBIT_PA | DIFFBIT_PD)) // "Attach tracer to limousine" + complete_flags(STAGEFLAG_TRACERBUG_PLACED) + fail_flags(STAGEFLAG_TRACERBUG_WASTED) + fail_flags(STAGEFLAG_LIMO_DESTROYED) + fail_flags(STAGEFLAG_LIMO_ESCAPED) + fail_flags(STAGEFLAG_TRACERBUG_SPOTTED) + endobjective + + beginobjective(2, 0x320b, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Prepare escape route" + complete_flags(STAGEFLAG_MINE_PLACED) + fail_flags(STAGEFLAG_MINE_WASTED) + endobjective + + beginobjective(3, 0x320d, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Create vehicular diversion" + complete_flags(STAGEFLAG_DIVERSION_CREATED) + fail_flags(STAGEFLAG_TAXI_DESTROYED) + fail_flags(STAGEFLAG_ROBOT_DESTROYED) + endobjective + + beginobjective(4, 0x320e, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Gain entry to G5 building" + complete_flags(STAGEFLAG_IN_ELEVATOR) + fail_flags(STAGEFLAG_CIVILIAN_DEAD) + fail_flags(STAGEFLAG_ELEVATOR_SEALED) + endobjective + + chr(0x00010c00, 0x1a, 0x00a9, BODY_CIAGUY, HEAD_RANDOM, FUNC_INIT_CIA1, -1, -1, 1000, 6, 0x80004000, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000) + chr(0x00000200, 0x00, 0x00aa, BODY_G5_GUARD, HEAD_RANDOM, 0x0414, -1, -1, 1000, 10, 0xa0004408, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x000000c0, 0x17, 0x00ab, BODY_FBIGUY, HEAD_RANDOM, 0x0411, -1, -1, 800, 30, 0x8000a000, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000) + chr(0x00000200, 0x01, 0x00ac, BODY_G5_GUARD, HEAD_RANDOM, 0x0415, -1, -1, 1000, 10, 0xa0004408, 0x00000000, 0x20, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000080, 0x18, 0x00af, BODY_FBIGUY, HEAD_RANDOM, 0x0411, -1, -1, 500, 30, 0x8000e008, 0x00000000, 0x20, 0x01, -1, 0, 0x01000000) + chr(0x00000200, 0x02, 0x00ad, BODY_G5_GUARD, HEAD_RANDOM, 0x0416, -1, -1, 1000, 10, 0xa0004008, 0x00000000, 0x20, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x03, 0x00ae, BODY_G5_GUARD, HEAD_RANDOM, 0x040e, -1, -1, 1000, 50, 0xc0004008, 0x00000000, 0x20, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0003, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x04, 0x00b0, BODY_G5_GUARD, HEAD_RANDOM, 0x040e, -1, -1, 1000, 50, 0xc0004008, 0x00000000, 0x20, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0004, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x05, 0x00b1, BODY_G5_GUARD, HEAD_RANDOM, 0x0417, -1, -1, 1000, 50, 0xa0004008, 0x00000000, 0x20, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0005, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x19, 0x00b3, BODY_FBIGUY, HEAD_RANDOM, 0x0411, -1, -1, 500, 20, 0xc000a000, 0x00000000, 0x20, 0x04, -1, 0, 0x02000000) + chr(0x00000200, 0x06, 0x00b4, BODY_G5_GUARD, HEAD_RANDOM, 0x040f, -1, -1, 1000, 10, 0xc0004008, 0x00000000, 0x20, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0006, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000300, 0x0a, 0x00b6, BODY_G5_GUARD, HEAD_RANDOM, 0x040f, -1, -1, 1000, 10, 0xd0002008, 0x00000000, 0x20, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x07, 0x00b5, BODY_G5_GUARD, HEAD_RANDOM, 0x040f, -1, -1, 1000, 10, 0xd0002008, 0x00001000, 0x20, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0007, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0b, 0x00b7, BODY_G5_GUARD, HEAD_RANDOM, 0x040f, -1, -1, 1000, 10, 0xc0004008, 0x00000000, 0x20, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000240, 0x08, 0x00cb, BODY_G5_GUARD, HEAD_RANDOM, 0x040f, -1, -1, 1000, 10, 0xd0002008, 0x00000000, 0x20, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000280, 0x09, 0x00cc, BODY_G5_GUARD, HEAD_RANDOM, 0x040f, -1, -1, 1000, 10, 0xd0002008, 0x00000000, 0x20, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0c, 0x00b8, BODY_G5_GUARD, HEAD_RANDOM, 0x0418, -1, -1, 500, 10, 0xc0004008, 0x00000000, 0x20, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00010c00, 0x1c, 0x00b9, BODY_CIAGUY, HEAD_RANDOM, FUNC_CIA, -1, -1, 1000, 6, 0x80000008, 0x00000000, 0x20, 0x05, -1, 0, 0x01000000) + chr(0x00010c00, 0x1d, 0x0042, BODY_CIAGUY, HEAD_RANDOM, FUNC_CIA, -1, -1, 1000, 6, 0x80002000, 0x00000000, 0x20, 0x05, -1, 0, 0x02000000) + chr(0x00000400, 0x0d, 0x00bf, BODY_G5_GUARD, HEAD_RANDOM, FUNC_SEALER1, -1, -1, 1000, 15, 0xc0004008, 0x00000000, 0x20, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x0e, 0x00bc, BODY_G5_GUARD, HEAD_RANDOM, 0x040e, 0x00c5, -1, 1000, 15, 0xc0084008, 0x00000000, 0x20, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x0f, 0x00bd, BODY_G5_GUARD, HEAD_RANDOM, 0x040e, 0x00c6, -1, 1000, 15, 0xc0084008, 0x00000000, 0x20, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000600, 0x10, 0x00be, BODY_G5_GUARD, HEAD_RANDOM, 0x040e, 0x00c7, -1, 1000, 15, 0xc0084008, 0x00000000, 0x20, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0010, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00010c00, 0x1b, 0x00b2, BODY_CIAGUY, HEAD_RANDOM, FUNC_BUGSPOTTER, -1, -1, 1000, 6, 0x80000000, 0x00000000, 0x20, 0x01, -1, 0, 0x00000000) + chr(0x00000000, 0x11, 0x00c9, BODY_G5_GUARD, HEAD_RANDOM, GFUNC_IDLE, 0x00c9, -1, 1000, 30, 0xc1086008, 0x00000000, 0x20, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0011, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x12, 0x00ca, BODY_G5_GUARD, HEAD_RANDOM, GFUNC_IDLE, 0x00ca, -1, 1000, 30, 0xc1086008, 0x00000000, 0x20, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0012, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000400, 0x1f, 0x0020, BODY_CHICROB, 0x00, FUNC_INIT_ROBOT, -1, -1, 1000, 15, 0x00000000, 0x00000000, 0x20, 0x00, -1, 0, 0x00000000) + chr(0x00000000, 0x1e, 0x0063, BODY_G5_GUARD, HEAD_RANDOM, FUNC_HIDDENGUY, 0x00c8, -1, 1000, 15, 0x40084008, 0x00000000, 0x20, 0x01, -1, 0, 0x00000000) + chr(0x00000200, 0x13, 0x00cd, BODY_G5_GUARD, HEAD_RANDOM, 0x040e, -1, -1, 500, 10, 0xc0004208, 0x00000000, 0x20, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0013, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x14, 0x00ce, BODY_G5_GUARD, HEAD_RANDOM, 0x040e, -1, -1, 500, 10, 0xc0004208, 0x00000000, 0x20, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x15, 0x00cf, BODY_G5_GUARD, HEAD_RANDOM, 0x040e, -1, -1, 500, 10, 0xc0004208, 0x00000000, 0x20, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0015, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x16, 0x00d1, BODY_G5_GUARD, HEAD_RANDOM, 0x040e, -1, -1, 1, 10, 0xc0004008, 0x00000000, 0x20, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + tag(0x00, 1) + stdobject(0x0100, MODEL_TAXICAB, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x01, 1) + stdobject(0x0100, MODEL_TAXICAB, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x02, 1) + stdobject(0x0100, MODEL_TAXICAB, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x03, 1) + stdobject(0x0100, MODEL_POLICECAR, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x05, 1) + stdobject(0x0100, MODEL_POLICECAR, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x06, 1) + weapon(0x0180, MODEL_CHRBRIEFCASE, 0x00a6, 0x00422001, 0x00000001, 0x20400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REMOTEMINE, 0x00ffffff, 0x00000000) + rename_object(-1, 0x22, 0x3226, 0x3227, 0x3228, 0x3229, 0x322a, 0x0000, 0x0000) // "Obtain Remote Mine." + tag(0x0f, 1) + weapon(0x0180, MODEL_CHRBRIEFCASE, 0xffff, 0x00000001, 0x00000001, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRACERBUG, 0x00ffffff, 0x00000000) + rename_object(-1, 0x3e, 0x322b, 0x322c, 0x322d, 0x322e, 0x322f, 0x0000, 0x0000) // "Obtain Tracer Bug." + tag(0x1d, 1) + weapon(0x0180, MODEL_CHRBRIEFCASE, 0xffff, 0x00000001, 0x00000001, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRACERBUG, 0x00ffffff, 0x00000000) + rename_object(-1, 0x3e, 0x322b, 0x322c, 0x322d, 0x322e, 0x322f, 0x0000, 0x0000) // "Obtain Tracer Bug." + tag(0x0e, 1) + singlemonitor(0x0019, MODEL_G5_LASER_SWITCH, 0x00eb, 0x00000002, 0x00002301, 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, 0xffffff13) + tag(0x07, 1) + weapon(0x0180, MODEL_CHRBRIEFCASE, 0x00a6, 0x00462001, 0x00000001, 0x20400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DATAUPLINK, 0x00ffffff, 0x00000000) + rename_object(-1, 0x36, 0x3231, 0x3232, 0x3233, 0x3234, 0x3235, 0x0000, 0x0000) // "Obtain Reprogrammer." + tag(0x1b, 1) + weapon(0x0180, MODEL_CHRBRIEFCASE, 0x001c, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SCOPE, 0x00ffffff, 0x00000000) + rename_object(-1, 0x04, 0x3237, 0x3238, 0x3239, 0x323a, 0x323b, 0x0000, 0x0000) // "Obtain Remote Mine." + tag(0x1e, 1) + weapon(0x0180, MODEL_CHRBRIEFCASE, 0x001c, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SCOPE, 0x00ffffff, 0x00000000) + rename_object(-1, 0x04, 0x3237, 0x3238, 0x3239, 0x323a, 0x323b, 0x0000, 0x0000) // "Obtain Remote Mine." + tag(0x1f, 1) + stdobject(0x0100, MODEL_CHRBRIEFCASE, 0x009c, 0x012004e1, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x0a, 1) + hover_vehicle(0x0100, MODEL_TAXICAB, 0x00a3, 0x20000108, 0x00000001, 0x10010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000002bc, 0x00000000, 0x00000000, 0x0fff0000, 0x0000040c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x0c, 1) + hover_vehicle(0x00cc, MODEL_LIMO, 0x00a4, 0x20000108, 0x00000001, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000002bc, 0x00000000, 0x00000000, 0x0fff0000, 0x0000040d, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x21, 1) + stdobject(0x0100, MODEL_WIREFENCE, 0xffff, 0x00021501, 0x00008000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x08, 1) + door(0x0100, MODEL_G5_ESCDOORUP, 0x00fb, 0x13520d00, 0x20304300, 0x00000000, 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) + tag(0x09, 1) + door(0x0100, MODEL_G5_ESCDOORDOWN, 0x00fc, 0x13520d00, 0x20304300, 0x00000000, 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) + tag(0x10, 2) + tag(0x11, 2) + door(0x0100, MODEL_G5CARLIFTDOOR, 0x00ec, 0x10000000, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00003333, 0x00014000, 0x00001333, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_G5CARLIFTDOOR, 0x00ed, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00003333, 0x00014000, 0x00001333, 0x00080000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x14, 1) + door(0x0100, MODEL_CH_SHUTTER1, 0x00ee, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f5c2, 0x0000f333, 0x00003333, 0x00014000, 0x00001333, 0x00040004, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x1a, 1) + door(0x0100, MODEL_CH_SHUTTER1, 0x00ef, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f5c2, 0x0000f333, 0x00003333, 0x00014000, 0x00001333, 0x00040004, 0x00000000, 0x00000708, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x00f0, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f5c2, 0x0000f333, 0x00003333, 0x00014000, 0x00001333, 0x00040004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x00f1, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f5c2, 0x0000f333, 0x00003333, 0x00014000, 0x00001333, 0x00040004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x15, 2) + tag(0x16, 2) + door(0x0100, MODEL_CH_SHUTTER1, 0x00f2, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f5c2, 0x0000f333, 0x00003333, 0x00014000, 0x00001333, 0x000c0004, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x00f3, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f5c2, 0x0000f333, 0x00003333, 0x00014000, 0x00001333, 0x000c0004, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x19, 1) + door(0x0100, MODEL_CH_SHUTTER1, 0x00f4, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f5c2, 0x0000f333, 0x00003333, 0x00014000, 0x00001333, 0x000c0004, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x17, 2) + tag(0x18, 2) + door(0x0100, MODEL_CH_SHUTTER1, 0x00f5, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f5c2, 0x0000f333, 0x00003333, 0x00014000, 0x00001333, 0x000c0004, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x00f6, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f5c2, 0x0000f333, 0x00003333, 0x00014000, 0x00001333, 0x000c0004, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_CH_SHUTTER1, 0x00f7, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f5c2, 0x0000f333, 0x00003333, 0x00014000, 0x00001333, 0x000c0004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x12, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0067, 0x012004e1, 0x00086001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x13, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0067, 0x012004e1, 0x00086001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + door(0x0100, MODEL_DOOR2A_G5, 0x00fd, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00003333, 0x00014000, 0x00001333, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR2A_G5, 0x00fe, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00003333, 0x00014000, 0x00001333, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x0104, 0x00000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x00000005, 0x00000001, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x0105, 0x20000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x00000005, 0x00000001, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x25, 1) + stdobject(0x0100, MODEL_DUMPSTER, 0x011e, 0x004001e1, 0x00004000, 0x00000801, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + weapon(0x0100, MODEL_CHRBRIEFCASE, 0xffff, 0x40008000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CAMSPY, 0x00ffffff, 0x00000000) + tag(0x24, -1) + stdobject(0x0100, MODEL_BARREL, 0x010b, 0x000001e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x010c, 0x000001e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x010e, 0x000001e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x010f, 0x000001e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0110, 0x000001e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0111, 0x000001e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0112, 0x000001e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0113, 0x000001e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0114, 0x000001e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0115, 0x000001e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0116, 0x000001e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0117, 0x000001e8, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0119, 0x000000e8, 0x00080001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x011d, 0x000000e8, 0x00080001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x011c, 0x000000e8, 0x00080001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x011b, 0x000000e8, 0x00080001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0118, 0x000000e8, 0x00080001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x011a, 0x000000e8, 0x00080001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DUMPSTER, 0x0106, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DUMPSTER, 0x0107, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DUMPSTER, 0x0108, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DUMPSTER, 0x0109, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DUMPSTER, 0x010a, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + door(0x0100, MODEL_DD_GRATE, 0x00f8, 0x10000400, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x00010000, 0x00003333, 0x00014000, 0x00001333, 0x08000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_GRATE, 0x00f9, 0x10000400, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x00010000, 0x00003333, 0x00014000, 0x00001333, 0x08000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_GRATE, 0x00fa, 0x10000400, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000fd70, 0x00010000, 0x00003333, 0x00014000, 0x00001333, 0x08000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x22, 2) + tag(0x23, 2) + weapon(0x0100, MODEL_CHRFALCON2, 0x011f, 0x00420001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SCOPE, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRFALCON2, 0x011f, 0x00420001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SCOPE, 0x00ffffff, 0x00000000) + link_collectibles(-1, -2) + tag(0x1c, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x0121, 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(0x20, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x0122, 0x00000001, 0x000000c0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0123, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0124, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0125, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + pad_effect(PADEFFECT_SPLASH, 0x009b) + pad_effect(PADEFFECT_SPLASH, 0x009c) + pad_effect(PADEFFECT_SPLASH, 0x009d) + pad_effect(PADEFFECT_SPLASH, 0x009e) + endprops +}; + +u8 intro[] = { + ammo(AMMOTYPE_PISTOL, 50) + outfit(OUTFIT_TRENCH) + spawn(0x0063) + endintro +}; + +s32 path00[] = { + 0x00d3, + 0x00d4, + 0x00d9, + 0x00d6, + 0x00d7, + 0x0036, + 0x00d7, + 0x00d6, + 0x00d9, + 0x00d4, + 0x00d3, + -1, +}; + +s32 path01[] = { + 0x00da, + 0x00d7, + 0x00d7, + 0x00d6, + 0x00d9, + 0x00d5, + 0x00d4, + 0x00db, + 0x00de, + 0x00d3, + -1, +}; + +s32 path02[] = { + 0x00a4, + 0x00a4, + 0x00a4, + 0x00a4, + 0x00a4, + -1, +}; + +s32 path03[] = { + 0x00e3, + -1, +}; + +s32 path04[] = { + 0x00a3, + 0x00a3, + 0x00a3, + 0x00a3, + 0x00a3, + -1, +}; + +s32 path05[] = { + 0x00e8, + -1, +}; + +s32 path06[] = { + 0x00ea, + 0x00ea, + 0x00ea, + 0x00e8, + -1, +}; + +s32 path07[] = { + 0x0061, + 0x0060, + 0x0065, + 0x005f, + 0x005e, + 0x005d, + 0x005e, + 0x005f, + 0x0065, + 0x0060, + -1, +}; + +s32 path08[] = { + 0x0038, + 0x002e, + 0x000c, + 0x002e, + 0x0038, + 0x0037, + -1, +}; + +s32 path09[] = { + 0x0033, + 0x0035, + 0x0034, + 0x002d, + 0x0028, + 0x002a, + 0x001d, + 0x002a, + 0x0028, + 0x002d, + 0x0034, + 0x0035, + -1, +}; + +s32 path10[] = { + 0x0047, + 0x0046, + 0x0047, + -1, +}; + +s32 path11[] = { + 0x0034, + 0x0043, + 0x0041, + 0x0051, + 0x0041, + 0x0043, + 0x0034, + -1, +}; + +s32 path12[] = { + 0x0061, + 0x0060, + 0x0066, + 0x0062, + 0x0063, + 0x0064, + 0x0063, + 0x0062, + 0x0066, + 0x0060, + -1, +}; + +s32 path13[] = { + 0x00da, + 0x00d7, + 0x00d7, + 0x00d6, + 0x00d9, + 0x00d5, + 0x00d4, + 0x00db, + 0x00de, + 0x00d3, + -1, +}; + +#define chicago_car_do_animation(object, animation) \ + show_object(object) \ + set_object_flag_bank1(object, OBJECTFLAG1_04000000) \ + set_object_flag_bank2(object, OBJECTFLAG2_00000010) \ + object_do_animation(animation, object, 0x04ff, 0xff) + + + +#define chicago_wait_for_camera \ + beginloop(0x05) \ + if_camera_animating(/*goto*/ 0x03) \ + goto_next(0x04) \ + label(0x03) \ + if_controller_button_pressed(/*goto*/ 0x04) \ + goto_first(0x05) \ + label(0x04) + + + +u8 func0401_3ae8[] = { + set_stage_flag(STAGEFLAG_TRIGGER_INTRO) + if_controller_button_pressed(/*goto*/ 0x00) + camera_movement(0x00cf) + set_music_track(MUSIC_CHICAGO_INTRO) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + + chicago_car_do_animation(OBJ_CAR1, 0x00d6) + chicago_car_do_animation(OBJ_CAR2, 0x00d7) + chicago_car_do_animation(OBJ_CAR3, 0x00d8) + chicago_car_do_animation(OBJ_CAR4, 0x00d5) + + set_chr_flag_bank3(CHR_CIA1, CHRFLAG3_HIDDEN) + fade_to_color(0x000000ff, 0) + fade_to_color(0x00000000, 90) + + chicago_wait_for_camera + + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + hide_object(OBJ_CAR1) + hide_object(OBJ_CAR2) + hide_object(OBJ_CAR3) + hide_object(OBJ_CAR4) + unset_chr_flag_bank3(CHR_CIA1, CHRFLAG3_HIDDEN) + label(0x00) + return + endfunction +}; + +u8 func0402_3bb4[] = { + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + if_controller_button_pressed(/*goto*/ 0x00) + camera_movement(0x00d0) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + + chicago_car_do_animation(OBJ_CAR1, 0x00dc) + chicago_car_do_animation(OBJ_CAR2, 0x00dd) + chicago_car_do_animation(OBJ_CAR4, 0x00d9) + chicago_car_do_animation(OBJ_CAR5, 0x00db) + + set_chr_flag_bank3(CHR_CIA1, CHRFLAG3_HIDDEN) + + chicago_wait_for_camera + + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + hide_object(OBJ_CAR1) + hide_object(OBJ_CAR2) + hide_object(OBJ_CAR4) + hide_object(OBJ_CAR5) + unset_chr_flag_bank3(CHR_CIA1, CHRFLAG3_HIDDEN) + label(0x00) + return + endfunction +}; + +u8 func0403_3c74[] = { + if_controller_button_pressed(/*goto*/ 0x00) + camera_movement(0x00d1) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + show_object(OBJ_CAR4) + set_object_flag_bank1(OBJ_CAR4, OBJECTFLAG1_04000000) + set_object_flag_bank2(OBJ_CAR4, OBJECTFLAG2_00000010) + object_do_animation(0x00de, OBJ_CAR4, 0x04ff, 0xff) + set_chr_flag_bank3(CHR_CIA1, CHRFLAG3_HIDDEN) + + set_cutscene_weapon(CHR_JOANNA, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_JOANNA, WEAPON_FALCON2_SCOPE, WEAPON_NONE) + + chicago_wait_for_camera + + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + hide_object(OBJ_CAR4) + unset_chr_flag_bank3(CHR_CIA1, CHRFLAG3_HIDDEN) + label(0x00) + return + endfunction +}; + +u8 func0404_3ce0[] = { + show_object(OBJ_WIREFENCE) + set_object_flag_bank1(OBJ_WIREFENCE, OBJECTFLAG1_04000000) + set_object_flag_bank2(OBJ_WIREFENCE, OBJECTFLAG2_00000010) + object_do_animation(0x0470, OBJ_WIREFENCE, 0x01ff, 0xff) + + if_controller_button_pressed(/*goto*/ 0x00) + camera_movement(0x00e0) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x00e1, -1, -1, 0x0600, CHR_JOANNA, 4) + set_chr_flag_bank3(CHR_CIA1, CHRFLAG3_HIDDEN) + + chicago_wait_for_camera + + unset_chr_flag_bank3(CHR_CIA1, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + label(0x00) + return + endfunction +}; + +u8 func0405_3d50[] = { + camera_movement(0x00d2) + cmd0175(60) + if_controller_button_pressed(/*goto*/ 0x00) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x00df, -1, -1, 0x0600, CHR_JOANNA, 4) + set_chr_flag_bank3(CHR_CIA1, CHRFLAG3_HIDDEN) + + restart_timer + + beginloop(0x2d) + if_controller_button_pressed(/*goto*/ 0x2f) + if_timer_gt(480, /*goto*/ 0x04) + endloop(0x2d) + + label(0x04) + set_cutscene_weapon(CHR_JOANNA, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_JOANNA, WEAPON_NONE, WEAPON_NONE) + + beginloop(0x2f) + if_controller_button_pressed(/*goto*/ 0x04) + if_timer_gt(910, /*goto*/ 0x04) + endloop(0x2f) + + label(0x04) + chicago_wait_for_camera + + label(0x00) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + mute_channel(CHANNEL_7) + unset_chr_flag_bank3(CHR_CIA1, CHRFLAG3_HIDDEN) + + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x00df, -2, -1, 0x0600, CHR_JOANNA, 2) + + restart_default_music + reset_ambience + set_stage_flag(STAGEFLAG_INTRO_FINISHED) + enter_firstperson + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 unregistered_function1[] = { + set_return_function(CHR_SELF, GFUNC_END_CINEMA) + set_function(CHR_SELF, 0x0401) + endfunction +}; + +u8 unregistered_function2[] = { + set_return_function(CHR_SELF, GFUNC_END_CINEMA) + set_function(CHR_SELF, 0x0402) + endfunction +}; + +u8 unregistered_function3[] = { + set_return_function(CHR_SELF, GFUNC_END_CINEMA) + set_function(CHR_SELF, 0x0403) + endfunction +}; + +u8 unregistered_function4[] = { + set_return_function(CHR_SELF, GFUNC_END_CINEMA) + set_function(CHR_SELF, 0x0404) + endfunction +}; + +u8 unregistered_function5[] = { + set_function(CHR_SELF, 0x0405) + endfunction +}; + +u8 func040a_intro[] = { + set_return_function(CHR_SELF, 0x0406) + set_function(CHR_SELF, 0x0401) + endfunction +}; + +u8 func0406_3e54[] = { + set_return_function(CHR_SELF, 0x0407) + set_function(CHR_SELF, 0x0402) + endfunction +}; + +u8 func0407_3e60[] = { + set_return_function(CHR_SELF, 0x0408) + set_function(CHR_SELF, 0x0403) + endfunction +}; + +u8 func0408_3e6c[] = { + set_return_function(CHR_SELF, 0x0409) + set_function(CHR_SELF, 0x0404) + endfunction +}; + +u8 func0409_3e78[] = { + set_function(CHR_SELF, 0x0405) + endfunction +}; + +u8 func100f_check_mine[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x0a) + + // SA and PA + yield + beginloop(0x08) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_has_object(CHR_P1P2, OBJ_BRIEFCASE1, /*goto*/ 0x03) + reloop(0x08) + + label(0x03) + set_target_chr(CHR_P1P2) + + beginloop(0x11) + dprint 'M','A','I','N','\n',0, + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0x29) + if_chr_dying(TARGET_CHR, /*goto*/ 0x29) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0x29) + if_ammo_quantity_lt(TARGET_CHR, AMMOTYPE_REMOTE_MINE, 1, /*goto*/ 0x03) + endloop(0x11) + + label(0x29) + label(0x54) + yield + dprint 'D','E','A','D','\n',0, + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0x28) + if_chr_dying(TARGET_CHR, /*goto*/ 0x28) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0x28) + yield + dprint 'N','O','T','D','E','A','D','\n',0, + if_ammo_quantity_lt(CHR_JOANNA, AMMOTYPE_REMOTE_MINE, 1, /*goto*/ 0x29) + reloop(0x08) + + label(0x29) + if_ammo_quantity_lt(CHR_VELVET, AMMOTYPE_REMOTE_MINE, 1, /*goto*/ 0x29) + endloop(0x08) + + label(0x29) + dprint 'N','O','A','M','M','O','\n',0, + label(0x28) + dprint 'S','T','I','L','L','D','E','A','D','\n',0, + goto_first(0x54) + + label(0x03) + dprint 'F','A','I','L','\n',0, + yield + yield + yield + yield + yield + if_weapon_thrown(WEAPON_REMOTEMINE, /*goto*/ 0x04) + goto_first(0x11) + + label(0x04) + restart_timer + + beginloop(0x05) + if_weapon_thrown_on_object(WEAPON_REMOTEMINE, OBJ_FIREDOORTOP, /*goto*/ 0x06) + if_weapon_thrown_on_object(WEAPON_REMOTEMINE, OBJ_FIREDOORBOTTOM, /*goto*/ 0x08) + if_timer_gt(120, /*goto*/ 0x07) + endloop(0x05) + + label(0x08) + unset_eeprom_flag(EEPROMFLAG_G5_MINE) + goto_next(0x03) + label(0x06) + set_eeprom_flag(EEPROMFLAG_G5_MINE) + + label(0x03) + set_stage_flag(STAGEFLAG_MINE_PLACED) + message(CHR_P1P2, 0x320f) // "Mine placed correctly." + + // Check that the player hasn't detonated the mine + beginloop(0x2d) + if_weapon_thrown_on_object(WEAPON_REMOTEMINE, OBJ_FIREDOORTOP, /*goto*/ 0x03) + if_weapon_thrown_on_object(WEAPON_REMOTEMINE, OBJ_FIREDOORBOTTOM, /*goto*/ 0x03) + goto_next(0x04) + label(0x03) + endloop(0x2d) + + label(0x04) + set_stage_flag(STAGEFLAG_MINE_WASTED) + message(CHR_P1P2, 0x3248) // "Remote Mine has been wasted." + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x07) + set_stage_flag(STAGEFLAG_MINE_WASTED) + message(CHR_P1P2, 0x3210) // "Mine placed incorrectly." + + label(0x0a) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1026_uplink[] = { + beginloop(0x10) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_TAXI, /*goto*/ 0x03) + reloop(0x10) + + label(0x03) + if_stage_flag_eq(STAGEFLAG_TAXI_REPROGRAMMED, FALSE, /*goto*/ 0x04) + message(CHR_P1P2, 0x3211) // "Virus already downloaded into NavComp." + reloop(0x10) + + label(0x04) + if_chr_weapon_equipped(CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ 0x03) + message(CHR_P1P2, 0x3212) // "Hovcab is unresponsive - need Reprogrammer." + reloop(0x10) + + // Uplinking + label(0x03) + message(CHR_P1P2, 0x3213) // "Accessing hovercab navigation systems." + assign_sound(0x0456, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_TAXI, TRUE) + restart_timer + + beginloop(0x05) + if_timer_gt(300, /*goto*/ 0x04) + if_chr_distance_to_pad_gt(CHR_P1P2, 350, 0x00a3, /*goto*/ 0x06) + endloop(0x05) + + label(0x04) + message(CHR_P1P2, 0x3214) // "Virus downloaded successfully." + yield + message(CHR_P1P2, 0x3215) // "Hovercab navigation systems reprogrammed." + mute_channel(CHANNEL_7) + assign_sound(0x01c1, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_TAXI, TRUE) + yield + set_stage_flag(STAGEFLAG_TAXI_REPROGRAMMED) + set_function(CHR_SELF, GFUNC_IDLE) + + // Moved away while uplinking + label(0x06) + message(CHR_P1P2, 0x3216) // "Connection to hovercab broken." + mute_channel(CHANNEL_7) + yield + yield + yield + assign_sound(0x0457, CHANNEL_4) + play_sound_from_object(CHANNEL_4, OBJ_TAXI, 0x012c, 0x0190) + restart_timer + + beginloop(0x1d) + if_timer_gt(120, /*goto*/ 0x04) + endloop(0x1d) + + label(0x04) + mute_channel(CHANNEL_4) + endloop(0x10) + + endfunction +}; + +u8 func040d_limo[] = { + begin_hovercar_path(0x02) + set_vehicle_speed(SPEED_WALK, 0) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x03) + + // SA and PA + set_chr_health(CHR_SELF, 34464) + goto_next(0x04) + + // A + label(0x03) + set_chr_health(CHR_SELF, 65456) + + // All difficulties + label(0x04) + + // Wait for flag set, provided limo not destroyed + beginloop(0x05) + if_object_in_good_condition(OBJ_LIMO, /*goto*/ 0x03) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x03) + if_stage_flag_eq(STAGEFLAG_LIMO_READY_TO_LEAVE, TRUE, /*goto*/ 0x04) + endloop(0x05) + + label(0x04) + + // Wait until not in room + beginloop(0x2d) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0002, /*goto*/ 0x03) + if_chr_in_room(CHR_P1P2, 0x00, 0x0010, /*goto*/ 0x03) + if_chr_in_room(CHR_P1P2, 0x00, 0x0012, /*goto*/ 0x03) + goto_next(0x04) + label(0x03) + endloop(0x2d) + + label(0x04) + set_object_flag_bank1(OBJ_LIMO, OBJECTFLAG1_04000000) + set_object_flag_bank2(OBJ_LIMO, OBJECTFLAG2_00000010) + object_do_animation(0x02d6, OBJ_LIMO, 0x04ff, 0xff) + + assign_sound(0x01b4, CHANNEL_1) + play_sound_from_object(CHANNEL_1, OBJ_LIMO, 0x0960, 0x0c80) + if_stage_flag_eq(STAGEFLAG_TRACERBUG_PLACED, TRUE, /*goto*/ 0x03) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x03) + set_stage_flag(STAGEFLAG_LIMO_ESCAPED) + message(CHR_JOANNA, 0x321c) // "DataDyne limo has escaped." + label(0x03) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040c_taxi[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x03) + + // SA and PA + set_chr_health(CHR_SELF, 34464) + goto_next(0x04) + + // A + label(0x03) + set_chr_health(CHR_SELF, 65456) + begin_hovercar_path(0x04) + set_vehicle_speed(SPEED_WALK, 0) + + // All difficulties + label(0x04) + + beginloop(0x05) + if_stage_flag_eq(STAGEFLAG_TRIGGER_TAXI_LEAVE, TRUE, /*goto*/ 0x04) + label(0x03) + endloop(0x05) + + // Check taxi healthy + label(0x04) + if_object_in_good_condition(OBJ_TAXI, /*goto*/ 0x03) + set_function(CHR_SELF, GFUNC_IDLE) + + // Take off + label(0x03) + assign_sound(0x8000, CHANNEL_0) + play_sound_from_object(CHANNEL_0, OBJ_TAXI, 0x0960, 0x0c80) + object_do_animation(0x0168, OBJ_TAXI, 0x04ff, 0xff) + set_object_flag_bank1(OBJ_TAXI, OBJECTFLAG1_04000000) + + // Wait for flag + beginloop(0x06) + if_stage_flag_eq(STAGEFLAG_TAXI_ALMOST_READY_TO_CRASH, TRUE, /*goto*/ 0x04) + endloop(0x06) + + // Check taxi healthy + label(0x04) + if_object_in_good_condition(OBJ_TAXI, /*goto*/ 0x03) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x03) + set_stage_flag(STAGEFLAG_TAXI_READY_TO_CRASH) + + // Wait for another flag + beginloop(0x07) + if_stage_flag_eq(STAGEFLAG_ROBOT_NEAR_CORNER, TRUE, /*goto*/ 0x04) + endloop(0x07) + + label(0x04) + label(0x38) + dprint 'G','O',' ','F','O','R',' ','C','R','A','S','H','\n',0, + set_stage_flag(STAGEFLAG_TRIGGER_CRASH) + yield + mute_channel(CHANNEL_0) + object_do_animation(0x0169, OBJ_TAXI, 0x04ff, 0xff) + label(0x0a) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +#define tracerbug_logic(chr, chr2) \ + set_follow_chr(chr) \ + if_difficulty_lt(DIFF_PA, /*goto*/ 0x54) \ + goto_next(0x04) \ + \ + /* A or SA */ \ + label(0x54) \ + set_function(CHR_SELF, GFUNC_IDLE) \ + \ + /* PA */ \ + label(0x04) \ + yield \ + \ + beginloop(0x11) \ + dprint 'B','U','G',' ','C','1','\n',0, \ + set_target_chr(chr2) \ + if_chr_death_animation_finished(chr, /*goto*/ 0x2f) \ + if_chr_dying(chr, /*goto*/ 0x2f) \ + if_chr_unloaded(chr, /*goto*/ 0x2f) \ + if_ammo_quantity_lt(chr, AMMOTYPE_BUG, 1, /*goto*/ 0x03) \ + label(0x04) \ + endloop(0x11) \ + \ + /* Dead - not sure why it checks this a second time */ \ + beginloop(0x2f) \ + dprint 'B','U','G',' ','D','O','\n',0, \ + set_target_chr(chr2) \ + if_chr_death_animation_finished(chr, /*goto*/ 0x30) \ + if_chr_dying(chr, /*goto*/ 0x30) \ + if_chr_unloaded(chr, /*goto*/ 0x30) \ + label(0x31) \ + yield \ + yield \ + yield \ + yield \ + yield \ + goto_first(0x11) \ + \ + label(0x30) \ + endloop(0x2f) \ + \ + /* Alive but has no bug */ \ + label(0x03) \ + dprint 'B','U','G',' ','C','2','\n',0, \ + yield \ + if_weapon_thrown(WEAPON_TRACERBUG, /*goto*/ 0x04) \ + goto_first(0x03) \ + \ + /* Check limo healthy */ \ + label(0x04) \ + if_object_in_good_condition(OBJ_LIMO, /*goto*/ 0x04) \ + set_function(CHR_SELF, GFUNC_IDLE) \ + \ + label(0x04) \ + restart_timer \ + \ + beginloop(0x05) \ + dprint 'B','U','G',' ','C','3','\n',0, \ + if_weapon_thrown_on_object(WEAPON_TRACERBUG, OBJ_LIMO, /*goto*/ 0x06) \ + if_timer_gt(120, /*goto*/ 0x07) \ + endloop(0x05) \ + \ + label(0x06) \ + set_stage_flag(STAGEFLAG_TRACERBUG_PLACED) \ + unset_stage_flag(STAGEFLAG_TRACERBUG_WASTED) \ + message(chr, 0x3217) /* "Tracer Bug placed correctly." */ \ + restart_timer \ + \ + beginloop(0x08) \ + dprint 'B','U','G',' ','C','4','\n',0, \ + if_timer_gt(300, /*goto*/ 0x04) \ + goto_first(0x08) \ + \ + label(0x04) \ + set_stage_flag(STAGEFLAG_TRACERBUG_SAFE) \ + set_function(CHR_SELF, GFUNC_IDLE) \ + \ + /* Bug wasted */ \ + label(0x07) \ + dprint 'W','R','O','N','G','1','\n',0, \ + if_stage_flag_eq(STAGEFLAG_ONE_BUG_REMAINING, TRUE, /*goto*/ 0x03) \ + dprint 'W','R','O','N','G','2','\n',0, \ + set_stage_flag(STAGEFLAG_ONE_BUG_REMAINING) \ + set_function(CHR_SELF, GFUNC_IDLE) \ + \ + label(0x03) \ + dprint 'W','R','O','N','G','3','\n',0, \ + set_stage_flag(STAGEFLAG_TRACERBUG_WASTED) \ + message(chr, 0x3218) /* "Tracer Bug placed incorrectly." */ \ + set_function(CHR_SELF, GFUNC_IDLE) + + + +u8 func1004_tracerbug_joanna[] = { + tracerbug_logic(CHR_JOANNA, CHR_JOANNA) + endfunction +}; + +u8 func1011_trackerbug_velvet[] = { + yield + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x03) + goto_next(0x04) + + label(0x03) + set_stage_flag(STAGEFLAG_ONE_BUG_REMAINING) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x04) + tracerbug_logic(CHR_VELVET, FOLLOW_CHR) + endfunction +}; + +u8 func1005_check_things_destroyed[] = { + beginloop(0x10) + // Check limo + if_stage_flag_eq(STAGEFLAG_LIMO_DESTROYED, TRUE, /*goto*/ 0x03) + if_object_in_good_condition(OBJ_LIMO, /*goto*/ 0x03) + set_stage_flag(STAGEFLAG_LIMO_DESTROYED) + mute_channel(CHANNEL_1) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x03) + message(CHR_JOANNA, 0x3219) // "Mission critical vehicle destroyed." + + // Check taxi + label(0x03) + if_stage_flag_eq(STAGEFLAG_DIVERSION_CREATED, TRUE, /*goto*/ 0x03) + if_stage_flag_eq(STAGEFLAG_TAXI_DESTROYED, TRUE, /*goto*/ 0x03) + if_object_in_good_condition(OBJ_TAXI, /*goto*/ 0x03) + mute_channel(CHANNEL_0) + set_stage_flag(STAGEFLAG_TAXI_DESTROYED) + message(CHR_JOANNA, 0x3219) // "Mission critical vehicle destroyed." + + // Check robot + label(0x03) + if_stage_flag_eq(STAGEFLAG_DIVERSION_CREATED, TRUE, /*goto*/ 0x03) + if_stage_flag_eq(STAGEFLAG_ROBOT_DESTROYED, TRUE, /*goto*/ 0x03) + if_chr_dying(CHR_ROBOT, /*goto*/ 0x04) + goto_next(0x03) + + label(0x04) + restart_timer + + beginloop(0x05) + if_timer_gt(120, /*goto*/ 0x04) + endloop(0x05) + + label(0x04) + set_stage_flag(STAGEFLAG_ROBOT_DESTROYED) + message(CHR_JOANNA, 0x3219) // "Mission critical vehicle destroyed." + label(0x03) + endloop(0x10) + + endfunction +}; + +u8 func1006_check_for_end[] = { + beginloop(0x05) + consider_coop_for_p1p2_chr(CHR_SELF) + if_objective_complete(0, /*goto*/ 0x03) + reloop(0x05) + + label(0x03) + if_objective_complete(3, /*goto*/ 0x03) + reloop(0x05) + + label(0x03) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x0a) + if_objective_complete(2, /*goto*/ 0x03) + reloop(0x05) + + label(0x03) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x0a) + if_objective_complete(1, /*goto*/ 0x0a) + reloop(0x05) + + label(0x0a) + dprint 'P','A','D',' ','C','H','E','C','K','\n',0, + if_chr_distance_to_pad_lt(CHR_P1P2, 350, 0x00a7, /*goto*/ 0x04) + endloop(0x05) + + label(0x04) + set_stage_flag(STAGEFLAG_IN_ELEVATOR) + dprint 'I','N',' ','T','H','E',' ','E','L','E','V','A','T','O','R','\n',0, + yield + yield + set_invincible(CHR_JOANNA) + revoke_control(CHR_JOANNA, 4) + + // But there is no countdown timer... + hide_countdown_timer + stop_countdown_timer + + if_all_objectives_complete(/*goto*/ 0x05) + + // Objectives failed + message(CHR_P1P2, 0x321a) // "MISSION FAILED" + label(0x03) + restart_timer + + beginloop(0x13) + if_timer_gt(280, /*goto*/ 0x12) + endloop(0x13) + + label(0x12) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + + // Objectives complete + label(0x05) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x03) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x03) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x03) + goto_next(0x04) + + label(0x03) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x03) + if_chr_dying(CHR_VELVET, /*goto*/ 0x03) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x03) + goto_next(0x04) + + label(0x03) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x04) + set_function(CHR_SELF, FUNC_OUTRO) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040d_limo_timing[] = { + // Wait for any of the following: + // - Taxi reprogrammed + // - Tracer bug placed and robot on drain street + // - 2 minutes elapsed and robot on drain street (3 mins on Agent) + restart_timer + + beginloop(0x05) + if_stage_flag_eq(STAGEFLAG_TAXI_REPROGRAMMED, TRUE, /*goto*/ 0x04) + if_stage_flag_eq(STAGEFLAG_ROBOT_ON_DRAIN_STREET, TRUE, /*goto*/ 0x03) + reloop(0x05) + + label(0x03) + if_stage_flag_eq(STAGEFLAG_TRACERBUG_PLACED, TRUE, /*goto*/ 0x04) + if_difficulty_gt(DIFF_SA, /*goto*/ 0x07) + if_difficulty_gt(DIFF_A, /*goto*/ 0x06) + + // A - 3 minute timer + if_timer_gt(10800, /*goto*/ 0x04) + reloop(0x05) + + // SA - 2 minute timer + label(0x06) + if_timer_gt(7200, /*goto*/ 0x04) + reloop(0x05) + + // PA - 2 minute timer + label(0x07) + if_timer_gt(7200, /*goto*/ 0x04) + endloop(0x05) + + // Ready to leave + label(0x04) + set_stage_flag(STAGEFLAG_LIMO_READY_TO_LEAVE) + dprint 'L','I','M','O',' ','R','E','A','D','Y',' ','T','O',' ','G','O','\n',0, + restart_timer + + // Wait 15 seconds + beginloop(0x0a) + if_timer_gt(900, /*goto*/ 0x04) + endloop(0x0a) + + label(0x04) + set_stage_flag(STAGEFLAG_LIMO_READY_15SEC_AGO) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040c_taxi_timing[] = { + // Wait for both conditions + beginloop(0x07) + if_stage_flag_eq(STAGEFLAG_ROBOT_ON_DRAIN_STREET, TRUE, /*goto*/ 0x03) + reloop(0x07) + + label(0x03) + if_stage_flag_eq(STAGEFLAG_TAXI_REPROGRAMMED, TRUE, /*goto*/ 0x03) + endloop(0x07) + + // Wait 3.3 seconds + label(0x03) + restart_timer + + beginloop(0x05) + if_timer_gt(200, /*goto*/ 0x04) + endloop(0x05) + + label(0x04) + set_stage_flag(STAGEFLAG_TRIGGER_TAXI_LEAVE) + restart_timer + + // Wait 10 seconds + beginloop(0x06) + if_timer_gt(600, /*goto*/ 0x04) + endloop(0x06) + + label(0x04) + set_stage_flag(STAGEFLAG_TAXI_ALMOST_READY_TO_CRASH) + unset_object_flag_bank1(OBJ_TAXI, OBJECTFLAG1_04000000) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0412_cia[] = { + set_return_function(CHR_SELF, FUNC_CIA) + set_onshot_function(FUNC_CIA) + if_chr_dying(CHR_SELF, /*goto*/ 0x04) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x04) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x04) + goto_next(0x03) + + label(0x04) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x03) + if_chr_idle(/*goto*/ 0x43) + if_num_times_shot_lt(1, /*goto*/ 0x10) + + // Has been shot + beginloop(0x0d) + if_chr_stopped(/*goto*/ 0x04) + endloop(0x0d) + + label(0x04) + goto_next(0x0c) + + // Unreachable + restart_timer + + // Chr is idle + beginloop(0x43) + if_saw_death(0x00, /*goto*/ 0x1d) + if_shot_near_chr(0x00, /*goto*/ 0x1e) + dprint 'D','U','R','I','N','G','T','A','L','K','\n',0, + if_timer_gt(180, /*goto*/ 0x04) + endloop(0x43) + + // Idle + 3 seconds + label(0x04) + if_self_flag_bankx_eq(CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x54) + dprint 'N','O','T',' ','A',' ','P','A','T','R','O','L','L','E','R','\n',0, + stop_chr + goto_next(0x10) + + // Patroller + label(0x54) + dprint 'P','A','T',' ','R','E','T','\n',0, + start_path + + // Not shot, not a patroller, or patroller who has started his path + label(0x10) + yield + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_self_flag_bankx_eq(CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x37) + call_rng + if_rand_gt(128, /*goto*/ 0x37) + label(0x2d) + restart_timer + label(0x08) + stop_chr + if_self_flag_bankx_eq(CHRFLAG1_DONE_SEARCH_ANIM, TRUE, BANK_1, /*goto*/ 0x03) + call_rng + if_rand_gt(128, /*goto*/ 0x03) + call_rng + if_rand_lt(64, /*goto*/ 0x50) + if_rand_lt(128, /*goto*/ 0x51) + if_rand_lt(196, /*goto*/ 0x52) + set_self_flag_bankx(CHRFLAG1_DONE_SEARCH_ANIM, BANK_1) + animation(ANIM_SMOKE_CIGARETTE, 0, -1, 0x100a, CHR_SELF, 2) + goto_next(0x36) + + label(0x50) + animation(ANIM_SCRATCH_HEAD, 0, -1, 0x100a, CHR_SELF, 2) + goto_next(0x36) + + label(0x51) + animation(ANIM_YAWN, 0, -1, 0x100a, CHR_SELF, 2) + goto_next(0x36) + + label(0x52) + animation(ANIM_GRAB_CROTCH, 0, -1, 0x100a, CHR_SELF, 2) + goto_next(0x36) + + label(0x53) + animation(ANIM_TWO_GUN_HOLD, 0, 100, 0x100a, CHR_SELF, 2) + goto_next(0x36) + + label(0x03) + unset_self_flag_bankx(CHRFLAG1_DONE_SEARCH_ANIM, BANK_1) + cmd0049(0x003e, /*goto*/ 0x04) + set_target_pad(0x00ba) + goto_next(0x03) + + label(0x04) + call_rng + if_rand_lt(64, /*goto*/ 0x50) + if_rand_lt(128, /*goto*/ 0x51) + if_rand_lt(196, /*goto*/ 0x52) + try_set_target_pad_to_something(0x08, /*goto*/ 0x03) + label(0x50) + try_set_target_pad_to_something(0x02, /*goto*/ 0x03) + label(0x51) + try_set_target_pad_to_something(0x04, /*goto*/ 0x03) + label(0x52) + try_set_target_pad_to_something(0x08, /*goto*/ 0x03) + goto_next(0x36) + + label(0x03) + go_to_target_pad(SPEED_WALK) + + beginloop(0x36) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_saw_death(0x00, /*goto*/ 0x1d) + if_shot_near_chr(0x00, /*goto*/ 0x1e) + if_target_chr_in_sight(/*goto*/ 0x04) + if_chr_stopped(/*goto*/ 0x35) + endloop(0x36) + + label(0x35) + goto_first(0x10) + + label(0x37) + if_saw_death(0x00, /*goto*/ 0x1d) + if_shot_near_chr(0x00, /*goto*/ 0x1e) + if_target_chr_in_sight(/*goto*/ 0x04) + goto_first(0x10) + + label(0x04) + restart_timer + label(0x05) + yield + if_saw_death(0x00, /*goto*/ 0x1d) + if_shot_near_chr(0x00, /*goto*/ 0x1e) + if_chr_weapon_equipped(CHR_P1P2, WEAPON_UNARMED, /*goto*/ 0x03) + goto_next(0x04) + + label(0x03) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x03) + if_chr_distance_gt(450, /*goto*/ 0x03) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + set_return_function(CHR_SELF, FUNC_CIA) + set_function(CHR_SELF, GFUNC_CIVILIAN_SAY_COMMENT) + + label(0x03) + if_timer_lt(600, /*goto*/ 0x03) + unset_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + label(0x03) + dprint 'L','I','M','O',' ','R','E','A','D','Y',' ','T','O',' ','G','O','\n',0, + goto_first(0x10) + + label(0x1e) + restart_timer + try_face_entity(0x0200, 0x0000, /*goto*/ 0x09) + + beginloop(0x09) + if_angle_to_target_chr_lt(10, /*goto*/ 0x04) + if_timer_gt(40, /*goto*/ 0x04) + endloop(0x09) + + // Saw a death + label(0x1d) + restart_timer + animation(ANIM_LOOK_AROUND_FRANTIC, 0, 193, 0x1010, CHR_SELF, 2) + + // Shot near chr, or follow through from above + beginloop(0x1e) + if_timer_gt(90, /*goto*/ 0x0c) + endloop(0x1e) + + label(0x04) + set_group_alertness(100) + + beginloop(0x38) + if_any_chr_doing_action(ACTION_COWER, /*goto*/ 0x04) + goto_next(0x03) + + // A civilian is cowering + label(0x04) + restart_timer + + beginloop(0x3a) + if_timer_gt(120, /*goto*/ 0x04) + endloop(0x3a) + + label(0x04) + set_self_flag_bankx(CHRFLAG0_00000080, BANK_0) + set_group(0x03) + endloop(0x38) + + label(0x03) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_action(ACTION_COWER, FALSE) + say_quip(CHR_JOANNA, 0x18, 0xff, 0x00, 0xff, 0x81, 0x00, 0x00) + animation(ANIM_SURRENDER_002E, 0, 193, 0x1010, CHR_SELF, 2) + + beginloop(0x0a) + if_timer_gt(120, /*goto*/ 0x0c) + endloop(0x0a) + + // Alerted + label(0x0c) + set_action(ACTION_SCAN, FALSE) + if_self_flag_bankx_eq(CHRFLAG0_00000080, FALSE, BANK_0, /*goto*/ 0x03) + set_group(0x04) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + label(0x03) + set_chr_alliance(CHR_SELF, ALLIANCE_ALLY) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + try_target_chr_in_same_group(/*goto*/ 0x04) + goto_next(0x0b) + + label(0x03) + goto_first(0x05) + + label(0x04) + set_chr_alliance(CHR_SELF, 0x80) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + try_run_to_chr(FOLLOW_CHR, /*goto*/ 0x06) + + beginloop(0x06) + if_self_distance_to_chr_lt(2520, CHR_HIDDENGUY, /*goto*/ 0x03) + reloop(0x06) + + label(0x03) + if_detected_chr(FOLLOW_CHR, /*goto*/ 0x04) + endloop(0x06) + + label(0x04) + set_group_alertness(100) + say_quip(CHR_JOANNA, 0x19, 0xff, 0x00, 0xff, 0x81, 0x00, 0x00) + label(0x0b) + set_chr_alliance(CHR_SELF, 0x80) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x2d) + if_self_flag_bankx_eq(CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x2f) + run_to_pad(0x00c8) + goto_next(0x07) + + label(0x2d) + run_to_pad(0x005a) + goto_next(0x07) + + label(0x2f) + run_to_pad(0x0026) + label(0x07) + yield + if_chr_stopped(/*goto*/ 0x04) + label(0x03) + goto_first(0x07) + + label(0x04) + + label(0x0e) + animation(ANIM_COWER_0229, -1, -1, 0x100a, CHR_SELF, 2) + + beginloop(0x0f) + if_chr_stopped(/*goto*/ 0x03) + endloop(0x0f) + + label(0x03) + goto_first(0x0e) + + endfunction +}; + +u8 func0413_bugspotter[] = { +#define LABEL_RUN_AWAY 0x0d + + set_alertness(255) + set_onshot_function(FUNC_BUGSPOTTER) + if_chr_dying(CHR_SELF, /*goto*/ 0x04) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x04) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x04) + goto_next(0x03) + + label(0x04) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x03) + + // Wait until player in sight (mainly) + beginloop(0x10) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x04) + if_stage_flag_eq(STAGEFLAG_LIMO_READY_TO_LEAVE, TRUE, /*goto*/ LABEL_RUN_AWAY) + if_stage_flag_eq(STAGEFLAG_TRACERBUG_PLACED, TRUE, /*goto*/ LABEL_RUN_AWAY) + if_stage_flag_eq(STAGEFLAG_TAXI_READY_TO_CRASH, TRUE, /*goto*/ LABEL_RUN_AWAY) + if_object_in_good_condition(OBJ_LIMO, /*goto*/ 0x03) + goto_next(LABEL_RUN_AWAY) + label(0x03) + endloop(0x10) + + // Player in sight - face them + label(0x04) + restart_timer + try_face_entity(0x0200, 0x0000, /*goto*/ 0x04) + + beginloop(0x09) + if_angle_to_target_chr_lt(10, /*goto*/ 0x04) + if_timer_gt(40, /*goto*/ 0x04) + endloop(0x09) + + // Make a comment + label(0x04) + if_chr_weapon_equipped(CHR_P1P2, WEAPON_UNARMED, /*goto*/ 0x03) + if_chr_weapon_equipped(CHR_P1P2, WEAPON_NONE, /*goto*/ 0x03) + say_quip(CHR_JOANNA, 0x1a, 0xff, 0x0a, 0xff, 0x81, 0x00, 0x00) + goto_next(0x04) + label(0x03) + say_quip(CHR_JOANNA, 0x17, 0xff, 0x0a, 0xff, 0x81, 0x00, 0x00) + label(0x04) + animation(ANIM_TALKING_00A3, 0, -1, 0x0010, CHR_SELF, 2) + + // Looks like he spots if the tracer bug if he sees Jo within 8.3 seconds of + // the bug landing on the limo. + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_LIMO_READY_TO_LEAVE, TRUE, /*goto*/ LABEL_RUN_AWAY) + if_stage_flag_eq(STAGEFLAG_TAXI_READY_TO_CRASH, TRUE, /*goto*/ LABEL_RUN_AWAY) + if_object_in_good_condition(OBJ_LIMO, /*goto*/ 0x03) + goto_next(LABEL_RUN_AWAY) + + label(0x03) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x03) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x03) + goto_next(0x0a) + label(0x03) + if_stage_flag_eq(STAGEFLAG_TRACERBUG_SAFE, TRUE, /*goto*/ 0x0a) + if_stage_flag_eq(STAGEFLAG_TRACERBUG_PLACED, TRUE, /*goto*/ 0x04) + label(0x0a) + if_timer_gt(500, /*goto*/ 0x03) + endloop(0x08) + + label(0x03) + if_stage_flag_eq(STAGEFLAG_TRACERBUG_PLACED, TRUE, /*goto*/ LABEL_RUN_AWAY) + goto_first(0x10) + + // Bug was thrown recently + label(0x04) + animation(ANIM_TALKING_00A3, 0, -1, 0x0010, CHR_SELF, 2) + assign_sound(0x044a, CHANNEL_6) + play_sound_from_entity(CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01) + set_stage_flag(STAGEFLAG_TRACERBUG_SPOTTED) + message(CHR_JOANNA, 0x3243) // "Tracer Bug has been spotted." + + // Wait for talking animation to finish + beginloop(0x05) + if_stage_flag_eq(STAGEFLAG_LIMO_READY_TO_LEAVE, TRUE, /*goto*/ LABEL_RUN_AWAY) + if_stage_flag_eq(STAGEFLAG_TAXI_READY_TO_CRASH, TRUE, /*goto*/ LABEL_RUN_AWAY) + if_object_in_good_condition(OBJ_LIMO, /*goto*/ 0x03) + goto_next(LABEL_RUN_AWAY) + label(0x03) + if_chr_stopped(/*goto*/ 0x04) + endloop(0x05) + + // Find another guard and run to them + label(0x04) + try_target_chr_in_same_group(/*goto*/ 0x04) + goto_next(0x0b) + + label(0x04) + try_run_to_chr(FOLLOW_CHR, /*goto*/ 0x06) + + // Wait until detected target guard + beginloop(0x06) + if_stage_flag_eq(STAGEFLAG_LIMO_READY_TO_LEAVE, TRUE, /*goto*/ LABEL_RUN_AWAY) + if_stage_flag_eq(STAGEFLAG_TAXI_READY_TO_CRASH, TRUE, /*goto*/ LABEL_RUN_AWAY) + if_object_in_good_condition(OBJ_LIMO, /*goto*/ 0x03) + goto_next(LABEL_RUN_AWAY) + label(0x03) + if_detected_chr(FOLLOW_CHR, /*goto*/ 0x04) + endloop(0x06) + + // Alert everyone in group + label(0x04) + set_group_alertness(100) + assign_sound(0x0467, CHANNEL_6) + play_sound_from_entity(CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01) + + // No other guard to run to + label(0x0b) + retreat(0x02, 0x02) + + beginloop(0x07) + if_stage_flag_eq(STAGEFLAG_LIMO_READY_TO_LEAVE, TRUE, /*goto*/ LABEL_RUN_AWAY) + if_stage_flag_eq(STAGEFLAG_TAXI_READY_TO_CRASH, TRUE, /*goto*/ LABEL_RUN_AWAY) + if_object_in_good_condition(OBJ_LIMO, /*goto*/ 0x03) + goto_next(LABEL_RUN_AWAY) + label(0x03) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_within_units_of_sight(30, /*goto*/ 0x03) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_within_units_of_sight(30, /*goto*/ 0x03) + goto_next(0x04) + label(0x03) + goto_first(0x07) + + label(0x04) + restart_timer + + beginloop(0x0e) + if_timer_gt(10, /*goto*/ 0x03) + endloop(0x0e) + + label(0x03) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_within_units_of_sight(30, /*goto*/ 0x03) + goto_next(0x04) + label(0x03) + goto_first(0x07) + + label(0x04) + unset_self_flag_bank3(CHRFLAG3_KILLCOUNTABLE) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + yield + drop_gun_and_fade_out + set_function(CHR_SELF, GFUNC_IDLE) + + label(LABEL_RUN_AWAY) + jog_to_pad(0x004f) + + beginloop(0x0e) + if_chr_stopped(/*goto*/ 0x04) + endloop(0x0e) + + label(0x04) + stop_chr + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +#define init_patroller(pathid) \ + set_chr_dodge_rating(2, 0x0a) \ + set_accuracy(4) \ + set_reaction_speed(30) \ + set_chr_health(CHR_SELF, 40) \ + set_armor(0) \ + set_recovery_speed(0) \ + set_shield(0) \ + assign_path(pathid) \ + start_path \ + set_function(CHR_SELF, GFUNC_UNALERTED) \ + \ + beginloop(0x04) \ + endloop(0x04) + + + +u8 func0414_start_path07[] = { + init_patroller(0x07) + endfunction +}; + +u8 func0415_start_path08[] = { + init_patroller(0x08) + endfunction +}; + +u8 func0416_start_path09[] = { + init_patroller(0x09) + endfunction +}; + +u8 func0417_start_path10[] = { + init_patroller(0x0a) + endfunction +}; + +u8 func0418_start_path11[] = { + init_patroller(0x0b) + endfunction +}; + +/** + * This chr waits 2 seconds before starting his path. + */ +u8 func0419_init_cia1[] = { + restart_timer + + beginloop(0x05) + if_timer_gt(120, /*goto*/ 0x04) + endloop(0x05) + + label(0x04) + assign_path(12) + start_path + set_function(CHR_SELF, FUNC_CIA) + + beginloop(0x04) + endloop(0x04) + + endfunction +}; + +u8 func041d_fbi[] = { + set_onshot_function(FUNC_FBI) + if_chr_dying(CHR_SELF, /*goto*/ 0x04) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x04) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x04) + goto_next(0x03) + + label(0x04) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x03) + if_num_times_shot_lt(1, /*goto*/ 0x19) + + // Shot - wait for animation to finish + beginloop(0x05) + if_chr_stopped(/*goto*/ 0x04) + endloop(0x05) + + label(0x04) + goto_next(0x17) + + // Unreachable + label(0x04) + say_quip(CHR_JOANNA, 0x1b, 0xff, 0x00, 0xff, 0x81, 0x00, 0x00) + set_group_alertness(100) + goto_next(0x16) + + // Not shot + label(0x19) + set_action(ACTION_SCAN, TRUE) + yield + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_alertness(100, OPERATOR_LESS_THAN, /*goto*/ 0x04) + goto_next(0x16) + + label(0x04) + if_target_chr_in_sight(/*goto*/ 0x18) + if_near_miss(/*goto*/ 0x18) + if_num_times_shot_gt(0, /*goto*/ 0x18) + if_hears_gunfire(/*goto*/ 0x16) + if_shot_near_chr(0x00, /*goto*/ 0x16) + if_saw_death(0x00, /*goto*/ 0x16) + if_dying(/*goto*/ 0x16) + endloop(0x19) + + label(0x16) + if_stage_flag_eq(STAGEFLAG_ALARM_SOUNDED, FALSE, /*goto*/ 0x04) + + // Draw magnum and go after player + label(0x17) + try_draw_weapon(MODEL_CHRDY357, WEAPON_DY357MAGNUM, 0x10000000, /*goto*/ 0x03) + label(0x03) + set_function(CHR_SELF, GFUNC_ALERTED) + + label(0x04) + dprint 'T','R','A','C','K',' ','P','L','A','Y','E','R','\n',0, + try_run_to_target_chr_with_hand_up(/*goto*/ 0x06) + + beginloop(0x06) + if_chr_distance_lt(500, /*goto*/ 0x18) + if_target_chr_in_sight(/*goto*/ 0x18) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x18) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + endloop(0x06) + + label(0x18) + if_stage_flag_eq(STAGEFLAG_ALARM_SOUNDED, FALSE, /*goto*/ 0x04) + try_draw_weapon(MODEL_CHRDY357, WEAPON_DY357MAGNUM, 0x10000000, /*goto*/ 0x03) + label(0x03) + set_function(CHR_SELF, GFUNC_ALERTED) + + label(0x04) + restart_timer + try_face_entity(0x0200, 0x0000, /*goto*/ 0x0d) + + beginloop(0x0d) + if_angle_to_target_chr_lt(10, /*goto*/ 0x04) + if_timer_gt(40, /*goto*/ 0x04) + endloop(0x0d) + + label(0x04) + say_quip(CHR_JOANNA, 0x1b, 0xff, 0x00, 0xff, 0x81, 0x00, 0x00) + animation(0x0266, 0, 193, 0x0010, CHR_SELF, 2) + + beginloop(0x0e) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x03) + if_chr_propsoundcount_zero(CHR_SELF, /*goto*/ 0x04) + label(0x03) + if_chr_stopped(/*goto*/ 0x04) + endloop(0x0e) + + label(0x04) + dprint 'C','R','E','A','T','E','D',' ','W','E','A','P','\n',0, + try_draw_weapon(MODEL_CHRDY357, WEAPON_DY357MAGNUM, 0x10000000, /*goto*/ 0x04) + label(0x04) + yield + set_stage_flag(STAGEFLAG_ALARM_SOUNDED) + activate_alarm + dprint 'C','R','E','A','T','E','D',' ','W','E','A','P','\n',0, + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +#define check_cia_dead(chr) \ + beginloop(0x10) \ + if_chr_dying(chr, /*goto*/ 0x05) \ + endloop(0x10) \ + \ + /* Unreachable */ \ + label(0x03) \ + set_function(CHR_SELF, GFUNC_IDLE) \ + \ + label(0x05) \ + set_stage_flag(STAGEFLAG_CIVILIAN_DEAD) \ + message(CHR_JOANNA, 0x321d) /* "Mission failed - unacceptable civilian casualties." */ \ + set_function(CHR_SELF, GFUNC_IDLE) + + + +u8 func1009_check_cia1_dead[] = { + check_cia_dead(CHR_CIA1) + endfunction +}; + +/** + * This guy is allowed to be killed once he has a certain flag. + */ +u8 func100a_check_cia2_dead[] = { + beginloop(0x10) + if_chr_flag_bankx(CHR_CIA2, CHRFLAG0_00002000, BANK_0, /*goto*/ 0x03) + if_chr_dying(CHR_CIA2, /*goto*/ 0x05) + endloop(0x10) + + // Stop checking this chr + label(0x03) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x05) + set_stage_flag(STAGEFLAG_CIVILIAN_DEAD) + message(CHR_JOANNA, 0x321d) // "Mission failed - unacceptable civilian casualties." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100b_check_cia3_dead[] = { + check_cia_dead(CHR_CIA3) + endfunction +}; + +u8 func100c_check_cia4_dead[] = { + check_cia_dead(CHR_CIA4) + endfunction +}; + +u8 func041b_init_robot[] = { + set_accuracy(40) + set_shield(100) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_10000000) + set_function(CHR_SELF, FUNC_ROBOT) + endfunction +}; + +u8 func041a_robot[] = { + set_self_flag_bank3(CHRFLAG3_00040000) + set_chr_health(CHR_SELF, 1) + if_chr_dying(CHR_SELF, /*goto*/ 0x0c) + assign_path(0) + start_path + + beginloop(0x02) + set_target_chr(CHR_HIDDENGUY) + if_something_chicago_robot(/*goto*/ 0x03) + unset_stage_flag(STAGEFLAG_ROBOT_NEAR_HOME) + goto_next(0x04) + + label(0x03) + set_stage_flag(STAGEFLAG_ROBOT_NEAR_HOME) + + label(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_stage_flag_eq(STAGEFLAG_TRIGGER_CRASH, TRUE, /*goto*/ 0x01) + if_target_chr_in_sight(/*goto*/ 0x08) + call_rng + if_rand_gt(5, /*goto*/ 0x03) + if_sound_finished(CHANNEL_5, /*goto*/ 0x04) + goto_next(0x03) + + label(0x04) + call_rng + if_rand_lt(86, /*goto*/ 0x06) + if_rand_lt(172, /*goto*/ 0x07) + assign_sound(0x046a, CHANNEL_5) + play_sound_from_entity(CHANNEL_5, CHR_SELF, 0x0bb8, 0x1770, 0x01) + goto_next(0x03) + + label(0x06) + assign_sound(0x046b, CHANNEL_5) + play_sound_from_entity(CHANNEL_5, CHR_SELF, 0x0bb8, 0x1770, 0x01) + goto_next(0x03) + + label(0x07) + assign_sound(0x046c, CHANNEL_5) + play_sound_from_entity(CHANNEL_5, CHR_SELF, 0x0bb8, 0x1770, 0x01) + label(0x03) + + if_path_started(/*goto*/ 0x03) + start_path + label(0x03) + reloop(0x02) + + label(0x08) + restart_timer + stop_chr + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x05) + play_sound(0x1aeb, -1) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + label(0x05) + try_unset_chr_flag_bank3_02000000(CHR_SELF, /*goto*/ 0x03) + goto_next(0x05) + + label(0x03) + if_self_flag_bankx_eq(CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x05) + play_sound(0x1aec, -1) + set_self_flag_bankx(CHRFLAG0_00004000, BANK_0) + + beginloop(0x05) + set_target_chr(CHR_HIDDENGUY) + if_something_chicago_robot(/*goto*/ 0x03) + unset_stage_flag(STAGEFLAG_ROBOT_NEAR_HOME) + goto_next(0x04) + label(0x03) + set_stage_flag(STAGEFLAG_ROBOT_NEAR_HOME) + label(0x04) + set_target_chr(CHR_P1P2) + if_stage_flag_eq(STAGEFLAG_TRIGGER_CRASH, TRUE, /*goto*/ 0x01) + if_timer_gt(120, /*goto*/ 0x04) + if_self_flag_bankx_eq(CHRFLAG0_00002000, FALSE, BANK_0, /*goto*/ 0x2a) + if_target_chr_in_sight(/*goto*/ 0x03) + label(0x2a) + endloop(0x05) + + label(0x03) + set_target_chr(CHR_P1P2) + restart_timer + try_aim_and_shoot_thing1(0x0200, 0x0000, /*goto*/ 0x09) + reloop(0x02) + + beginloop(0x09) + unset_stage_flag(STAGEFLAG_ROBOT_NEAR_HOME) + set_target_chr(CHR_P1P2) + if_stage_flag_eq(STAGEFLAG_TRIGGER_CRASH, TRUE, /*goto*/ 0x01) + if_timer_gt(60, /*goto*/ 0x04) + if_chr_stopped(/*goto*/ 0x04) + endloop(0x09) + + label(0x04) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + start_path + endloop(0x02) + + label(0x0c) + assign_sound(0x1aec, CHANNEL_6) + play_sound_from_entity(CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x01) + label(0x04) + label(0x38) + set_chr_flag_bank3(CHR_ROBOT, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_ROBOT, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_ROBOT, CHRFLAG2_00020000) + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank2(CHR_SELF, CHRFLAG2_10000000) + set_function(CHR_ROBOT, GFUNC_IDLE) + set_shield(0) + animation(0x016a, 0, -1, 0x0600, CHR_SELF, 4) + + beginloop(0x2d) + dprint 'P','A','R','T',' ','4','\n',0, + if_chr_stopped(/*goto*/ 0x04) + goto_first(0x2d) + + label(0x04) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func041e_sealer1[] = { +#define LABEL_ALERTED 0x18 + + set_chr_dodge_rating(2, 0x0a) + set_accuracy(4) + set_reaction_speed(30) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + set_onshot_function(GFUNC_IDLE) + + beginloop(0x19) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_stage_flag_eq(STAGEFLAG_CRASH_FINISHED, TRUE, /*goto*/ 0x03) + if_alertness(100, OPERATOR_LESS_THAN, /*goto*/ 0x04) + goto_next(LABEL_ALERTED) + + label(0x04) + if_target_chr_in_sight(/*goto*/ LABEL_ALERTED) + if_near_miss(/*goto*/ LABEL_ALERTED) + if_num_times_shot_gt(0, /*goto*/ LABEL_ALERTED) + if_hears_gunfire(/*goto*/ LABEL_ALERTED) + if_shot_near_chr(0x00, /*goto*/ LABEL_ALERTED) + if_saw_death(0x00, /*goto*/ LABEL_ALERTED) + if_dying(/*goto*/ LABEL_ALERTED) + endloop(0x19) + + // Crash happened + label(0x03) + unset_chr_flag_bank2(CHR_SELF, CHRFLAG2_00000400) + jog_to_pad(0x00c4) + set_function(CHR_SEALER2, FUNC_JOG_TO_ACCIDENT) + set_function(CHR_SEALER3, FUNC_JOG_TO_ACCIDENT) + set_function(CHR_SEALER4, FUNC_JOG_TO_ACCIDENT) + + beginloop(0x0d) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x03) + if_chr_stopped(/*goto*/ 0x04) + endloop(0x0d) + + // At crash site + label(0x04) + restart_timer + + beginloop(0x0c) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x03) + if_timer_gt(120, /*goto*/ 0x04) + endloop(0x0c) + + label(0x03) + set_function(CHR_SELF, GFUNC_UNALERTED) + + // Conversation + label(0x04) + assign_sound(0x814b, CHANNEL_6) + play_sound_from_entity(CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01) + animation(ANIM_TALKING_0098, -1, -1, 0x0200, CHR_SELF, 2) + restart_timer + + beginloop(0x07) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x04) + if_timer_gt(120, /*goto*/ 0x03) + endloop(0x07) + + label(0x03) + assign_sound(0x044f, CHANNEL_6) + play_sound_from_entity(CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01) + animation(ANIM_TALKING_0231, -1, -1, 0x0200, CHR_SEALER1, 2) + animation(ANIM_TWO_GUN_HOLD, -1, -1, 0x0200, CHR_SELF, 2) + + beginloop(0x08) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x04) + if_sound_finished(CHANNEL_6, /*goto*/ 0x03) + goto_first(0x08) + + label(0x03) + assign_sound(0x0450, CHANNEL_6) + play_sound_from_entity(CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01) + animation(ANIM_TALKING_0233, -1, -1, 0x0200, CHR_SEALER3, 2) + animation(ANIM_TWO_GUN_HOLD, -1, -1, 0x0200, CHR_SEALER1, 2) + restart_timer + + beginloop(0x09) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x04) + if_timer_gt(180, /*goto*/ 0x03) + goto_first(0x09) + + label(0x03) + assign_sound(0x0451, CHANNEL_6) + play_sound_from_entity(CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01) + animation(ANIM_TALKING_0232, -1, -1, 0x0200, CHR_SEALER1, 2) + animation(ANIM_TWO_GUN_HOLD, -1, -1, 0x0200, CHR_SEALER3, 2) + restart_timer + + beginloop(0x0a) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x04) + if_timer_gt(120, /*goto*/ 0x03) + goto_first(0x0a) + + label(0x03) + assign_sound(0x0452, CHANNEL_6) + play_sound_from_entity(CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01) + animation(ANIM_TALKING_0234, -1, -1, 0x0200, CHR_SEALER3, 2) + animation(ANIM_TWO_GUN_HOLD, -1, -1, 0x0200, CHR_SEALER1, 2) + + beginloop(0x0b) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x04) + if_shot_near_chr(0x00, /*goto*/ 0x04) + if_sound_finished(CHANNEL_6, /*goto*/ 0x04) + endloop(0x0b) + + label(0x04) + set_function(CHR_SELF, GFUNC_UNALERTED) + + // Alerted - seal elevator + label(LABEL_ALERTED) + label(0x04) + close_door(0x10) + close_door(0x11) + lock_door(0x10, 0x02) + lock_door(0x11, 0x02) + set_stage_flag(STAGEFLAG_ELEVATOR_SEALED) + assign_sound(0x0469, CHANNEL_6) + play_sound_from_entity(CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01) + message(CHR_JOANNA, 0x3221) // "Elevator access sealed." + animation(ANIM_STANDING_TYPE_ONE_HAND, 0, 193, 0x1010, CHR_SELF, 2) + + beginloop(0x06) + if_chr_stopped(/*goto*/ 0x04) + goto_first(0x06) + + label(0x04) + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +u8 func100d_spawn_alarm_responders[] = { + restart_timer + beginloop(0x05) + if_stage_flag_eq(STAGEFLAG_ALARM_SOUNDED, TRUE, /*goto*/ 0x03) + endloop(0x05) + + label(0x03) + restart_timer + play_sound(0x7af0, -1) // "Attention all personnel" + + beginloop(0x1d) + if_timer_gt(200, /*goto*/ 0x03) + endloop(0x1d) + + label(0x03) + restart_timer + play_sound(0x7af1, -1) // "Locate and apprehend fugitive" + + beginloop(0x1e) + if_timer_gt(120, /*goto*/ 0x03) + endloop(0x1e) + + label(0x03) + play_x_music(CHANNEL_10, 60) + goto_next(0x04) + + // When the alarm sounds, there are 4 groups of people who respond. + // Each group has 4 guards, and the entire group must be dead before the + // next group is spawned. There is a 15 second delay between groups. + // Each group spawns at a different location. + + #define spawn_group(pad) \ + try_spawn_chr(BODY_G5_SWAT_GUARD, HEAD_RANDOM, pad, FUNC_ALARM_RESPONDER, 0x00000200, /*goto*/ 0x04) \ + label(0x04) \ + yield \ + yield \ + yield \ + yield \ + yield \ + try_spawn_chr(BODY_G5_SWAT_GUARD, HEAD_RANDOM, pad, FUNC_ALARM_RESPONDER, 0x00000200, /*goto*/ 0x04) \ + label(0x04) \ + yield \ + yield \ + yield \ + yield \ + yield \ + try_spawn_chr(BODY_G5_SWAT_GUARD, HEAD_RANDOM, pad, FUNC_ALARM_RESPONDER, 0x00000200, /*goto*/ 0x04) \ + label(0x04) \ + yield \ + yield \ + yield \ + yield \ + yield \ + try_spawn_chr(BODY_G5_SWAT_GUARD, HEAD_RANDOM, pad, FUNC_ALARM_RESPONDER, 0x00000200, /*goto*/ 0x04) \ + label(0x04) + + + + label(0x07) + unlock_door(0x14, 0x04) + restart_timer + if_stage_flag_eq(STAGEFLAG_ALARM_GROUP1_DEAD, TRUE, /*goto*/ 0x08) + + // Spawn group 1 + spawn_group(0x0067) + goto_next(0x06) + + // Group 1 is already done + label(0x08) + unlock_door(0x15, 0x04) + unlock_door(0x16, 0x04) + if_stage_flag_eq(STAGEFLAG_ALARM_GROUP2_DEAD, TRUE, /*goto*/ 0x09) + + // Spawn group 2 + spawn_group(0x00c2) + goto_next(0x06) + + // Groups 1 and 2 are done + label(0x09) + unlock_door(0x17, 0x04) + unlock_door(0x18, 0x04) + if_stage_flag_eq(STAGEFLAG_ALARM_GROUP3_DEAD, TRUE, /*goto*/ 0x0a) + + // Spawn group 3 + spawn_group(0x00c3) + goto_next(0x06) + + // Groups 1, 2 and 3 are done + // Spawn group 3 + label(0x0a) + unlock_door(0x19, 0x04) + spawn_group(0x00c1) + goto_next(0x06) + + // Wait until group is dead + beginloop(0x06) + if_all_chrs_in_group_are_dead(GROUP_ALARM_RESPONDER, /*goto*/ 0x04) + endloop(0x06) + + // Set this group as dead + label(0x04) + if_stage_flag_eq(STAGEFLAG_ALARM_GROUP1_DEAD, TRUE, /*goto*/ 0x04) + set_stage_flag(STAGEFLAG_ALARM_GROUP1_DEAD) + goto_next(0x03) + + label(0x04) + if_stage_flag_eq(STAGEFLAG_ALARM_GROUP2_DEAD, TRUE, /*goto*/ 0x04) + set_stage_flag(STAGEFLAG_ALARM_GROUP2_DEAD) + goto_next(0x03) + + label(0x04) + if_stage_flag_eq(STAGEFLAG_ALARM_GROUP3_DEAD, TRUE, /*goto*/ 0x04) + set_stage_flag(STAGEFLAG_ALARM_GROUP3_DEAD) + goto_next(0x03) + + label(0x04) + set_function(CHR_SELF, GFUNC_IDLE) + + // Wait 15 seconds + label(0x03) + restart_timer + + beginloop(0x2d) + if_timer_gt(900, /*goto*/ 0x04) + endloop(0x2d) + + // Loop again to trigger next group + label(0x04) + goto_first(0x07) + + endfunction +}; + +u8 func041f_alarm_responder[] = { + set_self_flag_bankx(CHRFLAG1_00080000, BANK_1) + set_self_flag_bankx(CHRFLAG0_80000000, BANK_0) + set_chr_dodge_rating(2, 0x0a) + set_accuracy(14) + set_reaction_speed(20) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + try_draw_weapon(MODEL_CHRDY357, WEAPON_DY357MAGNUM, 0x00000000, /*goto*/ 0x04) + label(0x04) + set_chr_alliance(CHR_SELF, 0x20) + set_group(GROUP_ALARM_RESPONDER) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + set_self_flag_bankx(CHRFLAG0_00008000, BANK_0) + set_alertness(90) + set_self_flag_bank3(CHRFLAG3_00000200) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_SEARCH_FOR_PLAYER) + endfunction +}; + +u8 func0420_jog_to_accident[] = { + unset_chr_flag_bank2(CHR_SELF, CHRFLAG2_00000400) + label(0x03) + go_to_target_pad(SPEED_JOG) + + // This is a bit weird. I'm pretty sure the set_function causes this + // function to stop. But because the guard has been issued the + // go_to_target_pad command, he'll continue to do so while running the + // unalerted function. + label(0x0d) + set_function(CHR_SELF, GFUNC_UNALERTED) + yield + if_chr_stopped(/*goto*/ 0x04) + goto_first(0x0d) + + label(0x04) + endfunction +}; + +u8 func040a_intro_from_gameplay[] = { + set_function(CHR_SELF, 0x040a) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101f_setup_robot_noise[] = { + play_sound_from_object2(CHANNEL_2, CHR_ROBOT, 0x80b9, 0x00, 0x02) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Not sure why it would give briefcases to the players. + * Note this is a coop/counterop only function. + */ +u8 func1400_give_briefcases[] = { + yield + set_chr_alliance(CHR_COUNTEROP, 0x20) + set_chr_flag_bank3(CHR_TOPSTAIRS, CHRFLAG3_HAS_SPECIAL_DEATH_ANIMATION) + set_chr_flag_bank3(CHR_TOPSTAIRS, CHRFLAG3_00000020) + set_chr_flag_bank3(0x0a, CHRFLAG3_00000020) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x03) + + // PA + give_object_to_chr(OBJ_BRIEFCASE3, CHR_JOANNA) + + // All difficulties + label(0x03) + give_object_to_chr(OBJ_BRIEFCASE4, CHR_JOANNA) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x03) + + if_difficulty_lt(DIFF_PA, /*goto*/ 0x04) + + // PA + give_object_to_chr(OBJ_BRIEFCASE5, CHR_VELVET) + + // All difficulties + label(0x04) + give_object_to_chr(OBJ_BRIEFCASE6, CHR_VELVET) + set_function(CHR_SELF, GFUNC_REBUILD_GROUPS) + + // Velvet doesn't exist + label(0x03) + hide_object(OBJ_BRIEFCASE3) + hide_object(OBJ_BRIEFCASE5) + hide_object(OBJ_BRIEFCASE6) + set_function(CHR_SELF, GFUNC_REBUILD_GROUPS) + endfunction +}; + +u8 func1002_rebuild_groups[] = { + set_function(CHR_SELF, GFUNC_REBUILD_GROUPS) + endfunction +}; + +u8 func1010_elevator_switch[] = { + yield + open_door(0x10) + open_door(0x11) + yield + + beginloop(0x10) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_SWITCH, /*goto*/ 0x03) + if_stage_flag_eq(STAGEFLAG_ELEVATOR_SEALED, TRUE, /*goto*/ 0x04) + label(0x04) + endloop(0x10) + + label(0x03) + close_door(0x10) + close_door(0x11) + lock_door(0x10, 0x02) + lock_door(0x11, 0x02) + if_stage_flag_eq(STAGEFLAG_ELEVATOR_SEALED, TRUE, /*goto*/ 0x04) + message(CHR_P1P2, 0x3221) // "Elevator access sealed." + set_stage_flag(STAGEFLAG_ELEVATOR_SEALED) + goto_first(0x10) + + label(0x04) + message(CHR_P1P2, 0x3230) // "Elevator door cannot be reopened." + goto_first(0x10) + + endfunction +}; + +u8 func1001_objectives_failed_msg[] = { + yield + set_chr_flag_bank3(CHR_CIA1, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_CIA2, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_CIA3, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_CIA4, CHRFLAG3_04000000) + set_function(CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG) + endfunction +}; + +u8 func1014_crash[] = { + beginloop(0x02) + if_stage_flag_eq(STAGEFLAG_TRIGGER_CRASH, TRUE, /*goto*/ 0x04) + endloop(0x02) + + label(0x04) + restart_timer + + beginloop(0x09) + if_timer_gt(230, /*goto*/ 0x04) + endloop(0x09) + + label(0x04) + move_object_to_pad(OBJ_MINE1, 0x0029) + destroy_object(OBJ_MINE1) + set_stage_flag(STAGEFLAG_DIVERSION_CREATED) + message(CHR_JOANNA, 0x3236) // "Diversion has been created." + destroy_object(OBJ_TAXI) + restart_timer + + beginloop(0x0a) + if_timer_gt(180, /*goto*/ 0x04) + endloop(0x0a) + + label(0x04) + move_object_to_pad(OBJ_MINE2, 0x001c) + destroy_object(OBJ_MINE2) + set_stage_flag(STAGEFLAG_CRASH_FINISHED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040a_intro_sfx[] = { + // This flag is used to trigger the intro. Note that the entire function + // loops, so Rare could have tested the intro by setting the flag again. + label(0x2b) + if_stage_flag_eq(STAGEFLAG_TRIGGER_INTRO, TRUE, /*goto*/ 0x2c) + yield + goto_first(0x2b) + + label(0x2c) + unset_stage_flag(STAGEFLAG_TRIGGER_INTRO) + label(0x10) + yield + dprint 'C','U','T','S','C','E','N','E',' ','S','T','A','R','T','E','D','\n',0, + label(0x03) + restart_timer + dprint 'C','U','T','S','C','E','N','E',' ','S','T','A','R','T','E','D','\n',0, + + #define wait_until(time, loopid) \ + beginloop(loopid) \ + if_stage_flag_eq(STAGEFLAG_INTRO_FINISHED, TRUE, /*goto*/ 0x2e) \ + if_timer_gt(time, /*goto*/ 0x04) \ + endloop(loopid) \ + label(0x04) + + + + wait_until(30, 0x55) + speak(CHR_JOANNA, 0x3244, 0x7408, CHANNEL_7, COLOR_05_GREEN) // "We suspect the G5 Corporation is just a front for ..." + + wait_until(1060, 0x56) + speak(CHR_JOANNA, 0x3245, 0x7409, CHANNEL_7, COLOR_09_BLUE) // "Just who is this help you keep referring to?" + + wait_until(1260, 0x57) + speak(CHR_JOANNA, 0x3246, 0x740a, CHANNEL_7, COLOR_05_GREEN) // "Not now, Joanna. Time for radio silence. Good luck..." + + wait_until(1488, 0x58) + speak(CHR_JOANNA, 0x3247, 0x740b, CHANNEL_7, COLOR_09_BLUE) // "Thanks a lot." + + label(0x2d) + yield + label(0x03) + if_stage_flag_eq(STAGEFLAG_INTRO_FINISHED, TRUE, /*goto*/ 0x2e) + if_timer_gt(1468, /*goto*/ 0x04) + goto_first(0x2d) + + label(0x04) + play_sound(0x0161, CHANNEL_3) + + wait_until(1519, 0x2f) + play_sound(0x0162, CHANNEL_3) + + wait_until(1566, 0x30) + play_sound(0x046d, CHANNEL_4) + + wait_until(1649, 0x31) + play_sound(0x046d, CHANNEL_3) + + label(0x33) + wait_until(1758, 0x34) + play_sound(0x0164, CHANNEL_4) + + wait_until(1784, 0x35) + play_sound(0x0163, CHANNEL_3) + + wait_until(1814, 0x36) + play_sound(0x0162, CHANNEL_3) + + wait_until(1855, 0x37) + play_sound(0x0161, CHANNEL_3) + + wait_until(1897, 0x38) + play_sound(0x0470, CHANNEL_3) + + wait_until(2017, 0x3a) + play_sound(0x0165, CHANNEL_3) + + wait_until(2028, 0x3b) + play_sound(0x046e, CHANNEL_4) + + wait_until(2050, 0x3c) + play_sound(0x0472, CHANNEL_3) + + wait_until(2175, 0x3d) + play_sound(0x0473, CHANNEL_4) + + wait_until(2239, 0x3e) + play_sound(0x0474, CHANNEL_3) + + wait_until(2269, 0x3f) + play_sound(0x0475, CHANNEL_4) + + wait_until(2278, 0x41) + play_sound(0x0166, CHANNEL_3) + + wait_until(2280, 0x40) + play_sound(0x046f, CHANNEL_4) + + wait_until(2323, 0x42) + play_sound(0x0165, CHANNEL_3) + + wait_until(2339, 0x43) + play_sound(0x0166, CHANNEL_3) + + wait_until(2356, 0x44) + play_sound(0x0167, CHANNEL_3) + + wait_until(2373, 0x45) + play_sound(0x0168, CHANNEL_3) + + wait_until(2386, 0x46) + play_sound(0x0165, CHANNEL_3) + + wait_until(2388, 0x47) + + wait_until(2402, 0x48) + mute_channel(CHANNEL_4) + play_sound(0x0166, CHANNEL_3) + + wait_until(2404, 0x4a) + play_sound(0x0080, CHANNEL_4) + + wait_until(2424, 0x49) + play_sound(0x0167, CHANNEL_3) + + wait_until(2434, 0x4c) + play_sound(0x0476, CHANNEL_3) + + wait_until(2584, 0x4b) + play_sound(0x0161, CHANNEL_5) + + wait_until(2622, 0x4d) + mute_channel(CHANNEL_5) + + play_sound(0x0162, CHANNEL_4) + wait_until(2660, 0x4e) + mute_channel(CHANNEL_5) + + play_sound(0x0163, CHANNEL_6) + + label(0x2e) + mute_channel(CHANNEL_5) + mute_channel(CHANNEL_7) + goto_first(0x2b) + + endfunction +}; + +u8 func040b_outro[] = { + camera_movement(0x0178) + set_music_track(MUSIC_CHICAGO_OUTRO) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0xf1, CHRFLAG3_HIDDEN) + set_function(CHR_P1P2, GFUNC_IDLE) + open_door2(0x10) + open_door2(0x11) + hide_object(OBJ_TAXI) + hide_object(OBJ_LIMO) + hide_chr(CHR_SEALER1) + hide_chr(CHR_SEALER2) + hide_chr(CHR_SEALER3) + hide_chr(CHR_SEALER4) + + set_chr_flag_bank3(CHR_P1P2, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_P1P2, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_P1P2, CHRFLAG2_00020000) + animation(0x0179, -1, -1, 0x0600, CHR_P1P2, 4) + + restart_timer + set_cutscene_weapon(CHR_P1P2, -1, -1) + yield + set_cutscene_weapon(CHR_P1P2, -1, 0x02) + show_nonessential_chrs(FALSE) + + #define func0c01_wait_until(time, loopid) \ + beginloop(loopid) \ + if_controller_button_pressed(/*goto*/ 0x2e) \ + if_timer_gt(time, /*goto*/ 0x04) \ + endloop(loopid) \ + label(0x04) + + + + func0c01_wait_until(30, 0x2d) + play_sound(0x0161, CHANNEL_7) + + func0c01_wait_until(70, 0x2f) + play_sound(0x0162, CHANNEL_7) + + func0c01_wait_until(120, 0x30) + play_sound(0x0163, CHANNEL_7) + + func0c01_wait_until(174, 0x31) + play_sound(0x0164, CHANNEL_7) + + func0c01_wait_until(208, 0x32) + play_sound(0x046d, CHANNEL_6) + + func0c01_wait_until(210, 0x33) + play_sound(0x0161, CHANNEL_7) + + func0c01_wait_until(238, 0x34) + play_sound(0x0162, CHANNEL_7) + + func0c01_wait_until(280, 0x35) + play_sound(0x0171, CHANNEL_7) + + func0c01_wait_until(350, 0x36) + play_sound(0x0173, CHANNEL_7) + + func0c01_wait_until(458, 0x37) + play_sound(0x0172, CHANNEL_7) + + func0c01_wait_until(506, 0x38) + play_sound(0x0171, CHANNEL_7) + + func0c01_wait_until(540, 0x39) + close_door(0x10) + close_door(0x11) + + func0c01_wait_until(545, 0x3a) + play_sound(0x0171, CHANNEL_7) + + func0c01_wait_until(588, 0x3b) + play_sound(0x0172, CHANNEL_7) + + beginloop(0x05) + if_camera_animating(/*goto*/ 0x03) + goto_next(0x2e) + label(0x03) + if_controller_button_pressed(/*goto*/ 0x2e) + label(0x03) + endloop(0x05) + + label(0x2e) + mute_channel(CHANNEL_7) + mute_channel(CHANNEL_10) + label(0x04) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1012_update_robot_position_flags[] = { + // pad 0x00d4 = corner + // pad 0x00d9 = next to limo + + beginloop(0x02) + // Update ROBOT_NEAR_CORNER flag + if_stage_flag_eq(STAGEFLAG_ROBOT_NEAR_HOME, FALSE, /*goto*/ 0x03) + if_chr_distance_to_pad_lt(CHR_ROBOT, 200, 0x00d4, /*goto*/ 0x04) + label(0x03) + unset_stage_flag(STAGEFLAG_ROBOT_NEAR_CORNER) + goto_next(0x03) + + label(0x04) + set_stage_flag(STAGEFLAG_ROBOT_NEAR_CORNER) + + // Update ROBOT_ON_DRAIN_STREET flag + label(0x03) + if_chr_distance_to_pad_gt(CHR_ROBOT, 1800, 0x00d9, /*goto*/ 0x04) + unset_stage_flag(STAGEFLAG_ROBOT_ON_DRAIN_STREET) + goto_next(0x03) + + label(0x04) + set_stage_flag(STAGEFLAG_ROBOT_ON_DRAIN_STREET) + label(0x03) + endloop(0x02) + + endfunction +}; + +u8 func1416_setup_rain[] = { + yield + yield + yield + enable_rain(2) + + label(0x05) + // Wait 1 second + restart_timer + + beginloop(0x06) + if_timer_gt(60, /*goto*/ 0x03) + endloop(0x06) + + // 12 in 256 chance of changing rain effect + label(0x03) + call_rng + if_rand_lt(12, /*goto*/ 0x03) + goto_first(0x05) + + label(0x03) + call_rng + if_rand_gt(192, /*goto*/ 0x0a) + if_rand_gt(128, /*goto*/ 0x09) + if_rand_gt(64, /*goto*/ 0x08) + enable_rain(2) + goto_first(0x05) + + label(0x08) + enable_rain(1) + goto_first(0x05) + + label(0x09) + enable_rain(2) + goto_first(0x05) + + label(0x0a) + enable_rain(3) + goto_first(0x05) + + endfunction +}; + +u8 func041c_hiddenguy[] = { + set_chr_flag_bank3(CHR_HIDDENGUY, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_HIDDENGUY, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * This function makes two guards unhide and persue Jo after she picks up the + * drain briefcase. + */ +u8 func1017_drain_guards[] = { + set_chr_flag_bank3(0x11, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0x12, CHRFLAG3_HIDDEN) + + // Wait until drain briefcase collected + beginloop(0x05) + if_objective_complete(0, /*goto*/ 0x03) + endloop(0x05) + + label(0x03) + unset_chr_flag_bank3(0x11, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x12, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(0x11, CHRFLAG2_00400000) + set_chr_flag_bank2(0x12, CHRFLAG2_00400000) + set_function(0x11, GFUNC_ALERTED) + set_function(0x12, GFUNC_ALERTED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1018_keep_door_open[] = { + beginloop(0x10) + if_door_state(0x1a, (DOORSTATE_CLOSED | DOORSTATE_CLOSING), /*goto*/ 0x03) + reloop(0x10) + + label(0x03) + open_door(0x1a) + endloop(0x10) + + endfunction +}; + +u8 func1019_setup_topstairs_death_animation[] = { + set_chr_special_death_animation(CHR_TOPSTAIRS, 0x05) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040e_6064[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(4) + set_reaction_speed(30) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func040f_6088[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x03) + set_chr_dodge_rating(2, 0x0a) + set_accuracy(20) + set_reaction_speed(30) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, GFUNC_UNALERTED) + label(0x03) + set_chr_dodge_rating(2, 0x0a) + set_accuracy(4) + set_reaction_speed(30) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func0410_60d0[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(14) + set_reaction_speed(20) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func0411_60f4[] = { + set_self_flag_bank3(CHRFLAG3_00020000) + set_chr_dodge_rating(2, 0x0a) + set_accuracy(14) + set_reaction_speed(20) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(40) + set_shield(0) + set_function(CHR_SELF, FUNC_FBI) + endfunction +}; + +u8 func101a_msg_onlyplace[] = { + beginloop(0x10) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0014, /*goto*/ 0x03) + if_chr_in_room(CHR_P1P2, 0x00, 0x0026, /*goto*/ 0x03) + endloop(0x10) + + label(0x03) + speak(CHR_P1P2, 0x323c, 0x8179, CHANNEL_6, COLOR_09_BLUE) // "The only place we could secure the equipment was a..." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101b_msg_blockedupdoors[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x0a) + restart_timer + + // Wait for drain briefcase collected + beginloop(0x10) + if_objective_complete(0, /*goto*/ 0x05) + endloop(0x10) + + beginloop(0x05) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x003a, /*goto*/ 0x03) + endloop(0x05) + + label(0x03) + speak(CHR_P1P2, 0x323d, 0x73b1, CHANNEL_6, COLOR_09_BLUE) // "Either of those blocked-up doors will do as an esc..." + label(0x0a) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101c_msg_reprogramthattaxi[] = { + // Wait for drain briefcase collected + beginloop(0x10) + if_objective_complete(0, /*goto*/ 0x05) + endloop(0x10) + + beginloop(0x05) + if_object_in_good_condition(OBJ_TAXI, /*goto*/ 0x03) + reloop(0x05) + + label(0x03) + if_stage_flag_eq(STAGEFLAG_TAXI_REPROGRAMMED, TRUE, /*goto*/ 0x0a) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x004a, /*goto*/ 0x03) + endloop(0x05) + + label(0x03) + speak(CHR_P1P2, 0x323e, 0x817a, CHANNEL_6, COLOR_09_BLUE) // "Reprogram that taxi - it's a Mark 2 and should be ..." + label(0x0a) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101d_msg_pointofingress[] = { + beginloop(0x10) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0059, /*goto*/ 0x03) + endloop(0x10) + + label(0x03) + speak(CHR_P1P2, 0x323f, 0x817b, CHANNEL_6, COLOR_09_BLUE) // "That car park lift is your only point of ingress." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101e_check_sealer_guards_dead[] = { + beginloop(0x10) + if_stage_flag_eq(STAGEFLAG_ELEVATOR_SEALED, TRUE, /*goto*/ 0x06) + if_chr_dying(CHR_SEALER1, /*goto*/ 0x03) + if_chr_death_animation_finished(CHR_SEALER1, /*goto*/ 0x03) + endloop(0x10) + + label(0x03) + if_chr_dying(CHR_SEALER2, /*goto*/ 0x03) + if_chr_death_animation_finished(CHR_SEALER2, /*goto*/ 0x03) + goto_first(0x10) + + label(0x03) + if_chr_dying(CHR_SEALER3, /*goto*/ 0x03) + if_chr_death_animation_finished(CHR_SEALER3, /*goto*/ 0x03) + goto_first(0x10) + + label(0x03) + if_chr_dying(CHR_SEALER4, /*goto*/ 0x03) + if_chr_death_animation_finished(CHR_SEALER4, /*goto*/ 0x03) + goto_first(0x10) + + label(0x03) + if_stage_flag_eq(STAGEFLAG_DIVERSION_CREATED, TRUE, /*goto*/ 0x03) + message(CHR_JOANNA, 0x3242) // "An alternative diversion has been created!" + unset_stage_flag(STAGEFLAG_TAXI_DESTROYED) + unset_stage_flag(STAGEFLAG_ROBOT_DESTROYED) + set_stage_flag(STAGEFLAG_DIVERSION_CREATED) + label(0x03) + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1020_elevator_doors[] = { + beginloop(0x10) + if_stage_flag_eq(STAGEFLAG_ELEVATOR_SEALED, TRUE, /*goto*/ 0x03) + if_door_state(0x10, (DOORSTATE_CLOSED | DOORSTATE_CLOSING), /*goto*/ 0x04) + reloop(0x10) + + label(0x04) + open_door(0x10) + open_door(0x11) + endloop(0x10) + + label(0x03) + close_door(0x10) + close_door(0x11) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Guard at top stairs: Turn off special death animation if he's moved away from + * his pad or if Jo has climbed the staircase. + */ +u8 func1021_check_topstairs_guy[] = { + beginloop(0x10) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_y(CHR_P1P2, 500, OPERATOR_LESS_THAN, /*goto*/ 0x03) + goto_next(0x04) + label(0x03) + if_chr_distance_to_pad_gt(CHR_TOPSTAIRS, 250, 0x00b5, /*goto*/ 0x04) + endloop(0x10) + + label(0x04) + set_chr_special_death_animation(CHR_TOPSTAIRS, 0) + unset_chr_flag_bank3(CHR_TOPSTAIRS, CHRFLAG3_HAS_SPECIAL_DEATH_ANIMATION) + unset_chr_flag_bankx(CHR_TOPSTAIRS, CHRFLAG1_00001000, BANK_1) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040d_limo_flags[] = { + // Wait until limo ready + beginloop(0x10) + if_stage_flag_eq(STAGEFLAG_LIMO_READY_TO_LEAVE, TRUE, /*goto*/ 0x2f) + endloop(0x10) + + // Wait until player not in certain rooms + beginloop(0x2f) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0002, /*goto*/ 0x03) + if_chr_in_room(CHR_P1P2, 0x00, 0x0010, /*goto*/ 0x03) + if_chr_in_room(CHR_P1P2, 0x00, 0x0012, /*goto*/ 0x03) + goto_next(0x04) + label(0x03) + endloop(0x2f) + + // Wait almost 10 seconds - provided limo not destroyed + label(0x04) + restart_timer + + beginloop(0x2d) + if_object_in_good_condition(OBJ_LIMO, /*goto*/ 0x03) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x03) + if_timer_gt(596, /*goto*/ 0x03) + endloop(0x2d) + + label(0x03) + hide_object(OBJ_LIMO) + set_object_flag_bank0(OBJ_LIMO, OBJECTFLAG0_INVINCIBLE) + set_object_flag_bank1(OBJ_LIMO, OBJECTFLAG1_INVISIBLE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1423_setup_lighting[] = { + yield + set_lighting(0x0000, 0x00, 0x00) + set_lighting(0x0000, 0x01, 0x00) + set_lighting(0x0000, 0x02, 0x00) + set_lighting(0x0000, 0x03, 0x00) + set_lighting(0x0000, 0x04, 0x00) + set_lighting(0x0002, 0x05, 0x01) + set_lighting(0x0003, 0x05, 0x01) + set_lighting(0x000f, 0x05, 0x01) + set_lighting(0x0010, 0x05, 0x01) + set_lighting(0x0011, 0x05, 0x01) + set_lighting(0x0012, 0x05, 0x01) + set_lighting(0x0013, 0x05, 0x01) + set_lighting(0x0014, 0x05, 0x01) + set_lighting(0x0015, 0x05, 0x01) + set_lighting(0x0017, 0x05, 0x01) + set_lighting(0x0018, 0x05, 0x01) + set_lighting(0x0019, 0x05, 0x01) + set_lighting(0x001a, 0x05, 0x01) + set_lighting(0x001c, 0x05, 0x01) + set_lighting(0x001d, 0x05, 0x01) + set_lighting(0x001f, 0x05, 0x01) + set_lighting(0x0021, 0x05, 0x01) + set_lighting(0x0022, 0x05, 0x01) + set_lighting(0x0025, 0x05, 0x01) + set_lighting(0x0026, 0x05, 0x01) + set_lighting(0x0027, 0x05, 0x01) + set_lighting(0x0028, 0x05, 0x01) + set_lighting(0x002c, 0x05, 0x01) + set_lighting(0x002d, 0x05, 0x01) + set_lighting(0x002e, 0x05, 0x01) + set_lighting(0x0031, 0x05, 0x01) + set_lighting(0x0032, 0x05, 0x01) + set_lighting(0x0037, 0x05, 0x01) + set_lighting(0x0038, 0x05, 0x01) + set_lighting(0x0039, 0x05, 0x01) + set_lighting(0x003a, 0x05, 0x01) + set_lighting(0x003d, 0x05, 0x01) + set_lighting(0x003e, 0x05, 0x01) + set_lighting(0x003f, 0x05, 0x01) + set_lighting(0x0043, 0x05, 0x01) + set_lighting(0x0044, 0x05, 0x01) + set_lighting(0x0045, 0x05, 0x01) + set_lighting(0x004a, 0x05, 0x01) + set_lighting(0x004b, 0x05, 0x01) + set_lighting(0x004c, 0x05, 0x01) + set_lighting(0x004e, 0x05, 0x01) + set_lighting(0x0050, 0x05, 0x01) + set_lighting(0x0051, 0x05, 0x01) + set_lighting(0x0052, 0x05, 0x01) + set_lighting(0x0059, 0x05, 0x01) + set_lighting(0x005a, 0x05, 0x01) + set_lighting(0x005b, 0x05, 0x01) + set_lighting(0x005c, 0x05, 0x01) + set_lighting(0x005d, 0x05, 0x01) + set_lighting(0x005f, 0x05, 0x01) + set_lighting(0x0060, 0x05, 0x01) + set_lighting(0x0061, 0x05, 0x01) + set_lighting(0x0062, 0x05, 0x01) + set_lighting(0x0064, 0x05, 0x01) + set_lighting(0x0066, 0x05, 0x01) + set_lighting(0x0067, 0x05, 0x01) + set_lighting(0x0068, 0x05, 0x01) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0412_cia_invincibility[] = { + beginloop(0x10) + if_stage_flag_eq(STAGEFLAG_TRIGGER_TAXI_LEAVE, TRUE, /*goto*/ 0x03) + endloop(0x10) + + label(0x03) + set_chr_flag_bank3(CHR_CIA1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_CIA2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_CIA3, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_CIA4, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + + beginloop(0x2d) + if_stage_flag_eq(STAGEFLAG_DIVERSION_CREATED, TRUE, /*goto*/ 0x03) + endloop(0x2d) + + label(0x03) + restart_timer + + beginloop(0x2f) + if_timer_gt(300, /*goto*/ 0x03) + endloop(0x2f) + + label(0x03) + unset_chr_flag_bank3(CHR_CIA1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(CHR_CIA2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(CHR_CIA3, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(CHR_CIA4, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1025_rtracker[] = { + yield + set_object_flag_bank2(OBJ_FALCON2, OBJECTFLAG2_RTRACKED_BLUE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1027_untrack_dumpster[] = { + yield + + beginloop(0x10) + if_object_in_good_condition(OBJ_DUMPSTER, /*goto*/ 0x04) + goto_next(0x03) + label(0x04) + endloop(0x10) + + label(0x03) + unset_object_flag_bank2(OBJ_DUMPSTER, OBJECTFLAG2_RTRACKED_BLUE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +struct ailists functions[] = { + { func0401_3ae8, 0x0401 }, + { func0402_3bb4, 0x0402 }, + { func0403_3c74, 0x0403 }, + { func0404_3ce0, 0x0404 }, + { func0405_3d50, 0x0405 }, + { func0406_3e54, 0x0406 }, + { func0407_3e60, 0x0407 }, + { func0408_3e6c, 0x0408 }, + { func0409_3e78, 0x0409 }, + { func040a_intro, 0x040a }, + { func040b_outro, 0x040b }, + { func040c_taxi, 0x040c }, + { func040d_limo, 0x040d }, + { func040e_6064, 0x040e }, + { func040f_6088, 0x040f }, + { func0410_60d0, 0x0410 }, + { func0411_60f4, 0x0411 }, + { func0412_cia, 0x0412 }, + { func0413_bugspotter, 0x0413 }, + { func0414_start_path07, 0x0414 }, + { func0415_start_path08, 0x0415 }, + { func0416_start_path09, 0x0416 }, + { func0417_start_path10, 0x0417 }, + { func0418_start_path11, 0x0418 }, + { func0419_init_cia1, 0x0419 }, + { func041d_fbi, 0x041d }, + { func041c_hiddenguy, 0x041c }, + { func041e_sealer1, 0x041e }, + { func041f_alarm_responder, 0x041f }, + { func0420_jog_to_accident, 0x0420 }, + { func041a_robot, 0x041a }, + { func041b_init_robot, 0x041b }, + { func040a_intro, 0x0c00 }, + { func040b_outro, 0x0c01 }, + { func1400_give_briefcases, 0x1400 }, + { func1001_objectives_failed_msg, 0x1001 }, + { func1002_rebuild_groups, 0x1002 }, + { func040a_intro_from_gameplay, 0x1003 }, + { func1004_tracerbug_joanna, 0x1004 }, + { func1005_check_things_destroyed, 0x1005 }, + { func1006_check_for_end, 0x1006 }, + { func040d_limo_timing, 0x1007 }, + { func040c_taxi_timing, 0x1008 }, + { func1009_check_cia1_dead, 0x1009 }, + { func100a_check_cia2_dead, 0x100a }, + { func100b_check_cia3_dead, 0x100b }, + { func100c_check_cia4_dead, 0x100c }, + { func100d_spawn_alarm_responders, 0x100d }, + { func100f_check_mine, 0x100f }, + { func1010_elevator_switch, 0x1010 }, + { func1011_trackerbug_velvet, 0x1011 }, + { func1012_update_robot_position_flags, 0x1012 }, + { func1014_crash, 0x1014 }, + { func040a_intro_sfx, 0x1415 }, + { func1416_setup_rain, 0x1416 }, + { func1017_drain_guards, 0x1017 }, + { func1018_keep_door_open, 0x1018 }, + { func1019_setup_topstairs_death_animation, 0x1019 }, + { func101a_msg_onlyplace, 0x101a }, + { func101b_msg_blockedupdoors, 0x101b }, + { func101c_msg_reprogramthattaxi, 0x101c }, + { func101d_msg_pointofingress, 0x101d }, + { func101e_check_sealer_guards_dead, 0x101e }, + { func101f_setup_robot_noise, 0x101f }, + { func1020_elevator_doors, 0x1020 }, + { func1021_check_topstairs_guy, 0x1021 }, + { func040d_limo_flags, 0x1022 }, + { func1423_setup_lighting, 0x1423 }, + { func0412_cia_invincibility, 0x1024 }, + { func1025_rtracker, 0x1025 }, + { func1026_uplink, 0x1026 }, + { func1027_untrack_dumpster, 0x1027 }, + { NULL, 0 }, +}; + +struct aipaths paths[] = { + { path00, 0, 0 }, + { path01, 1, 0 }, + { path02, 2, 0 }, + { path03, 3, 0 }, + { path04, 4, 0 }, + { path05, 5, 0 }, + { path06, 6, 0 }, + { path07, 7, 0 }, + { path08, 8, 0 }, + { path09, 9, 0 }, + { path10, 10, 0 }, + { path11, 11, 0 }, + { path12, 12, 0 }, + { path13, 13, 0 }, + { NULL, 0, 0 }, +}; + diff --git a/src/setup/setupref.c b/src/setup/setupref.c new file mode 100644 index 000000000..a73518a08 --- /dev/null +++ b/src/setup/setupref.c @@ -0,0 +1,41 @@ +// +// Complex (MP) +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + intro_weapon(WEAPON_PP9I, -1) + ammo(AMMOTYPE_PISTOL, 100) + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setuprit.c b/src/setup/setuprit.c new file mode 100644 index 000000000..4a8f96b5d --- /dev/null +++ b/src/setup/setuprit.c @@ -0,0 +1,4089 @@ +// +// Air Force One +// + +#include "../include/setup.h" + +// Characters +#define CHR_ELVIS 0x00 +#define CHR_PRESIDENT 0x18 +#define CHR_PILOT1 0x19 +#define CHR_PILOT2 0x1a +#define CHR_STEWARDESS 0x1b +#define CHR_STEWARD 0x1c +#define CHR_TAKER1 0x2a +#define CHR_TAKER2 0x2b +#define CHR_TRENT 0x32 +#define CHR_BLONDE1 0x33 +#define CHR_BLONDE2 0x34 + +// Objects +#define OBJ_EQUIPMENT 0x00 +#define OBJ_DATAUPLINK_JOANNA 0x01 +#define OBJ_COMMSHUB1 0x02 +#define OBJ_AUTOPILOT_SWITCH 0x03 +#define OBJ_REMOTEMINE_JOANNA 0x04 +#define OBJ_DUMBWAITER1 0x05 +#define OBJ_DUMBWAITER2 0x06 +#define OBJ_DUMBWAITER1_SWITCH 0x07 +#define OBJ_DUMBWAITER2_SWITCH 0x08 +#define OBJ_FLOORHATCH 0x0b +#define OBJ_COCKPITDOOR 0x0e +#define OBJ_DATAUPLINK_VELVET 0x16 +#define OBJ_REMOTEMINE_VELVET 0x17 +#define OBJ_EQUIPMENT_SWITCH 0x1e +#define OBJ_HOVERBIKE_SWITCH 0x21 +#define OBJ_KEYCARD 0x22 +#define OBJ_ESCAPE_POD 0x24 +#define OBJ_EXTERIOR_DOOR 0x25 +#define OBJ_EXTERIOR_DOOR_DETACHED 0x26 +#define OBJ_COMMSHUB2 0x27 +#define OBJ_COMMSHUB3 0x28 +#define OBJ_COMMSHUB4 0x29 +#define OBJ_COMMSHUB5 0x2a +#define OBJ_FLOOR_HATCH_DETACHED 0x2e +#define OBJ_EQUIPMENT_VELVET 0x3a + +// Stage flags +#define STAGEFLAG_POD_DESTROYED 0x00000004 +#define STAGEFLAG_ALL_OBJECTIVES_COMPLETE 0x00000008 +#define STAGEFLAG_PLANE_NOSEDIVING 0x00000010 +#define STAGEFLAG_JOANNA_MINE_WASTED 0x00000020 +#define STAGEFLAG_VELVET_MINE_WASTED 0x00000040 +#define STAGEFLAG_AI_BUDDY_EXISTS 0x00000080 +#define STAGEFLAG_PRESIDENT_STARTED_RUNNING 0x00000100 +#define STAGEFLAG_PRESIDENT_AT_POD 0x00000200 +#define STAGEFLAG_UFO_ATTACHMENT_DAMAGED 0x00000800 +#define STAGEFLAG_KILLED_NEUTRALS 0x00001000 +#define STAGEFLAG_PILOTS_DEAD 0x00002000 +#define STAGEFLAG_PLANE_STABILIZED 0x00004000 +#define STAGEFLAG_AUTOPILOT_DESTROYED 0x00008000 +#define STAGEFLAG_PRESIDENT_DEAD 0x00010000 +#define STAGEFLAG_BOTH_BLONDES_DEAD 0x00020000 +#define STAGEFLAG_ONE_BLONDE_DEAD 0x00040000 +#define STAGEFLAG_PRESIDENT_CALLED_SECURITY 0x00080000 +#define STAGEFLAG_00100000 0x00100000 +#define STAGEFLAG_INTRO_FINISHED 0x00200000 +#define STAGEFLAG_TRIGGER_MIDCUTSCENE 0x00400000 +#define STAGEFLAG_MIDCUTSCENE_FINISHED 0x00800000 +#define STAGEFLAG_EQUIPMENT_RAISED 0x01000000 +#define STAGEFLAG_EQUIPMENT_SWITCH_DESTROYED 0x02000000 +#define STAGEFLAG_BOTH_MINES_WASTED 0x04000000 +#define STAGEFLAG_PRESIDENT_INJURED 0x08000000 +#define STAGEFLAG_PLANE_CRASHED 0x10000000 +#define STAGEFLAG_MIDCUTSCENE_STARTED 0x20000000 + +// Functions +#define FUNC_INIT_STRIPES 0x0401 +#define FUNC_INIT_ELVIS 0x0402 +#define FUNC_STRIPES 0x0403 +#define FUNC_PRESIDENT_RUNNING 0x0404 +#define FUNC_PRESIDENT_IN_ROOM 0x0405 +#define FUNC_INIT_PRESIDENT 0x0406 +#define FUNC_STEWARD 0x0407 +#define FUNC_STEWARDESS 0x0408 +#define FUNC_DEFEND_PAD 0x040a +#define FUNC_DEFEND_PRESIDENT 0x040b +#define FUNC_INIT_DEFEND_PAD 0x040c +#define FUNC_TAKER1 0x040f +#define FUNC_TAKER2 0x0410 +#define FUNC_TYPING_GUY 0x0411 +#define FUNC_SITTING_GUY 0x0412 +#define FUNC_TAKER 0x0413 +#define FUNC_COCKPIT_STRIPES 0x0414 +#define FUNC_CLONER1 0x0415 +#define FUNC_INIT_CLONE1 0x0416 +#define FUNC_CLONE1 0x0417 +#define FUNC_CLONER2 0x0418 +#define FUNC_INIT_CLONE2 0x0419 +#define FUNC_CLONE2 0x041a +#define FUNC_CLONER3 0x041b +#define FUNC_INIT_CLONE3 0x041c +#define FUNC_CLONE3 0x041d +#define FUNC_BLONDE 0x041e +#define FUNC_INIT_BLONDE 0x041f +#define FUNC_TRENT_ATTACKING 0x0420 +#define FUNC_TRENT_WAITING 0x0421 +#define FUNC_TRENT_RUNNING 0x0422 +#define FUNC_OUTRO 0x0423 +#define FUNC_MIDCUTSCENE 0x0424 +#define FUNC_STEWARD_SHOT 0x0425 +#define FUNC_BE_UNALERT 0x0429 +#define FUNC_INIT_NEUTRAL 0x042a +#define FUNC_REINIT_STRIPES 0x042b +#define FUNC_REMOVE_IF_OFFSCREEN 0x042c + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + briefing(0, 0x3601) + briefing(1, 0x3600) + briefing(2, 0x3602) + briefing(3, 0x3603) + + beginobjective(0, 0x3605, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Locate and retrieve equipment" + require_object_collected(OBJ_EQUIPMENT) + fail_flags(STAGEFLAG_EQUIPMENT_SWITCH_DESTROYED) + endobjective + + beginobjective(1, 0x3606, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Locate President" + complete_flags(STAGEFLAG_PRESIDENT_STARTED_RUNNING) + fail_flags(STAGEFLAG_PRESIDENT_CALLED_SECURITY) + endobjective + + beginobjective(2, 0x3607, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Get President to escape capsule" + complete_flags(STAGEFLAG_PRESIDENT_AT_POD) + fail_flags(STAGEFLAG_PRESIDENT_DEAD) + fail_flags(STAGEFLAG_KILLED_NEUTRALS) + fail_flags(STAGEFLAG_POD_DESTROYED) + endobjective + + beginobjective(3, 0x3608, (DIFFBIT_PA | DIFFBIT_PD)) // "Secure Air Force One flight path" + complete_flags(STAGEFLAG_PLANE_STABILIZED) + fail_flags(STAGEFLAG_AUTOPILOT_DESTROYED) + endobjective + + beginobjective(4, 0x3609, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Detach UFO from Air Force One" + complete_flags(STAGEFLAG_UFO_ATTACHMENT_DAMAGED) + fail_flags(STAGEFLAG_BOTH_MINES_WASTED) + fail_flags(STAGEFLAG_PLANE_CRASHED) + endobjective + + chr(0x00000400, 0x32, 0x00be, BODY_TRENT, HEAD_TRENT, GFUNC_IDLE, -1, -1, 200, 8, 0x40018000, 0x00101a00, 0x80, 0x0f, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDY357TRENT, 0x0032, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357LX, 0x00ffffff, 0x00000000) + chr(0x00000400, 0x33, 0x00bc, BODY_MRBLONDE, HEAD_MRBLONDE, GFUNC_IDLE, -1, -1, 200, 100, 0x40018201, 0x00101a00, 0x80, 0x0f, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0033, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000400, 0x34, 0x00bd, BODY_MRBLONDE, HEAD_MRBLONDE, GFUNC_IDLE, -1, -1, 200, 100, 0x40018201, 0x00101a00, 0x80, 0x0f, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0034, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000400, 0x01, 0x008b, BODY_OVERALL, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x008b, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x02, -1, 0, 0x00000000) + chr(0x000044c0, 0x1b, 0x008c, BODY_STEWARDESS, HEAD_RANDOM, FUNC_STEWARDESS, 0x00b2, -1, 2000, 5, 0x40002000, 0x00000101, 0x02, 0x02, -1, 0, 0x00010000) + chr(0x000044c0, 0x1c, 0x00c1, BODY_STEWARD, HEAD_RANDOM, FUNC_STEWARD, 0x001f, -1, 2000, 5, 0x40002000, 0x00000101, 0x02, 0x02, -1, 0, 0x00010000) + chr(0x00000600, 0x04, 0x008e, BODY_OVERALL, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x008e, -1, 1000, 100, 0xc0002000, 0x20000001, 0x02, 0x03, -1, 0, 0x00000000) + chr(0x00000600, 0x05, 0x008f, BODY_OVERALL, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x008f, -1, 1000, 100, 0xc0002000, 0x20000001, 0x02, 0x03, -1, 0, 0x00000000) + chr(0x00000600, 0x06, 0x0090, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x0090, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x04, -1, 0, 0x00000000) + chr(0x00000600, 0x07, 0x0091, BODY_PRES_SECURITY, HEAD_RANDOM, 0x0426, 0x0091, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x04, -1, 0, 0x00000000) + chr(0x00000600, 0x08, 0x0092, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x0092, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x05, -1, 0, 0x00000000) + chr(0x00000600, 0x09, 0x0093, BODY_PRES_SECURITY, HEAD_RANDOM, GFUNC_IDLE, 0x0093, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x05, -1, 0, 0x00000000) + chr(0x00000600, 0x0a, 0x0094, BODY_PRES_SECURITY, HEAD_RANDOM, GFUNC_IDLE, 0x0094, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x05, -1, 0, 0x00000000) + chr(0x00000600, 0x0b, 0x0095, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x0002, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x06, -1, 0, 0x00000000) + chr(0x00000600, 0x0c, 0x0096, BODY_PRES_SECURITY, HEAD_RANDOM, GFUNC_IDLE, 0x0002, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x06, -1, 0, 0x00000000) + chr(0x00000600, 0x0d, 0x0097, BODY_PRES_SECURITY, HEAD_RANDOM, GFUNC_IDLE, 0x0097, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x06, -1, 0, 0x00000000) + chr(0x00000400, 0x0e, 0x0098, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x0003, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x07, -1, 0, 0x00000000) + chr(0x00000400, 0x0f, 0x0099, BODY_PRES_SECURITY, HEAD_RANDOM, 0x0427, 0x0002, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x07, -1, 0, 0x00000000) + chr(0x00000600, 0x10, 0x009a, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x009a, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x07, -1, 0, 0x00000000) + chr(0x00000600, 0x11, 0x009b, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x0004, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x08, -1, 0, 0x00000000) + chr(0x00010400, 0x18, 0x00a0, BODY_PRESIDENT, HEAD_PRESIDENT, GFUNC_IDLE, 0x00a0, -1, 1000, 100, 0x80082000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000) + chr(0x00000600, 0x12, 0x009c, BODY_PRES_SECURITY, HEAD_RANDOM, 0x0428, 0x0003, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x08, -1, 0, 0x00000000) + chr(0x00000600, 0x13, 0x009d, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x0002, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x09, -1, 0, 0x00000000) + chr(0x00000600, 0x14, 0x009e, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x0020, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x09, -1, 0, 0x00000000) + chr(0x00000600, 0x15, 0x009f, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x00bb, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x09, -1, 0, 0x00000000) + chr(0x00004400, 0x16, 0x00ca, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_TYPING_GUY, 0x00b2, -1, 1000, 100, 0x40002000, 0x00000000, 0x02, 0x0a, 0x11, 0, 0x00000000) + chr(0x00004400, 0x17, 0x00c9, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_SITTING_GUY, 0x001f, -1, 1000, 100, 0x40002000, 0x00000000, 0x02, 0x0a, 0x10, 0, 0x00000000) + chr(0x00014401, 0x19, 0x00c7, BODY_PILOTAF1, HEAD_ROSS, FUNC_TYPING_GUY, -1, -1, 1000, 100, 0x40002000, 0x00000000, 0x02, 0x0b, 0x12, 0, 0x00000000) + chr(0x00014401, 0x1a, 0x00c8, BODY_PILOTAF1, HEAD_WONG, FUNC_SITTING_GUY, -1, -1, 1000, 100, 0x40002000, 0x00000000, 0x02, 0x0b, 0x13, 0, 0x00000000) + chr(0x00000000, 0x1d, 0x00a5, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x001d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x1e, 0x00a6, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x001e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x1f, 0x00a7, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x001f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x20, 0x00a8, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0020, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x21, 0x00a9, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0021, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x22, 0x00aa, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0022, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x24, 0x00ac, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0024, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x25, 0x00ad, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0025, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x26, 0x0006, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0026, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x27, 0x0089, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0027, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x28, 0x000d, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0028, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x29, 0x00ae, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0018201, 0x00101a00, 0x02, 0x0f, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0029, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000100, 0x2a, 0x00af, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0092000, 0x00101a00, 0x02, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x002a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000100, 0x2b, 0x00b0, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0092000, 0x00101a00, 0x02, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x002b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x30, 0x006a, BODY_STRIPES, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 200, 100, 0x40018201, 0x00101a00, 0x02, 0x0f, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAVENGER, 0x0030, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x31, 0x0069, BODY_TRENT, HEAD_TRENT, GFUNC_IDLE, -1, -1, 200, 100, 0x40018201, 0x00101a00, 0x02, 0x0f, -1, 0, 0x00000000) + chr(0x00000000, 0x00, 0x008a, BODY_THEKING, HEAD_ELVIS, FUNC_INIT_ELVIS, -1, -1, 200, 100, 0x40018201, 0x00101a00, 0x02, 0x0f, -1, 0, 0x00000000) + chr(0x00000000, 0x35, 0x0088, BODY_STRIPES, HEAD_RANDOM, FUNC_CLONER1, -1, -1, 200, 100, 0x80092000, 0x00381000, 0x02, 0x00, -1, 0, 0x00000000) + chr(0x00000000, 0x36, 0x00b5, BODY_STRIPES, HEAD_RANDOM, FUNC_CLONER2, -1, -1, 200, 100, 0x80092000, 0x00381000, 0x02, 0x00, -1, 0, 0x00000000) + chr(0x00000000, 0x37, 0x00b6, BODY_STRIPES, HEAD_RANDOM, FUNC_CLONER3, -1, -1, 200, 100, 0x80092000, 0x00381000, 0x02, 0x00, -1, 0, 0x00000000) + tag(0x1b, 1) + lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x010b, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x010b, 0x010a, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x15000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x1f, 1) + lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x0110, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0110, 0x0111, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x15000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00d2, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00d3, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00d4, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00d5, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00d6, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00d7, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00d8, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00d9, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00da, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00db, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00dc, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AF1_DOORBIG2, 0x00dd, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AF1_DOORBIG2, 0x00de, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00df, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00e0, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00e1, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00e2, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AF1_DOORBIG2, 0x0100, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AF1_DOORBIG2, 0x0101, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AF1_DOORBIG2, 0x0102, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000020, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_AF1_DOORBIG2, 0x0103, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000020, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + key(0x0080, MODEL_KEYCARD, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000004) + rename_object(-1, 0x49, 0x3637, 0x3638, 0x3639, 0x363a, 0x363b, 0x0000, 0x0000) // "" + key(0x0080, MODEL_KEYCARD, 0x000f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000020) + rename_object(-1, 0x49, 0x3637, 0x3638, 0x3639, 0x363a, 0x363b, 0x0000, 0x0000) // "" + tag(0x22, 1) + key(0x0080, MODEL_KEYCARD, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + rename_object(-1, 0x49, 0x3637, 0x3638, 0x3639, 0x363a, 0x363b, 0x0000, 0x0000) // "" + door(0x0100, MODEL_DD_DR_NONREF, 0x00f5, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00f6, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00f7, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00f8, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00f9, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00fa, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00fb, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00fc, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00fd, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x0c, 1) + door(0x0100, MODEL_DD_DR_NONREF, 0x00e3, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00e4, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x0e, 1) + door(0x0100, MODEL_DD_DR_NONREF, 0x00e5, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000040, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00e6, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00e7, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00e8, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00e9, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x15, 1) + door(0x0100, MODEL_DD_DR_NONREF, 0x00ea, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00eb, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00ec, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00ed, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00ee, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00ef, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00fe, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x25, 1) + door(0x0100, MODEL_AF1ESCAPEDOOR, 0x0105, 0x12000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x26, 1) + door(0x0100, MODEL_AF1ESCAPEDOOR, 0x0106, 0x12000410, 0x00080000, 0x00000000, 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, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x20, 1) + door(0x0100, MODEL_DD_GRATE, 0x00f1, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0000ffff, 0x00014000, 0x00000ccc, 0x00040000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x0b, 1) + door(0x0100, MODEL_DD_GRATE, 0x00f2, 0x00000400, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x08040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x2e, 1) + stdobject(0x0100, MODEL_DD_GRATE, 0x0108, 0x000200e1, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + door(0x0100, MODEL_DD_GRATE, 0x0109, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + stdobject(0x00e6, MODEL_A51_CRATE2, 0x011b, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00a6, MODEL_A51_CRATE2, 0x011c, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x011e, 0x000201e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x01, 1) + weapon(0x0180, MODEL_CHRDATATHIEF, 0x003f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000) + tag(0x16, 1) + weapon(0x0180, MODEL_CHRDATATHIEF, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000) + tag(0x04, 1) + weapon(0x0180, MODEL_CHRREMOTEMINE, 0x003f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TIMEDMINE, 0x00ffffff, 0x00000000) + tag(0x17, 1) + weapon(0x0180, MODEL_CHRREMOTEMINE, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TIMEDMINE, 0x00ffffff, 0x00000000) + tag(0x02, 1) + multimonitor(0x0099, MODEL_COMHUB, 0x0116, 0x0202000a, 0x00002000, 0x00000000, 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(0x27, 1) + multimonitor(0x0099, MODEL_COMHUB, 0x0117, 0x0202000a, 0x00002000, 0x00000000, 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(0x28, 1) + multimonitor(0x0099, MODEL_COMHUB, 0x0118, 0x0202000a, 0x00002000, 0x00000000, 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(0x29, 1) + multimonitor(0x0099, MODEL_COMHUB, 0x0119, 0x0202000a, 0x00002000, 0x00000000, 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(0x2a, 1) + multimonitor(0x0099, MODEL_COMHUB, 0x011a, 0x0202000a, 0x00002000, 0x00000000, 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(0x03, 1) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x0112, 0x100000e2, 0x00000001, 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, 0xffffff12) + tag(0x0f, 3) + tag(0x05, 1) + lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x010c, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x010c, 0x010d, 0xffffffff, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x1b000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00ff, 0x12000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-1, -2, 0, 0) + tag(0x2b, 1) + door(0x0100, MODEL_DD_DR_NONREF, 0x00f4, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DR_NONREF, 0x00f3, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x06, 1) + lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x010f, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x010f, 0x010e, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x1b000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x07, 1) + multimonitor(0x0099, MODEL_COMHUB, 0x0113, 0x00000002, 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(0x08, 1) + multimonitor(0x0099, MODEL_COMHUB, 0x0114, 0x00000002, 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(0x12, 1) + stdobject(0x0100, MODEL_AF1_PILOTCHAIR, 0x013a, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PILOTCHAIR, 0x013b, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x13, 1) + stdobject(0x0100, MODEL_AF1_PILOTCHAIR, 0x013c, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x10, 1) + stdobject(0x0100, MODEL_AF1_PILOTCHAIR, 0x013d, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x11, 1) + stdobject(0x0100, MODEL_AF1_PILOTCHAIR, 0x013e, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PASSCHAIR, 0x011f, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PASSCHAIR, 0x0120, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PASSCHAIR, 0x0121, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PASSCHAIR, 0x0122, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PASSCHAIR, 0x0123, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PASSCHAIR, 0x0124, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PASSCHAIR, 0x0125, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PASSCHAIR, 0x0126, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PASSCHAIR, 0x0127, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PASSCHAIR, 0x0128, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PASSCHAIR, 0x0129, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PASSCHAIR, 0x012a, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PASSCHAIR, 0x012b, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PASSCHAIR, 0x012d, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PASSCHAIR, 0x012e, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PASSCHAIR, 0x012f, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PASSCHAIR, 0x0130, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PASSCHAIR, 0x0131, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PASSCHAIR, 0x0132, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PASSCHAIR, 0x0133, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PASSCHAIR, 0x0134, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PASSCHAIR, 0x0135, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PASSCHAIR, 0x0136, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PASSCHAIR, 0x0137, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PASSCHAIR, 0x0138, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PASSCHAIR, 0x0139, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PASSCHAIR, 0x016a, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x0160, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x0161, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x0162, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x0163, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x0164, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x0165, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x0166, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_TABLE, 0x013f, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_TABLE, 0x0140, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_TABLE, 0x0141, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_TABLE, 0x0142, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_TABLE, 0x0143, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_TABLE, 0x0144, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_TABLE, 0x0145, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_TABLE, 0x0146, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_TABLE, 0x0147, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_TABLE, 0x0148, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_TABLE, 0x0149, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_TABLE, 0x014a, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_TABLE, 0x014b, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_TABLE, 0x014c, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_TABLE, 0x014d, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_TABLE, 0x014e, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_TABLE, 0x014f, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_TABLE, 0x0150, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_TABLE, 0x0151, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_TABLE, 0x0152, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_TABLE, 0x0169, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_TOILET, 0x0153, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_TOILET, 0x0154, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_LAMP, 0x0156, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_LAMP, 0x0157, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_LAMP, 0x0158, 0x000005e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_LAMP, 0x0159, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_LAMP, 0x015a, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_LAMP, 0x015b, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_AF1_PASSCHAIR, 0x015e, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x19, 1) + stdobject(0x0100, MODEL_SK_SHUTTLE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x37, 1) + stdobject(0x0100, MODEL_AIRFORCE1, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x1a, 1) + stdobject(0x0100, MODEL_ELVIS_SAUCER, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x23, 1) + stdobject(0x0019, MODEL_SAUCERINSIDE, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_HOVBIKE, 0x00c0, 0x05120101, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + door(0x0100, MODEL_DOOR2A_G5, 0x0104, 0x10000400, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x1c, 1) + door(0x0100, MODEL_DD_GRATE, 0x00f0, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x1e, 1) + singlemonitor(0x0100, MODEL_GOODSTATION, 0x0168, 0x000004e1, 0x00000001, 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, 0xffffff03) + tag(0x21, 1) + singlemonitor(0x0100, MODEL_GOODSTATION, 0x0167, 0x000004e1, 0x00000001, 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, 0xffffff03) + tag(0x00, 1) + weapon(0x0180, MODEL_CHRBRIEFCASE, 0x00b3, 0x00000101, 0x00000000, 0x00400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUITCASE, 0x00ffffff, 0x00000000) + rename_object(-1, 0x4d, 0x360a, 0x360b, 0x360c, 0x360d, 0x360e, 0x0000, 0x0000) // "Obtain Suitcase." + tag(0x3a, 1) + weapon(0x0180, MODEL_CHRBRIEFCASE, 0xffff, 0x00000101, 0x00000000, 0x00400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUITCASE, 0x00ffffff, 0x00000000) + rename_object(-1, 0x4d, 0x360a, 0x360b, 0x360c, 0x360d, 0x360e, 0x0000, 0x0000) // "Obtain Suitcase." + tag(0x24, 1) + stdobject(0x0100, MODEL_PRESCAPSULE, 0x0171, 0x000001e1, 0x00004101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00007d00, 0x00000000, 0x00000000, 0x0fff0000) + glass(0x0100, MODEL_WINDOW, 0x016d, 0x04000262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x016e, 0x04000262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x016f, 0x04000262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_WINDOW, 0x0170, 0x04000262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x2f, 5) + tag(0x30, 6) + tag(0x31, 7) + tag(0x32, 8) + link_scenery(1, 0, 0) + debris(0x0019, MODEL_AF1RUBBLE, 0x00ce, 0x03520401, 0x00186300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x0fff0000) + link_scenery(1, 0, 0) + debris(0x0019, MODEL_AF1RUBBLE, 0x00cf, 0x03520401, 0x00186300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x0fff0000) + link_scenery(1, 0, 0) + debris(0x0019, MODEL_AF1RUBBLE, 0x00d0, 0x03520401, 0x00186300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x0fff0000) + link_scenery(1, 0, 0) + debris(0x0019, MODEL_AF1RUBBLE, 0x00d1, 0x03520401, 0x00186300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x33, 4) + tag(0x34, 4) + tag(0x35, 4) + tag(0x36, 4) + weapon(0x0100, MODEL_CHRREMOTEMINE, 0x00ce, 0x01320401, 0x000a6000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REMOTEMINE, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRREMOTEMINE, 0x00cf, 0x01320401, 0x000a6000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REMOTEMINE, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRREMOTEMINE, 0x00d0, 0x01320401, 0x000a6000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REMOTEMINE, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRREMOTEMINE, 0x00d1, 0x01320401, 0x000a6000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REMOTEMINE, 0x00ffffff, 0x00000000) + tag(0x2c, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x016c, 0x00420101, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000) + tag(0x2d, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x016b, 0x00420101, 0x000000c0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000) + tag(0x38, 2) + tag(0x39, 2) + weapon(0x0180, MODEL_CHRCYCLONE, 0x00cb, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CYCLONE, 0x00ffffff, 0x00000000) + weapon(0x0180, MODEL_CHRCYCLONE, 0x00cc, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CYCLONE, 0x00ffffff, 0x00000000) + link_collectibles(-1, -2) + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_STEWARDESS) + ammo(AMMOTYPE_CROSSBOW, 10) + ammo(AMMOTYPE_SMG, 100) + intro_weapon(WEAPON_UNARMED, -1) + intro_weapon(WEAPON_COMBATBOOST, -1) + ammo(AMMOTYPE_BOOST, 2) + spawn(0x008a) + endintro +}; + +s32 path00[] = { + 0x0034, + 0x0033, + 0x0031, + 0x0030, + 0x0031, + 0x0033, + 0x0034, + -1, +}; + +s32 path01[] = { + 0x000d, + 0x000e, + 0x000b, + 0x0012, + 0x0007, + 0x0006, + 0x0010, + 0x000c, + -1, +}; + +s32 path02[] = { + 0x003e, + 0x0044, + 0x0042, + 0x0040, + 0x003f, + 0x003d, + 0x003e, + 0x004d, + -1, +}; + +u8 func1001_objectives_failed_msg[] = { + yield + set_chr_flag_bank3(CHR_PRESIDENT, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_STEWARDESS, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_STEWARD, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_PILOT1, CHRFLAG3_04000000) + set_chr_flag_bank3(CHR_PILOT2, CHRFLAG3_04000000) + set_chr_flag_bank3(0x01, CHRFLAG3_04000000) + set_chr_flag_bank3(0x02, CHRFLAG3_04000000) + set_chr_flag_bank3(0x03, CHRFLAG3_04000000) + set_chr_flag_bank3(0x04, CHRFLAG3_04000000) + set_chr_flag_bank3(0x05, CHRFLAG3_04000000) + set_chr_flag_bank3(0x06, CHRFLAG3_04000000) + set_chr_flag_bank3(0x07, CHRFLAG3_04000000) + set_chr_flag_bank3(0x08, CHRFLAG3_04000000) + set_chr_flag_bank3(0x09, CHRFLAG3_04000000) + set_chr_flag_bank3(0x0a, CHRFLAG3_04000000) + set_chr_flag_bank3(0x0b, CHRFLAG3_04000000) + set_chr_flag_bank3(0x0c, CHRFLAG3_04000000) + set_chr_flag_bank3(0x0d, CHRFLAG3_04000000) + set_chr_flag_bank3(0x0e, CHRFLAG3_04000000) + set_chr_flag_bank3(0x0f, CHRFLAG3_04000000) + set_chr_flag_bank3(0x10, CHRFLAG3_04000000) + set_chr_flag_bank3(0x11, CHRFLAG3_04000000) + set_chr_flag_bank3(0x12, CHRFLAG3_04000000) + set_chr_flag_bank3(0x13, CHRFLAG3_04000000) + set_chr_flag_bank3(0x14, CHRFLAG3_04000000) + set_chr_flag_bank3(0x15, CHRFLAG3_04000000) + set_chr_flag_bank3(0x16, CHRFLAG3_04000000) + set_chr_flag_bank3(0x17, CHRFLAG3_04000000) + set_function(CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG) + endfunction +}; + +u8 func1400_setup_counterop[] = { + yield + yield + yield + set_chr_alliance(CHR_COUNTEROP, 0x04) + chr_draw_weapon(CHR_JOANNA, WEAPON_UNARMED) + chr_draw_weapon(CHR_VELVET, WEAPON_UNARMED) + set_function(CHR_SELF, GFUNC_REBUILD_GROUPS) + endfunction +}; + +u8 func1003_rebuild_groups[] = { + set_function(CHR_SELF, GFUNC_REBUILD_GROUPS) + endfunction +}; + +u8 func1024_give_objects[] = { + if_difficulty_gt(DIFF_A, /*goto*/ 0x2d) + give_object_to_chr(OBJ_EQUIPMENT, CHR_JOANNA) + give_object_to_chr(OBJ_EQUIPMENT_VELVET, CHR_VELVET) + + label(0x2d) + set_object_flag_bank1(OBJ_DATAUPLINK_JOANNA, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank0(OBJ_DATAUPLINK_JOANNA, OBJECTFLAG0_00100000) + set_object_flag_bank1(OBJ_REMOTEMINE_JOANNA, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank0(OBJ_REMOTEMINE_JOANNA, OBJECTFLAG0_00100000) + set_object_flag_bank1(OBJ_DATAUPLINK_VELVET, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank0(OBJ_DATAUPLINK_VELVET, OBJECTFLAG0_00100000) + set_object_flag_bank1(OBJ_REMOTEMINE_VELVET, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank0(OBJ_REMOTEMINE_VELVET, OBJECTFLAG0_00100000) + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_has_object(CHR_P1P2, OBJ_EQUIPMENT, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + give_object_to_chr(OBJ_DATAUPLINK_JOANNA, CHR_JOANNA) + give_object_to_chr(OBJ_REMOTEMINE_JOANNA, CHR_JOANNA) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x2d) + give_object_to_chr(OBJ_DATAUPLINK_VELVET, CHR_VELVET) + give_object_to_chr(OBJ_REMOTEMINE_VELVET, CHR_VELVET) + label(0x2d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1004_reassign_functions_during_conversation[] = { + // Wait until player in president's room + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0055, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0056, /*goto*/ 0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x0057, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + dprint 'b','4',' ','s','h','i','e','l','d',' ','c','h','e','c','k','\n',0, + set_stage_flag(STAGEFLAG_00100000) + set_chr_target_chr(CHR_PRESIDENT, CHR_P1P2) + set_function(0x01, FUNC_BE_UNALERT) + set_function(CHR_STEWARDESS, FUNC_BE_UNALERT) + set_function(CHR_STEWARD, FUNC_BE_UNALERT) + set_function(0x04, FUNC_BE_UNALERT) + set_function(0x05, FUNC_BE_UNALERT) + set_function(0x06, FUNC_BE_UNALERT) + set_function(0x07, FUNC_BE_UNALERT) + set_function(0x08, FUNC_BE_UNALERT) + set_function(0x09, FUNC_BE_UNALERT) + set_function(0x0a, FUNC_BE_UNALERT) + set_function(0x0b, FUNC_BE_UNALERT) + set_function(0x0c, FUNC_BE_UNALERT) + set_function(0x0d, FUNC_BE_UNALERT) + set_function(0x0e, FUNC_BE_UNALERT) + set_function(0x0f, FUNC_BE_UNALERT) + set_function(0x10, FUNC_BE_UNALERT) + set_function(0x11, FUNC_BE_UNALERT) + set_function(0x12, FUNC_BE_UNALERT) + set_function(0x13, FUNC_BE_UNALERT) + set_function(0x14, FUNC_BE_UNALERT) + set_function(0x15, FUNC_BE_UNALERT) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1005_check_neutrals_killed[] = { + set_chr_flag_bank3(0x01, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x04, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x05, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x06, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x07, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x08, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x09, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x0a, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x0b, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x0c, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x0d, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x0e, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x0f, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x10, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x11, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x12, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x13, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x14, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x15, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x16, CHRFLAG3_KILLCOUNTABLE) + set_chr_flag_bank3(0x17, CHRFLAG3_KILLCOUNTABLE) + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_PRESIDENT_STARTED_RUNNING, TRUE, /*goto*/ 0x06) + if_kill_count_gt(0, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + message(CHR_JOANNA, 0x3614) // "Too many neutral casualties inflicted." + set_stage_flag(STAGEFLAG_KILLED_NEUTRALS) + + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0401_init_stripes[] = { + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_HIDDEN) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0402_init_elvis[] = { + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_HIDDEN) + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_UNEXPLODABLE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1006_hijack[] = { + yield + hide_chr(0x1d) + hide_chr(0x1e) + hide_chr(0x1f) + hide_chr(0x20) + hide_chr(0x21) + hide_chr(0x22) + hide_chr(0x23) + hide_chr(0x24) + hide_chr(0x25) + hide_chr(0x26) + hide_chr(0x27) + hide_chr(0x28) + hide_chr(0x29) + hide_chr(CHR_TAKER1) + hide_chr(CHR_TAKER2) + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_PRESIDENT_STARTED_RUNNING, TRUE, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + cmd01da(0x35) + set_chr_health(0x01, 10) + set_chr_health(0x04, 10) + set_chr_health(0x05, 10) + set_chr_health(0x06, 10) + set_chr_health(0x07, 10) + set_chr_health(0x08, 10) + set_chr_health(0x09, 10) + set_chr_health(0x0a, 10) + set_chr_health(0x0b, 10) + set_chr_health(0x0c, 10) + set_chr_health(0x0d, 10) + set_chr_health(0x0e, 10) + set_chr_health(0x0f, 10) + set_chr_health(0x10, 10) + set_chr_health(0x16, 10) + set_chr_health(0x17, 10) + set_chr_health(CHR_PILOT1, 10) + set_chr_health(CHR_PILOT2, 10) + set_function(0x01, FUNC_REMOVE_IF_OFFSCREEN) + yield + set_function(CHR_STEWARDESS, FUNC_REMOVE_IF_OFFSCREEN) + yield + set_function(CHR_STEWARD, FUNC_REMOVE_IF_OFFSCREEN) + yield + set_function(0x04, FUNC_REMOVE_IF_OFFSCREEN) + yield + set_function(0x05, FUNC_REMOVE_IF_OFFSCREEN) + yield + set_function(0x06, FUNC_REMOVE_IF_OFFSCREEN) + yield + set_function(0x07, FUNC_REMOVE_IF_OFFSCREEN) + yield + set_function(0x08, FUNC_REMOVE_IF_OFFSCREEN) + yield + set_function(0x09, FUNC_REMOVE_IF_OFFSCREEN) + yield + set_function(0x0a, FUNC_REMOVE_IF_OFFSCREEN) + yield + set_function(0x0b, FUNC_REMOVE_IF_OFFSCREEN) + yield + set_function(0x0c, FUNC_REMOVE_IF_OFFSCREEN) + yield + set_function(0x0d, FUNC_REMOVE_IF_OFFSCREEN) + yield + set_function(0x10, FUNC_REMOVE_IF_OFFSCREEN) + yield + set_function(0x12, FUNC_REMOVE_IF_OFFSCREEN) + yield + set_function(0x13, FUNC_REMOVE_IF_OFFSCREEN) + yield + set_function(0x15, FUNC_REMOVE_IF_OFFSCREEN) + yield + set_function(0x16, FUNC_REMOVE_IF_OFFSCREEN) + yield + set_function(0x17, FUNC_REMOVE_IF_OFFSCREEN) + set_function(0x0e, FUNC_INIT_DEFEND_PAD) + set_function(0x0f, FUNC_INIT_DEFEND_PAD) + set_function(0x11, FUNC_INIT_DEFEND_PAD) + set_function(0x14, FUNC_INIT_DEFEND_PAD) + yield + + #define enable_stripes_chr(chr, function) \ + show_chr(chr) \ + set_function(chr, function) \ + unset_chr_flag_bank3(chr, CHRFLAG3_HIDDEN) \ + set_chr_flag_bank2(chr, CHRFLAG2_00400000) \ + yield + + + + enable_stripes_chr(0x1d, FUNC_REINIT_STRIPES) + enable_stripes_chr(0x1e, FUNC_REINIT_STRIPES) + enable_stripes_chr(0x1f, FUNC_REINIT_STRIPES) + enable_stripes_chr(0x20, FUNC_REINIT_STRIPES) + enable_stripes_chr(0x21, FUNC_REINIT_STRIPES) + enable_stripes_chr(0x22, FUNC_REINIT_STRIPES) + enable_stripes_chr(0x23, FUNC_REINIT_STRIPES) + enable_stripes_chr(0x24, FUNC_REINIT_STRIPES) + enable_stripes_chr(0x25, FUNC_REINIT_STRIPES) + enable_stripes_chr(0x26, FUNC_REINIT_STRIPES) + enable_stripes_chr(0x27, FUNC_REINIT_STRIPES) + enable_stripes_chr(0x28, FUNC_REINIT_STRIPES) + enable_stripes_chr(0x29, FUNC_COCKPIT_STRIPES) + enable_stripes_chr(CHR_TAKER1, FUNC_TAKER2) + enable_stripes_chr(CHR_TAKER2, FUNC_TAKER1) + + set_chr_flag_bankx(0x01, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(CHR_STEWARDESS, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(CHR_STEWARD, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x04, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x05, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x06, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x07, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x08, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x09, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x0a, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x0b, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x0c, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x0d, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x0e, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x0f, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x10, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x11, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x12, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x13, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x14, CHRFLAG0_AIVSAI, BANK_0) + set_chr_flag_bankx(0x15, CHRFLAG0_AIVSAI, BANK_0) + set_chr_alliance(CHR_TRENT, 0x04) + set_chr_alliance(CHR_BLONDE1, 0x04) + set_chr_alliance(CHR_BLONDE2, 0x04) + unset_chr_flag_bank2(CHR_TRENT, CHRFLAG2_40000000) + unset_chr_flag_bank2(CHR_BLONDE1, CHRFLAG2_40000000) + unset_chr_flag_bank2(CHR_BLONDE2, CHRFLAG2_40000000) + unlock_door(OBJ_COCKPITDOOR, 0x40) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + unset_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_DISGUISED) + unset_chr_flag_bank2(CHR_VELVET, CHRFLAG2_DISGUISED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0403_stripes[] = { + set_return_function(CHR_SELF, FUNC_STRIPES) + set_self_flag_bank3(CHRFLAG3_00000040) + + beginloop(0x04) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x06) + + // No target nearby + yield + unset_self_flag_bankx(CHRFLAG1_00001000, BANK_1) + stop_chr + set_function(CHR_SELF, GFUNC_UNALERTED) + + // Got target + label(0x06) + if_chr_lost_track_of_target_maybe(/*goto*/ 0x06) + if_chr_dying(TARGET_CHR, /*goto*/ 0x2d) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0x2d) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0x2d) + set_return_function(CHR_SELF, FUNC_STRIPES) + set_onshot_function(FUNC_STRIPES) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + + label(0x06) + unset_self_flag_bankx(CHRFLAG1_00001000, BANK_1) + set_function(CHR_SELF, GFUNC_UNALERTED) + set_return_function(CHR_SELF, GFUNC_UNALERTED) + + label(0x2d) + set_target_chr(-1) + stop_chr + endloop(0x04) + + endfunction +}; + +u8 unregistered_function1[] = { + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +#define check_mine_wasted(chr1, chr2, myflag, buddyflag) \ + set_object_flag_bank0(OBJ_COMMSHUB1, OBJECTFLAG0_00002000) \ + set_object_flag_bank0(OBJ_COMMSHUB2, OBJECTFLAG0_00002000) \ + set_object_flag_bank0(OBJ_COMMSHUB3, OBJECTFLAG0_00002000) \ + set_object_flag_bank0(OBJ_COMMSHUB4, OBJECTFLAG0_00002000) \ + set_object_flag_bank0(OBJ_COMMSHUB5, OBJECTFLAG0_00002000) \ + yield \ + yield \ + if_difficulty_lt(DIFF_SA, /*goto*/ 0x06) \ + \ + /* Wait until equipment collected */ \ + beginloop(0x93) \ + if_objective_complete(0, /*goto*/ 0x06) \ + endloop(0x93) \ + \ + label(0x06) \ + yield \ + yield \ + yield \ + yield \ + yield \ + label(0x08) \ + set_target_chr(chr1) \ + \ + /* Wait until mine thrown */ \ + beginloop(0x09) \ + if_ammo_quantity_lt(chr2, AMMOTYPE_TIMED_MINE, 1, /*goto*/ 0x2d) \ + endloop(0x09) \ + \ + label(0x2d) \ + if_stage_flag_eq(STAGEFLAG_MIDCUTSCENE_FINISHED, FALSE, /*goto*/ 0x0a) \ + label(0x2d) \ + unset_object_flag_bank0(OBJ_COMMSHUB1, OBJECTFLAG0_INVINCIBLE) \ + unset_object_flag_bank0(OBJ_COMMSHUB2, OBJECTFLAG0_INVINCIBLE) \ + unset_object_flag_bank0(OBJ_COMMSHUB3, OBJECTFLAG0_INVINCIBLE) \ + unset_object_flag_bank0(OBJ_COMMSHUB4, OBJECTFLAG0_INVINCIBLE) \ + unset_object_flag_bank0(OBJ_COMMSHUB5, OBJECTFLAG0_INVINCIBLE) \ + restart_timer \ + \ + /* Wait 8.3 seconds or until commshub destroyed */ \ + beginloop(0x04) \ + if_timer_gt(500, /*goto*/ 0x0a) \ + if_object_in_good_condition(OBJ_COMMSHUB1, /*goto*/ 0x2d) \ + goto_next(0x06) \ + \ + label(0x2d) \ + if_object_in_good_condition(OBJ_COMMSHUB2, /*goto*/ 0x2d) \ + goto_next(0x06) \ + \ + label(0x2d) \ + if_object_in_good_condition(OBJ_COMMSHUB3, /*goto*/ 0x2d) \ + goto_next(0x06) \ + \ + label(0x2d) \ + if_object_in_good_condition(OBJ_COMMSHUB4, /*goto*/ 0x2d) \ + goto_next(0x06) \ + \ + label(0x2d) \ + if_object_in_good_condition(OBJ_COMMSHUB5, /*goto*/ 0x2d) \ + goto_next(0x06) \ + \ + label(0x2d) \ + endloop(0x04) \ + \ + /* Commshub damaged */ \ + label(0x06) \ + message(CHR_JOANNA, 0x3615) /* "UFO attachment damaged." */ \ + set_stage_flag(STAGEFLAG_UFO_ATTACHMENT_DAMAGED) \ + unset_stage_flag(STAGEFLAG_BOTH_MINES_WASTED) \ + set_function(CHR_SELF, GFUNC_IDLE) \ + \ + /* Mine wasted */ \ + label(0x0a) \ + set_stage_flag(myflag) \ + if_stage_flag_eq(buddyflag, TRUE, /*goto*/ 0x2d) \ + set_function(CHR_SELF, GFUNC_IDLE) \ + \ + label(0x2d) \ + message(CHR_JOANNA, 0x3645) /* "Timed mine has been wasted." */ \ + set_stage_flag(STAGEFLAG_BOTH_MINES_WASTED) \ + set_function(CHR_SELF, GFUNC_IDLE) + + + +u8 func1008_check_mine_wasted_joanna[] = { + check_mine_wasted(CHR_JOANNA, TARGET_CHR, STAGEFLAG_JOANNA_MINE_WASTED, STAGEFLAG_VELVET_MINE_WASTED) + endfunction +}; + +u8 func1021_check_mine_wasted_velvet[] = { + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x2d) + goto_next(0x06) + label(0x2d) + set_stage_flag(STAGEFLAG_VELVET_MINE_WASTED) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x06) + check_mine_wasted(CHR_VELVET, CHR_VELVET, STAGEFLAG_VELVET_MINE_WASTED, STAGEFLAG_JOANNA_MINE_WASTED) + endfunction +}; + +u8 func101e_blow_mines[] = { + // Wait for any commshub destroyed + beginloop(0x04) + if_object_in_good_condition(OBJ_COMMSHUB1, /*goto*/ 0x2d) + goto_next(0x06) + + label(0x2d) + if_object_in_good_condition(OBJ_COMMSHUB2, /*goto*/ 0x2d) + goto_next(0x06) + + label(0x2d) + if_object_in_good_condition(OBJ_COMMSHUB3, /*goto*/ 0x2d) + goto_next(0x06) + + label(0x2d) + if_object_in_good_condition(OBJ_COMMSHUB4, /*goto*/ 0x2d) + goto_next(0x06) + + label(0x2d) + if_object_in_good_condition(OBJ_COMMSHUB5, /*goto*/ 0x2d) + goto_next(0x06) + + label(0x2d) + endloop(0x04) + + label(0x06) + + // 1 + unset_object_flag_bank0(0x2f, OBJECTFLAG0_INVINCIBLE) + unset_object_flag_bank1(0x33, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank0(0x33, OBJECTFLAG0_INVINCIBLE) + destroy_object(0x33) + restart_timer + + beginloop(0x60) + if_timer_gt(60, /*goto*/ 0x2d) + endloop(0x60) + + label(0x2d) + unset_object_flag_bank1(0x2f, OBJECTFLAG1_INVISIBLE) + destroy_object(0x2f) + + // 2 + unset_object_flag_bank0(0x30, OBJECTFLAG0_INVINCIBLE) + unset_object_flag_bank1(0x34, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank0(0x34, OBJECTFLAG0_INVINCIBLE) + destroy_object(0x34) + restart_timer + + beginloop(0x77) + if_timer_gt(60, /*goto*/ 0x2d) + endloop(0x77) + + label(0x2d) + unset_object_flag_bank1(0x30, OBJECTFLAG1_INVISIBLE) + destroy_object(0x30) + + // 3 + unset_object_flag_bank0(0x31, OBJECTFLAG0_INVINCIBLE) + unset_object_flag_bank1(0x35, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank0(0x35, OBJECTFLAG0_INVINCIBLE) + destroy_object(0x35) + restart_timer + + beginloop(0x78) + if_timer_gt(60, /*goto*/ 0x2d) + endloop(0x78) + + label(0x2d) + unset_object_flag_bank1(0x31, OBJECTFLAG1_INVISIBLE) + destroy_object(0x31) + + // 4 + unset_object_flag_bank0(0x32, OBJECTFLAG0_INVINCIBLE) + unset_object_flag_bank1(0x36, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank0(0x36, OBJECTFLAG0_INVINCIBLE) + destroy_object(0x36) + restart_timer + + beginloop(0x79) + if_timer_gt(60, /*goto*/ 0x2d) + endloop(0x79) + + label(0x2d) + unset_object_flag_bank1(0x32, OBJECTFLAG1_INVISIBLE) + destroy_object(0x32) + + yield + hide_object(0x2f) + hide_object(0x30) + hide_object(0x31) + hide_object(0x32) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1009_check_end_level[] = { + beginloop(0x04) + if_all_objectives_complete(/*goto*/ 0x06) + endloop(0x04) + + label(0x06) + set_stage_flag(STAGEFLAG_ALL_OBJECTIVES_COMPLETE) + restart_timer + label(0x08) + yield + label(0x06) + 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) + + // Both players dead + label(0x2d) + set_function(CHR_SELF, GFUNC_IDLE) + + // Redundant check + label(0x06) + 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) + + // Mission complete + label(0x06) + set_invincible(CHR_JOANNA) + set_function(CHR_SELF, FUNC_OUTRO) + endfunction +}; + +u8 func100a_autopilot_switch[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_object_in_good_condition(OBJ_AUTOPILOT_SWITCH, /*goto*/ 0x2d) + goto_next(0x08) + + label(0x2d) + if_chr_activated_object(CHR_P1P2, OBJ_AUTOPILOT_SWITCH, /*goto*/ 0x2d) + if_stage_flag_eq(STAGEFLAG_PLANE_STABILIZED, TRUE, /*goto*/ 0x2d) + reloop(0x04) + + label(0x2d) + label(0x06) + if_stage_flag_eq(STAGEFLAG_PLANE_NOSEDIVING, TRUE, /*goto*/ 0x06) + endloop(0x04) + + // Switch pressed + label(0x06) + assign_sound(0x043a, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_AUTOPILOT_SWITCH, TRUE) + set_object_image(OBJ_AUTOPILOT_SWITCH, 0x00, 0x13) + set_stage_flag(STAGEFLAG_PLANE_STABILIZED) + yield + message(CHR_P1P2, 0x3618) // "Air Force One has been stabilized." + message(CHR_P1P2, 0x3617) // "Autopilot has been activated." + restart_timer + + beginloop(0x0e) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x0e) + + label(0x06) + set_lighting(0x0000, 0x0d, 0x00) + set_function(CHR_SELF, GFUNC_IDLE) + + // Switch destroyed + label(0x08) + message(CHR_P1P2, 0x3619) // "Autopilot systems have been destroyed." + set_stage_flag(STAGEFLAG_AUTOPILOT_DESTROYED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0406_init_president[] = { + set_chr_health(CHR_SELF, 0) + set_function(CHR_SELF, FUNC_PRESIDENT_IN_ROOM) + endfunction +}; + +u8 func0405_president_in_room[] = { + set_onshot_function(FUNC_PRESIDENT_IN_ROOM) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2d) + if_chr_dying(CHR_SELF, /*goto*/ 0x2d) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2d) + goto_next(0x06) + + // Dying + label(0x2d) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x06) + stop_chr + yield + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_00100000, TRUE, /*goto*/ 0x03) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2d) + if_chr_dying(CHR_SELF, /*goto*/ 0x2d) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2d) + endloop(0x04) + + // Dying + label(0x2d) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x03) + set_target_chr(FOLLOW_CHR) + restart_timer + label(0x08) + try_face_entity(0x0200, 0x0000, /*goto*/ 0x09) + + beginloop(0x09) + // Wait for Carrington's "on this level" message to finish + if_sound_finished(CHANNEL_6, /*goto*/ 0x2d) + reloop(0x09) + + label(0x2d) + if_angle_to_target_chr_lt(10, /*goto*/ 0x06) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + do_special_animation(0) + speak(TARGET_CHR, 0x3623, 0x12c5, CHANNEL_6, COLOR_08_RED) // "Who are you, young lady?" + restart_timer + + beginloop(0x60) + if_chr_in_room(TARGET_CHR, 0x00, 0x0055, /*goto*/ 0x2d) + if_chr_in_room(TARGET_CHR, 0x00, 0x0056, /*goto*/ 0x2d) + if_chr_in_room(TARGET_CHR, 0x00, 0x0057, /*goto*/ 0x2d) + if_chr_sees_player(/*goto*/ 0x2d) + goto_next(0x86) + + label(0x2d) + if_shot_near_chr(0x00, /*goto*/ 0x86) + if_hears_gunfire(/*goto*/ 0x86) + if_timer_lt(120, /*goto*/ 0x2d) + if_chr_in_view(/*goto*/ 0x06) + label(0x2d) + endloop(0x60) + + label(0x06) + speak(TARGET_CHR, 0x3625, 0x72bc, CHANNEL_7, COLOR_09_BLUE) // "Mr. President, you're in danger. Trent is trying t..." + restart_timer + stop_chr + try_face_entity(0x0200, 0x0000, /*goto*/ 0x78) + + // In this loop the president will continue to turn to face the player + // because it lacks an if_angle_to_target_chr_lt check. + beginloop(0x78) + if_chr_in_room(TARGET_CHR, 0x00, 0x0055, /*goto*/ 0x2d) + if_chr_in_room(TARGET_CHR, 0x00, 0x0056, /*goto*/ 0x2d) + if_chr_in_room(TARGET_CHR, 0x00, 0x0057, /*goto*/ 0x2d) + if_chr_sees_player(/*goto*/ 0x2d) + goto_next(0x86) + + label(0x2d) + if_shot_near_chr(0x00, /*goto*/ 0x86) + if_hears_gunfire(/*goto*/ 0x86) + if_timer_lt(240, /*goto*/ 0x2d) + if_chr_in_view(/*goto*/ 0x06) + label(0x2d) + endloop(0x78) + + label(0x06) + do_special_animation(1) + speak(TARGET_CHR, 0x3628, 0x12c6, CHANNEL_6, COLOR_08_RED) // "You can't make accusations like that without evide..." + restart_timer + + beginloop(0x79) + if_chr_in_room(TARGET_CHR, 0x00, 0x0055, /*goto*/ 0x2d) + if_chr_in_room(TARGET_CHR, 0x00, 0x0056, /*goto*/ 0x2d) + if_chr_in_room(TARGET_CHR, 0x00, 0x0057, /*goto*/ 0x2d) + if_chr_sees_player(/*goto*/ 0x2d) + goto_next(0x86) + + label(0x2d) + if_shot_near_chr(0x00, /*goto*/ 0x86) + if_hears_gunfire(/*goto*/ 0x86) + if_timer_lt(400, /*goto*/ 0x2d) + goto_next(0x84) + + label(0x2d) + endloop(0x79) + + label(0x84) + if_chr_has_object(TARGET_CHR, OBJ_EQUIPMENT, /*goto*/ 0x10) + if_chr_has_object(TARGET_CHR, OBJ_EQUIPMENT_VELVET, /*goto*/ 0x10) + + // No equipment + label(0x85) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_DISGUISE_UNCOVERED) + set_chr_flag_bank2(CHR_VELVET, CHRFLAG2_DISGUISE_UNCOVERED) + speak(TARGET_CHR, 0x3624, 0x12c4, CHANNEL_6, COLOR_08_RED) // "Security, SECURITY!!" + restart_timer + animation(0x0231, 0, 193, 0x1810, CHR_SELF, 2) + + beginloop(0x77) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x77) + + label(0x06) + set_function(0x01, GFUNC_UNALERTED) + set_function(CHR_STEWARDESS, GFUNC_UNALERTED) + set_function(CHR_STEWARD, GFUNC_UNALERTED) + set_function(0x04, GFUNC_UNALERTED) + set_function(0x05, GFUNC_UNALERTED) + set_function(0x06, GFUNC_UNALERTED) + set_function(0x07, GFUNC_UNALERTED) + set_function(0x08, GFUNC_UNALERTED) + set_function(0x09, GFUNC_UNALERTED) + set_function(0x0a, GFUNC_UNALERTED) + set_function(0x0b, GFUNC_UNALERTED) + set_function(0x0c, GFUNC_UNALERTED) + set_function(0x0d, GFUNC_UNALERTED) + set_function(0x0e, GFUNC_UNALERTED) + set_function(0x0f, GFUNC_UNALERTED) + set_function(0x10, GFUNC_UNALERTED) + set_function(0x11, GFUNC_UNALERTED) + set_function(0x12, GFUNC_UNALERTED) + set_function(0x13, GFUNC_UNALERTED) + set_function(0x14, GFUNC_UNALERTED) + set_function(0x15, GFUNC_UNALERTED) + set_stage_flag(STAGEFLAG_PRESIDENT_CALLED_SECURITY) + yield + set_group_alertness(100) + try_face_entity(0x0200, 0x0000, /*goto*/ 0x0a) + + beginloop(0x0a) + endloop(0x0a) + + label(0x06) + + // Has equipment + label(0x10) + stop_chr + speak(TARGET_CHR, 0x3629, 0x72bd, CHANNEL_6, COLOR_09_BLUE) // "This is a recording of a meeting between Trent and..." + restart_timer + try_face_entity(0x0200, 0x0000, /*goto*/ 0x0b) + + // This loop uses an if_sound_finished check rather than a timer check, + // which allows the speech to be skipped. + beginloop(0x0b) + if_chr_in_room(TARGET_CHR, 0x00, 0x0055, /*goto*/ 0x2d) + if_chr_in_room(TARGET_CHR, 0x00, 0x0056, /*goto*/ 0x2d) + if_chr_in_room(TARGET_CHR, 0x00, 0x0057, /*goto*/ 0x2d) + if_chr_sees_player(/*goto*/ 0x2d) + goto_next(0x86) + + label(0x2d) + if_shot_near_chr(0x00, /*goto*/ 0x86) + if_hears_gunfire(/*goto*/ 0x86) + if_sound_finished(CHANNEL_6, /*goto*/ 0x06) + goto_first(0x0b) + + label(0x06) + do_special_animation(2) + speak(TARGET_CHR, 0x362a, 0x12c7, CHANNEL_6, COLOR_08_RED) // "Seems overwhelming... I'm in your hands. What do w..." + restart_timer + + beginloop(0x7a) + if_chr_in_room(TARGET_CHR, 0x00, 0x0055, /*goto*/ 0x2d) + if_chr_in_room(TARGET_CHR, 0x00, 0x0056, /*goto*/ 0x2d) + if_chr_in_room(TARGET_CHR, 0x00, 0x0057, /*goto*/ 0x2d) + if_chr_sees_player(/*goto*/ 0x2d) + goto_next(0x86) + + label(0x2d) + if_shot_near_chr(0x00, /*goto*/ 0x86) + if_hears_gunfire(/*goto*/ 0x86) + if_timer_gt(400, /*goto*/ 0x06) + endloop(0x7a) + + label(0x33) + label(0x06) + set_stage_flag(STAGEFLAG_TRIGGER_MIDCUTSCENE) + + beginloop(0x0d) + if_stage_flag_eq(STAGEFLAG_MIDCUTSCENE_FINISHED, TRUE, /*goto*/ 0x06) + endloop(0x0d) + + label(0x06) + set_chr_alliance(CHR_SELF, ALLIANCE_ALLY) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + hide_object(OBJ_EXTERIOR_DOOR) + hide_object(OBJ_FLOORHATCH) + set_object_flag_bank0(OBJ_FLOOR_HATCH_DETACHED, OBJECTFLAG0_00000100) + unset_object_flag_bank1(OBJ_FLOOR_HATCH_DETACHED, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank1(OBJ_EXTERIOR_DOOR_DETACHED, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank0(OBJ_EXTERIOR_DOOR_DETACHED, OBJECTFLAG0_00000100) + play_sound(0x8098, -1) + restart_timer + + beginloop(0x7b) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x7b) + + label(0x06) + do_special_animation(-1) + speak(TARGET_CHR, 0x3626, 0x816e, CHANNEL_6, COLOR_08_RED) // "What the hell was that!" + restart_timer + + beginloop(0x0c) + if_timer_gt(180, /*goto*/ 0x06) + endloop(0x0c) + + label(0x06) + stop_chr + set_stage_flag(STAGEFLAG_PRESIDENT_STARTED_RUNNING) + speak(TARGET_CHR, 0x3627, 0x72be, CHANNEL_6, COLOR_09_BLUE) // "We have to get you to the escape pod. Follow me." + restart_timer + try_face_entity(0x0200, 0x0000, /*goto*/ 0x0e) + + beginloop(0x0e) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x0e) + + label(0x06) + set_follow_chr(TARGET_CHR) + set_chr_health(CHR_SELF, 500) + set_onshot_function(FUNC_PRESIDENT_RUNNING) + set_function(CHR_SELF, FUNC_PRESIDENT_RUNNING) + + label(0x86) + goto_first(0x85) + + endfunction +}; + +u8 func0404_president_running[] = { + set_self_flag_bank3(CHRFLAG3_01000000) + set_onshot_function(FUNC_PRESIDENT_RUNNING) + set_target_chr(FOLLOW_CHR) + 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(0x54) + if_timer_gt(15, /*goto*/ 0x06) + endloop(0x54) + + label(0x06) + assign_sound(0x1abf, CHANNEL_6) + play_sound_from_entity(CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x2d) + dprint 'b','4',' ','s','h','i','e','l','d',' ','c','h','e','c','k','\n',0, + if_just_injured(CHR_SELF, /*goto*/ 0x06) + goto_next(0x55) + + // Injured + label(0x06) + restart_timer + assign_sound(0x1ac2, CHANNEL_6) + play_sound_from_entity(CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01) + if_stage_flag_eq(STAGEFLAG_PRESIDENT_INJURED, TRUE, /*goto*/ 0x56) + set_stage_flag(STAGEFLAG_PRESIDENT_INJURED) + message(CHR_JOANNA, 0x3648) // "The President is under attack." + + beginloop(0x56) + if_num_times_shot_lt(1, /*goto*/ 0x06) + if_timer_lt(20, /*goto*/ 0x06) + + label(0x06) + if_chr_stopped(/*goto*/ 0x55) + endloop(0x56) + + // Not injured, or injury animation finished + label(0x55) + stop_chr + restart_timer + + beginloop(0x57) + // @bug: This FALSE should be TRUE instead. This causes the president + // to behave weirdly when you've killed both blondes and stand in the + // entrace to Trent's room. + if_stage_flag_eq(STAGEFLAG_BOTH_BLONDES_DEAD, FALSE, /*goto*/ 0x2d) + + // Both blondes dead + // This room is the entrace to Trent's room + if_chr_in_room(TARGET_CHR, 0x00, 0x000d, /*goto*/ 0x10) + + // At least one Blonde is alive, or follow through + // These rooms are the escape pod area + label(0x2d) + if_chr_in_room(TARGET_CHR, 0x00, 0x0030, /*goto*/ 0x11) + if_chr_in_room(TARGET_CHR, 0x00, 0x0031, /*goto*/ 0x11) + if_chr_in_room(TARGET_CHR, 0x00, 0x0032, /*goto*/ 0x11) + dprint 't','a','r','g','e','t','\n',0, + if_chr_sees_player(/*goto*/ 0x06) + goto_next(0x58) + + label(0x06) + if_timer_gt(1250, /*goto*/ 0x2d) + if_chr_distance_gt(200, /*goto*/ 0x58) + endloop(0x57) + + // Been in sight for almost 21 seconds - say quip + label(0x2d) + call_rng + if_rand_lt(64, /*goto*/ 0x2d) + say_quip(CHR_JOANNA, 0x21, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00) + goto_first(0x55) + + label(0x2d) + say_quip(CHR_JOANNA, 0x21, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00) + goto_first(0x55) + + // Unreachable + label(0x06) + say_quip(CHR_JOANNA, 0x21, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00) + goto_first(0x55) + + // Distance to player > 200 or line of sight broken, so start following + label(0x58) + restart_timer + label(0x2d) + try_run_to_target_chr_with_hand_up(/*goto*/ 0x59) + + beginloop(0x59) + // @bug: This FALSE should be TRUE instead. This causes the president + // to behave weirdly when you've killed both blondes and stand in the + // entrace to Trent's room. + if_stage_flag_eq(STAGEFLAG_BOTH_BLONDES_DEAD, FALSE, /*goto*/ 0x2d) + + // Both blondes dead + // This room is the entrace to Trent's room + if_chr_in_room(TARGET_CHR, 0x00, 0x000d, /*goto*/ 0x10) + + // At least one Blonde is alive, or follow through + // These rooms are the escape pod area + label(0x2d) + if_chr_in_room(TARGET_CHR, 0x00, 0x0030, /*goto*/ 0x11) + if_chr_in_room(TARGET_CHR, 0x00, 0x0031, /*goto*/ 0x11) + if_chr_in_room(TARGET_CHR, 0x00, 0x0032, /*goto*/ 0x11) + if_chr_distance_lt(100, /*goto*/ 0x5b) + if_chr_stopped(/*goto*/ 0x5b) + if_timer_gt(360, /*goto*/ 0x2d) + endloop(0x59) + + label(0x2d) + say_quip(CHR_JOANNA, 0x21, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00) + goto_first(0x58) + + label(0x06) + say_quip(CHR_JOANNA, 0x21, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00) + goto_first(0x58) + + // Stopped because president is close to player's sampled position + label(0x5b) + goto_first(0x55) + + // Unreachable + label(0x5c) + try_run_to_target_chr(/*goto*/ 0x5d) + + beginloop(0x5d) + if_stage_flag_eq(STAGEFLAG_BOTH_BLONDES_DEAD, FALSE, /*goto*/ 0x2d) + if_chr_in_room(TARGET_CHR, 0x00, 0x000d, /*goto*/ 0x10) + label(0x2d) + if_chr_in_room(TARGET_CHR, 0x00, 0x0030, /*goto*/ 0x11) + if_chr_in_room(TARGET_CHR, 0x00, 0x0031, /*goto*/ 0x11) + if_chr_in_room(TARGET_CHR, 0x00, 0x0032, /*goto*/ 0x11) + endloop(0x5d) + + label(0x5e) + goto_first(0x55) + + // Player in pod room while a Blonde is alive + // This pad is at the escape pod + label(0x11) + jog_to_pad(0x0083) + + beginloop(0x09) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x09) + + label(0x06) + stop_chr + set_stage_flag(STAGEFLAG_PRESIDENT_AT_POD) + set_chr_alliance(CHR_SELF, 0x80) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_IDLE) + + // Player is in the entrace to Trent's room and both blondes are dead. + // The intention behind this code is to make the president cower until the + // Blondes are dead, then resume following. However, due to a logic bug + // described earlier this code is jumped to only after the blondes are dead. + label(0x10) + run_to_pad(0x0019) + + // This loop will never iterate because the blondes are already dead + beginloop(0x0a) + if_chr_stopped(/*goto*/ 0x0b) + if_stage_flag_eq(STAGEFLAG_BOTH_BLONDES_DEAD, TRUE, /*goto*/ 0x06) + endloop(0x0a) + + // Unreachable under real conditions + label(0x0b) + animation(ANIM_COWER_0229, -1, -1, 0x100a, CHR_SELF, 2) + + beginloop(0x83) + if_stage_flag_eq(STAGEFLAG_BOTH_BLONDES_DEAD, TRUE, /*goto*/ 0x06) + if_chr_stopped(/*goto*/ 0x2d) + endloop(0x83) + + label(0x2d) + goto_first(0x0b) + + // Both blondes dead - resume running + label(0x06) + goto_first(0x55) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100b_check_president_dead[] = { + beginloop(0x04) + if_chr_dying(CHR_PRESIDENT, /*goto*/ 0x06) + if_chr_death_animation_finished(CHR_PRESIDENT, /*goto*/ 0x06) + if_chr_unloaded(CHR_PRESIDENT, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + set_stage_flag(STAGEFLAG_PRESIDENT_DEAD) + message(CHR_JOANNA, 0x361a) // "The President has been incapacitated." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0409_unused[] = { + set_self_flag_bank3(CHRFLAG3_00000040) + + beginloop(0x04) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x06) + reloop(0x04) + + label(0x06) + if_chr_lost_track_of_target_maybe(/*goto*/ 0x06) + if_chr_dying(TARGET_CHR, /*goto*/ 0x2d) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0x2d) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0x2d) + set_return_function(CHR_SELF, 0x0409) + set_onshot_function(0x0409) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + + label(0x2d) + endloop(0x04) + + label(0x06) + unset_self_flag_bankx(CHRFLAG1_00001000, BANK_1) + set_function(CHR_SELF, GFUNC_UNALERTED) + set_return_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +/** + * This stripes guard is in one of the cockpit rooms. + */ +u8 func100c_cockpit_stripes[] = { + set_onshot_function(GFUNC_ALERTED) + set_chr_alliance(CHR_SELF, 0x04) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_chr_dodge_rating(2, 0x00) + set_accuracy(14) + set_reaction_speed(50) + set_chr_health(CHR_SELF, 60) + set_armor(0) + set_recovery_speed(30) + set_shield(0) + set_self_flag_bank3(CHRFLAG3_00000040) + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0x06) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x06) + reloop(0x04) + + label(0x06) + if_chr_lost_track_of_target_maybe(/*goto*/ 0x06) + if_chr_dying(TARGET_CHR, /*goto*/ 0x2d) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0x2d) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0x2d) + set_return_function(CHR_SELF, FUNC_COCKPIT_STRIPES) + set_onshot_function(GFUNC_COMBAT_WITH_TARGET_CHR) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + label(0x2d) + endloop(0x04) + + label(0x06) + unset_self_flag_bankx(CHRFLAG1_00001000, BANK_1) + set_function(CHR_SELF, GFUNC_UNALERTED) + set_return_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func0413_taker1[] = { + set_chr_alliance(CHR_SELF, 0x04) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_self_flag_bank3(CHRFLAG3_00000020) + set_chr_dodge_rating(2, 0x00) + set_reaction_speed(50) + set_chr_health(CHR_SELF, 60) + set_armor(0) + set_recovery_speed(30) + set_shield(0) + set_target_chr(CHR_PILOT1) + set_function(CHR_SELF, FUNC_TAKER) + endfunction +}; + +u8 func0413_taker2[] = { + set_chr_alliance(CHR_SELF, 0x04) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_self_flag_bank3(CHRFLAG3_00000020) + set_chr_dodge_rating(2, 0x00) + set_reaction_speed(50) + set_chr_health(CHR_SELF, 60) + set_armor(0) + set_recovery_speed(30) + set_shield(0) + set_target_chr(CHR_PILOT2) + set_function(CHR_SELF, FUNC_TAKER) + endfunction +}; + +u8 func0413_taker[] = { + set_onshot_function(GFUNC_ALERTED) + unset_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_alliance(CHR_SELF, 0x04) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_accuracy(50) + set_self_flag_bank3(CHRFLAG3_00000040) + restart_timer + + // Wait for condition + beginloop(0x04) + if_door_state(0x0c, (DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING), /*goto*/ 0x0a) + if_stage_flag_eq(STAGEFLAG_PRESIDENT_STARTED_RUNNING, FALSE, /*goto*/ 0x2d) + if_timer_gt(7200, /*goto*/ 0x0a) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x0a) + label(0x2d) + endloop(0x04) + + // Wait another 1.5 seconds + label(0x0a) + restart_timer + + beginloop(0x0c) + if_timer_gt(90, /*goto*/ 0x06) + endloop(0x0c) + + label(0x06) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0x11) + if_chr_dying(TARGET_CHR, /*goto*/ 0x11) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0x11) + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x06) + label(0x06) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x08) + label(0x08) + say_quip(CHR_JOANNA, 0x00, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00) + say_quip(CHR_JOANNA, 0x01, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00) + restart_timer + + beginloop(0x09) + if_chr_stopped(/*goto*/ 0x06) + if_timer_gt(60, /*goto*/ 0x2d) + endloop(0x09) + + label(0x2d) + if_chr_lost_track_of_target_maybe(/*goto*/ 0x11) + if_target_chrs_field_0x17e_is_different(/*goto*/ 0x2d) + goto_next(0x11) + + label(0x2d) + damage_chr(TARGET_CHR, 18) + + beginloop(0x0b) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x0b) + + label(0x06) + if_chr_dying(TARGET_CHR, /*goto*/ 0x06) + goto_first(0x0a) + + label(0x11) + label(0x06) + unset_self_flag_bankx(CHRFLAG1_00001000, BANK_1) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func100c_cockpit[] = { + label(0x2d) + label(0x2e) + set_chr_flag_bank3(CHR_TAKER1, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_TAKER2, CHRFLAG3_HIDDEN) + + beginloop(0x60) + if_all_objectives_complete(/*goto*/ 0x2d) + if_stage_flag_eq(STAGEFLAG_UFO_ATTACHMENT_DAMAGED, TRUE, /*goto*/ 0x2e) + endloop(0x60) + + // All objectives complete + label(0x2d) + set_function(CHR_SELF, GFUNC_IDLE) + + // UFO attachment damaged + label(0x2e) + yield + if_stage_flag_eq(STAGEFLAG_ALL_OBJECTIVES_COMPLETE, TRUE, /*goto*/ 0x11) + unset_chr_flag_bank3(CHR_TAKER1, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_TAKER2, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_TAKER1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(CHR_TAKER2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + label(0x06) + + // This loop will surely never iterate because + // the UFO attachment is already damaged + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_ALL_OBJECTIVES_COMPLETE, TRUE, /*goto*/ 0x11) + if_stage_flag_eq(STAGEFLAG_UFO_ATTACHMENT_DAMAGED, TRUE, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + if_chr_dying(CHR_TAKER1, /*goto*/ 0x2d) + if_chr_death_animation_finished(CHR_TAKER1, /*goto*/ 0x2d) + if_chr_unloaded(CHR_TAKER1, /*goto*/ 0x2d) + goto_next(0x06) + + label(0x2d) + if_chr_dying(CHR_TAKER2, /*goto*/ 0x2d) + if_chr_death_animation_finished(CHR_TAKER2, /*goto*/ 0x2d) + if_chr_unloaded(CHR_TAKER2, /*goto*/ 0x2d) + goto_next(0x06) + + // Both takers dead + label(0x2d) + goto_next(0x2e) + + // At least one taker alive + label(0x06) + damage_chr(CHR_PILOT1, 18) + damage_chr(CHR_PILOT2, 18) + yield + damage_chr(CHR_PILOT1, 18) + damage_chr(CHR_PILOT2, 18) + yield + damage_chr(CHR_PILOT1, 18) + damage_chr(CHR_PILOT2, 18) + yield + set_stage_flag(STAGEFLAG_PILOTS_DEAD) + message(CHR_JOANNA, 0x361b) // "Pilots have been killed." + goto_next(0x06) + + // Both takers dead + label(0x2e) + + // Pilots killed + label(0x06) + label(0x10) + set_stage_flag(STAGEFLAG_PLANE_NOSEDIVING) + set_object_image(OBJ_AUTOPILOT_SWITCH, 0x00, 0x0f) + + // Wait 10 seconds + label(0x09) + restart_timer + + beginloop(0x0f) + if_stage_flag_eq(STAGEFLAG_ALL_OBJECTIVES_COMPLETE, TRUE, /*goto*/ 0x11) + if_timer_gt(600, /*goto*/ 0x2d) + endloop(0x0f) + + label(0x2d) + set_lighting(0x0000, 0x0a, 0x3c) + + // Wait 40 seconds or for autopilot + restart_timer + + beginloop(0x0a) + if_stage_flag_eq(STAGEFLAG_PLANE_STABILIZED, TRUE, /*goto*/ 0x11) + if_timer_gt(2400, /*goto*/ 0x0b) + endloop(0x0a) + + label(0x0b) + if_stage_flag_eq(STAGEFLAG_ALL_OBJECTIVES_COMPLETE, TRUE, /*goto*/ 0x11) + message(CHR_JOANNA, 0x361d) // "Air Force One is about to crash." + + // Wait until the 50 second mark + beginloop(0x0c) + if_all_objectives_complete(/*goto*/ 0x11) + if_stage_flag_eq(STAGEFLAG_PLANE_STABILIZED, TRUE, /*goto*/ 0x11) + if_timer_gt(3000, /*goto*/ 0x0e) + endloop(0x0c) + + // Crash + label(0x0e) + set_stage_flag(STAGEFLAG_PLANE_CRASHED) + explosions_around_chr(CHR_JOANNA) + restart_timer + + beginloop(0x65) + if_timer_gt(180, /*goto*/ 0x2d) + endloop(0x65) + + label(0x2d) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + + // Unreachable + label(0x7c) + label(0x2d) + set_object_image(0x03, 0x00, 0x13) + set_stage_flag(STAGEFLAG_PLANE_STABILIZED) + message(CHR_JOANNA, 0x361c) // "Pilots have been saved." + reset_ambience + set_function(CHR_SELF, GFUNC_IDLE) + + // Unreachable + label(0x08) + goto_first(0x04) + + // Plane stabilized or all objectives complete + label(0x11) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Assigned to a pilot and a cyclone guard. + */ +u8 func0411_typing_guy[] = { + set_onshot_function(FUNC_TYPING_GUY) + label(0x04) + animation(ANIM_SITTING_TYPING, 0, -1, 0x0410, CHR_SELF, 2) + + beginloop(0x03) + if_chr_idle(/*goto*/ 0x06) + goto_first(0x04) + + label(0x06) + endloop(0x03) + + endfunction +}; + +/** + * Assigned to a pilot and a cyclone guard. + */ +u8 func0412_sitting_guy[] = { + set_onshot_function(FUNC_SITTING_GUY) + label(0x04) + animation(ANIM_SITTING_DORMANT, 0, -1, 0x0410, CHR_SELF, 2) + + beginloop(0x03) + if_chr_idle(/*goto*/ 0x06) + goto_first(0x04) + + label(0x06) + endloop(0x03) + + endfunction +}; + +u8 func0426_start_path00[] = { + set_chr_dodge_rating(2, 0x00) + set_accuracy(14) + set_reaction_speed(70) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + assign_path(0) + start_path + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func0427_start_path01[] = { + set_chr_dodge_rating(2, 0x00) + set_accuracy(14) + set_reaction_speed(70) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + assign_path(1) + start_path + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func0428_start_path02[] = { + assign_path(2) + start_path + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func1002_intro[] = { + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_music_track(MUSIC_AIRFORCEONE_INTRO) + camera_movement(0x018c) + set_chr_flag_bank3(0x30, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x30, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(0x30, CHRFLAG2_00020000) + animation(0x018f, -1, -1, 0x0600, 0x30, 4) + set_chr_flag_bank3(0x31, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x31, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(0x31, CHRFLAG2_00020000) + animation(0x018d, -1, -1, 0x0600, 0x31, 4) + set_chr_flag_bank3(CHR_PRESIDENT, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_PRESIDENT, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_PRESIDENT, CHRFLAG2_00020000) + animation(0x018e, -1, -1, 0x0600, CHR_PRESIDENT, 4) + set_chr_flag_bank3(0x13, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0x14, CHRFLAG3_HIDDEN) + restart_timer + fade_to_color(0x000000ff, 0) + fade_to_color(0x00000000, 90) + set_cutscene_weapon(CHR_JOANNA, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_JOANNA, WEAPON_NONE, WEAPON_NONE) + + #define wait_until(time, loopid) \ + beginloop(loopid) \ + if_controller_button_pressed(/*goto*/ 0x7d) \ + if_timer_gt(time, /*goto*/ 0x06) \ + endloop(loopid) \ + label(0x06) + + + + wait_until(140, 0x94) + + wait_until(180, 0x60) + speak(CHR_JOANNA, 0x3649, 0x744c, CHANNEL_7, COLOR_05_GREEN) // "Have you thought any more about that proposal I ga..." + + wait_until(330, 0x95) + + wait_until(360, 0x96) + + wait_until(438, 0x77) + speak(CHR_JOANNA, 0x364a, 0x744d, CHANNEL_7, COLOR_08_RED) // "My answer remains the same... I'm sorry Trent, but..." + + wait_until(486, 0x97) + + wait_until(532, 0x98) + + wait_until(850, 0x99) + + wait_until(1020, 0x78) + speak(CHR_JOANNA, 0x364b, 0x744e, CHANNEL_7, COLOR_05_GREEN) // "But this is a golden opportunity to show that Amer..." + + wait_until(1402, 0x79) + speak(CHR_JOANNA, 0x364c, 0x81bb, CHANNEL_7, COLOR_08_RED) // "Damn it, man! I say no and I mean no! I'm not gonn..." + + wait_until(2348, 0x7a) + speak(CHR_JOANNA, 0x364d, 0x7450, CHANNEL_7, COLOR_05_GREEN) // "As you wish, sir." + + wait_until(2406, 0x9a) + + wait_until(2410, 0x62) + open_door(0x15) + + wait_until(2465, 0x9b) + + wait_until(2498, 0x9c) + + wait_until(2560, 0x9d) + + wait_until(2616, 0x9e) + + wait_until(2654, 0x7b) + speak(CHR_JOANNA, 0x364e, 0x7451, CHANNEL_7, COLOR_05_GREEN) // "My last chance? Ha! You fool. That was yours." + close_door(0x15) + play_sound(0x8008, CHANNEL_10) + + wait_until(2680, 0x9f) + + wait_until(2710, 0xa0) + + wait_until(2790, 0xa5) + + wait_until(3140, 0xa1) + + wait_until(3180, 0xa2) + + wait_until(3190, 0xa3) + + wait_until(3210, 0xa4) + + beginloop(0x08) + if_camera_animating(/*goto*/ 0x2d) + goto_next(0x7d) + + label(0x2d) + if_controller_button_pressed(/*goto*/ 0x7d) + label(0x2d) + endloop(0x08) + + label(0x7d) + mute_channel(CHANNEL_10) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_DISGUISED) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x2d) + set_chr_flag_bank2(CHR_VELVET, CHRFLAG2_DISGUISED) + label(0x2d) + if_eeprom_flag_is_set(EEPROMFLAG_AF1_ENTRY, /*goto*/ 0x06) + goto_next(0x7e) + label(0x06) + camera_movement(0x01d0) + cmd0175(60) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x2d) + chr_move_to_pad(CHR_VELVET, 0x008a, 0x01, /*goto*/ 0x2d) + label(0x2d) + if_controller_button_pressed(/*goto*/ 0x5f) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x01d1, -1, -1, 0x0600, CHR_JOANNA, 4) + + beginloop(0x09) + if_camera_animating(/*goto*/ 0x2d) + goto_next(0x5f) + label(0x2d) + if_controller_button_pressed(/*goto*/ 0x5f) + label(0x2d) + endloop(0x09) + + label(0x7e) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_DISGUISED) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x2d) + set_chr_flag_bank2(CHR_VELVET, CHRFLAG2_DISGUISED) + label(0x2d) + dprint 'D','I','S','G','U','I','S','E','D','\n',0, + camera_movement(0x01d2) + cmd0175(60) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x2d) + chr_move_to_pad(CHR_VELVET, 0x00b2, 0x01, /*goto*/ 0x2d) + label(0x2d) + if_controller_button_pressed(/*goto*/ 0x5f) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x01d3, -1, -1, 0x0600, CHR_JOANNA, 4) + + beginloop(0x0a) + if_camera_animating(/*goto*/ 0x2d) + goto_next(0x5f) + label(0x2d) + if_controller_button_pressed(/*goto*/ 0x5f) + label(0x2d) + endloop(0x0a) + + label(0x5f) + mute_channel(CHANNEL_7) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + if_eeprom_flag_is_set(EEPROMFLAG_AF1_ENTRY, /*goto*/ 0x06) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP) + animation(0x01d3, -2, -1, 0x0600, CHR_JOANNA, 2) + goto_next(0x2d) + label(0x06) + animation(0x01d1, -2, -1, 0x0600, CHR_JOANNA, 2) + label(0x2d) + restart_default_music + reset_ambience + unset_chr_flag_bank3(0x13, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x14, CHRFLAG3_HIDDEN) + set_function(CHR_PRESIDENT, FUNC_INIT_PRESIDENT) + set_function(0x09, FUNC_INIT_NEUTRAL) + set_function(0x0a, FUNC_INIT_NEUTRAL) + set_function(0x0c, FUNC_INIT_NEUTRAL) + set_function(0x0d, FUNC_INIT_NEUTRAL) + remove_chr(0x30) + remove_chr(0x31) + unset_chr_flag_bank3(0x30, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x31, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_PRESIDENT, CHRFLAG3_UNPLAYABLE) + set_stage_flag(STAGEFLAG_INTRO_FINISHED) + enter_firstperson + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * The dumbwaiter near the middle of the plane. + */ +u8 func1010_dumbwaiter1[] = { + label(0x03) + set_object_flag_bank0(OBJ_DUMBWAITER1, OBJECTFLAG0_DEACTIVATED) + set_object_image(OBJ_DUMBWAITER1_SWITCH, 0x00, 0x12) + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_DUMBWAITER1_SWITCH, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + play_sound(0x043a, CHANNEL_7) + set_object_image(OBJ_DUMBWAITER1_SWITCH, 0x00, 0x13) + unset_object_flag_bank0(OBJ_DUMBWAITER1, OBJECTFLAG0_DEACTIVATED) + yield + yield + yield + + beginloop(0x08) + if_lift_stationary(OBJ_DUMBWAITER1, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + set_object_flag_bank0(OBJ_DUMBWAITER1, OBJECTFLAG0_DEACTIVATED) + restart_timer + + beginloop(0x09) + if_timer_gt(180, /*goto*/ 0x2d) + endloop(0x09) + + label(0x2d) + unset_object_flag_bank0(OBJ_DUMBWAITER1, OBJECTFLAG0_DEACTIVATED) + yield + yield + yield + + beginloop(0x0a) + if_lift_stationary(OBJ_DUMBWAITER1, /*goto*/ 0x06) + goto_next(0x2d) + + label(0x06) + endloop(0x0a) + + label(0x2d) + yield + yield + yield + + beginloop(0x0b) + if_lift_stationary(OBJ_DUMBWAITER1, /*goto*/ 0x06) + endloop(0x0b) + + label(0x06) + open_door(0x2b) + if_chr_activated_object(CHR_P1P2, OBJ_DUMBWAITER1_SWITCH, /*goto*/ 0x2d) + label(0x2d) + goto_first(0x03) + + endfunction +}; + +u8 func1011_dumbwaiter2[] = { + label(0x03) + set_object_flag_bank0(OBJ_DUMBWAITER2, OBJECTFLAG0_DEACTIVATED) + set_object_image(OBJ_DUMBWAITER2_SWITCH, 0x00, 0x12) + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_DUMBWAITER2_SWITCH, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + play_sound(0x043a, CHANNEL_7) + set_object_image(OBJ_DUMBWAITER2_SWITCH, 0x00, 0x13) + unset_object_flag_bank0(OBJ_DUMBWAITER2, OBJECTFLAG0_DEACTIVATED) + yield + yield + yield + + beginloop(0x08) + if_lift_stationary(OBJ_DUMBWAITER2, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + set_object_flag_bank0(OBJ_DUMBWAITER2, OBJECTFLAG0_DEACTIVATED) + restart_timer + + beginloop(0x09) + if_timer_gt(180, /*goto*/ 0x2d) + endloop(0x09) + + label(0x2d) + unset_object_flag_bank0(OBJ_DUMBWAITER2, OBJECTFLAG0_DEACTIVATED) + yield + yield + yield + + beginloop(0x0a) + if_lift_stationary(OBJ_DUMBWAITER2, /*goto*/ 0x06) + endloop(0x0a) + + label(0x06) + // @bug: Wrong object, but this is a no-op anyway. + if_chr_activated_object(CHR_P1P2, OBJ_DUMBWAITER1_SWITCH, /*goto*/ 0x2d) + label(0x2d) + goto_first(0x03) + + endfunction +}; + +u8 func040a_defend_pad[] = { + set_onshot_function(FUNC_DEFEND_PAD) + set_return_function(CHR_SELF, FUNC_DEFEND_PAD) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2d) + if_chr_dying(CHR_SELF, /*goto*/ 0x2d) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2d) + goto_next(0x06) + + // Dying + label(0x2d) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + + // Alive + label(0x06) + if_just_injured(CHR_SELF, /*goto*/ 0x2d) + goto_next(0x06) + + // Injured + label(0x2d) + + beginloop(0x0a) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x0a) + + // Not injured + label(0x06) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x08) + if_chr_distance_to_pad_lt(CHR_SELF, 200, TARGET_PAD, /*goto*/ 0x06) + + label(0x03) + jog_to_pad(TARGET_PAD) + + beginloop(0x04) + dprint 'G','O',' ','T','O',' ','P','A','D','\n',0, + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x08) + if_chr_distance_to_pad_lt(CHR_SELF, 200, TARGET_PAD, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + stop_chr + + beginloop(0x09) + dprint 'A','T',' ','P','A','D','\n',0, + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x08) + if_chr_distance_to_pad_gt(CHR_SELF, 300, TARGET_PAD, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + goto_first(0x03) + + // Detected enemy + label(0x08) + dprint 'D','E','T','E','C','T','E','D','\n',0, + set_return_function(CHR_SELF, FUNC_DEFEND_PAD) + set_onshot_function(FUNC_DEFEND_PAD) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + endfunction +}; + +/** + * Unused, but would have been assigned to a cyclone guard. + */ +u8 func040b_defend_president[] = { + set_onshot_function(FUNC_DEFEND_PRESIDENT) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x08) + if_self_distance_to_chr_lt(200, CHR_PRESIDENT, /*goto*/ 0x06) + + label(0x03) + chr_try_run_to_target_chr_with_hand_up(CHR_PRESIDENT, /*goto*/ 0x04) + + beginloop(0x04) + dprint 'G','O',' ','T','O',' ','P','A','D','\n',0, + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x08) + if_detected_chr(CHR_PRESIDENT, /*goto*/ 0x60) + endloop(0x04) + + // Near president + label(0x60) + if_self_distance_to_chr_lt(200, CHR_PRESIDENT, /*goto*/ 0x06) + goto_first(0x04) + + label(0x06) + stop_chr + + beginloop(0x09) + dprint 'A','T',' ','P','A','D','\n',0, + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x08) + if_detected_chr(CHR_PRESIDENT, /*goto*/ 0x60) + goto_first(0x04) + + label(0x60) + if_chr_distance_to_target_chr_gt(300, CHR_PRESIDENT, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + goto_first(0x03) + + // Detected enemy + label(0x08) + dprint 'D','E','T','E','C','T','E','D','\n',0, + set_return_function(CHR_SELF, FUNC_DEFEND_PRESIDENT) + set_onshot_function(FUNC_DEFEND_PRESIDENT) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + endfunction +}; + +u8 func0415_cloner1[] = { + set_self_flag_bank3(CHRFLAG3_00000002) + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_self_flag_bank3(CHRFLAG3_00040000) + + beginloop(0x03) + if_stage_flag_eq(STAGEFLAG_PRESIDENT_STARTED_RUNNING, TRUE, /*goto*/ 0x06) + reloop(0x03) + + label(0x06) + if_stage_flag_eq(STAGEFLAG_PRESIDENT_AT_POD, TRUE, /*goto*/ 0x06) + endloop(0x03) + + label(0x06) + + set_chr_alliance(CHR_SELF, 0x04) + try_draw_weapon(MODEL_CHRAVENGER, WEAPON_K7AVENGER, 0x10000000, /*goto*/ 0x04) + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_UFO_ATTACHMENT_DAMAGED, TRUE, /*goto*/ 0x0e) + // These rooms are the attachment area + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0017, /*goto*/ 0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x0018, /*goto*/ 0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x0019, /*goto*/ 0x2d) + if_never_been_onscreen(/*goto*/ 0x4f) + if_chr_sees_player(/*goto*/ 0x08) + label(0x2d) + reloop(0x04) + + // Line of sight to player + label(0x08) + set_function(CHR_SELF, FUNC_CLONE1) + + // Chr flag is unset + label(0x4f) + if_chr_death_animation_finished(CHR_CLONE, /*goto*/ 0x4f) + reloop(0x04) + + // @bug? This may have intended to be a bank 1 check because the bank 1 + // flag is unset further below, and cloner3 uses bank 1. + label(0x4f) + if_self_flag_bankx_eq(CHRFLAG0_00080000, TRUE, BANK_0, /*goto*/ 0x2d) + restart_timer + + beginloop(0x0b) + if_stage_flag_eq(STAGEFLAG_UFO_ATTACHMENT_DAMAGED, TRUE, /*goto*/ 0x0e) + if_timer_gt(2400, /*goto*/ 0x2d) + endloop(0x0b) + + // Player is in UFO area, or interval has passed + label(0x2d) + unset_self_flag_bankx(CHRFLAG1_00080000, BANK_1) + try_spawn_clone2(CHR_SELF, FUNC_INIT_CLONE1, 0x00000000, /*goto*/ 0x2d) + label(0x2d) + yield + endloop(0x04) + + // UFO attachment damaged + label(0x0e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0416_init_clone1[] = { + set_chr_dodge_rating(2, 0x00) + set_accuracy(14) + set_reaction_speed(50) + set_chr_health(CHR_SELF, 60) + set_armor(0) + set_recovery_speed(30) + set_shield(0) + set_self_flag_bankx(CHRFLAG1_00080000, BANK_1) + try_draw_weapon(MODEL_CHRAVENGER, WEAPON_K7AVENGER, 0x10000000, /*goto*/ 0x04) + label(0x04) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + try_inherit_properties(0x35, /*goto*/ 0x06) + label(0x06) + set_function(CHR_SELF, FUNC_CLONE1) + endfunction +}; + +u8 func0417_clone1[] = { + // Pad is at the cockpit door + run_to_pad(0x0042) + set_return_function(CHR_SELF, FUNC_CLONE1) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func0418_cloner2[] = { + set_self_flag_bank3(CHRFLAG3_00000002) + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_self_flag_bank3(CHRFLAG3_00040000) + + beginloop(0x03) + if_stage_flag_eq(STAGEFLAG_PRESIDENT_STARTED_RUNNING, TRUE, /*goto*/ 0x06) + reloop(0x03) + + label(0x06) + if_stage_flag_eq(STAGEFLAG_PRESIDENT_AT_POD, TRUE, /*goto*/ 0x06) + endloop(0x03) + + label(0x06) + + set_chr_alliance(CHR_SELF, 0x04) + try_draw_weapon(MODEL_CHRAVENGER, WEAPON_K7AVENGER, 0x10000000, /*goto*/ 0x04) + yield + yield + yield + yield + yield + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_UFO_ATTACHMENT_DAMAGED, TRUE, /*goto*/ 0x0e) + // These rooms are the attachment area + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0017, /*goto*/ 0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x0018, /*goto*/ 0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x0019, /*goto*/ 0x2d) + if_never_been_onscreen(/*goto*/ 0x4f) + if_chr_sees_player(/*goto*/ 0x08) + label(0x2d) + reloop(0x04) + + // Line of sight to player + label(0x08) + set_function(CHR_SELF, FUNC_CLONE2) + + // Chr flag is unset + label(0x4f) + if_chr_death_animation_finished(CHR_CLONE, /*goto*/ 0x4f) + reloop(0x04) + + // @bug? This may have intended to be a bank 1 check because the bank 1 + // flag is unset further below, and cloner3 uses bank 1. + label(0x4f) + if_self_flag_bankx_eq(CHRFLAG0_00080000, TRUE, BANK_0, /*goto*/ 0x2d) + restart_timer + + beginloop(0x0b) + if_stage_flag_eq(STAGEFLAG_UFO_ATTACHMENT_DAMAGED, TRUE, /*goto*/ 0x0e) + if_timer_gt(3600, /*goto*/ 0x2d) + endloop(0x0b) + + // Player is in UFO area, or interval has passed + label(0x2d) + unset_self_flag_bankx(CHRFLAG1_00080000, BANK_1) + try_spawn_clone2(CHR_SELF, FUNC_INIT_CLONE2, 0x00000000, /*goto*/ 0x2d) + label(0x2d) + yield + endloop(0x04) + + // UFO attachment damaged + label(0x0e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0419_init_clone2[] = { + set_chr_dodge_rating(2, 0x00) + set_accuracy(14) + set_reaction_speed(50) + set_chr_health(CHR_SELF, 60) + set_armor(0) + set_recovery_speed(30) + set_shield(0) + set_self_flag_bankx(CHRFLAG1_00080000, BANK_1) + try_draw_weapon(MODEL_CHRAVENGER, WEAPON_K7AVENGER, 0x10000000, /*goto*/ 0x04) + label(0x04) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + try_inherit_properties(0x36, /*goto*/ 0x06) + label(0x06) + set_function(CHR_SELF, FUNC_CLONE2) + endfunction +}; + +u8 func041a_clone2[] = { + // Pad is at back of the plane, top floor + run_to_pad(0x005c) + set_return_function(CHR_SELF, FUNC_CLONE2) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +/** + * Unlike the other two cloners, this one does not stop once the president has + * reached the escape pod. + */ +u8 func041b_cloner3[] = { + set_self_flag_bank3(CHRFLAG3_00000002) + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_self_flag_bank3(CHRFLAG3_00040000) + + beginloop(0x03) + if_stage_flag_eq(STAGEFLAG_PRESIDENT_STARTED_RUNNING, TRUE, /*goto*/ 0x06) + endloop(0x03) + + label(0x06) + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + set_chr_alliance(CHR_SELF, 0x04) + try_draw_weapon(MODEL_CHRAVENGER, WEAPON_K7AVENGER, 0x10000000, /*goto*/ 0x04) + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_UFO_ATTACHMENT_DAMAGED, TRUE, /*goto*/ 0x0e) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0017, /*goto*/ 0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x0018, /*goto*/ 0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x0019, /*goto*/ 0x2d) + if_never_been_onscreen(/*goto*/ 0x4f) + if_chr_sees_player(/*goto*/ 0x08) + label(0x2d) + reloop(0x04) + + label(0x08) + set_function(CHR_SELF, FUNC_CLONE3) + label(0x4f) + if_chr_death_animation_finished(CHR_CLONE, /*goto*/ 0x4f) + reloop(0x04) + + label(0x4f) + if_self_flag_bankx_eq(CHRFLAG1_00080000, TRUE, BANK_1, /*goto*/ 0x2d) + restart_timer + + beginloop(0x0b) + if_stage_flag_eq(STAGEFLAG_UFO_ATTACHMENT_DAMAGED, TRUE, /*goto*/ 0x0e) + if_timer_gt(3600, /*goto*/ 0x2d) + endloop(0x0b) + + label(0x2d) + unset_self_flag_bankx(CHRFLAG1_00080000, BANK_1) + try_spawn_clone2(CHR_SELF, FUNC_INIT_CLONE3, 0x00000000, /*goto*/ 0x2d) + label(0x2d) + yield + endloop(0x04) + + label(0x0e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func041c_init_clone3[] = { + set_chr_dodge_rating(2, 0x00) + set_accuracy(14) + set_reaction_speed(50) + set_chr_health(CHR_SELF, 60) + set_armor(0) + set_recovery_speed(30) + set_shield(0) + set_self_flag_bankx(CHRFLAG1_00080000, BANK_1) + try_draw_weapon(MODEL_CHRAVENGER, WEAPON_K7AVENGER, 0x10000000, /*goto*/ 0x04) + label(0x04) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + try_inherit_properties(0x37, /*goto*/ 0x06) + label(0x06) + set_function(CHR_SELF, FUNC_CLONE3) + endfunction +}; + +u8 func041d_clone3[] = { + set_target_chr(CHR_JOANNA) + try_run_to_target_chr(/*goto*/ 0x04) + label(0x04) + yield + set_return_function(CHR_SELF, FUNC_CLONE3) + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +u8 func041f_init_blonde[] = { + set_chr_alliance(CHR_SELF, 0x04) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_chr_dodge_rating(2, 0x00) + set_accuracy(24) + set_reaction_speed(50) + set_chr_health(CHR_SELF, 60) + set_armor(100) + set_recovery_speed(100) + set_shield(0) + set_function(CHR_SELF, FUNC_BLONDE) + endfunction +}; + +u8 func041e_blonde[] = { + set_chr_alliance(CHR_SELF, 0x04) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_accuracy(30) + set_onshot_function(FUNC_BLONDE) + 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(0x54) + if_timer_gt(15, /*goto*/ 0x06) + endloop(0x54) + + 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 + // This injured check is pointless + label(0x2d) + if_just_injured(CHR_SELF, /*goto*/ 0x06) + goto_next(0x08) + + label(0x06) + label(0x08) + set_self_flag_bank3(CHRFLAG3_00000040) + label(0x68) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x06) + try_chr_kneel_and_shoot_thing(0x0220, 0x0000, /*goto*/ 0x75) + label(0x06) + kneel + + beginloop(0x75) + label(0x2d) + consider_coop_for_p1p2_chr(CHR_P1P2) + set_target_chr(CHR_JOANNA) + if_target_chr_in_sight(/*goto*/ 0x6a) + if_near_miss(/*goto*/ 0x6b) + label(0x2d) + reloop(0x75) + + label(0x06) + if_target_chr_in_sight(/*goto*/ 0x6a) + label(0x2d) + endloop(0x75) + + label(0x6a) + if_self_flag_bankx_eq(CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x2d) + set_self_flag_bankx(CHRFLAG0_00000004, BANK_0) + say_quip(CHR_JOANNA, 0x0b, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00) + label(0x2d) + goto_next(0x6c) + + // Unreachable + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x6d) + goto_next(0x6e) + + // Reachable from below + beginloop(0x6d) + if_chr_stopped(/*goto*/ 0x6e) + endloop(0x6d) + + label(0x6e) + restart_timer + animation(ANIM_RELOAD_0209, 0, -1, 0x1010, CHR_SELF, 2) + + beginloop(0x66) + if_self_flag_bankx_eq(CHRFLAG1_00000020, FALSE, BANK_1, /*goto*/ 0x06) + if_timer_lt(120, /*goto*/ 0x06) + assign_sound(0x80f6, CHANNEL_7) + play_sound_from_entity(CHANNEL_7, CHR_SELF, 0x0bb8, 0x1770, 0x01) + unset_self_flag_bankx(CHRFLAG1_00000020, BANK_1) + label(0x06) + if_chr_stopped(/*goto*/ 0x2d) + endloop(0x66) + + label(0x2d) + label(0x06) + goto_first(0x68) + + label(0x6b) + restart_timer + if_self_flag_bankx_eq(CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x6f) + set_self_flag_bankx(CHRFLAG0_00000004, BANK_0) + + label(0x6f) + call_rng + if_target_chr_in_sight(/*goto*/ 0x70) + if_timer_gt(60, /*goto*/ 0x71) + if_rand_lt(4, /*goto*/ 0x71) + goto_first(0x6f) + + label(0x71) + if_chr_sees_player(/*goto*/ 0x70) + goto_first(0x68) + + label(0x70) + goto_first(0x6a) + + label(0x72) + restart_timer + + beginloop(0x73) + if_chr_sees_player(/*goto*/ 0x70) + if_timer_gt(300, /*goto*/ 0x06) + endloop(0x73) + + label(0x06) + goto_first(0x68) + + label(0x70) + goto_first(0x6a) + + label(0x6c) + say_quip(CHR_JOANNA, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x06) + label(0x06) + goto_first(0x6d) + + label(0x2d) + goto_first(0x6e) + + label(0x76) + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x74) + label(0x74) + 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(0x06) + goto_first(0x6d) + + label(0x2d) + goto_first(0x6e) + + endfunction +}; + +u8 func0421_trent_waiting[] = { + set_chr_alliance(CHR_SELF, 0x04) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_self_flag_bank3(CHRFLAG3_00000040) + set_shield(500) + set_chr_flag_bank3(CHR_TRENT, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0x06) + endloop(0x04) + + label(0x06) + restart_timer + speak(TARGET_CHR, 0x362d, 0x816f, CHANNEL_6, COLOR_05_GREEN) // "How the hell did you get on board?" + animation(ANIM_TALKING_0231, 0, -1, 0x1010, CHR_SELF, 2) + + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + set_function(CHR_SELF, FUNC_TRENT_ATTACKING) + endfunction +}; + +u8 func0420_trent_attacking[] = { + label(0x03) + stop_chr + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + try_unset_chr_flag_bank3_02000000(CHR_SELF, /*goto*/ 0x2d) + set_target_chr(CHR_PRESIDENT) + if_target_chr_in_sight(/*goto*/ 0x06) + if_stage_flag_eq(STAGEFLAG_ONE_BLONDE_DEAD, TRUE, /*goto*/ 0x2d) + endloop(0x04) + + // One Blonde dead or player in sight + label(0x2d) + set_shield(500) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_10000000) + speak(CHR_P1P2, 0x3646, 0x12cb, CHANNEL_6, COLOR_05_GREEN) // "Ha, Ha, Ha, Ha, Ha." + set_function(CHR_SELF, FUNC_TRENT_RUNNING) + + // President in sight + label(0x06) + label(0x76) + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x74) + label(0x74) + say_quip(CHR_JOANNA, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x08) + goto_next(0x2d) + + beginloop(0x08) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x08) + + label(0x06) + if_chr_dying(TARGET_CHR, /*goto*/ 0x09) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0x09) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0x09) + goto_first(0x03) + + label(0x2d) + goto_first(0x03) + + label(0x09) + restart_timer + animation(ANIM_TALKING_0231, 0, -1, 0x1010, CHR_SELF, 2) + speak(CHR_P1P2, 0x3647, 0x12ca, CHANNEL_6, COLOR_05_GREEN) // "You'll never save him now." + + beginloop(0x0a) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x0a) + + label(0x06) + set_function(CHR_SELF, FUNC_TRENT_RUNNING) + endfunction +}; + +u8 func0422_trent_running[] = { + run_to_pad(0x0034) + + beginloop(0x08) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x08) + + label(0x06) + set_target_chr(CHR_JOANNA) + if_chr_sees_player(/*goto*/ 0x06) + set_target_chr(CHR_VELVET) + if_chr_sees_player(/*goto*/ 0x06) + set_self_flag_bank3(CHRFLAG3_HIDDEN) + remove_chr(CHR_SELF) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x06) + set_alertness(100) + set_return_function(CHR_SELF, GFUNC_UNALERTED) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func1012_check_blondes_dead[] = { + beginloop(0x04) + if_chr_dying(CHR_BLONDE1, /*goto*/ 0x2d) + if_chr_death_animation_finished(CHR_BLONDE1, /*goto*/ 0x2d) + if_chr_unloaded(CHR_BLONDE1, /*goto*/ 0x2d) + + if_chr_dying(CHR_BLONDE2, /*goto*/ 0x06) + if_chr_death_animation_finished(CHR_BLONDE2, /*goto*/ 0x06) + if_chr_unloaded(CHR_BLONDE2, /*goto*/ 0x06) + reloop(0x04) + + // Blonde 2 dead + label(0x06) + set_stage_flag(STAGEFLAG_ONE_BLONDE_DEAD) + reloop(0x04) + + // Blonde 1 dead + label(0x2d) + set_stage_flag(STAGEFLAG_ONE_BLONDE_DEAD) + if_chr_dying(CHR_BLONDE2, /*goto*/ 0x2d) + if_chr_death_animation_finished(CHR_BLONDE2, /*goto*/ 0x2d) + if_chr_unloaded(CHR_BLONDE2, /*goto*/ 0x2d) + endloop(0x04) + + // Both blondes dead + label(0x2d) + set_stage_flag(STAGEFLAG_BOTH_BLONDES_DEAD) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1013_unhide_trent_and_blondes[] = { + yield + hide_chr(CHR_TRENT) + hide_chr(CHR_BLONDE1) + hide_chr(CHR_BLONDE2) + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_stage_flag_eq(STAGEFLAG_PRESIDENT_STARTED_RUNNING, TRUE, /*goto*/ 0x2d) + reloop(0x04) + + label(0x2d) + if_chr_y(CHR_P1P2, 190, OPERATOR_LESS_THAN, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + show_chr(CHR_TRENT) + set_function(CHR_TRENT, FUNC_TRENT_WAITING) + show_chr(CHR_BLONDE1) + set_function(CHR_BLONDE1, FUNC_INIT_BLONDE) + show_chr(CHR_BLONDE2) + set_function(CHR_BLONDE2, FUNC_INIT_BLONDE) + yield + unset_chr_flag_bank3(CHR_TRENT, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_BLONDE1, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_BLONDE2, CHRFLAG3_HIDDEN) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Assigned to basically everyone during president conversation. + */ +u8 func0429_be_unalert[] = { + set_onshot_function(GFUNC_ALERTED) + set_target_chr(CHR_JOANNA) + set_alertness(0) + + label(0x03) + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x04) + + beginloop(0x04) + if_chr_stopped(/*goto*/ 0x06) + if_chr_dying(CHR_PRESIDENT, /*goto*/ 0x2d) + if_chr_death_animation_finished(CHR_PRESIDENT, /*goto*/ 0x2d) + if_chr_unloaded(CHR_PRESIDENT, /*goto*/ 0x2d) + endloop(0x04) + + label(0x06) + goto_first(0x03) + + label(0x2d) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +/** + * Would have given the player one minute before the diguise was uncovered. + * The set_function at the start has effectively disabled this function. + */ +u8 func1014_uncover_disguise[] = { + set_function(CHR_SELF, GFUNC_IDLE) + restart_timer + + beginloop(0x04) + if_timer_gt(3600, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_DISGUISE_UNCOVERED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Assigned to presidential security as well as the two mechanics. + */ +u8 func042a_init_neutral[] = { + yield + + beginloop(0x60) + if_camera_animating(/*goto*/ 0x77) + goto_next(0x06) + + label(0x77) + endloop(0x60) + + label(0x06) + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + set_chr_dodge_rating(2, 0x00) + set_accuracy(14) + set_reaction_speed(70) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func042b_reinit_stripes[] = { + set_chr_dodge_rating(2, 0x00) + set_accuracy(14) + set_reaction_speed(50) + set_chr_health(CHR_SELF, 60) + set_armor(0) + set_recovery_speed(30) + set_shield(0) + set_chr_alliance(CHR_SELF, 0x04) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, FUNC_STRIPES) + endfunction +}; + +u8 func0407_steward[] = { + set_onshot_function(FUNC_STEWARD_SHOT) + + beginloop(0x03) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_idle(/*goto*/ 0x2d) + call_rng + if_rand_lt(32, /*goto*/ 0x0f) + call_rng + if_rand_lt(32, /*goto*/ 0x8a) + if_rand_lt(64, /*goto*/ 0x8b) + if_rand_lt(96, /*goto*/ 0x8c) + if_rand_lt(128, /*goto*/ 0x8d) + if_rand_lt(160, /*goto*/ 0x8e) + if_rand_lt(192, /*goto*/ 0x8f) + if_rand_lt(224, /*goto*/ 0x90) + + animation(ANIM_OPERATE_0221, -1, -1, 0x1001, CHR_SELF, 2) + goto_next(0x2d) + + label(0x8a) + animation(ANIM_OPERATE_0221, -1, -1, 0x1001, CHR_SELF, 2) + goto_next(0x2d) + + label(0x8b) + animation(ANIM_OPERATE_0223, -1, -1, 0x1001, CHR_SELF, 2) + goto_next(0x2d) + + label(0x8c) + animation(ANIM_OPERATE_0221, -1, -1, 0x1101, CHR_SELF, 2) + goto_next(0x2d) + + label(0x8d) + animation(ANIM_OPERATE_0221, -1, -1, 0x1101, CHR_SELF, 2) + goto_next(0x2d) + + label(0x8e) + animation(ANIM_OPERATE_0223, -1, -1, 0x1101, CHR_SELF, 2) + goto_next(0x2d) + + label(0x8f) + animation(0x023a, -1, -1, 0x1101, CHR_SELF, 2) + goto_next(0x2d) + + label(0x90) + animation(0x023b, -1, -1, 0x1101, CHR_SELF, 2) + goto_next(0x2d) + + label(0x0f) + call_rng + if_rand_lt(86, /*goto*/ 0x60) + if_rand_lt(172, /*goto*/ 0x77) + + if_chr_distance_to_pad_lt(CHR_SELF, 50, 0x00c1, /*goto*/ 0x60) + label(0x79) + walk_to_pad(0x00c1) + set_var_a(1) + set_target_pad(0x00c2) + goto_next(0x87) + + label(0x60) + if_chr_distance_to_pad_lt(CHR_SELF, 50, 0x00c3, /*goto*/ 0x77) + walk_to_pad(0x00c3) + set_var_a(2) + set_target_pad(0x00c4) + goto_next(0x87) + + label(0x77) + if_chr_distance_to_pad_lt(CHR_SELF, 50, 0x00c1, /*goto*/ 0x78) + set_var_a(3) + set_target_pad(0x00c6) + walk_to_pad(0x00c5) + goto_next(0x87) + + label(0x78) + goto_first(0x79) + + beginloop(0x87) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_target_chr_in_sight(/*goto*/ 0x89) + if_shot_near_chr(0x00, /*goto*/ 0x89) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x87) + + label(0x06) + try_face_entity(ENTITYTYPE_PAD, TARGET_PAD, /*goto*/ 0x88) + + beginloop(0x88) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x88) + + label(0x06) + reloop(0x03) + + animation(ANIM_OPERATE_0204, 0, -1, 0x1010, CHR_SELF, 2) + label(0x2d) + if_target_chr_in_sight(/*goto*/ 0x89) + if_shot_near_chr(0x00, /*goto*/ 0x89) + endloop(0x03) + + // Detected player + label(0x89) + set_alertness(100) + restart_timer + try_face_entity(0x0200, 0x0000, /*goto*/ 0x09) + + beginloop(0x09) + if_angle_to_target_chr_lt(10, /*goto*/ 0x06) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + set_group_alertness(100) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_DISGUISE_UNCOVERED) + do_special_animation(-1) + restart_timer + speak(CHR_P1P2, 0x362b, 0x1abb, CHANNEL_4, COLOR_04_ORANGE) // "Hey, that's not..." + + beginloop(0x08) + if_timer_gt(35, /*goto*/ 0x2d) + endloop(0x08) + + label(0x2d) + mute_channel(CHANNEL_4) + set_function(CHR_SELF, GFUNC_ALERTED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0407_steward_shot[] = { + mute_channel(CHANNEL_4) + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +u8 func0407_stewardess[] = { + set_chr_health(CHR_SELF, 0) + set_onshot_function(FUNC_STEWARDESS) + 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(0x03) + + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) + + // Wait until alerted + beginloop(0x03) + if_chr_idle(/*goto*/ 0x2d) + animation(ANIM_OPERATE_0204, 0, -1, 0x1010, CHR_SELF, 2) + label(0x2d) + if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x2d) + if_shot_near_chr(0x00, /*goto*/ 0x2d) + if_chr_dying(CHR_STEWARD, /*goto*/ 0x2d) + if_chr_death_animation_finished(CHR_STEWARD, /*goto*/ 0x2d) + if_chr_unloaded(CHR_STEWARD, /*goto*/ 0x2d) + endloop(0x03) + + // Alerted + label(0x2d) + try_face_entity(0x0200, 0x0000, /*goto*/ 0x09) + + beginloop(0x09) + if_angle_to_target_chr_lt(10, /*goto*/ 0x06) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_DISGUISE_UNCOVERED) + animation(ANIM_WALK_BACKWARDS, -1, -1, 0x1010, CHR_SELF, 2) + restart_timer + + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + try_target_chr_in_same_group(/*goto*/ 0x2d) + goto_next(0x0a) + + label(0x2d) + try_run_to_chr(FOLLOW_CHR, /*goto*/ 0x7f) + + beginloop(0x7f) + if_detected_chr(FOLLOW_CHR, /*goto*/ 0x80) + if_chr_stopped(/*goto*/ 0x80) + endloop(0x7f) + + label(0x80) + play_sound(0x1adc, CHANNEL_7) + set_group_alertness(100) + + label(0x0a) + set_self_flag_bank3(CHRFLAG3_01000000) + animation(ANIM_COWER_0229, -1, 190, 0x100a, CHR_SELF, 2) + + beginloop(0x83) + if_chr_stopped(/*goto*/ 0x2d) + endloop(0x83) + + label(0x2d) + goto_first(0x0a) + + endfunction +}; + +u8 func1015_msg_retrievetheevidence[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x0e) + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_INTRO_FINISHED, TRUE, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + restart_timer + + beginloop(0x08) + if_timer_gt(180, /*goto*/ 0x2d) + endloop(0x08) + + label(0x2d) + speak(CHR_JOANNA, 0x362e, 0x73c8, CHANNEL_6, COLOR_09_BLUE) // "Now, let's retrieve the evidence." + label(0x0e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1016_msg_onthislevel[] = { + restart_timer + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_y(CHR_P1P2, 440, OPERATOR_LESS_THAN, /*goto*/ 0x06) + goto_next(0x2d) + + label(0x06) + endloop(0x04) + + label(0x2d) + set_target_chr(FOLLOW_CHR) + speak(TARGET_CHR, 0x362f, 0x8185, CHANNEL_6, COLOR_09_BLUE) // "The President's room is on this level, Joanna." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1017_msg_gettothecockpit[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_ALL_OBJECTIVES_COMPLETE, TRUE, /*goto*/ 0x0e) + if_stage_flag_eq(STAGEFLAG_PILOTS_DEAD, TRUE, /*goto*/ 0x2d) + reloop(0x04) + + label(0x2d) + if_stage_flag_eq(STAGEFLAG_PLANE_NOSEDIVING, TRUE, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + restart_timer + + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_ALL_OBJECTIVES_COMPLETE, TRUE, /*goto*/ 0x0e) + if_timer_gt(180, /*goto*/ 0x2d) + endloop(0x08) + + label(0x2d) + speak(CHR_JOANNA, 0x3630, 0x8186, CHANNEL_5, COLOR_09_BLUE) // "Something's wrong... You have to get to the cockpi..." + + label(0x0e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1018_msg_maybeamine[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_ALL_OBJECTIVES_COMPLETE, TRUE, /*goto*/ 0x0e) + consider_coop_for_p1p2_chr(CHR_SELF) + if_objective_complete(2, /*goto*/ 0x2d) + reloop(0x04) + + label(0x2d) + if_chr_in_room(CHR_P1P2, 0x00, 0x0018, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + speak(CHR_P1P2, 0x3631, 0x73cb, CHANNEL_6, COLOR_09_BLUE) // "Maybe a mine will detach the UFO." + + label(0x0e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0c02_outro_from_menu[] = { + set_function(CHR_ELVIS, GFUNC_IDLE) + set_function(CHR_SELF, FUNC_OUTRO) + endfunction +}; + +u8 func0423_outro[] = { + set_lighting(0x0000, 0x0d, 0x00) + 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) + camera_movement(0x02d8) + set_music_track(MUSIC_AIRFORCEONE_OUTRO) + set_lighting(0x0000, 0x0d, 0x00) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0xf1, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_P1P2, CHRFLAG3_HIDDEN) + set_function(TARGET_CHR, GFUNC_IDLE) + set_chr_flag_bank3(TARGET_CHR, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(TARGET_CHR, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(TARGET_CHR, CHRFLAG2_00020000) + animation(0x02da, -1, -1, 0x0600, TARGET_CHR, 4) + set_chr_hud_visible(TARGET_CHR, TRUE) + 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(0x02d9, -1, -1, 0x0600, CHR_ELVIS, 4) + show_object(0x19) + set_object_flag_bank1(0x19, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x19, OBJECTFLAG2_00000010) + object_do_animation(0x02db, 0x19, 0x04ff, 0xff) + show_object(0x1a) + set_object_flag_bank1(0x1a, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x1a, OBJECTFLAG2_00000010) + object_do_animation(0x02dc, 0x1a, 0x04ff, 0xff) + show_object(0x23) + set_object_flag_bank1(0x23, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x23, OBJECTFLAG2_00000010) + object_do_animation(0x02dd, 0x23, 0x04ff, 0xff) + show_object(0x37) + set_object_flag_bank1(0x37, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x37, OBJECTFLAG2_00000010) + object_do_animation(0x02de, 0x37, 0x04ff, 0xff) + restart_timer + set_cutscene_weapon(TARGET_CHR, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(TARGET_CHR, WEAPON_NONE, WEAPON_NONE) + show_nonessential_chrs(FALSE) + label(0x60) + yield + if_controller_button_pressed(/*goto*/ 0x5f) + if_timer_gt(20, /*goto*/ 0x06) + goto_first(0x60) + + label(0x06) + speak(CHR_JOANNA, 0x364f, 0x7452, CHANNEL_7, COLOR_09_BLUE) // "Elvis! Elvis! I can't detach that tube from the fu..." + + #define outro_wait_until(time, loopid) \ + beginloop(loopid) \ + if_controller_button_pressed(/*goto*/ 0x5f) \ + if_timer_gt(time, /*goto*/ 0x06) \ + endloop(loopid) \ + label(0x06) + + + + outro_wait_until(426, 0x77) + speak(CHR_JOANNA, 0x3650, 0x7453, CHANNEL_7, COLOR_06_WHITE) // "Piece of cake, Joanna. Watch this!" + + outro_wait_until(1045, 0x65) + play_sound(0x0063, CHANNEL_10) + + outro_wait_until(1050, 0x78) + speak(CHR_JOANNA, 0x3651, 0x7454, CHANNEL_7, COLOR_06_WHITE) // "Uh-oh." + emit_sparks(0x23) + + outro_wait_until(1112, 0x79) + speak(CHR_JOANNA, 0x3652, 0x7455, CHANNEL_7, COLOR_09_BLUE) // "Watch what? Will you stop playing around and shoot..." + + outro_wait_until(1380, 0x7a) + speak(CHR_JOANNA, 0x3653, 0x7456, CHANNEL_7, COLOR_06_WHITE) // "Out of options... Joanna, brace yourself for impac..." + + outro_wait_until(1950, 0x7b) + + outro_wait_until(1951, 0x62) + destroy_object(0x1a) + + outro_wait_until(1958, 0x63) + destroy_object(0x1a) + + outro_wait_until(1970, 0x64) + destroy_object(0x1a) + destroy_object(0x19) + + outro_wait_until(1985, 0x8e) + destroy_object(0x1a) + + outro_wait_until(2000, 0x8a) + destroy_object(0x1a) + + outro_wait_until(2015, 0x8b) + destroy_object(0x1a) + + outro_wait_until(2030, 0x8c) + destroy_object(0x1a) + + outro_wait_until(2045, 0x8d) + destroy_object(0x1a) + + outro_wait_until(2060, 0x8f) + destroy_object(0x1a) + + beginloop(0x08) + if_camera_animating(/*goto*/ 0x2d) + goto_next(0x5f) + + label(0x2d) + if_controller_button_pressed(/*goto*/ 0x5f) + label(0x2d) + endloop(0x08) + + label(0x5f) + mute_channel(CHANNEL_10) + label(0x06) + restart_default_music + set_lighting(0x0000, 0x0d, 0x00) + hide_object(0x19) + hide_object(0x1a) + set_chr_hud_visible(TARGET_CHR, FALSE) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1019_midcutscene[] = { + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_TRIGGER_MIDCUTSCENE, TRUE, /*goto*/ 0x2d) + endloop(0x08) + + label(0x2d) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + if_stage_flag_eq(STAGEFLAG_MIDCUTSCENE_STARTED, TRUE, /*goto*/ 0x2d) + set_stage_flag(STAGEFLAG_MIDCUTSCENE_STARTED) + dprint 'm','i','d',' ','c','u','t','s','c','e','n','e','\n',0, + set_music_track(MUSIC_AIRFORCEONE_MIDCUTSCENE) + label(0x2d) + camera_movement(0x02df) + + show_object(0x19) + set_object_flag_bank1(0x19, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x19, OBJECTFLAG2_00000010) + object_do_animation(0x02e0, 0x19, 0x04ff, 0xff) + set_object_part_visible(0x19, TRUE) + + show_object(0x37) + set_object_flag_bank1(0x37, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x37, OBJECTFLAG2_00000010) + object_do_animation(0x02e1, 0x37, 0x04ff, 0xff) + + restart_timer + + outro_wait_until(1086, 0x61) + play_sound(0x042c, -1) + + beginloop(0x09) + if_camera_animating(/*goto*/ 0x2d) + goto_next(0x5f) + + label(0x2d) + if_controller_button_pressed(/*goto*/ 0x5f) + label(0x2d) + endloop(0x09) + + label(0x5f) + hide_object(0x37) + hide_object(0x19) + label(0x06) + set_stage_flag(STAGEFLAG_MIDCUTSCENE_FINISHED) + restart_default_music + reset_ambience + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_function(CHR_SELF, GFUNC_END_CINEMA) + endfunction +}; + +u8 func1019_midcutscene_from_menu[] = { + set_stage_flag(STAGEFLAG_TRIGGER_MIDCUTSCENE) + set_function(CHR_SELF, FUNC_MIDCUTSCENE) + endfunction +}; + +u8 func101a_equipment_switch[] = { + set_object_flag_bank0(0x1b, OBJECTFLAG0_DEACTIVATED) + set_object_image(OBJ_EQUIPMENT_SWITCH, 0x00, 0x12) + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_EQUIPMENT_SWITCH, /*goto*/ 0x2d) + reloop(0x04) + + label(0x2d) + if_chr_has_object(CHR_P1P2, OBJ_KEYCARD, /*goto*/ 0x2d) + + restart_timer + message(CHR_P1P2, 0x363f) // "Access denied - lift key card required." + + beginloop(0x77) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x77) + + label(0x06) + endloop(0x04) + + // Switch activated with keycard + label(0x2d) + set_object_image(OBJ_EQUIPMENT_SWITCH, 0x00, 0x13) + set_stage_flag(STAGEFLAG_EQUIPMENT_RAISED) + open_door(0x1c) + message(CHR_P1P2, 0x363d) // "Cargo bay has been raised." + assign_sound(0x043a, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_EQUIPMENT_SWITCH, TRUE) + unset_object_flag_bank0(0x1b, OBJECTFLAG0_DEACTIVATED) + yield + yield + yield + yield + yield + yield + restart_timer + + beginloop(0x08) + if_lift_stationary(0x1b, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + set_object_flag_bank0(0x1b, OBJECTFLAG0_DEACTIVATED) + set_object_image(OBJ_EQUIPMENT_SWITCH, 0x00, 0x12) + + beginloop(0x09) + if_door_state(0x1c, DOORSTATE_CLOSING, /*goto*/ 0x2d) + reloop(0x09) + + label(0x2d) + open_door(0x1c) + endloop(0x09) + + endfunction +}; + +u8 func101b_hoverbike_switch[] = { + unset_eeprom_flag(EEPROMFLAG_CRASHSITE_BIKE) + set_object_flag_bank0(0x1f, OBJECTFLAG0_DEACTIVATED) + set_object_image(OBJ_HOVERBIKE_SWITCH, 0x00, 0x12) + label(0x08) + open_door(0x20) + + beginloop(0x09) + consider_coop_for_p1p2_chr(CHR_SELF) + if_door_state(0x20, DOORSTATE_CLOSING, /*goto*/ 0x2d) + if_chr_activated_object(CHR_P1P2, OBJ_HOVERBIKE_SWITCH, /*goto*/ 0x0a) + reloop(0x09) + + label(0x2d) + open_door(0x20) + reloop(0x09) + + label(0x0a) + if_chr_has_object(CHR_P1P2, OBJ_KEYCARD, /*goto*/ 0x2d) + restart_timer + message(CHR_P1P2, 0x363f) // "Access denied - lift key card required." + + beginloop(0x77) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x77) + + label(0x06) + endloop(0x09) + + // Activated with keycard + label(0x2d) + set_object_image(OBJ_HOVERBIKE_SWITCH, 0x00, 0x13) + message(CHR_P1P2, 0x363c) // "Cargo bay has been lowered." + set_eeprom_flag(EEPROMFLAG_CRASHSITE_BIKE) + assign_sound(0x043a, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_HOVERBIKE_SWITCH, TRUE) + unset_object_flag_bank0(0x1f, OBJECTFLAG0_DEACTIVATED) + restart_timer + + beginloop(0x0c) + if_timer_gt(2, /*goto*/ 0x2d) + endloop(0x0c) + + label(0x2d) + close_door(0x20) + + beginloop(0x0b) + if_lift_stationary(0x1f, /*goto*/ 0x06) + endloop(0x0b) + + label(0x06) + set_object_flag_bank0(0x1f, OBJECTFLAG0_DEACTIVATED) + set_object_image(OBJ_HOVERBIKE_SWITCH, 0x00, 0x12) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101c_check_equipment_switch_destroyed[] = { + beginloop(0x04) + if_object_in_good_condition(OBJ_EQUIPMENT_SWITCH, /*goto*/ 0x2d) + goto_next(0x06) + + label(0x2d) + endloop(0x04) + + label(0x06) + if_stage_flag_eq(STAGEFLAG_EQUIPMENT_RAISED, TRUE, /*goto*/ 0x2d) + set_stage_flag(STAGEFLAG_EQUIPMENT_SWITCH_DESTROYED) + message(CHR_JOANNA, 0x363e) // "Mission critical object has been destroyed." + label(0x2d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040c_init_defend_pad[] = { + unset_chr_flag_bank2(CHR_SELF, CHRFLAG2_40000000) + set_chr_alliance(CHR_SELF, ALLIANCE_ALLY) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_target_chr(-1) + label(0x04) + try_draw_weapon(MODEL_CHRCYCLONE, WEAPON_CYCLONE, 0x00000000, /*goto*/ 0x2d) + label(0x2d) + set_function(CHR_SELF, FUNC_DEFEND_PAD) + endfunction +}; + +u8 func040e_unused[] = { + label(0x04) + try_draw_weapon(MODEL_CHRCYCLONE, WEAPON_CYCLONE, 0x00000000, /*goto*/ 0x2d) + label(0x2d) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +/** + * Unused. + */ +u8 func040d_init_defend_president[] = { + label(0x04) + try_draw_weapon(MODEL_CHRCYCLONE, WEAPON_CYCLONE, 0x00000000, /*goto*/ 0x2d) + label(0x2d) + set_function(CHR_SELF, FUNC_DEFEND_PRESIDENT) + endfunction +}; + +u8 func042c_remove_if_offscreen[] = { + unset_chr_flag_bank2(CHR_SELF, CHRFLAG2_40000000) + set_chr_alliance(CHR_SELF, ALLIANCE_ALLY) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_chr_health(CHR_SELF, 0) + + label(0x04) + yield + set_target_chr(CHR_JOANNA) + if_chr_sees_player(/*goto*/ 0x06) + set_target_chr(CHR_VELVET) + if_chr_sees_player(/*goto*/ 0x06) + label(0x08) + chr_drop_weapon(CHR_SELF) + remove_chr(CHR_SELF) + yield + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x06) + set_function(CHR_SELF, FUNC_INIT_DEFEND_PAD) + endfunction +}; + +/** + * If president dies between mid cutscene and Jo's "we have to get you to the + * escape pod" line, set the flag that causes things to happen. + * + * This was most likely added after QA, hence why the original function wasn't + * changed instead. + */ +u8 func101d_handle_early_president_death[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_MIDCUTSCENE_FINISHED, TRUE, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + hide_object(OBJ_EXTERIOR_DOOR) + unset_object_flag_bank1(OBJ_EXTERIOR_DOOR_DETACHED, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank0(OBJ_EXTERIOR_DOOR_DETACHED, OBJECTFLAG0_00000100) + + beginloop(0x08) + if_chr_death_animation_finished(CHR_PRESIDENT, /*goto*/ 0x2d) + if_chr_dying(CHR_PRESIDENT, /*goto*/ 0x2d) + if_chr_unloaded(CHR_PRESIDENT, /*goto*/ 0x2d) + endloop(0x08) + + label(0x2d) + set_stage_flag(STAGEFLAG_PRESIDENT_STARTED_RUNNING) + unlock_door(OBJ_COCKPITDOOR, 0x40) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1007_check_pod_destroyed[] = { + beginloop(0x04) + if_object_in_good_condition(OBJ_ESCAPE_POD, /*goto*/ 0x2d) + message(CHR_JOANNA, 0x363e) // "Mission critical object has been destroyed." + set_stage_flag(STAGEFLAG_POD_DESTROYED) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2d) + endloop(0x04) + + endfunction +}; + +u8 func101f_setup_rtracker[] = { + yield + set_object_flag_bank2(0x38, OBJECTFLAG2_RTRACKED_BLUE) + set_object_flag_bank2(0x39, OBJECTFLAG2_RTRACKED_BLUE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1420_setup_lighting[] = { + yield + set_lighting(0x001a, 0x05, 0x01) + set_lighting(0x001b, 0x05, 0x01) + set_lighting(0x002b, 0x05, 0x01) + set_lighting(0x002d, 0x05, 0x01) + set_lighting(0x002e, 0x05, 0x01) + set_lighting(0x002f, 0x05, 0x01) + set_lighting(0x0030, 0x05, 0x01) + set_lighting(0x0031, 0x05, 0x01) + set_lighting(0x0032, 0x05, 0x01) + set_lighting(0x0033, 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(0x0039, 0x05, 0x01) + set_lighting(0x003b, 0x05, 0x01) + set_lighting(0x003c, 0x05, 0x01) + set_lighting(0x003e, 0x05, 0x01) + set_lighting(0x003f, 0x05, 0x01) + set_lighting(0x0040, 0x05, 0x01) + set_lighting(0x0041, 0x05, 0x01) + set_lighting(0x0042, 0x05, 0x01) + set_lighting(0x0043, 0x05, 0x01) + set_lighting(0x0059, 0x05, 0x01) + set_function(CHR_SELF, GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1022_pilots_stabilizing[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_PLANE_NOSEDIVING, TRUE, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + restart_timer + + beginloop(0x93) + if_chr_death_animation_finished(CHR_PILOT1, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_PILOT1, /*goto*/ 0x2e) + if_chr_death_animation_finished(CHR_PILOT1, /*goto*/ 0x2e) + goto_next(0x06) + + label(0x2e) + if_chr_death_animation_finished(CHR_PILOT2, /*goto*/ 0x0e) + if_chr_death_animation_finished(CHR_PILOT2, /*goto*/ 0x0e) + if_chr_death_animation_finished(CHR_PILOT2, /*goto*/ 0x0e) + + // Pilots stabilizing + label(0x06) + if_stage_flag_eq(STAGEFLAG_PLANE_STABILIZED, TRUE, /*goto*/ 0x0e) + if_timer_gt(1200, /*goto*/ 0x06) + endloop(0x93) + + label(0x06) + message(CHR_JOANNA, 0x3654) // "The pilots have stabilized Air Force One." + set_stage_flag(STAGEFLAG_PLANE_STABILIZED) + + label(0x0e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1023_check_pilots_dead[] = { + beginloop(0x04) + if_chr_death_animation_finished(CHR_PILOT1, /*goto*/ 0x2d) + if_chr_death_animation_finished(CHR_PILOT1, /*goto*/ 0x2d) + if_chr_death_animation_finished(CHR_PILOT1, /*goto*/ 0x2d) + reloop(0x04) + + label(0x2d) + if_chr_death_animation_finished(CHR_PILOT2, /*goto*/ 0x2d) + if_chr_death_animation_finished(CHR_PILOT2, /*goto*/ 0x2d) + if_chr_death_animation_finished(CHR_PILOT2, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + set_stage_flag(STAGEFLAG_PILOTS_DEAD) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Wait until intro finished, then wait several frames before unsetting a flag + * on Joanna. + * + * When the flag is set, the co-op buddy will attempt to warp to Jo. This is + * needed because Jo can start in two locations in this level, but the buddy + * only starts in one location. + * + * The flag must be unset so the buddy stops attempting to warp. + */ +u8 func1025_disable_buddy_warp[] = { + yield + + beginloop(0x04) + if_camera_animating(/*goto*/ 0x2d) + goto_next(0x06) + + label(0x2d) + endloop(0x04) + + label(0x06) + yield + yield + yield + yield + yield + yield + yield + unset_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1026_buddy_floor_hatch[] = { + yield + + beginloop(0x93) + if_camera_animating(/*goto*/ 0x2d) + goto_next(0x04) + + label(0x2d) + endloop(0x93) + + // This flag is set by a global function + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_AI_BUDDY_EXISTS, TRUE, /*goto*/ 0x2d) + endloop(0x04) + + // Maybe the AI has difficulty opening the floor hatch so they removed it? + label(0x2d) + hide_object(OBJ_FLOORHATCH) + set_object_flag_bank0(OBJ_FLOOR_HATCH_DETACHED, OBJECTFLAG0_00000100) + unset_object_flag_bank1(OBJ_FLOOR_HATCH_DETACHED, OBJECTFLAG1_INVISIBLE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +struct ailists functions[] = { + { func1400_setup_counterop, 0x1400 }, + { func1001_objectives_failed_msg, 0x1001 }, + { func1002_intro, 0x1002 }, + { func1003_rebuild_groups, 0x1003 }, + { func1004_reassign_functions_during_conversation, 0x1004 }, + { func1005_check_neutrals_killed, 0x1005 }, + { func1006_hijack, 0x1006 }, + { func1007_check_pod_destroyed, 0x1007 }, + { func1008_check_mine_wasted_joanna, 0x1008 }, + { func1009_check_end_level, 0x1009 }, + { func100a_autopilot_switch, 0x100a }, + { func100b_check_president_dead, 0x100b }, + { func100c_cockpit, 0x100c }, + { func1010_dumbwaiter1, 0x1010 }, + { func1011_dumbwaiter2, 0x1011 }, + { func1012_check_blondes_dead, 0x1012 }, + { func1013_unhide_trent_and_blondes, 0x1013 }, + { func1014_uncover_disguise, 0x1014 }, + { func1015_msg_retrievetheevidence, 0x1015 }, + { func1016_msg_onthislevel, 0x1016 }, + { func1017_msg_gettothecockpit, 0x1017 }, + { func1018_msg_maybeamine, 0x1018 }, + { func1019_midcutscene, 0x1019 }, + { func101a_equipment_switch, 0x101a }, + { func101b_hoverbike_switch, 0x101b }, + { func101c_check_equipment_switch_destroyed, 0x101c }, + { func101d_handle_early_president_death, 0x101d }, + { func101e_blow_mines, 0x101e }, + { func101f_setup_rtracker, 0x101f }, + { func1420_setup_lighting, 0x1420 }, + { func1021_check_mine_wasted_velvet, 0x1021 }, + { func1022_pilots_stabilizing, 0x1022 }, + { func1023_check_pilots_dead, 0x1023 }, + { func1024_give_objects, 0x1024 }, + { func1025_disable_buddy_warp, 0x1025 }, + { func1026_buddy_floor_hatch, 0x1026 }, + { func1002_intro, 0x0c00 }, + { func1019_midcutscene_from_menu, 0x0c01 }, + { func0c02_outro_from_menu, 0x0c02 }, + { func0401_init_stripes, 0x0401 }, + { func0402_init_elvis, 0x0402 }, + { func0403_stripes, 0x0403 }, + { func0404_president_running, 0x0404 }, + { func0405_president_in_room, 0x0405 }, + { func0406_init_president, 0x0406 }, + { func0407_steward, 0x0407 }, + { func0407_stewardess, 0x0408 }, + { func1019_midcutscene, 0x0424 }, + { func0409_unused, 0x0409 }, + { func040a_defend_pad, 0x040a }, + { func040b_defend_president, 0x040b }, + { func040c_init_defend_pad, 0x040c }, + { func040d_init_defend_president, 0x040d }, + { func040e_unused, 0x040e }, + { func0413_taker, 0x0413 }, + { func100c_cockpit_stripes, 0x0414 }, + { func0413_taker1, 0x040f }, + { func0413_taker2, 0x0410 }, + { func0413_taker, 0x0413 }, + { func0411_typing_guy, 0x0411 }, + { func0412_sitting_guy, 0x0412 }, + { func0426_start_path00, 0x0426 }, + { func0427_start_path01, 0x0427 }, + { func0428_start_path02, 0x0428 }, + { func0429_be_unalert, 0x0429 }, + { func042a_init_neutral, 0x042a }, + { func042b_reinit_stripes, 0x042b }, + { func042c_remove_if_offscreen, 0x042c }, + { func0415_cloner1, 0x0415 }, + { func0416_init_clone1, 0x0416 }, + { func0417_clone1, 0x0417 }, + { func0418_cloner2, 0x0418 }, + { func0419_init_clone2, 0x0419 }, + { func041a_clone2, 0x041a }, + { func041b_cloner3, 0x041b }, + { func041c_init_clone3, 0x041c }, + { func041d_clone3, 0x041d }, + { func041e_blonde, 0x041e }, + { func041f_init_blonde, 0x041f }, + { func0420_trent_attacking, 0x0420 }, + { func0421_trent_waiting, 0x0421 }, + { func0422_trent_running, 0x0422 }, + { func0423_outro, 0x0423 }, + { func0407_steward_shot, 0x0425 }, + { NULL, 0 }, +}; + +struct aipaths paths[] = { + { path00, 0, 0 }, + { path01, 1, 0 }, + { path02, 2, 0 }, + { NULL, 0, 0 }, +}; + diff --git a/src/setup/setuprun.c b/src/setup/setuprun.c new file mode 100644 index 000000000..4684cc5fb --- /dev/null +++ b/src/setup/setuprun.c @@ -0,0 +1,39 @@ +// +// Stage ID 0x23 +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/asm/setup/setupsev.s b/src/setup/setupsev.c similarity index 60% rename from asm/setup/setupsev.s rename to src/setup/setupsev.c index a443949fc..062073406 100644 --- a/asm/setup/setupsev.s +++ b/src/setup/setupsev.c @@ -1,1878 +1,1954 @@ -# -# Maian SOS -# +// +// Maian SOS +// -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" +#include "../include/setup.h" // Characters -.set CHR_LABTECH1, 0x44 -.set CHR_LABTECH2, 0x45 -.set CHR_OUTRO_GUARD, 0x56 +#define CHR_LABTECH1 0x44 +#define CHR_LABTECH2 0x45 +#define CHR_OUTRO_GUARD 0x56 // Objects -.set OBJ_EXPERIMENT, 0x2f -.set OBJ_CONSOLE, 0x45 -.set OBJ_GLASS1, 0x4a -.set OBJ_GLASS2, 0x4b -.set OBJ_GLASS3, 0x4c -.set OBJ_TROLLEY, 0x4d -.set OBJ_PSYCHOSISGUN, 0x4e +#define OBJ_EXPERIMENT 0x2f +#define OBJ_CONSOLE 0x45 +#define OBJ_GLASS1 0x4a +#define OBJ_GLASS2 0x4b +#define OBJ_GLASS3 0x4c +#define OBJ_TROLLEY 0x4d +#define OBJ_PSYCHOSISGUN 0x4e // Stage flags -.set STAGEFLAG_EXPERIMENT_DESTROYED, 0x00000100 -.set STAGEFLAG_SAUCER_DESTROYED, 0x00000200 -.set STAGEFLAG_CONSOLE_ACTIVATED, 0x00000400 -.set STAGEFLAG_ALARM_SOUNDED, 0x00000800 -.set STAGEFLAG_CONSOLE_DESTROYED, 0x00001000 -.set STAGEFLAG_TRAPPED_AT_START, 0x00002000 -.set STAGEFLAG_GOT_FALCON2, 0x00004000 +#define STAGEFLAG_EXPERIMENT_DESTROYED 0x00000100 +#define STAGEFLAG_SAUCER_DESTROYED 0x00000200 +#define STAGEFLAG_CONSOLE_ACTIVATED 0x00000400 +#define STAGEFLAG_ALARM_SOUNDED 0x00000800 +#define STAGEFLAG_CONSOLE_DESTROYED 0x00001000 +#define STAGEFLAG_TRAPPED_AT_START 0x00002000 +#define STAGEFLAG_GOT_FALCON2 0x00004000 // Functions -.set FUNC_CLONE_SPAWNER, 0x0410 -.set FUNC_INIT_CLONE, 0x0411 -.set FUNC_CLONE, 0x0412 -.set FUNC_CLONE_SPAWNER2, 0x0413 -.set FUNC_UNLOAD, 0x0414 -.set FUNC_INIT_50HP_GUARD, 0x0415 -.set FUNC_INIT_80HP_GUARD, 0x0416 -.set FUNC_INIT_LX_GUARD, 0x0417 -.set FUNC_INIT_OUTRO_GUARD, 0x0419 -.set FUNC_OUTRO, 0x041b -.set FUNC_INIT_LABTECH, 0x041c +#define FUNC_CLONE_SPAWNER 0x0410 +#define FUNC_INIT_CLONE 0x0411 +#define FUNC_CLONE 0x0412 +#define FUNC_CLONE_SPAWNER2 0x0413 +#define FUNC_UNLOAD 0x0414 +#define FUNC_INIT_50HP_GUARD 0x0415 +#define FUNC_INIT_80HP_GUARD 0x0416 +#define FUNC_INIT_LX_GUARD 0x0417 +#define FUNC_INIT_OUTRO_GUARD 0x0419 +#define FUNC_OUTRO 0x041b +#define FUNC_INIT_LABTECH 0x041c -props: - briefing 0, 0x3c01 - briefing 1, 0x3c00 - briefing 2, 0x3c02 - briefing 3, 0x3c03 +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; - beginobjective 0, 0x3c04, DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Sabotage enemy medical experiment" - complete_flags STAGEFLAG_EXPERIMENT_DESTROYED +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + briefing(0, 0x3c01) + briefing(1, 0x3c00) + briefing(2, 0x3c02) + briefing(3, 0x3c03) + + beginobjective(0, 0x3c04, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Sabotage enemy medical experiment" + complete_flags(STAGEFLAG_EXPERIMENT_DESTROYED) endobjective - beginobjective 1, 0x3c05, DIFFBIT_PA | DIFFBIT_PD // "Destroy captured Maian saucer" - complete_flags STAGEFLAG_SAUCER_DESTROYED + beginobjective(1, 0x3c05, (DIFFBIT_PA | DIFFBIT_PD)) // "Destroy captured Maian saucer" + complete_flags(STAGEFLAG_SAUCER_DESTROYED) endobjective - beginobjective 2, 0x3c06, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Activate distress signal" - complete_flags STAGEFLAG_CONSOLE_ACTIVATED - fail_flags STAGEFLAG_CONSOLE_DESTROYED - fail_flags STAGEFLAG_TRAPPED_AT_START + beginobjective(2, 0x3c06, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Activate distress signal" + complete_flags(STAGEFLAG_CONSOLE_ACTIVATED) + fail_flags(STAGEFLAG_CONSOLE_DESTROYED) + fail_flags(STAGEFLAG_TRAPPED_AT_START) endobjective - chr 0x00004000, CHR_LABTECH1, 0x03dc, BODY_LABTECH, HEAD_RANDOM, FUNC_INIT_LABTECH, -1, -1, 1000, 100, 0x8c098400, 0x20000100, 0x02, 0x01, -1, 0, 0x00040000 + chr(0x00004000, CHR_LABTECH1, 0x03dc, BODY_LABTECH, HEAD_RANDOM, FUNC_INIT_LABTECH, -1, -1, 1000, 100, 0x8c098400, 0x20000100, 0x02, 0x01, -1, 0, 0x00040000) - chr 0x00004000, CHR_LABTECH2, 0x012d, BODY_LABTECH, HEAD_RANDOM, FUNC_INIT_LABTECH, -1, -1, 1000, 100, 0x8c018000, 0x00000100, 0x02, 0x01, -1, 0, 0x00010000 - weapon 0x0100, MODEL_CHRFALCON2, CHR_LABTECH2, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2, 0x00ffffff, 0x00000000 + chr(0x00004000, CHR_LABTECH2, 0x012d, BODY_LABTECH, HEAD_RANDOM, FUNC_INIT_LABTECH, -1, -1, 1000, 100, 0x8c018000, 0x00000100, 0x02, 0x01, -1, 0, 0x00010000) + weapon(0x0100, MODEL_CHRFALCON2, CHR_LABTECH2, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x00, 0x0128, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xcc098000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x00, 0x0128, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xcc098000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x01, 0x0126, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xcc098000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x01, 0x0126, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xcc098000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00004200, 0x02, 0x0399, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0x8c098000, 0x00000100, 0x02, 0x02, 0x3f, 0, 0x00030000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00004200, 0x02, 0x0399, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0x8c098000, 0x00000100, 0x02, 0x02, 0x3f, 0, 0x00030000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00004200, 0x03, 0x039a, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 2000, 100, 0x8c098000, 0x00000100, 0x02, 0x02, 0x40, 0, 0x00030000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0003, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00004200, 0x03, 0x039a, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 2000, 100, 0x8c098000, 0x00000100, 0x02, 0x02, 0x40, 0, 0x00030000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0003, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x04, 0x0393, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xa001c000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0004, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x04, 0x0393, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xa001c000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0004, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x07, 0x0394, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xc0018200, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0007, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x07, 0x0394, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xc0018200, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0007, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x08, 0x0395, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xa001c000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0008, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x08, 0x0395, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xa001c000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0008, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x09, 0x0115, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xa001c000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x09, 0x0115, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xa001c000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x0b, 0x013a, BODY_AREA51GUARD, HEAD_KEN, FUNC_INIT_LX_GUARD, -1, -1, 1000, 100, 0xc009c000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDY357TRENT, 0x000b, 0x40004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357LX, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRDY357TRENT, 0x000b, 0x50004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357LX, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x0b, 0x013a, BODY_AREA51GUARD, HEAD_KEN, FUNC_INIT_LX_GUARD, -1, -1, 1000, 100, 0xc009c000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDY357TRENT, 0x000b, 0x40004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357LX, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRDY357TRENT, 0x000b, 0x50004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357LX, 0x00ffffff, 0x00000000) - link_collectibles -1, -2 - chr 0x00000200, 0x0c, 0x013d, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xc009c000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + link_collectibles(-1, -2) + chr(0x00000200, 0x0c, 0x013d, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xc009c000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x0f, 0x010d, BODY_AREA51GUARD, HEAD_RANDOM, 0x0407, -1, -1, 1000, 100, 0xc009c000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x000f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x0f, 0x010d, BODY_AREA51GUARD, HEAD_RANDOM, 0x0407, -1, -1, 1000, 100, 0xc009c000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x000f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x10, 0x0100, BODY_AREA51GUARD, HEAD_RANDOM, 0x0408, -1, -1, 1000, 100, 0xc009c000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0010, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x10, 0x0100, BODY_AREA51GUARD, HEAD_RANDOM, 0x0408, -1, -1, 1000, 100, 0xc009c000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0010, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x11, 0x03bf, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 100, 100, 0xc009c000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0011, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x11, 0x03bf, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 100, 100, 0xc009c000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0011, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x12, 0x03c0, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 100, 100, 0xc009c000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0012, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x12, 0x03c0, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 100, 100, 0xc009c000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0012, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x13, 0x03b1, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0x8001c000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0013, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x13, 0x03b1, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0x8001c000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0013, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x14, 0x03b2, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0x8009c000, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x14, 0x03b2, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0x8009c000, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00004000, 0x15, 0x03c9, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, 0x03c8, -1, 1000, 100, 0x8009c004, 0x00000100, 0x02, 0x09, -1, 0, 0x00040000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0015, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00004000, 0x15, 0x03c9, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, 0x03c8, -1, 1000, 100, 0x8009c004, 0x00000100, 0x02, 0x09, -1, 0, 0x00040000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0015, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00004000, 0x16, 0x03b3, BODY_LABTECH, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, 0x03c9, -1, 1000, 100, 0x8009c004, 0x00000100, 0x02, 0x09, -1, 0, 0x00040000 - weapon 0x0100, MODEL_CHRDRUGGUN, 0x0016, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRDRUGGUN, 0x0016, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PSYCHOSISGUN, 0x00ffffff, 0x00000000 + chr(0x00004000, 0x16, 0x03b3, BODY_LABTECH, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, 0x03c9, -1, 1000, 100, 0x8009c004, 0x00000100, 0x02, 0x09, -1, 0, 0x00040000) + weapon(0x0100, MODEL_CHRDRUGGUN, 0x0016, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRDRUGGUN, 0x0016, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PSYCHOSISGUN, 0x00ffffff, 0x00000000) - chr 0x00004200, 0x17, 0x039e, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0x8009c000, 0x00000100, 0x02, 0x0a, 0x41, 0, 0x00030000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0017, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00004200, 0x17, 0x039e, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0x8009c000, 0x00000100, 0x02, 0x0a, 0x41, 0, 0x00030000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0017, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00004200, 0x18, 0x039b, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0x8009c000, 0x00000100, 0x02, 0x0a, 0x42, 0, 0x00030000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00004200, 0x18, 0x039b, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0x8009c000, 0x00000100, 0x02, 0x0a, 0x42, 0, 0x00030000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00004200, 0x19, 0x039d, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0x8009c000, 0x00000100, 0x02, 0x0a, 0x43, 0, 0x00030000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0019, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00004200, 0x19, 0x039d, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0x8009c000, 0x00000100, 0x02, 0x0a, 0x43, 0, 0x00030000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0019, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00004200, 0x1a, 0x039c, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0x8009c000, 0x00000100, 0x02, 0x0a, 0x44, 0, 0x00030000 - weapon 0x0100, MODEL_CHRDRAGON, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00004200, 0x1a, 0x039c, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0x8009c000, 0x00000100, 0x02, 0x0a, 0x44, 0, 0x00030000) + weapon(0x0100, MODEL_CHRDRAGON, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00004200, 0x46, 0x03c2, BODY_LABTECH, HEAD_RANDOM, GFUNC_UNALERTED, -1, -1, 1000, 100, 0x8c018000, 0x20000100, 0x02, 0x0b, -1, 0, 0x00010000 - weapon 0x0100, MODEL_CHRDRUGGUN, 0x0046, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRDRUGGUN, 0x0046, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PSYCHOSISGUN, 0x00ffffff, 0x00000000 + chr(0x00004200, 0x46, 0x03c2, BODY_LABTECH, HEAD_RANDOM, GFUNC_UNALERTED, -1, -1, 1000, 100, 0x8c018000, 0x20000100, 0x02, 0x0b, -1, 0, 0x00010000) + weapon(0x0100, MODEL_CHRDRUGGUN, 0x0046, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRDRUGGUN, 0x0046, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PSYCHOSISGUN, 0x00ffffff, 0x00000000) - chr 0x00004200, 0x47, 0x011c, BODY_LABTECH, HEAD_RANDOM, GFUNC_UNALERTED, -1, -1, 1000, 100, 0x8c018000, 0x20000100, 0x02, 0x0b, -1, 0, 0x00040000 - weapon 0x0100, MODEL_CHRDRUGGUN, 0x0047, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRDRUGGUN, 0x0047, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PSYCHOSISGUN, 0x00ffffff, 0x00000000 + chr(0x00004200, 0x47, 0x011c, BODY_LABTECH, HEAD_RANDOM, GFUNC_UNALERTED, -1, -1, 1000, 100, 0x8c018000, 0x20000100, 0x02, 0x0b, -1, 0, 0x00040000) + weapon(0x0100, MODEL_CHRDRUGGUN, 0x0047, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRDRUGGUN, 0x0047, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PSYCHOSISGUN, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x1b, 0x00db, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xc081a000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x001b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x1b, 0x00db, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xc081a000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x001b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x1c, 0x00ca, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xc081a000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x001c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x1c, 0x00ca, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xc081a000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x001c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x1d, 0x00c7, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xc081a000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x001d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x1d, 0x00c7, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xc081a000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x001d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x1e, 0x03e4, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x001e, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x1e, 0x03e4, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x001e, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x1f, 0x03e5, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x001f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x1f, 0x03e5, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x001f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x20, 0x03e6, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0020, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x20, 0x03e6, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0020, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x21, 0x03e7, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0021, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x21, 0x03e7, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0021, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x22, 0x039f, BODY_A51AIRMAN, HEAD_RANDOM, 0x0401, -1, -1, 1000, 100, 0x8c018000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0022, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x22, 0x039f, BODY_A51AIRMAN, HEAD_RANDOM, 0x0401, -1, -1, 1000, 100, 0x8c018000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0022, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x23, 0x03a2, BODY_A51AIRMAN, HEAD_RANDOM, 0x0402, -1, -1, 1000, 100, 0x8c018000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0023, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x23, 0x03a2, BODY_A51AIRMAN, HEAD_RANDOM, 0x0402, -1, -1, 1000, 100, 0x8c018000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0023, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x24, 0x03a3, BODY_A51AIRMAN, HEAD_RANDOM, 0x0403, -1, -1, 1000, 100, 0x8c018000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0024, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x24, 0x03a3, BODY_A51AIRMAN, HEAD_RANDOM, 0x0403, -1, -1, 1000, 100, 0x8c018000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0024, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x25, 0x03a4, BODY_A51AIRMAN, HEAD_RANDOM, 0x0404, -1, -1, 1000, 100, 0x8c018000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0025, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x25, 0x03a4, BODY_A51AIRMAN, HEAD_RANDOM, 0x0404, -1, -1, 1000, 100, 0x8c018000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0025, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x26, 0x03a5, BODY_A51AIRMAN, HEAD_RANDOM, 0x0405, -1, -1, 1000, 100, 0x8c018000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0026, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x26, 0x03a5, BODY_A51AIRMAN, HEAD_RANDOM, 0x0405, -1, -1, 1000, 100, 0x8c018000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0026, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x27, 0x0386, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 2000, 100, 0x8c018000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0027, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x27, 0x0386, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 2000, 100, 0x8c018000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0027, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x28, 0x0387, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 2000, 100, 0x8c018000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0028, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x28, 0x0387, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 2000, 100, 0x8c018000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0028, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x29, 0x03a7, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 100, 0x8001c000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0029, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x29, 0x03a7, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 100, 0x8001c000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0029, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x2a, 0x03a6, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 100, 0x80018200, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x002a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x2a, 0x03a6, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 100, 0x80018200, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x002a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x2b, 0x03a8, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 100, 0x8001c000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x002b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x2b, 0x03a8, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 100, 0x8001c000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x002b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x2c, 0x03cb, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 100, 0x8001c000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x002c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x2c, 0x03cb, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 100, 0x8001c000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x002c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x2d, 0x035d, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 100, 0xcc090000, 0x00004000, 0x02, 0x0f, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x002d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x2d, 0x035d, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 100, 0xcc090000, 0x00004000, 0x02, 0x0f, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x002d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x2e, 0x0362, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 100, 0xcc090000, 0x00004000, 0x02, 0x0f, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x002e, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x2e, 0x0362, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 100, 0xcc090000, 0x00004000, 0x02, 0x0f, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x002e, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x2f, 0x035c, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 100, 0xcc090000, 0x00006000, 0x02, 0x0f, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x002f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x2f, 0x035c, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 100, 0xcc090000, 0x00006000, 0x02, 0x0f, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x002f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x30, 0x035e, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 100, 0xcc090000, 0x00004000, 0x02, 0x0f, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0030, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x30, 0x035e, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 100, 0xcc090000, 0x00004000, 0x02, 0x0f, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0030, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x31, 0x035f, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 100, 0xc0010000, 0x00000040, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0031, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x31, 0x035f, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 100, 0xc0010000, 0x00000040, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0031, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x32, 0x0361, BODY_A51AIRMAN, HEAD_RANDOM, 0x0406, -1, -1, 1000, 20, 0xc0010000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0032, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x32, 0x0361, BODY_A51AIRMAN, HEAD_RANDOM, 0x0406, -1, -1, 1000, 20, 0xc0010000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0032, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x33, 0x0360, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 20, 0xc0010000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0033, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x33, 0x0360, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 20, 0xc0010000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0033, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x34, 0x038c, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 20, 0xc0010000, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0034, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x34, 0x038c, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 20, 0xc0010000, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0034, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x35, 0x038d, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 20, 0xc0010000, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0035, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x35, 0x038d, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 20, 0xc0010000, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0035, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x36, 0x038e, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 20, 0xc0010000, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0036, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x36, 0x038e, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 20, 0xc0010000, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0036, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x37, 0x038f, BODY_LABTECH, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 20, 0xc0010000, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRUGGUN, 0x0037, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x37, 0x038f, BODY_LABTECH, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 20, 0xc0010000, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRUGGUN, 0x0037, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x38, 0x0390, BODY_LABTECH, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 20, 0xc0010000, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRUGGUN, 0x0038, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x38, 0x0390, BODY_LABTECH, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 20, 0xc0010000, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRUGGUN, 0x0038, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x39, 0x0391, BODY_LABTECH, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 20, 0xc0010000, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRUGGUN, 0x0039, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x39, 0x0391, BODY_LABTECH, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 20, 0xc0010000, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRUGGUN, 0x0039, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x3a, 0x0392, BODY_LABTECH, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 20, 0xc0010000, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRUGGUN, 0x003a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x3a, 0x0392, BODY_LABTECH, HEAD_RANDOM, FUNC_INIT_50HP_GUARD, -1, -1, 1000, 20, 0xc0010000, 0x00000000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRUGGUN, 0x003a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000) - chr 0x00000000, 0x4e, 0x0118, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_CLONE_SPAWNER, -1, -1, 200, 100, 0x80092000, 0x00301000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x004e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000000, 0x4e, 0x0118, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_CLONE_SPAWNER, -1, -1, 200, 100, 0x80092000, 0x00301000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x004e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000000, 0x4f, 0x0212, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_CLONE_SPAWNER, -1, -1, 200, 100, 0x80092000, 0x00301000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x004f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000000, 0x4f, 0x0212, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_CLONE_SPAWNER, -1, -1, 200, 100, 0x80092000, 0x00301000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x004f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000000, 0x50, 0x00f3, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_CLONE_SPAWNER, -1, -1, 200, 100, 0x80092000, 0x00301000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0050, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000000, 0x50, 0x00f3, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_CLONE_SPAWNER, -1, -1, 200, 100, 0x80092000, 0x00301000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0050, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000000, 0x51, 0x01a8, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_CLONE_SPAWNER2, -1, -1, 200, 100, 0x80092000, 0x00301000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0051, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000000, 0x51, 0x01a8, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_CLONE_SPAWNER2, -1, -1, 200, 100, 0x80092000, 0x00301000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0051, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000000, 0x52, 0x01a2, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_CLONE_SPAWNER2, -1, -1, 200, 100, 0x80092000, 0x00301000, 0x02, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRAGON, 0x0052, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000 + chr(0x00000000, 0x52, 0x01a2, BODY_A51AIRMAN, HEAD_RANDOM, FUNC_CLONE_SPAWNER2, -1, -1, 200, 100, 0x80092000, 0x00301000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRAGON, 0x0052, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) - chr 0x00000200, CHR_OUTRO_GUARD, 0x01a3, BODY_LABTECH, HEAD_RANDOM, FUNC_INIT_OUTRO_GUARD, -1, -1, 1000, 20, 0xc0010000, 0x00000000, 0x80, 0x00, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDRUGGUN, 0x0056, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000 + chr(0x00000200, CHR_OUTRO_GUARD, 0x01a3, BODY_LABTECH, HEAD_RANDOM, FUNC_INIT_OUTRO_GUARD, -1, -1, 1000, 20, 0xc0010000, 0x00000000, 0x80, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRUGGUN, 0x0056, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000) - tag OBJ_TROLLEY, 1 - hover_prop 0x0100, MODEL_A51TROLLEY, 0x03bd, 0x05100101, 0x00100300, 0x01000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag OBJ_EXPERIMENT, 1 - hover_prop 0x0100, MODEL_HOVERBED, 0x03c3, 0x05100101, 0x00102300, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x3e, 1 - object 0x0100, MODEL_ELVIS_SAUCER, 0x0396, 0x00001508, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00002ee0, 0x00000000, 0x00000000, 0x0fff0000 - door_scale 0x00008000 - tag 0x35, 1 - lift 0x0100, MODEL_A51_LIFT_STORE, 0x0334, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0334, 0x0335, 0xffffffff, 0x00000001, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x20000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51LIFTDOOR, 0x02e2, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00000000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51LIFTDOOR, 0x02e1, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00000000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -2, -3, 0, 0 - link_objects -2, -4, 0, 1 - tag 0x39, 1 - lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x0336, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0336, 0x0337, 0xffffffff, 0x00000001, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x20000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51LIFTDOOR, 0x02e4, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00080000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51LIFTDOOR, 0x02e3, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00080000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -2, -3, 0, 0 - link_objects -2, -4, 0, 1 - door_scale 0x00010000 - tag 0x03, 1 - multimonitor 0x0099, MODEL_PD_CONSOLE, 0x0428, 0x000001a1, 0x00000000, 0x00000000, 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, 0x03030000 - tag 0x02, 1 - multimonitor 0x0099, MODEL_PD_CONSOLE, 0x0427, 0x000001a1, 0x00000000, 0x00000000, 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, 0x03030000 - tag 0x01, 1 - multimonitor 0x0099, MODEL_PD_CONSOLE, 0x0429, 0x000001a1, 0x00000000, 0x00000000, 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, 0x03030000 - tag 0x04, 1 - multimonitor 0x0099, MODEL_PD_CONSOLE, 0x0426, 0x000001a1, 0x00000000, 0x00000000, 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, 0x03030000 - tag 0x3c, 2 - tag 0x3d, 2 - multimonitor 0x0099, MODEL_PD_CONSOLE, 0x03c6, 0x000001a1, 0x00000000, 0x00000000, 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, 0x03030000 - multimonitor 0x0099, MODEL_PD_CONSOLE, 0x03c7, 0x000001a1, 0x00000000, 0x00000000, 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, 0x03030000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x027f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x027e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x027d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x027c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x027a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x027b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0278, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0279, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0277, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0276, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0274, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000002, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0275, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000002, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0273, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0272, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0270, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0271, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x026f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x026e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x026c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x026d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x026b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x026a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0268, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0269, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0266, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0267, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x2b, 4 - tag 0x2c, 4 - tag 0x2d, 4 - tag 0x2e, 4 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02aa, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000080, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02ab, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000080, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02ac, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000080, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02ad, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000080, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x07, 2 - tag 0x08, 2 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0280, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000040, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0281, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000040, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x09, 2 - tag 0x0a, 2 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02b7, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02b8, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x0b, 2 - tag 0x0c, 2 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02b9, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02ba, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x0d, 2 - tag 0x0e, 2 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02bb, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02bc, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0283, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0282, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0284, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0285, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x028b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x028a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_GL, 0x0286, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00020004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x01f407d0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0287, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_GL, 0x0289, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00020004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x01f407d0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0288, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02a4, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02a5, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02a6, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00001999, 0x00000004, 0x00000001, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_SECRET, 0x028e, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0000d555, 0x0000d555, 0x00001999, 0x00000004, 0x00000001, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x0292, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x0293, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x0294, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x0295, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x0299, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x0298, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x0f, 1 - door 0x0100, MODEL_A51_HORIZ_DOOR_GL, 0x02a8, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00020004, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x01f407d0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02a7, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x029a, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x029b, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x029c, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x029d, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x13, 1 - door 0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x029e, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x029f, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x30, 3 - tag 0x31, 3 - tag 0x11, 1 - door 0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x02a1, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x02a0, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x028c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x028d, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02ae, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000020, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x028f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x12, 1 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x0290, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000080, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x0291, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02a2, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000a666, 0x0000a666, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02a3, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000a666, 0x0000a666, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51GATE_L, 0x02b5, 0x10000010, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000ccc, 0x00014000, 0x00000111, 0x00000000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51GATE_R, 0x02b6, 0x10000010, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000ccc, 0x00014000, 0x00000111, 0x00000000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - object 0x0100, MODEL_A51_CRATE1, 0x02e5, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x02e6, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE3, 0x02e7, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x02e8, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x02e9, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE3, 0x02ea, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x02eb, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x02ec, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE3, 0x02ed, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x02ee, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x02ef, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE3, 0x02f0, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x02f1, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x02f2, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE3, 0x02f3, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x02f4, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x02f5, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE3, 0x02f6, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x02f7, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - link_paths 0x00000002, 0x011101bb, 0x00000000 - link_scenery 1, 0, 2 - door 0x0100, MODEL_A51_UNEXP1, 0x0422, 0x13520d00, 0x20304300, 0x00000000, 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_A51_EXP1, 0x0421, 0x035205e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x18, -2 - object 0x0100, MODEL_A51TABLE, 0x0475, 0x05120101, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x46, 6 - tag 0x47, 6 - tag 0x48, 8 - tag 0x49, 8 - tag 0x38, 1 - lift 0x0100, MODEL_A51_LIFT_CONTROL, 0x032a, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x032a, 0x032b, 0xffffffff, 0x00000001, 0x00000005, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x0330, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x0331, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -2, -3, 0, 1 - link_objects -2, -4, 0, 1 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x0332, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x0333, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -2, -7, 0, 2 - link_objects -2, -8, 0, 2 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x032e, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x032f, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x14, 2 - tag 0x15, 2 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02b3, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_ST, 0x02b4, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x33, 2 - tag 0x34, 2 - door 0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x02af, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x02b0, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0321, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0327, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0320, 0x10000000, 0x20000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001900, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0326, 0x10000000, 0x20000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001900, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02b2, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02b1, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x17, 1 - hover_prop 0x00eb, MODEL_HOVERCRATE1, 0x01c7, 0x35100101, 0x80102300, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x02010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - object 0x0100, MODEL_A51BOARD, 0x03c4, 0x05120101, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02bd, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02be, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02bf, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c0, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02c1, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c2, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02c3, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c4, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - glass 0x0100, MODEL_MEDLABWIN1, 0x0436, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_MEDLABWIN2, 0x0437, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_MEDLABWIN2, 0x0438, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tag OBJ_GLASS1, 3 - tag OBJ_GLASS2, 3 - tag OBJ_GLASS3, 3 - glass 0x0100, MODEL_MEDLABWIN1, 0x0439, 0x04000b62, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_MEDLABWIN2, 0x043a, 0x04000b62, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_MEDLABWIN2, 0x043b, 0x04000b62, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0446, 0x14020b62, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0096012c, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0445, 0x14020b62, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0096012c, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x043d, 0x00420262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x043e, 0x00420262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x043f, 0x00420262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0440, 0x00420262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0441, 0x00420262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0442, 0x00420262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tag 0x19, 1 - autogun 0x00c0, MODEL_ROOFGUN, 0x0405, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x01080000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000da, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x1a, 2 - tag 0x22, 2 - lift 0x0100, MODEL_CHAMBER, 0x033c, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x033c, 0x033d, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x045c, 0x10000002, 0x00000000, 0x00000000, 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, 0xffffff12 - tag 0x1c, 2 - tag 0x24, 2 - lift 0x0100, MODEL_CHAMBER, 0x0340, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0340, 0x0341, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x0459, 0x10000002, 0x00000000, 0x00000000, 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, 0xffffff12 - tag 0x1e, 2 - tag 0x26, 2 - lift 0x0100, MODEL_CHAMBER, 0x0344, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0344, 0x0345, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x045a, 0x10000002, 0x00000000, 0x00000000, 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, 0xffffff12 - tag 0x20, 2 - tag 0x28, 2 - lift 0x0100, MODEL_CHAMBER, 0x0348, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0348, 0x0349, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x045b, 0x10000002, 0x00000000, 0x00000000, 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, 0xffffff12 - tag 0x1b, 2 - tag 0x23, 2 - lift 0x0100, MODEL_CHAMBER, 0x033f, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x033f, 0x033e, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x045e, 0x10000002, 0x00000000, 0x00000000, 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, 0xffffff12 - tag 0x1d, 2 - tag 0x25, 2 - lift 0x0100, MODEL_CHAMBER, 0x0343, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0343, 0x0342, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x045f, 0x10000002, 0x00000000, 0x00000000, 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, 0xffffff12 - tag 0x1f, 2 - tag 0x27, 2 - lift 0x0100, MODEL_CHAMBER, 0x0347, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0347, 0x0346, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x0460, 0x10000002, 0x00000000, 0x00000000, 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, 0xffffff12 - tag 0x21, 2 - tag 0x29, 2 - lift 0x0100, MODEL_CHAMBER, 0x034b, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x034b, 0x034a, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - singlemonitor 0x0100, MODEL_MODEMBOX, 0x045d, 0x10000002, 0x00000000, 0x00000000, 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, 0xffffff12 - tag 0x32, 1 - object 0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0461, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0462, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0463, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0464, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0465, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0466, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0467, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0468, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0469, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x046a, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x046b, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x046c, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x046d, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x046e, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x046f, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0470, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0471, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0472, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0473, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51TABLE, 0x0474, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0476, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x44, 1 - object 0x00c0, MODEL_DD_CHAIR, 0x0477, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x00c0, MODEL_DD_CHAIR, 0x0479, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x43, 1 - object 0x00c0, MODEL_DD_CHAIR, 0x047a, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x047b, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x40, 1 - object 0x00c0, MODEL_DD_CHAIR, 0x047c, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x047d, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x047e, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x047f, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x3f, 1 - object 0x00c0, MODEL_DD_CHAIR, 0x0480, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0481, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0482, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0483, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x41, 1 - object 0x00c0, MODEL_DD_CHAIR, 0x0484, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x42, 1 - object 0x00c0, MODEL_DD_CHAIR, 0x0485, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x3b, 1 - object 0x0100, MODEL_DD_CHAIR, 0x0486, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0487, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0488, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0489, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x0491, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x0492, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x0493, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x0494, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x0495, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x0496, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x0497, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x0498, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x0499, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x049a, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x049b, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x049c, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x049d, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x049e, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x049f, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x04a0, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x04a1, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x04a2, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51WASTEBIN, 0x04a3, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04a4, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04a5, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04a6, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04a7, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04a8, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04a9, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04aa, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04ab, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04ac, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE3, 0x031a, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE1, 0x031b, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x04b7, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x04b8, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x04b9, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x04ba, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x04bb, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x04bc, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x04bd, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x04be, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c7, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c8, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c9, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02ca, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02cb, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02cc, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02cd, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02ce, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02cf, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02d0, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02d1, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02d2, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02d3, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02d4, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02d5, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02d6, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02d7, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02d8, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02d9, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02da, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02db, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - object 0x0100, MODEL_BARREL, 0x0307, 0x00000501, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0306, 0x00000501, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0305, 0x00000501, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0304, 0x00000501, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x02f9, 0x00000141, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x02fa, 0x00000141, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x02fb, 0x00000141, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x02fc, 0x00000141, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x02fd, 0x00000141, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x02fe, 0x00000141, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x02ff, 0x00000141, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0300, 0x00000141, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0301, 0x00000141, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0302, 0x00000141, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_BARREL, 0x0303, 0x00000141, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag OBJ_PSYCHOSISGUN, 1 - weapon 0x0100, MODEL_CHRDRUGGUN, 0x0397, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PSYCHOSISGUN, 0x00ffffff, 0x00000000 - object 0x0200, MODEL_A51TABLE, 0x04d6, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_A51TABLE, 0x04d7, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04af, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04b0, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04b1, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04b2, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04b3, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04b4, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04b5, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51DIVIDE, 0x04b6, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x048f, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0490, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag OBJ_CONSOLE, 1 - multimonitor 0x0099, MODEL_PD_CONSOLE, 0x0435, 0x00000101, 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, 0x03030000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04ed, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04ee, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04ef, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04f0, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04f1, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04f2, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04f3, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04f4, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04f5, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_G5_MAINFRAME, 0x04f6, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x4f, 1 - object 0x0100, MODEL_A51GRATE, 0x0443, 0x000215e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x50, 1 - object 0x0100, MODEL_A51GRATE, 0x0449, 0x000215e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 + tag(OBJ_TROLLEY, 1) + hover_prop(0x0100, MODEL_A51TROLLEY, 0x03bd, 0x05100101, 0x00100300, 0x01000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(OBJ_EXPERIMENT, 1) + hover_prop(0x0100, MODEL_HOVERBED, 0x03c3, 0x05100101, 0x00102300, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x3e, 1) + stdobject(0x0100, MODEL_ELVIS_SAUCER, 0x0396, 0x00001508, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00002ee0, 0x00000000, 0x00000000, 0x0fff0000) + door_scale(0x00008000) + tag(0x35, 1) + lift(0x0100, MODEL_A51_LIFT_STORE, 0x0334, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0334, 0x0335, 0xffffffff, 0x00000001, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x20000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51LIFTDOOR, 0x02e2, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00000000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51LIFTDOOR, 0x02e1, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00000000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-2, -3, 0, 0) + link_objects(-2, -4, 0, 1) + tag(0x39, 1) + lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x0336, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0336, 0x0337, 0xffffffff, 0x00000001, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x20000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51LIFTDOOR, 0x02e4, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00080000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51LIFTDOOR, 0x02e3, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00080000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-2, -3, 0, 0) + link_objects(-2, -4, 0, 1) + door_scale(0x00010000) + tag(0x03, 1) + multimonitor(0x0099, MODEL_PD_CONSOLE, 0x0428, 0x000001a1, 0x00000000, 0x00000000, 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, 0x03030000) + tag(0x02, 1) + multimonitor(0x0099, MODEL_PD_CONSOLE, 0x0427, 0x000001a1, 0x00000000, 0x00000000, 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, 0x03030000) + tag(0x01, 1) + multimonitor(0x0099, MODEL_PD_CONSOLE, 0x0429, 0x000001a1, 0x00000000, 0x00000000, 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, 0x03030000) + tag(0x04, 1) + multimonitor(0x0099, MODEL_PD_CONSOLE, 0x0426, 0x000001a1, 0x00000000, 0x00000000, 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, 0x03030000) + tag(0x3c, 2) + tag(0x3d, 2) + multimonitor(0x0099, MODEL_PD_CONSOLE, 0x03c6, 0x000001a1, 0x00000000, 0x00000000, 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, 0x03030000) + multimonitor(0x0099, MODEL_PD_CONSOLE, 0x03c7, 0x000001a1, 0x00000000, 0x00000000, 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, 0x03030000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x027f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x027e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x027d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x027c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x027a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x027b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0278, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0279, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0277, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0276, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0274, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000002, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0275, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000002, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0273, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0272, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0270, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0271, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x026f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x026e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x026c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x026d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x026b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x026a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0268, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0269, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0266, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0267, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x2b, 4) + tag(0x2c, 4) + tag(0x2d, 4) + tag(0x2e, 4) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02aa, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000080, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02ab, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000080, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02ac, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000080, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02ad, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000080, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x07, 2) + tag(0x08, 2) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0280, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000040, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0281, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000040, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x09, 2) + tag(0x0a, 2) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02b7, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02b8, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x0b, 2) + tag(0x0c, 2) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02b9, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02ba, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x0d, 2) + tag(0x0e, 2) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02bb, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02bc, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0283, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0282, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0284, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0285, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x028b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x028a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_GL, 0x0286, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00020004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x01f407d0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0287, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_GL, 0x0289, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00020004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x01f407d0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0288, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02a4, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02a5, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02a6, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00001999, 0x00000004, 0x00000001, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_SECRET, 0x028e, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0000d555, 0x0000d555, 0x00001999, 0x00000004, 0x00000001, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x0292, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x0293, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x0294, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x0295, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x0299, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x0298, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x0f, 1) + door(0x0100, MODEL_A51_HORIZ_DOOR_GL, 0x02a8, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00020004, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x01f407d0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02a7, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x029a, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x029b, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x029c, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x029d, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x13, 1) + door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x029e, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x029f, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x30, 3) + tag(0x31, 3) + tag(0x11, 1) + door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x02a1, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x02a0, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x028c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x028d, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02ae, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000020, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x028f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x12, 1) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x0290, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000080, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x0291, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02a2, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000a666, 0x0000a666, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02a3, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000a666, 0x0000a666, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51GATE_L, 0x02b5, 0x10000010, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000ccc, 0x00014000, 0x00000111, 0x00000000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51GATE_R, 0x02b6, 0x10000010, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000ccc, 0x00014000, 0x00000111, 0x00000000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x02e5, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x02e6, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE3, 0x02e7, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x02e8, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x02e9, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE3, 0x02ea, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x02eb, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x02ec, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE3, 0x02ed, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x02ee, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x02ef, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE3, 0x02f0, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x02f1, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x02f2, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE3, 0x02f3, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x02f4, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x02f5, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE3, 0x02f6, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x02f7, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + link_paths(0x00000002, 0x011101bb, 0x00000000) + link_scenery(1, 0, 2) + door(0x0100, MODEL_A51_UNEXP1, 0x0422, 0x13520d00, 0x20304300, 0x00000000, 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) + stdobject(0x0100, MODEL_A51_EXP1, 0x0421, 0x035205e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x18, -2) + stdobject(0x0100, MODEL_A51TABLE, 0x0475, 0x05120101, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x46, 6) + tag(0x47, 6) + tag(0x48, 8) + tag(0x49, 8) + tag(0x38, 1) + lift(0x0100, MODEL_A51_LIFT_CONTROL, 0x032a, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x032a, 0x032b, 0xffffffff, 0x00000001, 0x00000005, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x0330, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x0331, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-2, -3, 0, 1) + link_objects(-2, -4, 0, 1) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x0332, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x0333, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-2, -7, 0, 2) + link_objects(-2, -8, 0, 2) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x032e, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x032f, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x14, 2) + tag(0x15, 2) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02b3, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02b4, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x33, 2) + tag(0x34, 2) + door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x02af, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x02b0, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0321, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0327, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0320, 0x10000000, 0x20000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001900, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0326, 0x10000000, 0x20000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001900, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02b2, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02b1, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x17, 1) + hover_prop(0x00eb, MODEL_HOVERCRATE1, 0x01c7, 0x35100101, 0x80102300, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x02010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + stdobject(0x0100, MODEL_A51BOARD, 0x03c4, 0x05120101, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02bd, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02be, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02bf, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c0, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02c1, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c2, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02c3, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c4, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + glass(0x0100, MODEL_MEDLABWIN1, 0x0436, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_MEDLABWIN2, 0x0437, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_MEDLABWIN2, 0x0438, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(OBJ_GLASS1, 3) + tag(OBJ_GLASS2, 3) + tag(OBJ_GLASS3, 3) + glass(0x0100, MODEL_MEDLABWIN1, 0x0439, 0x04000b62, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_MEDLABWIN2, 0x043a, 0x04000b62, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_MEDLABWIN2, 0x043b, 0x04000b62, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0446, 0x14020b62, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0096012c, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0445, 0x14020b62, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0096012c, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x043d, 0x00420262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x043e, 0x00420262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x043f, 0x00420262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0440, 0x00420262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0441, 0x00420262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0442, 0x00420262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tag(0x19, 1) + autogun(0x00c0, MODEL_ROOFGUN, 0x0405, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x01080000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000da, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x1a, 2) + tag(0x22, 2) + lift(0x0100, MODEL_CHAMBER, 0x033c, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x033c, 0x033d, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x045c, 0x10000002, 0x00000000, 0x00000000, 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, 0xffffff12) + tag(0x1c, 2) + tag(0x24, 2) + lift(0x0100, MODEL_CHAMBER, 0x0340, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0340, 0x0341, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x0459, 0x10000002, 0x00000000, 0x00000000, 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, 0xffffff12) + tag(0x1e, 2) + tag(0x26, 2) + lift(0x0100, MODEL_CHAMBER, 0x0344, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0344, 0x0345, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x045a, 0x10000002, 0x00000000, 0x00000000, 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, 0xffffff12) + tag(0x20, 2) + tag(0x28, 2) + lift(0x0100, MODEL_CHAMBER, 0x0348, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0348, 0x0349, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x045b, 0x10000002, 0x00000000, 0x00000000, 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, 0xffffff12) + tag(0x1b, 2) + tag(0x23, 2) + lift(0x0100, MODEL_CHAMBER, 0x033f, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x033f, 0x033e, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x045e, 0x10000002, 0x00000000, 0x00000000, 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, 0xffffff12) + tag(0x1d, 2) + tag(0x25, 2) + lift(0x0100, MODEL_CHAMBER, 0x0343, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0343, 0x0342, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x045f, 0x10000002, 0x00000000, 0x00000000, 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, 0xffffff12) + tag(0x1f, 2) + tag(0x27, 2) + lift(0x0100, MODEL_CHAMBER, 0x0347, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0347, 0x0346, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x0460, 0x10000002, 0x00000000, 0x00000000, 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, 0xffffff12) + tag(0x21, 2) + tag(0x29, 2) + lift(0x0100, MODEL_CHAMBER, 0x034b, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x034b, 0x034a, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x045d, 0x10000002, 0x00000000, 0x00000000, 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, 0xffffff12) + tag(0x32, 1) + stdobject(0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0461, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0462, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0463, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0464, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0465, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0466, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0467, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0468, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0469, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x046a, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x046b, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x046c, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x046d, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x046e, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x046f, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0470, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0471, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0472, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0473, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0474, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0476, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x44, 1) + stdobject(0x00c0, MODEL_DD_CHAIR, 0x0477, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x00c0, MODEL_DD_CHAIR, 0x0479, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x43, 1) + stdobject(0x00c0, MODEL_DD_CHAIR, 0x047a, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x047b, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x40, 1) + stdobject(0x00c0, MODEL_DD_CHAIR, 0x047c, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x047d, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x047e, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x047f, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x3f, 1) + stdobject(0x00c0, MODEL_DD_CHAIR, 0x0480, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0481, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0482, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0483, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x41, 1) + stdobject(0x00c0, MODEL_DD_CHAIR, 0x0484, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x42, 1) + stdobject(0x00c0, MODEL_DD_CHAIR, 0x0485, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x3b, 1) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0486, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0487, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0488, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0489, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x0491, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x0492, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x0493, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x0494, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x0495, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x0496, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x0497, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x0498, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x0499, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x049a, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x049b, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x049c, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x049d, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x049e, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x049f, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x04a0, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x04a1, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x04a2, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x04a3, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04a4, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04a5, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04a6, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04a7, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04a8, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04a9, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04aa, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04ab, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04ac, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE3, 0x031a, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x031b, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x04b7, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x04b8, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x04b9, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x04ba, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x04bb, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x04bc, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x04bd, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x04be, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c7, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c8, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c9, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02ca, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02cb, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02cc, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02cd, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02ce, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02cf, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02d0, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02d1, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02d2, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02d3, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02d4, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02d5, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02d6, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02d7, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02d8, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02d9, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02da, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02db, 0x34000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + stdobject(0x0100, MODEL_BARREL, 0x0307, 0x00000501, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0306, 0x00000501, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0305, 0x00000501, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0304, 0x00000501, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x02f9, 0x00000141, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x02fa, 0x00000141, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x02fb, 0x00000141, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x02fc, 0x00000141, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x02fd, 0x00000141, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x02fe, 0x00000141, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x02ff, 0x00000141, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0300, 0x00000141, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0301, 0x00000141, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0302, 0x00000141, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_BARREL, 0x0303, 0x00000141, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(OBJ_PSYCHOSISGUN, 1) + weapon(0x0100, MODEL_CHRDRUGGUN, 0x0397, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PSYCHOSISGUN, 0x00ffffff, 0x00000000) + stdobject(0x0200, MODEL_A51TABLE, 0x04d6, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_A51TABLE, 0x04d7, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04af, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04b0, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04b1, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04b2, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04b3, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04b4, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04b5, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04b6, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x048f, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0490, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(OBJ_CONSOLE, 1) + multimonitor(0x0099, MODEL_PD_CONSOLE, 0x0435, 0x00000101, 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, 0x03030000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04ed, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04ee, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04ef, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04f0, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04f1, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04f2, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04f3, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04f4, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04f5, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04f6, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x4f, 1) + stdobject(0x0100, MODEL_A51GRATE, 0x0443, 0x000215e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x50, 1) + stdobject(0x0100, MODEL_A51GRATE, 0x0449, 0x000215e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) endprops +}; -intro: - spawn 0x03dd - ammo AMMOTYPE_MAGNUM, 1 - outfit OUTFIT_ELVIS +u8 intro[] = { + spawn(0x03dd) + ammo(AMMOTYPE_MAGNUM, 1) + outfit(OUTFIT_ELVIS) endintro +}; -path00: - pad 0x0194 - pad 0x0193 - pad 0x0196 - pad 0x0195 - endpath +s32 path00[] = { + 0x0194, + 0x0193, + 0x0196, + 0x0195, + -1, +}; -path01: - pad 0x019a - pad 0x019c - pad 0x018b - pad 0x018a - pad 0x018f - pad 0x01a0 - pad 0x0190 - pad 0x019e - pad 0x0199 - endpath +s32 path01[] = { + 0x019a, + 0x019c, + 0x018b, + 0x018a, + 0x018f, + 0x01a0, + 0x0190, + 0x019e, + 0x0199, + -1, +}; -path02: - pad 0x0190 - pad 0x019e - pad 0x0199 - pad 0x019a - pad 0x019c - pad 0x018b - pad 0x018a - pad 0x018f - pad 0x01a0 - endpath +s32 path02[] = { + 0x0190, + 0x019e, + 0x0199, + 0x019a, + 0x019c, + 0x018b, + 0x018a, + 0x018f, + 0x01a0, + -1, +}; -path03: - pad 0x018d - pad 0x0189 - pad 0x0191 - pad 0x018f - pad 0x018e - endpath +s32 path03[] = { + 0x018d, + 0x0189, + 0x0191, + 0x018f, + 0x018e, + -1, +}; -path04: - pad 0x0185 - pad 0x0186 - pad 0x0187 - pad 0x0182 - pad 0x0188 - endpath +s32 path04[] = { + 0x0185, + 0x0186, + 0x0187, + 0x0182, + 0x0188, + -1, +}; -path05: - pad 0x01bd - pad 0x01bc - pad 0x01bb - pad 0x01bc - pad 0x01bd - endpath +s32 path05[] = { + 0x01bd, + 0x01bc, + 0x01bb, + 0x01bc, + 0x01bd, + -1, +}; -path06: - pad 0x0111 - pad 0x010f - pad 0x011a - pad 0x0118 - pad 0x011a - pad 0x010f - pad 0x0111 - endpath +s32 path06[] = { + 0x0111, + 0x010f, + 0x011a, + 0x0118, + 0x011a, + 0x010f, + 0x0111, + -1, +}; -path07: - pad 0x0112 - pad 0x0113 - pad 0x0100 - pad 0x0102 - pad 0x0104 - pad 0x0102 - pad 0x0100 - pad 0x0113 - endpath +s32 path07[] = { + 0x0112, + 0x0113, + 0x0100, + 0x0102, + 0x0104, + 0x0102, + 0x0100, + 0x0113, + -1, +}; -path08: - pad 0x00f7 - pad 0x00fa - pad 0x00fb - pad 0x00fc - pad 0x00fb - pad 0x00fa - pad 0x00f7 - pad 0x00f8 - pad 0x00f9 - pad 0x00fa - endpath +s32 path08[] = { + 0x00f7, + 0x00fa, + 0x00fb, + 0x00fc, + 0x00fb, + 0x00fa, + 0x00f7, + 0x00f8, + 0x00f9, + 0x00fa, + -1, +}; -path09: - pad 0x00f0 - pad 0x00f2 - pad 0x00f3 - pad 0x00f4 - pad 0x00f3 - pad 0x00f2 - pad 0x00f0 - pad 0x00ef - pad 0x00f3 - pad 0x00f2 - endpath +s32 path09[] = { + 0x00f0, + 0x00f2, + 0x00f3, + 0x00f4, + 0x00f3, + 0x00f2, + 0x00f0, + 0x00ef, + 0x00f3, + 0x00f2, + -1, +}; -path10: - pad 0x0123 - pad 0x0124 - endpath +s32 path10[] = { + 0x0123, + 0x0124, + -1, +}; -path11: - pad 0x0124 - pad 0x0123 - endpath +s32 path11[] = { + 0x0124, + 0x0123, + -1, +}; -path12: - pad 0x0118 - pad 0x0119 - pad 0x011a - pad 0x010d - pad 0x010e - pad 0x010f - pad 0x0110 - pad 0x0111 - pad 0x0112 - pad 0x0113 - pad 0x0114 - pad 0x0100 - pad 0x0114 - pad 0x0113 - pad 0x0112 - pad 0x0111 - pad 0x0110 - pad 0x010f - pad 0x010e - pad 0x010d - pad 0x011a - pad 0x0119 - endpath +s32 path12[] = { + 0x0118, + 0x0119, + 0x011a, + 0x010d, + 0x010e, + 0x010f, + 0x0110, + 0x0111, + 0x0112, + 0x0113, + 0x0114, + 0x0100, + 0x0114, + 0x0113, + 0x0112, + 0x0111, + 0x0110, + 0x010f, + 0x010e, + 0x010d, + 0x011a, + 0x0119, + -1, +}; -path13: - pad 0x00ed - pad 0x0100 - pad 0x00ed - endpath +s32 path13[] = { + 0x00ed, + 0x0100, + 0x00ed, + -1, +}; -path14: - pad 0x0100 - pad 0x0118 - pad 0x0100 - pad 0x00ed - endpath +s32 path14[] = { + 0x0100, + 0x0118, + 0x0100, + 0x00ed, + -1, +}; -paths: - register_path path00, 0, 0 - register_path path01, 1, 0 - register_path path02, 2, 0 - register_path path03, 3, 0 - register_path path04, 4, 0 - register_path path05, 5, 0 - register_path path06, 6, 0 - register_path path07, 7, 0 - register_path path08, 8, 0 - register_path path09, 9, 0 - register_path path10, 10, 0 - register_path path11, 11, 0 - register_path path12, 12, 0 - register_path path13, 13, 0 - register_path path14, 14, 0 - endpaths +struct aipaths paths[] = { + { path00, 0, 0 }, + { path01, 1, 0 }, + { path02, 2, 0 }, + { path03, 3, 0 }, + { path04, 4, 0 }, + { path05, 5, 0 }, + { path06, 6, 0 }, + { path07, 7, 0 }, + { path08, 8, 0 }, + { path09, 9, 0 }, + { path10, 10, 0 }, + { path11, 11, 0 }, + { path12, 12, 0 }, + { path13, 13, 0 }, + { path14, 14, 0 }, + { NULL, 0, 0 }, +}; -func1000_setup_counterop: +u8 func1000_setup_counterop[] = { yield - set_chr_alliance CHR_COUNTEROP, ALLIANCE_ENEMY + set_chr_alliance(CHR_COUNTEROP, ALLIANCE_ENEMY) // These objects don't exist...? - give_object_to_chr 0x05, CHR_JOANNA - give_object_to_chr 0x3a, CHR_VELVET + give_object_to_chr(0x05, CHR_JOANNA) + give_object_to_chr(0x3a, CHR_VELVET) - set_function CHR_SELF, GFUNC_REBUILD_GROUPS + set_function(CHR_SELF, GFUNC_REBUILD_GROUPS) endfunction +}; -func0401_start_path00: - set_accuracy 10 - set_reaction_speed 0 - set_chr_health CHR_SELF, 50 - set_armor 0 - set_recovery_speed 35 - set_shield 0 - assign_path 0 +u8 func0401_start_path00[] = { + set_accuracy(10) + set_reaction_speed(0) + set_chr_health(CHR_SELF, 50) + set_armor(0) + set_recovery_speed(35) + set_shield(0) + assign_path(0) start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 + set_function(CHR_SELF, GFUNC_UNALERTED_0004) endfunction +}; -func0402_start_path01: - set_accuracy 10 - set_reaction_speed 0 - set_chr_health CHR_SELF, 50 - set_armor 0 - set_recovery_speed 35 - set_shield 0 - assign_path 1 +u8 func0402_start_path01[] = { + set_accuracy(10) + set_reaction_speed(0) + set_chr_health(CHR_SELF, 50) + set_armor(0) + set_recovery_speed(35) + set_shield(0) + assign_path(1) start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 + set_function(CHR_SELF, GFUNC_UNALERTED_0004) endfunction +}; -func0403_start_path02: - set_accuracy 10 - set_reaction_speed 0 - set_chr_health CHR_SELF, 50 - set_armor 0 - set_recovery_speed 35 - set_shield 0 - assign_path 2 +u8 func0403_start_path02[] = { + set_accuracy(10) + set_reaction_speed(0) + set_chr_health(CHR_SELF, 50) + set_armor(0) + set_recovery_speed(35) + set_shield(0) + assign_path(2) start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 + set_function(CHR_SELF, GFUNC_UNALERTED_0004) endfunction +}; -func0404_start_path03: - set_accuracy 10 - set_reaction_speed 0 - set_chr_health CHR_SELF, 50 - set_armor 0 - set_recovery_speed 35 - set_shield 0 - assign_path 3 +u8 func0404_start_path03[] = { + set_accuracy(10) + set_reaction_speed(0) + set_chr_health(CHR_SELF, 50) + set_armor(0) + set_recovery_speed(35) + set_shield(0) + assign_path(3) start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 + set_function(CHR_SELF, GFUNC_UNALERTED_0004) endfunction +}; -func0405_start_path04: - set_accuracy 10 - set_reaction_speed 0 - set_chr_health CHR_SELF, 50 - set_armor 0 - set_recovery_speed 35 - set_shield 0 - assign_path 4 +u8 func0405_start_path04[] = { + set_accuracy(10) + set_reaction_speed(0) + set_chr_health(CHR_SELF, 50) + set_armor(0) + set_recovery_speed(35) + set_shield(0) + assign_path(4) start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 + set_function(CHR_SELF, GFUNC_UNALERTED_0004) endfunction +}; -func0406_start_path05: - set_accuracy 10 - set_reaction_speed 0 - set_chr_health CHR_SELF, 50 - set_armor 0 - set_recovery_speed 35 - set_shield 0 - assign_path 5 +u8 func0406_start_path05[] = { + set_accuracy(10) + set_reaction_speed(0) + set_chr_health(CHR_SELF, 50) + set_armor(0) + set_recovery_speed(35) + set_shield(0) + assign_path(5) start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 + set_function(CHR_SELF, GFUNC_UNALERTED_0004) endfunction +}; -func0407_start_path06: - set_accuracy 13 - set_reaction_speed 0 - set_chr_health CHR_SELF, 80 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - assign_path 6 +u8 func0407_start_path06[] = { + set_accuracy(13) + set_reaction_speed(0) + set_chr_health(CHR_SELF, 80) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + assign_path(6) start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 + set_function(CHR_SELF, GFUNC_UNALERTED_0004) endfunction +}; -func0408_start_path07: - set_accuracy 13 - set_reaction_speed 0 - set_chr_health CHR_SELF, 80 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - assign_path 7 +u8 func0408_start_path07[] = { + set_accuracy(13) + set_reaction_speed(0) + set_chr_health(CHR_SELF, 80) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + assign_path(7) start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 + set_function(CHR_SELF, GFUNC_UNALERTED_0004) endfunction +}; -func0409_start_path08: - set_accuracy 13 - set_reaction_speed 0 - set_chr_health CHR_SELF, 80 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - assign_path 8 +u8 func0409_start_path08[] = { + set_accuracy(13) + set_reaction_speed(0) + set_chr_health(CHR_SELF, 80) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + assign_path(8) start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 + set_function(CHR_SELF, GFUNC_UNALERTED_0004) endfunction +}; -func040a_start_path09: - set_accuracy 13 - set_reaction_speed 0 - set_chr_health CHR_SELF, 80 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - assign_path 9 +u8 func040a_start_path09[] = { + set_accuracy(13) + set_reaction_speed(0) + set_chr_health(CHR_SELF, 80) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + assign_path(9) start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 + set_function(CHR_SELF, GFUNC_UNALERTED_0004) endfunction +}; -func040b_start_path10: - set_accuracy 13 - set_reaction_speed 0 - set_chr_health CHR_SELF, 80 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - assign_path 10 +u8 func040b_start_path10[] = { + set_accuracy(13) + set_reaction_speed(0) + set_chr_health(CHR_SELF, 80) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + assign_path(10) start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 + set_function(CHR_SELF, GFUNC_UNALERTED_0004) endfunction +}; -func040c_start_path11: - set_accuracy 13 - set_reaction_speed 0 - set_chr_health CHR_SELF, 80 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - assign_path 11 +u8 func040c_start_path11[] = { + set_accuracy(13) + set_reaction_speed(0) + set_chr_health(CHR_SELF, 80) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + assign_path(11) start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 + set_function(CHR_SELF, GFUNC_UNALERTED_0004) endfunction +}; -func040d_start_path12: - set_accuracy 13 - set_reaction_speed 0 - set_chr_health CHR_SELF, 80 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - assign_path 12 +u8 func040d_start_path12[] = { + set_accuracy(13) + set_reaction_speed(0) + set_chr_health(CHR_SELF, 80) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + assign_path(12) start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 + set_function(CHR_SELF, GFUNC_UNALERTED_0004) endfunction +}; -func040e_start_path13: - set_accuracy 13 - set_reaction_speed 0 - set_chr_health CHR_SELF, 80 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - assign_path 13 +u8 func040e_start_path13[] = { + set_accuracy(13) + set_reaction_speed(0) + set_chr_health(CHR_SELF, 80) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + assign_path(13) start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 + set_function(CHR_SELF, GFUNC_UNALERTED_0004) endfunction +}; -func040f_start_path14: - set_accuracy 13 - set_reaction_speed 0 - set_chr_health CHR_SELF, 80 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - assign_path 14 +u8 func040f_start_path14[] = { + set_accuracy(13) + set_reaction_speed(0) + set_chr_health(CHR_SELF, 80) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + assign_path(14) start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 + set_function(CHR_SELF, GFUNC_UNALERTED_0004) endfunction +}; -func1001_objectives_failed_msg: - set_function CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG +u8 func1001_objectives_failed_msg[] = { + set_function(CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG) endfunction +}; -func0415_init_50hp_guard: - set_accuracy 10 - set_reaction_speed 0 - set_chr_health CHR_SELF, 50 - set_armor 0 - set_recovery_speed 35 - set_shield 0 - set_function CHR_SELF, GFUNC_UNALERTED +u8 func0415_init_50hp_guard[] = { + set_accuracy(10) + set_reaction_speed(0) + set_chr_health(CHR_SELF, 50) + set_armor(0) + set_recovery_speed(35) + set_shield(0) + set_function(CHR_SELF, GFUNC_UNALERTED) endfunction +}; -func0416_init_80hp_guard: - set_accuracy 13 - set_reaction_speed 0 - set_chr_health CHR_SELF, 80 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, GFUNC_UNALERTED +u8 func0416_init_80hp_guard[] = { + set_accuracy(13) + set_reaction_speed(0) + set_chr_health(CHR_SELF, 80) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, GFUNC_UNALERTED) endfunction +}; -func0417_init_lx_guard: - set_accuracy 10 - set_reaction_speed 100 - set_chr_health CHR_SELF, 280 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, GFUNC_UNALERTED +u8 func0417_init_lx_guard[] = { + set_accuracy(10) + set_reaction_speed(100) + set_chr_health(CHR_SELF, 280) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, GFUNC_UNALERTED) endfunction +}; // This function is never assigned -func0418_init_alerted_guard: - set_accuracy 13 - set_reaction_speed 0 - set_chr_health CHR_SELF, 80 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, GFUNC_ALERTED +u8 func0418_init_alerted_guard[] = { + set_accuracy(13) + set_reaction_speed(0) + set_chr_health(CHR_SELF, 80) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, GFUNC_ALERTED) endfunction +}; -func100d_start_lifts: - activate_lift 1, 0x35 - activate_lift 4, 0x38 - activate_lift 5, 0x39 - set_function CHR_SELF, GFUNC_IDLE +u8 func100d_start_lifts[] = { + activate_lift(1, 0x35) + activate_lift(4, 0x38) + activate_lift(5, 0x39) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1003_check_experiment_destroyed: - beginloop 0x04 - if_object_in_good_condition OBJ_EXPERIMENT, /*goto*/ 0x2c - message CHR_JOANNA, 0x3c07 // "Medical experiment has been sabotaged." - set_stage_flag STAGEFLAG_EXPERIMENT_DESTROYED - set_function CHR_SELF, GFUNC_IDLE - label 0x2c - endloop 0x04 +u8 func1003_check_experiment_destroyed[] = { + beginloop(0x04) + if_object_in_good_condition(OBJ_EXPERIMENT, /*goto*/ 0x2c) + message(CHR_JOANNA, 0x3c07) // "Medical experiment has been sabotaged." + set_stage_flag(STAGEFLAG_EXPERIMENT_DESTROYED) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2c) + endloop(0x04) endfunction +}; -func1004_check_saucer_destroyed: - beginloop 0x04 - if_object_in_good_condition 0x3e, /*goto*/ 0x2c - message CHR_JOANNA, 0x3c08 // "Captured Maian saucer has been destroyed." - set_stage_flag STAGEFLAG_SAUCER_DESTROYED - set_function CHR_SELF, GFUNC_IDLE - label 0x2c - endloop 0x04 +u8 func1004_check_saucer_destroyed[] = { + beginloop(0x04) + if_object_in_good_condition(0x3e, /*goto*/ 0x2c) + message(CHR_JOANNA, 0x3c08) // "Captured Maian saucer has been destroyed." + set_stage_flag(STAGEFLAG_SAUCER_DESTROYED) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2c) + endloop(0x04) endfunction +}; -func1005_check_experiemnt_destroyed_pointless: +u8 func1005_check_experiemnt_destroyed_pointless[] = { // This is a pointless function - beginloop 0x04 - if_object_in_good_condition OBJ_EXPERIMENT, /*goto*/ 0x2c - set_function CHR_SELF, GFUNC_IDLE - label 0x2c - endloop 0x04 + beginloop(0x04) + if_object_in_good_condition(OBJ_EXPERIMENT, /*goto*/ 0x2c) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2c) + endloop(0x04) endfunction +}; -func1006_activate_alarm: +u8 func1006_activate_alarm[] = { // Wait until player is in crate room - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x003f, /*goto*/ 0x2c - endloop 0x04 + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x003f, /*goto*/ 0x2c) + endloop(0x04) // Activate alarm - label 0x2c + label(0x2c) activate_alarm - set_stage_flag STAGEFLAG_ALARM_SOUNDED - set_function CHR_SELF, GFUNC_IDLE + set_stage_flag(STAGEFLAG_ALARM_SOUNDED) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; /** * A hidden chr spawns clones every 50 seconds after the alarm is sounded. */ -func0410_clone_spawner: - set_self_flag_bank3 CHRFLAG3_00000002 - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_self_flag_bank3 CHRFLAG3_00040000 +u8 func0410_clone_spawner[] = { + set_self_flag_bank3(CHRFLAG3_00000002) + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_self_flag_bank3(CHRFLAG3_00040000) // Wait until alarm activated - beginloop 0x0d - if_stage_flag_eq STAGEFLAG_ALARM_SOUNDED, TRUE, /*goto*/ 0x04 - endloop 0x0d + beginloop(0x0d) + if_stage_flag_eq(STAGEFLAG_ALARM_SOUNDED, TRUE, /*goto*/ 0x04) + endloop(0x0d) - beginloop 0x04 - if_never_been_onscreen /*goto*/ 0x4d - if_chr_sees_player /*goto*/ 0x08 // <-- pointless - reloop 0x04 + beginloop(0x04) + if_never_been_onscreen(/*goto*/ 0x4d) + if_chr_sees_player(/*goto*/ 0x08) // <-- pointless + reloop(0x04) - label 0x08 - reloop 0x04 + label(0x08) + reloop(0x04) - label 0x4d - if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x4d - reloop 0x04 + label(0x4d) + if_chr_death_animation_finished(CHR_CLONE, /*goto*/ 0x4d) + reloop(0x04) // Wait 50 seconds - label 0x4d + label(0x4d) restart_timer - beginloop 0x09 - if_timer_gt 3000, /*goto*/ 0x06 - endloop 0x09 + beginloop(0x09) + if_timer_gt(3000, /*goto*/ 0x06) + endloop(0x09) // Spawn a clone - label 0x06 - try_spawn_clone2 CHR_SELF, FUNC_INIT_CLONE, 0x00000000, /*goto*/ 0x2c - set_function CHR_SELF, FUNC_CLONE + label(0x06) + try_spawn_clone2(CHR_SELF, FUNC_INIT_CLONE, 0x00000000, /*goto*/ 0x2c) + set_function(CHR_SELF, FUNC_CLONE) - label 0x2c + label(0x2c) yield - endloop 0x04 + endloop(0x04) endfunction +}; -func0411_init_clone: - set_accuracy 13 - set_reaction_speed 0 - set_chr_health CHR_SELF, 80 - set_armor 0 - set_recovery_speed 0 - set_shield 0 - set_self_flag_bankx CHRFLAG1_00080000, BANK_1 - set_chr_flag_bank2 CHR_SELF, CHRFLAG2_00400000 - label 0x04 - try_inherit_properties 0x4e, /*goto*/ 0x06 - label 0x06 - set_chr_alliance CHR_SELF, ALLIANCE_ENEMY +u8 func0411_init_clone[] = { + set_accuracy(13) + set_reaction_speed(0) + set_chr_health(CHR_SELF, 80) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + set_self_flag_bankx(CHRFLAG1_00080000, BANK_1) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_00400000) + label(0x04) + try_inherit_properties(0x4e, /*goto*/ 0x06) + label(0x06) + set_chr_alliance(CHR_SELF, ALLIANCE_ENEMY) cmd0145_rebuild_groups cmd0146_rebuild_groups - set_function CHR_SELF, FUNC_CLONE + set_function(CHR_SELF, FUNC_CLONE) endfunction +}; -func0412_clone: - set_self_flag_bank3 CHRFLAG3_00040000 - set_return_function CHR_SELF, GFUNC_ALERTED - set_function CHR_SELF, GFUNC_ALERTED +u8 func0412_clone[] = { + set_self_flag_bank3(CHRFLAG3_00040000) + set_return_function(CHR_SELF, GFUNC_ALERTED) + set_function(CHR_SELF, GFUNC_ALERTED) endfunction +}; -func0410_clone_spawner2: - set_self_flag_bank3 CHRFLAG3_00000002 - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_self_flag_bank3 CHRFLAG3_00040000 +u8 func0410_clone_spawner2[] = { + set_self_flag_bank3(CHRFLAG3_00000002) + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_self_flag_bank3(CHRFLAG3_00040000) // Wait until player is in room 0x005e - beginloop 0x0d - if_chr_in_room CHR_JOANNA, 0x00, 0x005e, /*goto*/ 0x2c - endloop 0x0d + beginloop(0x0d) + if_chr_in_room(CHR_JOANNA, 0x00, 0x005e, /*goto*/ 0x2c) + endloop(0x0d) - beginloop 0x04 - if_never_been_onscreen /*goto*/ 0x4d - if_chr_sees_player /*goto*/ 0x08 // <-- pointless - reloop 0x04 + beginloop(0x04) + if_never_been_onscreen(/*goto*/ 0x4d) + if_chr_sees_player(/*goto*/ 0x08) // <-- pointless + reloop(0x04) - label 0x08 - reloop 0x04 + label(0x08) + reloop(0x04) // Condition triggered. Also wait until clone is dead. - label 0x4d - if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x4d - reloop 0x04 + label(0x4d) + if_chr_death_animation_finished(CHR_CLONE, /*goto*/ 0x4d) + reloop(0x04) // Wait a further 50 seconds - label 0x4d + label(0x4d) restart_timer - beginloop 0x09 - if_timer_gt 3000, /*goto*/ 0x06 - endloop 0x09 + beginloop(0x09) + if_timer_gt(3000, /*goto*/ 0x06) + endloop(0x09) // Spawn clone - label 0x06 - try_spawn_clone2 CHR_SELF, FUNC_INIT_CLONE, 0x00000000, /*goto*/ 0x2c - set_function CHR_SELF, FUNC_CLONE + label(0x06) + try_spawn_clone2(CHR_SELF, FUNC_INIT_CLONE, 0x00000000, /*goto*/ 0x2c) + set_function(CHR_SELF, FUNC_CLONE) - label 0x2c + label(0x2c) yield - endloop 0x04 + endloop(0x04) endfunction +}; -func1007_disable_pods: +u8 func1007_disable_pods[] = { // Pods are the things that you xray scan in Rescue - set_object_flag_bank0 0x1a, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 0x1b, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 0x1c, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 0x1d, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 0x1e, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 0x1f, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 0x20, OBJECTFLAG0_DEACTIVATED - set_object_flag_bank0 0x21, OBJECTFLAG0_DEACTIVATED - set_function CHR_SELF, GFUNC_IDLE + set_object_flag_bank0(0x1a, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(0x1b, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(0x1c, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(0x1d, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(0x1e, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(0x1f, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(0x20, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(0x21, OBJECTFLAG0_DEACTIVATED) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1008_check_console: +u8 func1008_check_console[] = { // Wait for console activated or destroyed - beginloop 0x04 - if_chr_activated_object CHR_F3, OBJ_CONSOLE, /*goto*/ 0x2c - if_object_in_good_condition OBJ_CONSOLE, /*goto*/ 0x06 - goto_next 0x08 - label 0x06 - endloop 0x04 + beginloop(0x04) + if_chr_activated_object(CHR_F3, OBJ_CONSOLE, /*goto*/ 0x2c) + if_object_in_good_condition(OBJ_CONSOLE, /*goto*/ 0x06) + goto_next(0x08) + label(0x06) + endloop(0x04) // Console activated - play sound and wait 3 seconds - label 0x2c - play_sound 0x8116, -1 + label(0x2c) + play_sound(0x8116, -1) restart_timer - beginloop 0x09 - if_timer_gt 180, /*goto*/ 0x2c - endloop 0x09 + beginloop(0x09) + if_timer_gt(180, /*goto*/ 0x2c) + endloop(0x09) - label 0x2c - assign_sound 0x8111, CHANNEL_0 - play_sound_from_object CHANNEL_0, OBJ_CONSOLE, 0x012c, 0x0190 - message CHR_JOANNA, 0x3c09 // "Distress signal has been sent." - set_stage_flag STAGEFLAG_CONSOLE_ACTIVATED - set_function CHR_SELF, GFUNC_IDLE + label(0x2c) + assign_sound(0x8111, CHANNEL_0) + play_sound_from_object(CHANNEL_0, OBJ_CONSOLE, 0x012c, 0x0190) + message(CHR_JOANNA, 0x3c09) // "Distress signal has been sent." + set_stage_flag(STAGEFLAG_CONSOLE_ACTIVATED) + set_function(CHR_SELF, GFUNC_IDLE) // Console destroyed - label 0x08 - message CHR_JOANNA, 0x3c0a // "Critical mission object has been destroyed." - set_stage_flag STAGEFLAG_CONSOLE_DESTROYED - set_function CHR_SELF, GFUNC_IDLE + label(0x08) + message(CHR_JOANNA, 0x3c0a) // "Critical mission object has been destroyed." + set_stage_flag(STAGEFLAG_CONSOLE_DESTROYED) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1009_check_for_exit: +u8 func1009_check_for_exit[] = { // Wait for all objectives complete - beginloop 0x04 - if_all_objectives_complete /*goto*/ 0x2c - endloop 0x04 + beginloop(0x04) + if_all_objectives_complete(/*goto*/ 0x2c) + endloop(0x04) // Wait 2 seconds - label 0x2c + label(0x2c) restart_timer - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x2c - endloop 0x08 + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x2c) + endloop(0x08) - label 0x2c - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x2c - if_chr_dying CHR_JOANNA, /*goto*/ 0x2c - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x2c - goto_next 0x06 + label(0x2c) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x2c) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x2c) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x2c) + goto_next(0x06) - label 0x2c - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2c - if_chr_dying CHR_VELVET, /*goto*/ 0x2c - if_chr_unloaded CHR_VELVET, /*goto*/ 0x2c - goto_next 0x06 + label(0x2c) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x2c) + if_chr_dying(CHR_VELVET, /*goto*/ 0x2c) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x2c) + goto_next(0x06) // Both players dead - label 0x2c + label(0x2c) end_level - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) // At least one player survived - label 0x06 - set_function CHR_SELF, FUNC_OUTRO + label(0x06) + set_function(CHR_SELF, FUNC_OUTRO) end_level - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func100a_vertical_door_sounds: +u8 func100a_vertical_door_sounds[] = { // Wait for player to activate vertical doors - beginloop 0x5d - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, 0x46, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, 0x47, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, 0x48, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, 0x49, /*goto*/ 0x2c - reloop 0x5d + beginloop(0x5d) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, 0x46, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, 0x47, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, 0x48, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, 0x49, /*goto*/ 0x2c) + reloop(0x5d) - label 0x2c - play_sound 0x81b0, -1 + label(0x2c) + play_sound(0x81b0, -1) restart_timer - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x08 + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x08) - label 0x06 - endloop 0x5d + label(0x06) + endloop(0x5d) endfunction +}; -func100b_check_medlab_escapable: +u8 func100b_check_medlab_escapable[] = { // While player is in the starting area - beginloop 0x04 - if_chr_in_room CHR_JOANNA, 0x00, 0x0095, /*goto*/ 0x2c - if_chr_in_room CHR_JOANNA, 0x00, 0x0096, /*goto*/ 0x2c - if_chr_in_room CHR_JOANNA, 0x00, 0x0097, /*goto*/ 0x2c - if_chr_in_room CHR_JOANNA, 0x00, 0x0098, /*goto*/ 0x2c - reloop 0x04 + beginloop(0x04) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0095, /*goto*/ 0x2c) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0096, /*goto*/ 0x2c) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0097, /*goto*/ 0x2c) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0098, /*goto*/ 0x2c) + reloop(0x04) // If any glass is broken, jump to 0x0d where we'll return - label 0x2c - if_object_in_good_condition OBJ_GLASS1, /*goto*/ 0x2c - goto_next 0x0d - label 0x2c - if_object_in_good_condition OBJ_GLASS2, /*goto*/ 0x2c - goto_next 0x0d - label 0x2c - if_object_in_good_condition OBJ_GLASS3, /*goto*/ 0x2c - goto_next 0x0d + label(0x2c) + if_object_in_good_condition(OBJ_GLASS1, /*goto*/ 0x2c) + goto_next(0x0d) + label(0x2c) + if_object_in_good_condition(OBJ_GLASS2, /*goto*/ 0x2c) + goto_next(0x0d) + label(0x2c) + if_object_in_good_condition(OBJ_GLASS3, /*goto*/ 0x2c) + goto_next(0x0d) // Check if trolley is destroyed - label 0x2c - if_object_in_good_condition OBJ_TROLLEY, /*goto*/ 0x06 - goto_next 0x2c + label(0x2c) + if_object_in_good_condition(OBJ_TROLLEY, /*goto*/ 0x06) + goto_next(0x2c) // Trolley is not destroyed // Wait until we have pistol ammo (ie. Falcon 2), then wait until we don't. - label 0x06 - if_stage_flag_eq STAGEFLAG_GOT_FALCON2, TRUE, /*goto*/ 0x66 - if_ammo_quantity_lt CHR_JOANNA, AMMOTYPE_PISTOL, 1, /*goto*/ 0x67 - set_stage_flag STAGEFLAG_GOT_FALCON2 - reloop 0x04 + label(0x06) + if_stage_flag_eq(STAGEFLAG_GOT_FALCON2, TRUE, /*goto*/ 0x66) + if_ammo_quantity_lt(CHR_JOANNA, AMMOTYPE_PISTOL, 1, /*goto*/ 0x67) + set_stage_flag(STAGEFLAG_GOT_FALCON2) + reloop(0x04) - label 0x67 - reloop 0x04 + label(0x67) + reloop(0x04) - label 0x66 - if_ammo_quantity_lt CHR_JOANNA, AMMOTYPE_PISTOL, 1, /*goto*/ 0x2c - reloop 0x04 + label(0x66) + if_ammo_quantity_lt(CHR_JOANNA, AMMOTYPE_PISTOL, 1, /*goto*/ 0x2c) + reloop(0x04) // Trolley is destroyed. Wait 3 seconds for explosion to break any glass. - label 0x2c + label(0x2c) restart_timer - beginloop 0x61 - if_timer_gt 180, /*goto*/ 0x2c - if_object_in_good_condition OBJ_GLASS1, /*goto*/ 0x2d - goto_next 0x0d - label 0x2d - if_object_in_good_condition OBJ_GLASS2, /*goto*/ 0x2d - goto_next 0x0d - label 0x2d - if_object_in_good_condition OBJ_GLASS3, /*goto*/ 0x2d - goto_next 0x0d - label 0x2d - endloop 0x61 + beginloop(0x61) + if_timer_gt(180, /*goto*/ 0x2c) + if_object_in_good_condition(OBJ_GLASS1, /*goto*/ 0x2d) + goto_next(0x0d) + label(0x2d) + if_object_in_good_condition(OBJ_GLASS2, /*goto*/ 0x2d) + goto_next(0x0d) + label(0x2d) + if_object_in_good_condition(OBJ_GLASS3, /*goto*/ 0x2d) + goto_next(0x0d) + label(0x2d) + endloop(0x61) // Timer expired, and no glass was broken. Check if lab techs are dead. - label 0x2c - if_chr_death_animation_finished CHR_LABTECH1, /*goto*/ 0x63 - if_chr_dying CHR_LABTECH1, /*goto*/ 0x63 - if_chr_unloaded CHR_LABTECH1, /*goto*/ 0x63 - goto_next 0x06 + label(0x2c) + if_chr_death_animation_finished(CHR_LABTECH1, /*goto*/ 0x63) + if_chr_dying(CHR_LABTECH1, /*goto*/ 0x63) + if_chr_unloaded(CHR_LABTECH1, /*goto*/ 0x63) + goto_next(0x06) - label 0x63 - if_chr_death_animation_finished CHR_LABTECH2, /*goto*/ 0x65 - if_chr_dying CHR_LABTECH2, /*goto*/ 0x65 - if_chr_unloaded CHR_LABTECH2, /*goto*/ 0x65 + label(0x63) + if_chr_death_animation_finished(CHR_LABTECH2, /*goto*/ 0x65) + if_chr_dying(CHR_LABTECH2, /*goto*/ 0x65) + if_chr_unloaded(CHR_LABTECH2, /*goto*/ 0x65) - label 0x06 - if_chr_has_object CHR_JOANNA, OBJ_PSYCHOSISGUN, /*goto*/ 0x2c - reloop 0x04 + label(0x06) + if_chr_has_object(CHR_JOANNA, OBJ_PSYCHOSISGUN, /*goto*/ 0x2c) + reloop(0x04) - label 0x2c - if_ammo_quantity_lt CHR_JOANNA, AMMOTYPE_PSYCHOSIS, 1, /*goto*/ 0x2c - reloop 0x04 + label(0x2c) + if_ammo_quantity_lt(CHR_JOANNA, AMMOTYPE_PSYCHOSIS, 1, /*goto*/ 0x2c) + reloop(0x04) // Both lab techs dead - label 0x65 + label(0x65) // Player has psychosis gun but ammo depleted - label 0x2c - message CHR_JOANNA, 0x3c0b // "Mission failed - cannot escape from medlab." - set_stage_flag STAGEFLAG_TRAPPED_AT_START - goto_next 0x0e + label(0x2c) + message(CHR_JOANNA, 0x3c0b) // "Mission failed - cannot escape from medlab." + set_stage_flag(STAGEFLAG_TRAPPED_AT_START) + goto_next(0x0e) // Glass broken - label 0x0d - unset_stage_flag STAGEFLAG_TRAPPED_AT_START - set_function CHR_SELF, GFUNC_IDLE + label(0x0d) + unset_stage_flag(STAGEFLAG_TRAPPED_AT_START) + set_function(CHR_SELF, GFUNC_IDLE) - beginloop 0x0e - if_chr_in_room CHR_JOANNA, 0x00, 0x0095, /*goto*/ 0x2c - if_chr_in_room CHR_JOANNA, 0x00, 0x0096, /*goto*/ 0x2c - if_chr_in_room CHR_JOANNA, 0x00, 0x0097, /*goto*/ 0x2c - if_chr_in_room CHR_JOANNA, 0x00, 0x0098, /*goto*/ 0x2c - goto_next 0x06 - label 0x2c - endloop 0x0e + beginloop(0x0e) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0095, /*goto*/ 0x2c) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0096, /*goto*/ 0x2c) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0097, /*goto*/ 0x2c) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0098, /*goto*/ 0x2c) + goto_next(0x06) + label(0x2c) + endloop(0x0e) - label 0x06 - message CHR_JOANNA, 0x3c0c // "Alternative escape route found." - unset_stage_flag STAGEFLAG_TRAPPED_AT_START - goto_first 0x04 + label(0x06) + message(CHR_JOANNA, 0x3c0c) // "Alternative escape route found." + unset_stage_flag(STAGEFLAG_TRAPPED_AT_START) + goto_first(0x04) endfunction +}; -func1002_intro: - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_music_track MUSIC_G5_INTRO - camera_movement 0x0476 - cmd0175 60 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x0477, -1, -1, 0x0600, CHR_JOANNA, 4 - set_object_flag_bank1 OBJ_TROLLEY, OBJECTFLAG1_04000000 - set_object_flag_bank2 OBJ_TROLLEY, OBJECTFLAG2_00000010 - object_do_animation 0x0478, OBJ_TROLLEY, 0x04ff, 0xff +u8 func1002_intro[] = { + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_music_track(MUSIC_G5_INTRO) + camera_movement(0x0476) + cmd0175(60) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x0477, -1, -1, 0x0600, CHR_JOANNA, 4) + set_object_flag_bank1(OBJ_TROLLEY, OBJECTFLAG1_04000000) + set_object_flag_bank2(OBJ_TROLLEY, OBJECTFLAG2_00000010) + object_do_animation(0x0478, OBJ_TROLLEY, 0x04ff, 0xff) restart_timer - fade_to_color 0x000000ff, 0 - fade_to_color 0x00000000, 110 + fade_to_color(0x000000ff, 0) + fade_to_color(0x00000000, 110) - .macro wait_until time loopid - beginloop \loopid - if_controller_button_pressed /*goto*/ 0x87 - if_timer_gt \time, /*goto*/ 0x06 - endloop \loopid + #define wait_until(time, loopid) \ + beginloop(loopid) \ + if_controller_button_pressed(/*goto*/ 0x87) \ + if_timer_gt(time, /*goto*/ 0x06) \ + endloop(loopid) \ + \ + label(0x06) - label 0x06 - .endm - wait_until 300, 0x76 - play_sound 0x0161, CHANNEL_7 - wait_until 302, 0x77 - play_sound 0x0162, CHANNEL_6 + wait_until(300, 0x76) + play_sound(0x0161, CHANNEL_7) - wait_until 330, 0x78 - play_sound 0x0163, CHANNEL_6 + wait_until(302, 0x77) + play_sound(0x0162, CHANNEL_6) - wait_until 360, 0x79 - play_sound 0x0164, CHANNEL_6 + wait_until(330, 0x78) + play_sound(0x0163, CHANNEL_6) - beginloop 0x08 - if_camera_animating /*goto*/ 0x2c - goto_next 0x87 - label 0x2c - if_controller_button_pressed /*goto*/ 0x87 - label 0x2c - endloop 0x08 + wait_until(360, 0x79) + play_sound(0x0164, CHANNEL_6) - label 0x87 - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x0477, -2, -1, 0x0600, CHR_JOANNA, 2 - unset_object_flag_bank1 OBJ_TROLLEY, OBJECTFLAG1_04000000 - set_object_flag_bank2 OBJ_TROLLEY, OBJECTFLAG2_00000010 - object_do_animation 0x0478, OBJ_TROLLEY, 0x04ff, 0xfe + beginloop(0x08) + if_camera_animating(/*goto*/ 0x2c) + goto_next(0x87) + label(0x2c) + if_controller_button_pressed(/*goto*/ 0x87) + label(0x2c) + endloop(0x08) + + label(0x87) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x0477, -2, -1, 0x0600, CHR_JOANNA, 2) + unset_object_flag_bank1(OBJ_TROLLEY, OBJECTFLAG1_04000000) + set_object_flag_bank2(OBJ_TROLLEY, OBJECTFLAG2_00000010) + object_do_animation(0x0478, OBJ_TROLLEY, 0x04ff, 0xfe) restart_default_music reset_ambience enter_firstperson - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func041b_outro: - set_invincible CHR_JOANNA - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_music_track MUSIC_G5_OUTRO - camera_movement 0x0479 +u8 func041b_outro[] = { + set_invincible(CHR_JOANNA) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_music_track(MUSIC_G5_OUTRO) + camera_movement(0x0479) - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x047a, -1, -1, 0x0600, CHR_JOANNA, 4 + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x047a, -1, -1, 0x0600, CHR_JOANNA, 4) - unset_chr_flag_bank3 CHR_OUTRO_GUARD, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_OUTRO_GUARD, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_OUTRO_GUARD, CHRFLAG2_00020000 - animation 0x047b, -1, -1, 0x0600, CHR_OUTRO_GUARD, 4 + unset_chr_flag_bank3(CHR_OUTRO_GUARD, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_OUTRO_GUARD, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_OUTRO_GUARD, CHRFLAG2_00020000) + animation(0x047b, -1, -1, 0x0600, CHR_OUTRO_GUARD, 4) - show_nonessential_chrs FALSE + show_nonessential_chrs(FALSE) restart_timer - wait_until 46, 0x6c - play_sound 0x0264, CHANNEL_7 + wait_until(46, 0x6c) + play_sound(0x0264, CHANNEL_7) - wait_until 144, 0x6d - play_sound 0x0085, CHANNEL_6 + wait_until(144, 0x6d) + play_sound(0x0085, CHANNEL_6) - wait_until 205, 0x6e - play_sound 0x04f2, CHANNEL_10 + wait_until(205, 0x6e) + play_sound(0x04f2, CHANNEL_10) - wait_until 210, 0x6f - play_sound 0x0045, CHANNEL_10 + wait_until(210, 0x6f) + play_sound(0x0045, CHANNEL_10) - wait_until 214, 0x70 - play_sound 0x05e0, CHANNEL_10 + wait_until(214, 0x70) + play_sound(0x05e0, CHANNEL_10) - wait_until 260, 0x71 - play_sound 0x007b, CHANNEL_10 + wait_until(260, 0x71) + play_sound(0x007b, CHANNEL_10) - wait_until 270, 0x72 - play_sound 0x02a3, CHANNEL_10 + wait_until(270, 0x72) + play_sound(0x02a3, CHANNEL_10) - beginloop 0x08 - if_camera_animating /*goto*/ 0x2c - goto_next 0x87 - label 0x2c - if_controller_button_pressed /*goto*/ 0x87 - label 0x2c - endloop 0x08 + beginloop(0x08) + if_camera_animating(/*goto*/ 0x2c) + goto_next(0x87) + label(0x2c) + if_controller_button_pressed(/*goto*/ 0x87) + label(0x2c) + endloop(0x08) - label 0x87 - label 0x06 + label(0x87) + label(0x06) end_level - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func0419_init_outro_guard: - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function CHR_SELF, GFUNC_IDLE +u8 func0419_init_outro_guard[] = { + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func100c_unset_trolley_flag_when_destroyed: - beginloop 0x04 - if_object_in_good_condition OBJ_TROLLEY, /*goto*/ 0x2c - unset_object_flag_bank2 OBJ_TROLLEY, OBJECTFLAG2_PUSHABLE - set_function CHR_SELF, GFUNC_IDLE - label 0x2c - endloop 0x04 +u8 func100c_unset_trolley_flag_when_destroyed[] = { + beginloop(0x04) + if_object_in_good_condition(OBJ_TROLLEY, /*goto*/ 0x2c) + unset_object_flag_bank2(OBJ_TROLLEY, OBJECTFLAG2_PUSHABLE) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2c) + endloop(0x04) endfunction +}; -func041c_init_labtech: - set_self_flag_bank3 CHRFLAG3_04000000 - set_function CHR_SELF, GFUNC_UNALERTED +u8 func041c_init_labtech[] = { + set_self_flag_bank3(CHRFLAG3_04000000) + set_function(CHR_SELF, GFUNC_UNALERTED) endfunction +}; -func100e_break_glass: +u8 func100e_break_glass[] = { // If SA or PA, wait until experiment destroyed // then break the surrounding glass. - if_difficulty_lt DIFF_SA, /*goto*/ 0x0d + if_difficulty_lt(DIFF_SA, /*goto*/ 0x0d) - beginloop 0x04 - if_objective_complete 0, /*goto*/ 0x0d - endloop 0x04 + beginloop(0x04) + if_objective_complete(0, /*goto*/ 0x0d) + endloop(0x04) - label 0x0d - hide_object 0x4f - hide_object 0x50 - set_function CHR_SELF, GFUNC_UNALERTED + label(0x0d) + hide_object(0x4f) + hide_object(0x50) + set_function(CHR_SELF, GFUNC_UNALERTED) endfunction +}; -func100f_init_lighting: +u8 func100f_init_lighting[] = { yield - set_lighting 0x0000, 0x00, 0x00 - set_lighting 0x0000, 0x01, 0x00 - set_lighting 0x0000, 0x02, 0x00 - set_lighting 0x0000, 0x03, 0x00 - set_lighting 0x0000, 0x04, 0x00 - set_lighting 0x00d3, 0x06, 0x01 - set_lighting 0x00d4, 0x06, 0x01 - set_lighting 0x00d5, 0x06, 0x01 - set_lighting 0x00d6, 0x06, 0x01 - set_lighting 0x00d7, 0x06, 0x01 - set_lighting 0x00d8, 0x06, 0x01 - set_lighting 0x00d9, 0x06, 0x01 - set_lighting 0x00da, 0x06, 0x01 - set_lighting 0x00db, 0x06, 0x01 - set_lighting 0x0024, 0x05, 0x01 - set_lighting 0x0025, 0x05, 0x01 - set_lighting 0x0026, 0x05, 0x01 - set_lighting 0x0027, 0x05, 0x01 - set_lighting 0x0028, 0x05, 0x01 - set_lighting 0x0029, 0x05, 0x01 - set_lighting 0x002a, 0x05, 0x01 - set_lighting 0x002b, 0x05, 0x01 - set_lighting 0x002c, 0x05, 0x01 - set_lighting 0x002d, 0x05, 0x01 - set_lighting 0x002e, 0x05, 0x01 - set_lighting 0x002f, 0x05, 0x01 - set_lighting 0x0030, 0x05, 0x01 - set_lighting 0x0032, 0x05, 0x01 - set_lighting 0x0033, 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 0x0039, 0x05, 0x01 - set_lighting 0x003a, 0x05, 0x01 - set_lighting 0x003b, 0x05, 0x01 - set_lighting 0x003c, 0x05, 0x01 - set_lighting 0x003d, 0x05, 0x01 - set_lighting 0x003e, 0x05, 0x01 - set_lighting 0x003f, 0x05, 0x01 - set_lighting 0x005b, 0x05, 0x01 - set_lighting 0x005d, 0x05, 0x01 - set_lighting 0x0079, 0x05, 0x01 - set_lighting 0x007a, 0x05, 0x01 - set_lighting 0x007b, 0x05, 0x01 - set_lighting 0x007c, 0x05, 0x01 - set_lighting 0x007d, 0x05, 0x01 - set_lighting 0x007e, 0x05, 0x01 - set_lighting 0x007f, 0x05, 0x01 - set_lighting 0x0080, 0x05, 0x01 - set_lighting 0x0081, 0x05, 0x01 - set_lighting 0x0082, 0x05, 0x01 - set_lighting 0x008b, 0x05, 0x01 - set_lighting 0x008c, 0x05, 0x01 - set_lighting 0x008d, 0x05, 0x01 - set_lighting 0x008e, 0x05, 0x01 - set_lighting 0x008f, 0x05, 0x01 - set_lighting 0x0090, 0x05, 0x01 - set_lighting 0x0091, 0x05, 0x01 - set_lighting 0x0092, 0x05, 0x01 - set_lighting 0x0093, 0x05, 0x01 - set_lighting 0x0094, 0x05, 0x01 - set_lighting 0x0095, 0x05, 0x01 - set_lighting 0x0096, 0x05, 0x01 - set_lighting 0x0097, 0x05, 0x01 - set_lighting 0x0098, 0x05, 0x01 - set_lighting 0x0099, 0x05, 0x01 - set_lighting 0x009a, 0x05, 0x01 - set_lighting 0x009b, 0x05, 0x01 - set_lighting 0x00a5, 0x05, 0x01 - set_lighting 0x00a6, 0x05, 0x01 - set_lighting 0x00a7, 0x05, 0x01 - set_lighting 0x00a8, 0x05, 0x01 - set_lighting 0x00a9, 0x05, 0x01 - set_lighting 0x00aa, 0x05, 0x01 - set_lighting 0x00ab, 0x05, 0x01 - set_lighting 0x00ac, 0x05, 0x01 - set_lighting 0x00ad, 0x05, 0x01 - set_lighting 0x00ae, 0x05, 0x01 - set_lighting 0x00af, 0x05, 0x01 - set_lighting 0x00b0, 0x05, 0x01 - set_lighting 0x00b1, 0x05, 0x01 - set_lighting 0x00b2, 0x05, 0x01 - set_lighting 0x00b3, 0x05, 0x01 - set_lighting 0x00b4, 0x05, 0x01 - set_lighting 0x00b5, 0x05, 0x01 - set_lighting 0x00b6, 0x05, 0x01 - set_lighting 0x00b7, 0x05, 0x01 - set_lighting 0x00b8, 0x05, 0x01 - set_lighting 0x00b9, 0x05, 0x01 - set_lighting 0x00ba, 0x05, 0x01 - set_lighting 0x00bb, 0x05, 0x01 - set_lighting 0x00bc, 0x05, 0x01 - set_lighting 0x00be, 0x05, 0x01 - set_lighting 0x00bf, 0x05, 0x01 - set_lighting 0x00c0, 0x05, 0x01 - set_lighting 0x00c1, 0x05, 0x01 - set_lighting 0x00c2, 0x05, 0x01 - set_lighting 0x00c3, 0x05, 0x01 - set_lighting 0x00c4, 0x05, 0x01 - set_lighting 0x00c5, 0x05, 0x01 - set_lighting 0x00c6, 0x05, 0x01 - set_lighting 0x00c7, 0x05, 0x01 - set_lighting 0x00c8, 0x05, 0x01 - set_lighting 0x00c9, 0x05, 0x01 - set_lighting 0x00ca, 0x05, 0x01 - set_lighting 0x00cc, 0x05, 0x01 - set_lighting 0x00cd, 0x05, 0x01 - set_lighting 0x00ce, 0x05, 0x01 - set_lighting 0x00cf, 0x05, 0x01 - set_lighting 0x00d0, 0x05, 0x01 - set_lighting 0x00d1, 0x05, 0x01 - set_lighting 0x00d2, 0x05, 0x01 - set_lighting 0x00dc, 0x05, 0x01 - set_lighting 0x00dd, 0x05, 0x01 - set_lighting 0x00de, 0x05, 0x01 - set_lighting 0x00df, 0x05, 0x01 - set_lighting 0x00e0, 0x05, 0x01 - set_lighting 0x00e1, 0x05, 0x01 - set_lighting 0x00e2, 0x05, 0x01 - set_lighting 0x00e3, 0x05, 0x01 - set_lighting 0x00e4, 0x05, 0x01 - set_lighting 0x00e5, 0x05, 0x01 - set_lighting 0x00e6, 0x05, 0x01 - set_lighting 0x00f2, 0x05, 0x01 - set_lighting 0x00fa, 0x05, 0x01 - set_lighting 0x00fb, 0x05, 0x01 - set_lighting 0x00fc, 0x05, 0x01 - set_lighting 0x00fd, 0x05, 0x01 - set_lighting 0x00fe, 0x05, 0x01 - set_lighting 0x00ff, 0x05, 0x01 - set_lighting 0x0100, 0x05, 0x01 - set_lighting 0x0101, 0x05, 0x01 - set_lighting 0x0102, 0x05, 0x01 - set_lighting 0x0103, 0x05, 0x01 - set_lighting 0x0104, 0x05, 0x01 - set_lighting 0x0105, 0x05, 0x01 - set_lighting 0x0106, 0x05, 0x01 - set_lighting 0x0107, 0x05, 0x01 - set_lighting 0x0108, 0x05, 0x01 - set_lighting 0x0109, 0x05, 0x01 - set_lighting 0x010a, 0x05, 0x01 - set_lighting 0x010b, 0x05, 0x01 - set_lighting 0x010c, 0x05, 0x01 - set_lighting 0x010d, 0x05, 0x01 - set_lighting 0x010e, 0x05, 0x01 - set_lighting 0x00cb, 0x05, 0x01 - set_lighting 0x0083, 0x05, 0x01 - set_lighting 0x0084, 0x05, 0x01 - set_lighting 0x0085, 0x05, 0x01 - set_lighting 0x0086, 0x05, 0x01 - set_lighting 0x0087, 0x05, 0x01 - set_lighting 0x0088, 0x05, 0x01 - set_lighting 0x0089, 0x05, 0x01 - set_lighting 0x008a, 0x05, 0x01 - set_function CHR_SELF, GFUNC_IDLE + set_lighting(0x0000, 0x00, 0x00) + set_lighting(0x0000, 0x01, 0x00) + set_lighting(0x0000, 0x02, 0x00) + set_lighting(0x0000, 0x03, 0x00) + set_lighting(0x0000, 0x04, 0x00) + set_lighting(0x00d3, 0x06, 0x01) + set_lighting(0x00d4, 0x06, 0x01) + set_lighting(0x00d5, 0x06, 0x01) + set_lighting(0x00d6, 0x06, 0x01) + set_lighting(0x00d7, 0x06, 0x01) + set_lighting(0x00d8, 0x06, 0x01) + set_lighting(0x00d9, 0x06, 0x01) + set_lighting(0x00da, 0x06, 0x01) + set_lighting(0x00db, 0x06, 0x01) + set_lighting(0x0024, 0x05, 0x01) + set_lighting(0x0025, 0x05, 0x01) + set_lighting(0x0026, 0x05, 0x01) + set_lighting(0x0027, 0x05, 0x01) + set_lighting(0x0028, 0x05, 0x01) + set_lighting(0x0029, 0x05, 0x01) + set_lighting(0x002a, 0x05, 0x01) + set_lighting(0x002b, 0x05, 0x01) + set_lighting(0x002c, 0x05, 0x01) + set_lighting(0x002d, 0x05, 0x01) + set_lighting(0x002e, 0x05, 0x01) + set_lighting(0x002f, 0x05, 0x01) + set_lighting(0x0030, 0x05, 0x01) + set_lighting(0x0032, 0x05, 0x01) + set_lighting(0x0033, 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(0x0039, 0x05, 0x01) + set_lighting(0x003a, 0x05, 0x01) + set_lighting(0x003b, 0x05, 0x01) + set_lighting(0x003c, 0x05, 0x01) + set_lighting(0x003d, 0x05, 0x01) + set_lighting(0x003e, 0x05, 0x01) + set_lighting(0x003f, 0x05, 0x01) + set_lighting(0x005b, 0x05, 0x01) + set_lighting(0x005d, 0x05, 0x01) + set_lighting(0x0079, 0x05, 0x01) + set_lighting(0x007a, 0x05, 0x01) + set_lighting(0x007b, 0x05, 0x01) + set_lighting(0x007c, 0x05, 0x01) + set_lighting(0x007d, 0x05, 0x01) + set_lighting(0x007e, 0x05, 0x01) + set_lighting(0x007f, 0x05, 0x01) + set_lighting(0x0080, 0x05, 0x01) + set_lighting(0x0081, 0x05, 0x01) + set_lighting(0x0082, 0x05, 0x01) + set_lighting(0x008b, 0x05, 0x01) + set_lighting(0x008c, 0x05, 0x01) + set_lighting(0x008d, 0x05, 0x01) + set_lighting(0x008e, 0x05, 0x01) + set_lighting(0x008f, 0x05, 0x01) + set_lighting(0x0090, 0x05, 0x01) + set_lighting(0x0091, 0x05, 0x01) + set_lighting(0x0092, 0x05, 0x01) + set_lighting(0x0093, 0x05, 0x01) + set_lighting(0x0094, 0x05, 0x01) + set_lighting(0x0095, 0x05, 0x01) + set_lighting(0x0096, 0x05, 0x01) + set_lighting(0x0097, 0x05, 0x01) + set_lighting(0x0098, 0x05, 0x01) + set_lighting(0x0099, 0x05, 0x01) + set_lighting(0x009a, 0x05, 0x01) + set_lighting(0x009b, 0x05, 0x01) + set_lighting(0x00a5, 0x05, 0x01) + set_lighting(0x00a6, 0x05, 0x01) + set_lighting(0x00a7, 0x05, 0x01) + set_lighting(0x00a8, 0x05, 0x01) + set_lighting(0x00a9, 0x05, 0x01) + set_lighting(0x00aa, 0x05, 0x01) + set_lighting(0x00ab, 0x05, 0x01) + set_lighting(0x00ac, 0x05, 0x01) + set_lighting(0x00ad, 0x05, 0x01) + set_lighting(0x00ae, 0x05, 0x01) + set_lighting(0x00af, 0x05, 0x01) + set_lighting(0x00b0, 0x05, 0x01) + set_lighting(0x00b1, 0x05, 0x01) + set_lighting(0x00b2, 0x05, 0x01) + set_lighting(0x00b3, 0x05, 0x01) + set_lighting(0x00b4, 0x05, 0x01) + set_lighting(0x00b5, 0x05, 0x01) + set_lighting(0x00b6, 0x05, 0x01) + set_lighting(0x00b7, 0x05, 0x01) + set_lighting(0x00b8, 0x05, 0x01) + set_lighting(0x00b9, 0x05, 0x01) + set_lighting(0x00ba, 0x05, 0x01) + set_lighting(0x00bb, 0x05, 0x01) + set_lighting(0x00bc, 0x05, 0x01) + set_lighting(0x00be, 0x05, 0x01) + set_lighting(0x00bf, 0x05, 0x01) + set_lighting(0x00c0, 0x05, 0x01) + set_lighting(0x00c1, 0x05, 0x01) + set_lighting(0x00c2, 0x05, 0x01) + set_lighting(0x00c3, 0x05, 0x01) + set_lighting(0x00c4, 0x05, 0x01) + set_lighting(0x00c5, 0x05, 0x01) + set_lighting(0x00c6, 0x05, 0x01) + set_lighting(0x00c7, 0x05, 0x01) + set_lighting(0x00c8, 0x05, 0x01) + set_lighting(0x00c9, 0x05, 0x01) + set_lighting(0x00ca, 0x05, 0x01) + set_lighting(0x00cc, 0x05, 0x01) + set_lighting(0x00cd, 0x05, 0x01) + set_lighting(0x00ce, 0x05, 0x01) + set_lighting(0x00cf, 0x05, 0x01) + set_lighting(0x00d0, 0x05, 0x01) + set_lighting(0x00d1, 0x05, 0x01) + set_lighting(0x00d2, 0x05, 0x01) + set_lighting(0x00dc, 0x05, 0x01) + set_lighting(0x00dd, 0x05, 0x01) + set_lighting(0x00de, 0x05, 0x01) + set_lighting(0x00df, 0x05, 0x01) + set_lighting(0x00e0, 0x05, 0x01) + set_lighting(0x00e1, 0x05, 0x01) + set_lighting(0x00e2, 0x05, 0x01) + set_lighting(0x00e3, 0x05, 0x01) + set_lighting(0x00e4, 0x05, 0x01) + set_lighting(0x00e5, 0x05, 0x01) + set_lighting(0x00e6, 0x05, 0x01) + set_lighting(0x00f2, 0x05, 0x01) + set_lighting(0x00fa, 0x05, 0x01) + set_lighting(0x00fb, 0x05, 0x01) + set_lighting(0x00fc, 0x05, 0x01) + set_lighting(0x00fd, 0x05, 0x01) + set_lighting(0x00fe, 0x05, 0x01) + set_lighting(0x00ff, 0x05, 0x01) + set_lighting(0x0100, 0x05, 0x01) + set_lighting(0x0101, 0x05, 0x01) + set_lighting(0x0102, 0x05, 0x01) + set_lighting(0x0103, 0x05, 0x01) + set_lighting(0x0104, 0x05, 0x01) + set_lighting(0x0105, 0x05, 0x01) + set_lighting(0x0106, 0x05, 0x01) + set_lighting(0x0107, 0x05, 0x01) + set_lighting(0x0108, 0x05, 0x01) + set_lighting(0x0109, 0x05, 0x01) + set_lighting(0x010a, 0x05, 0x01) + set_lighting(0x010b, 0x05, 0x01) + set_lighting(0x010c, 0x05, 0x01) + set_lighting(0x010d, 0x05, 0x01) + set_lighting(0x010e, 0x05, 0x01) + set_lighting(0x00cb, 0x05, 0x01) + set_lighting(0x0083, 0x05, 0x01) + set_lighting(0x0084, 0x05, 0x01) + set_lighting(0x0085, 0x05, 0x01) + set_lighting(0x0086, 0x05, 0x01) + set_lighting(0x0087, 0x05, 0x01) + set_lighting(0x0088, 0x05, 0x01) + set_lighting(0x0089, 0x05, 0x01) + set_lighting(0x008a, 0x05, 0x01) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1010_unload_part1_chrs: +u8 func1010_unload_part1_chrs[] = { // Wait until player is in room 0x0067 - probably crate room or so - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x0067, /*goto*/ 0x2c - endloop 0x04 + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0067, /*goto*/ 0x2c) + endloop(0x04) // Unload all chrs in first part of the stage - label 0x2c - set_function CHR_LABTECH1, FUNC_UNLOAD - set_function CHR_LABTECH2, FUNC_UNLOAD - set_function 0x00, FUNC_UNLOAD - set_function 0x01, FUNC_UNLOAD - set_function 0x02, FUNC_UNLOAD - set_function 0x03, FUNC_UNLOAD - set_function 0x04, FUNC_UNLOAD - set_function 0x07, FUNC_UNLOAD - set_function 0x08, FUNC_UNLOAD - set_function 0x09, FUNC_UNLOAD - set_function 0x0b, FUNC_UNLOAD - set_function 0x0c, FUNC_UNLOAD - set_function 0x0f, FUNC_UNLOAD - set_function 0x10, FUNC_UNLOAD - set_function 0x11, FUNC_UNLOAD - set_function 0x12, FUNC_UNLOAD - set_function 0x13, FUNC_UNLOAD - set_function 0x14, FUNC_UNLOAD - set_function 0x15, FUNC_UNLOAD - set_function 0x16, FUNC_UNLOAD - set_function 0x17, FUNC_UNLOAD - set_function 0x18, FUNC_UNLOAD - set_function 0x19, FUNC_UNLOAD - set_function 0x1a, FUNC_UNLOAD - set_function 0x46, FUNC_UNLOAD - set_function 0x47, FUNC_UNLOAD - set_function 0x1b, FUNC_UNLOAD - set_function 0x1c, FUNC_UNLOAD - set_function 0x1d, FUNC_UNLOAD - set_function 0x1e, FUNC_UNLOAD - set_function 0x1f, FUNC_UNLOAD - set_function 0x20, FUNC_UNLOAD - set_function 0x21, FUNC_UNLOAD - set_function CHR_SELF, GFUNC_IDLE + label(0x2c) + set_function(CHR_LABTECH1, FUNC_UNLOAD) + set_function(CHR_LABTECH2, FUNC_UNLOAD) + set_function(0x00, FUNC_UNLOAD) + set_function(0x01, FUNC_UNLOAD) + set_function(0x02, FUNC_UNLOAD) + set_function(0x03, FUNC_UNLOAD) + set_function(0x04, FUNC_UNLOAD) + set_function(0x07, FUNC_UNLOAD) + set_function(0x08, FUNC_UNLOAD) + set_function(0x09, FUNC_UNLOAD) + set_function(0x0b, FUNC_UNLOAD) + set_function(0x0c, FUNC_UNLOAD) + set_function(0x0f, FUNC_UNLOAD) + set_function(0x10, FUNC_UNLOAD) + set_function(0x11, FUNC_UNLOAD) + set_function(0x12, FUNC_UNLOAD) + set_function(0x13, FUNC_UNLOAD) + set_function(0x14, FUNC_UNLOAD) + set_function(0x15, FUNC_UNLOAD) + set_function(0x16, FUNC_UNLOAD) + set_function(0x17, FUNC_UNLOAD) + set_function(0x18, FUNC_UNLOAD) + set_function(0x19, FUNC_UNLOAD) + set_function(0x1a, FUNC_UNLOAD) + set_function(0x46, FUNC_UNLOAD) + set_function(0x47, FUNC_UNLOAD) + set_function(0x1b, FUNC_UNLOAD) + set_function(0x1c, FUNC_UNLOAD) + set_function(0x1d, FUNC_UNLOAD) + set_function(0x1e, FUNC_UNLOAD) + set_function(0x1f, FUNC_UNLOAD) + set_function(0x20, FUNC_UNLOAD) + set_function(0x21, FUNC_UNLOAD) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func0414_unload: - label 0x2c +u8 func0414_unload[] = { + label(0x2c) yield - set_target_chr CHR_JOANNA - if_within_units_of_sight 30, /*goto*/ 0x06 - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2c - set_target_chr CHR_VELVET - if_within_units_of_sight 30, /*goto*/ 0x06 - label 0x2c - if_chr_death_animation_finished CHR_COUNTEROP, /*goto*/ 0x08 - set_target_chr CHR_COUNTEROP - if_within_units_of_sight 30, /*goto*/ 0x06 - label 0x08 + set_target_chr(CHR_JOANNA) + if_within_units_of_sight(30, /*goto*/ 0x06) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x2c) + set_target_chr(CHR_VELVET) + if_within_units_of_sight(30, /*goto*/ 0x06) + label(0x2c) + if_chr_death_animation_finished(CHR_COUNTEROP, /*goto*/ 0x08) + set_target_chr(CHR_COUNTEROP) + if_within_units_of_sight(30, /*goto*/ 0x06) + label(0x08) yield - chr_drop_weapon CHR_SELF - remove_chr CHR_SELF - label 0x2c - set_function CHR_SELF, GFUNC_IDLE - label 0x06 - set_function CHR_SELF, GFUNC_UNALERTED + chr_drop_weapon(CHR_SELF) + remove_chr(CHR_SELF) + label(0x2c) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x06) + set_function(CHR_SELF, GFUNC_UNALERTED) endfunction +}; -functions: - register_function func1000_setup_counterop 0x1000 - register_function func1001_objectives_failed_msg 0x1001 - register_function func1002_intro 0x1002 - register_function func1003_check_experiment_destroyed 0x1003 - register_function func1004_check_saucer_destroyed 0x1004 - register_function func1005_check_experiemnt_destroyed_pointless 0x1005 - register_function func1006_activate_alarm 0x1006 - register_function func1007_disable_pods 0x1007 - register_function func1008_check_console 0x1008 - register_function func1009_check_for_exit 0x1009 - register_function func100a_vertical_door_sounds 0x100a - register_function func100b_check_medlab_escapable 0x100b - register_function func100c_unset_trolley_flag_when_destroyed 0x100c - register_function func100d_start_lifts 0x100d - register_function func100e_break_glass 0x100e - register_function func100f_init_lighting 0x100f - register_function func1010_unload_part1_chrs 0x1010 +struct ailists functions[] = { + { func1000_setup_counterop, 0x1000 }, + { func1001_objectives_failed_msg, 0x1001 }, + { func1002_intro, 0x1002 }, + { func1003_check_experiment_destroyed, 0x1003 }, + { func1004_check_saucer_destroyed, 0x1004 }, + { func1005_check_experiemnt_destroyed_pointless, 0x1005 }, + { func1006_activate_alarm, 0x1006 }, + { func1007_disable_pods, 0x1007 }, + { func1008_check_console, 0x1008 }, + { func1009_check_for_exit, 0x1009 }, + { func100a_vertical_door_sounds, 0x100a }, + { func100b_check_medlab_escapable, 0x100b }, + { func100c_unset_trolley_flag_when_destroyed, 0x100c }, + { func100d_start_lifts, 0x100d }, + { func100e_break_glass, 0x100e }, + { func100f_init_lighting, 0x100f }, + { func1010_unload_part1_chrs, 0x1010 }, + { func0401_start_path00, 0x0401 }, + { func0402_start_path01, 0x0402 }, + { func0403_start_path02, 0x0403 }, + { func0404_start_path03, 0x0404 }, + { func0405_start_path04, 0x0405 }, + { func0406_start_path05, 0x0406 }, + { func0407_start_path06, 0x0407 }, + { func0408_start_path07, 0x0408 }, + { func0409_start_path08, 0x0409 }, + { func040a_start_path09, 0x040a }, + { func040b_start_path10, 0x040b }, + { func040c_start_path11, 0x040c }, + { func040d_start_path12, 0x040d }, + { func040e_start_path13, 0x040e }, + { func040f_start_path14, 0x040f }, + { func0410_clone_spawner, 0x0410 }, + { func0411_init_clone, 0x0411 }, + { func0412_clone, 0x0412 }, + { func0410_clone_spawner2, 0x0413 }, + { func0414_unload, 0x0414 }, + { func0415_init_50hp_guard, 0x0415 }, + { func0416_init_80hp_guard, 0x0416 }, + { func0417_init_lx_guard, 0x0417 }, + { func0418_init_alerted_guard, 0x0418 }, + { func0419_init_outro_guard, 0x0419 }, + { func1002_intro, 0x041a }, + { func041b_outro, 0x041b }, + { func041c_init_labtech, 0x041c }, + { func1002_intro, 0x0c00 }, + { func041b_outro, 0x0c01 }, + { NULL, 0 }, +}; - register_function func0401_start_path00 0x0401 - register_function func0402_start_path01 0x0402 - register_function func0403_start_path02 0x0403 - register_function func0404_start_path03 0x0404 - register_function func0405_start_path04 0x0405 - register_function func0406_start_path05 0x0406 - register_function func0407_start_path06 0x0407 - register_function func0408_start_path07 0x0408 - register_function func0409_start_path08 0x0409 - register_function func040a_start_path09 0x040a - register_function func040b_start_path10 0x040b - register_function func040c_start_path11 0x040c - register_function func040d_start_path12 0x040d - register_function func040e_start_path13 0x040e - register_function func040f_start_path14 0x040f - register_function func0410_clone_spawner 0x0410 - register_function func0411_init_clone 0x0411 - register_function func0412_clone 0x0412 - register_function func0410_clone_spawner2 0x0413 - register_function func0414_unload 0x0414 - register_function func0415_init_50hp_guard 0x0415 - register_function func0416_init_80hp_guard 0x0416 - register_function func0417_init_lx_guard 0x0417 - register_function func0418_init_alerted_guard 0x0418 - register_function func0419_init_outro_guard 0x0419 - register_function func1002_intro 0x041a - register_function func041b_outro 0x041b - register_function func041c_init_labtech 0x041c - - register_function func1002_intro 0x0c00 - register_function func041b_outro 0x0c01 - endfunctions - -.align 4 diff --git a/src/setup/setupsevb.c b/src/setup/setupsevb.c new file mode 100644 index 000000000..77dd2ef0e --- /dev/null +++ b/src/setup/setupsevb.c @@ -0,0 +1,39 @@ +// +// Retaking the Institute +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setupsevx.c b/src/setup/setupsevx.c new file mode 100644 index 000000000..fae025141 --- /dev/null +++ b/src/setup/setupsevx.c @@ -0,0 +1,39 @@ +// +// Stage IDs 0x24 and 0x2b +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setupsevxb.c b/src/setup/setupsevxb.c new file mode 100644 index 000000000..53c45097c --- /dev/null +++ b/src/setup/setupsevxb.c @@ -0,0 +1,39 @@ +// +// Unused +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setupsho.c b/src/setup/setupsho.c new file mode 100644 index 000000000..e2d5a9914 --- /dev/null +++ b/src/setup/setupsho.c @@ -0,0 +1,3998 @@ +// +// Skedar Ruins +// + +#include "../include/setup.h" + +// Characters +#define CHR_KING1 0x33 +#define CHR_KING_SKEDAR_SPAWNER 0x34 +#define CHR_KING_MINISKEDAR_SPAWNER 0x35 +#define CHR_ELVIS 0x36 +#define CHR_KING2 0x3b + +// Objects +#define OBJ_PILLAR1 0x01 +#define OBJ_PILLAR2 0x02 +#define OBJ_PILLAR3 0x03 +#define OBJ_BRIDGE 0x05 +#define OBJ_TARGETAMP_JOANNA 0x08 +#define OBJ_ALTAR 0x0b +#define OBJ_SPIKE_ML 0x13 +#define OBJ_SPIKE_MR 0x14 +#define OBJ_SPIKE_BL 0x15 +#define OBJ_SPIKE_BR 0x16 +#define OBJ_SPIKE_T 0x17 +#define OBJ_SPIKE_SHAD_ML 0x19 +#define OBJ_SPIKE_SHAD_MR 0x1a +#define OBJ_SPIKE_SHAD_BL 0x1b +#define OBJ_SPIKE_SHAD_BR 0x1c +#define OBJ_SPIKE_SHAD_T 0x1d +#define OBJ_SPIKE_NOSHAD_ML 0x1e +#define OBJ_SPIKE_NOSHAD_MR 0x1f +#define OBJ_SPIKE_NOSHAD_BL 0x20 +#define OBJ_SPIKE_NOSHAD_BR 0x21 +#define OBJ_SPIKE_NOSHAD_T 0x22 +#define OBJ_TARGETAMP_VELVET 0x35 +#define OBJ_PHOENIX1 0x42 +#define OBJ_PHOENIX2 0x43 +#define OBJ_REMOTEMINE 0x44 +#define OBJ_ALTAR_FALCON 0x47 +#define OBJ_ALTAR_DEVASTATOR 0x48 +#define OBJ_ALTAR_CALLISTO 0x49 +#define OBJ_ALTAR_MAULER 0x4a +#define OBJ_ALTAR_SLAYER 0x4b +#define OBJ_PUZZLEROCK 0x4c +#define OBJ_BUDDYBRIDGE 0x50 +#define OBJ_BUDDYBARRICADE 0x51 + +// Stage flags +#define STAGEFLAG_VELVET_THREW_FIRST_BUG 0x00000001 +#define STAGEFLAG_VELVET_THREW_SECOND_BUG 0x00000002 +#define STAGEFLAG_VELVET_THREW_THIRD_BUG 0x00000004 +#define STAGEFLAG_VELVET_BUGS_WASTED 0x00000008 +#define STAGEFLAG_JOANNA_BUGS_WASTED 0x00000010 +#define STAGEFLAG_IN_INTRO 0x00000020 +#define STAGEFLAG_IN_OUTRO 0x00000040 +#define STAGEFLAG_AI_BUDDY_EXISTS 0x00000080 +#define STAGEFLAG_PILLAR1_MARKED 0x00000100 +#define STAGEFLAG_PILLAR2_MARKED 0x00000200 +#define STAGEFLAG_PILLAR3_MARKED 0x00000400 +#define STAGEFLAG_BUG_WASTED 0x00000800 +#define STAGEFLAG_BRIDGE_EXTENDED 0x00001000 +#define STAGEFLAG_TRIGGER_SKEDAR_ARMY 0x00002000 +#define STAGEFLAG_ARMY_DEFEATED 0x00004000 +#define STAGEFLAG_CROSSED_RAVINE_WITHOUT_BRIDGE 0x00008000 +#define STAGEFLAG_TRIGGER_BRIDGE 0x00010000 +#define STAGEFLAG_JOANNA_THREW_FIRST_BUG 0x00020000 +#define STAGEFLAG_JOANNA_THREW_SECOND_BUG 0x00040000 +#define STAGEFLAG_JOANNA_THREW_THIRD_BUG 0x00080000 +#define STAGEFLAG_GRENADES_WASTED 0x00100000 +#define STAGEFLAG_ACCESSED_SANCTUM 0x00200000 +#define STAGEFLAG_KING_SKEDAR_CLONE_EXISTS 0x00800000 +#define STAGEFLAG_SPIKE1_DESTROYED 0x01000000 +#define STAGEFLAG_SPIKE2_DESTROYED 0x02000000 +#define STAGEFLAG_SPIKE3_DESTROYED 0x04000000 +#define STAGEFLAG_SPIKE4_DESTROYED 0x08000000 +#define STAGEFLAG_SPIKE5_DESTROYED 0x10000000 +#define STAGEFLAG_SPIKES_VULNERABLE 0x20000000 +#define STAGEFLAG_SPIKE_DESTROYED 0x40000000 +#define STAGEFLAG_KING_MINISKEDAR_CLONE_EXISTS 0x80000000 + +// Functions +#define FUNC_INIT_UNARMED_SKEDAR 0x0401 +#define FUNC_UNARMED_SKEDAR 0x0402 +#define FUNC_INIT_MINISKEDAR 0x0403 +#define FUNC_MINISKEDAR 0x0404 +#define FUNC_PUZZLEROOM_MINISKEDAR_WAITING 0x0405 +#define FUNC_MINISKEDAR_SPAWNER 0x0406 +#define FUNC_INIT_CLOAKED_SKEDAR 0x0407 +#define FUNC_CLOAKED_SKEDAR 0x0408 +#define FUNC_REAPER_SLAYER_SKEDAR 0x0409 +#define FUNC_INIT_REAPER_SLAYER_SKEDAR 0x040a +#define FUNC_MAULER_SKEDAR 0x040b +#define FUNC_KING_WAITING 0x040c +#define FUNC_KING_COMBAT 0x040d +#define FUNC_KING_SKEDAR_SPAWNER 0x040e +#define FUNC_UPDATE_SPIKE_STAGEFLAGS 0x040f +#define FUNC_INIT_KING_SKEDAR_CLONE 0x0410 +#define FUNC_KING_MINISKEDAR_SPAWNER 0x0411 +#define FUNC_INIT_KING_MINISKEDAR_CLONE 0x0412 +#define FUNC_HIDE 0x0413 +#define FUNC_OUTRO 0x0414 + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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 +}; + +u8 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 +}; + +u8 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 +}; + +u8 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) +#define LABEL_HANDLE_PHOENIX_AREA 0x5a +#define 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_propsoundcount_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 'F','A','C','E',' ','T','A','R','G','E','T','\n',0, + 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 +}; + +u8 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 +}; + +u8 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 +}; + +u8 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_propsoundcount_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 'F','A','C','E',' ','T','A','R','G','E','T','\n',0, + 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. + */ +u8 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 +}; + +u8 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. + */ +u8 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 +}; + +u8 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 +}; + +u8 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 +}; + +u8 func1400_setup_counterop[] = { + yield + set_chr_alliance(CHR_COUNTEROP, ALLIANCE_ENEMY) + set_function(CHR_SELF, GFUNC_REBUILD_GROUPS) + endfunction +}; + +u8 func1003_remove_random_skedar[] = { + #define 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) + + + + 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 +}; + +u8 func101a_pointless[] = { + beginloop(0x04) + if_chr_death_animation_finished(CHR_KING1, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 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 +}; + +u8 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 +}; + +u8 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 +}; + +u8 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 'C','H','E','C','K',' ','1','\n',0, + if_ammo_quantity_lt(CHR_JOANNA, AMMOTYPE_BUG, 3, /*goto*/ 0x2d) + endloop(0x03) + + // Threw first + label(0x2d) + dprint 'F','I','R','E',' ','1','\n',0, + set_stage_flag(STAGEFLAG_JOANNA_THREW_FIRST_BUG) + goto_next(0x0e) + + // Check for second + label(0x56) + dprint 'C','H','E','C','K',' ','2','\n',0, + 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 'C','H','E','C','K',' ','3','\n',0, + 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 'A','T',' ','R','E','S','T','\n',0, + 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',' ','P','L','A','C','E','D','\n',0, + 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',' ','P','L','A','C','E','D','\n',0, + 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',' ','P','L','A','C','E','D','\n',0, + 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 'P','L','L','A','C','E','D',' ','W','R','O','N','G','\n',0, + 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 +}; + +u8 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 'C','O','O','P',' ','C','H','E','C','K',' ','1','\n',0, + if_ammo_quantity_lt(CHR_VELVET, AMMOTYPE_BUG, 3, /*goto*/ 0x2d) + endloop(0x03) + + label(0x2d) + dprint 'C','O','O','P',' ','F','I','R','E',' ','1','\n',0, + set_stage_flag(STAGEFLAG_VELVET_THREW_FIRST_BUG) + goto_next(0x0e) + + label(0x56) + dprint 'C','O','O','P',' ','C','H','E','C','K',' ','2','\n',0, + 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 'C','O','O','P',' ','C','H','E','C','K',' ','3','\n',0, + 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 'C','O','O','P',' ','A','T',' ','R','E','S','T','\n',0, + 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 'C','O','O','P',' ','1',' ','P','L','A','C','E','D','\n',0, + 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 'C','O','O','P',' ','2',' ','P','L','A','C','E','D','\n',0, + 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 'C','O','O','P',' ','3',' ','P','L','A','C','E','D','\n',0, + 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 'C','O','O','P',' ','P','L','L','A','C','E','D',' ','W','R','O','N','G','\n',0, + 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 +}; + +u8 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 +}; + +u8 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. + */ +u8 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 +}; + +u8 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 +}; + +u8 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 'F','I','R','E',' ','F','U','L','L','\n',0, + label(0x06) + goto_first(0x64) + + label(0x2d) + goto_first(0x63) + + endfunction +}; + +u8 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 +}; + +u8 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 +}; + +u8 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 +}; + +u8 func100e_wake_skedar_army[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_TRIGGER_SKEDAR_ARMY, TRUE, /*goto*/ 0x2d) + endloop(0x04) + + label(0x2d) + + #define 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) + + + + 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 +}; + +u8 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. + */ +u8 func040d_king_combat[] = { +#define LABEL_MAINLOOP 0x03 +#define LABEL_PLAYER_DEAD 0x11 +#define LABEL_FIRE_ROCKET 0x73 +#define LABEL_SPAWN_SKEDAR 0x74 +#define LABEL_SPAWN_MINISKEDAR 0x75 +#define LABEL_CLOAK 0x76 +#define 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 'F','A','C','E',' ','T','A','R','G','E','T','\n',0, + 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 'P','U','N','C','H','\n',0, + 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 +}; + +u8 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 +}; + +u8 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 +}; + +u8 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 +}; + +u8 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 +}; + +u8 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 +}; + +#define 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) + + + +u8 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 +}; + +u8 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 +}; + +u8 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 +}; + +u8 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 +}; + +u8 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 +}; + +u8 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 +}; + +u8 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 +}; + +u8 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 +}; + +u8 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 +}; + +u8 func0413_hide[] = { + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 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 +}; + +u8 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 +}; + +u8 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 +}; + +u8 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 +}; + +u8 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 +}; + +u8 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 +}; + +u8 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 +}; + +u8 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) + + #define 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) + + + + // @bug: Several loops in this function don't check the stageflag. + // It happens so frequently that I'm using this macro to handle it. + #define wait_until(time, loopid) \ + beginloop(loopid) \ + if_controller_button_pressed(/*goto*/ 0x86) \ + if_timer_gt(time, /*goto*/ 0x06) \ + endloop(loopid) \ + label(0x06) + + + + 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 +}; + +u8 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) + + #define 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) + + + + #define outro_wait_until(time, loopid) \ + beginloop(loopid) \ + if_controller_button_pressed(/*goto*/ 0x86) \ + if_timer_gt(time, /*goto*/ 0x06) \ + endloop(loopid) \ + label(0x06) + + + + 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 +}; + +u8 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. + */ +u8 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 +}; + +u8 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 +}; + +u8 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. + */ +u8 unregistered_function2[] = { + beginloop(0x04) + if_object_flag_bank2(OBJ_PUZZLEROCK, OBJECTFLAG2_PUSHABLE, /*goto*/ 0x2d) + dprint 'C','A','N','T',' ','P','U','S','H','\n',0, + reloop(0x04) + + label(0x2d) + dprint 'C','A','N',' ','P','U','S','H','\n',0, + endloop(0x04) + + endfunction +}; + +u8 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 +}; + +u8 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 +}; + +u8 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 +}; + +u8 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 +}; + +u8 func1426_setup_portals[] = { + yield + set_portal_flag(0x0072, 0x04) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 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 +}; + +struct ailists functions[] = { + { func0401_init_unarmed_skedar, 0x0401 }, + { func0402_unarmed_skedar, 0x0402 }, + { func0403_init_miniskedar, 0x0403 }, + { func0404_miniskedar, 0x0404 }, + { func0405_puzzleroom_miniskedar_waiting, 0x0405 }, + { func0404_miniskedar_spawner, 0x0406 }, + { func0407_init_cloaked_skedar, 0x0407 }, + { func0408_cloaked_skedar, 0x0408 }, + { func0409_reaper_slayer_skedar, 0x0409 }, + { func040a_init_reaper_slayer_skedar, 0x040a }, + { func040b_mauler_skedar, 0x040b }, + { func040c_king_waiting, 0x040c }, + { func040d_king_combat, 0x040d }, + { func040e_king_skedar_spawner, 0x040e }, + { func040f_update_spike_stageflags, 0x040f }, + { func0410_init_king_skedar_clone, 0x0410 }, + { func0411_king_miniskedar_spawner, 0x0411 }, + { func0412_init_king_miniskedar_clone, 0x0412 }, + { func0413_hide, 0x0413 }, + { func0414_outro, 0x0414 }, + { func0c00_intro, 0x0c00 }, + { func0414_outro_from_menu, 0x0c01 }, + { func1400_setup_counterop, 0x1400 }, + { func1001_objectives_failed_msg, 0x1001 }, + { func0c00_intro, 0x1002 }, + { func1003_remove_random_skedar, 0x1003 }, + { func1004_setup_pillars, 0x1004 }, + { func1005_5e0c, 0x1005 }, + { func1006_bridge, 0x1006 }, + { func1007_bug_throws_joanna, 0x1007 }, + { func1008_lock_door, 0x1008 }, + { func1009_altar, 0x1009 }, + { func100a_army_room, 0x100a }, + { func100b_check_sanctum_accessed, 0x100b }, + { func100c_check_army_defeated, 0x100c }, + { func100e_wake_skedar_army, 0x100e }, + { func100f_spikes_vulnerability, 0x100f }, + { func1010_spike_ml, 0x1010 }, + { func1011_spike_mr, 0x1011 }, + { func1012_spike_bl, 0x1012 }, + { func1013_spike_br, 0x1013 }, + { func1014_spike_top, 0x1014 }, + { func1015_msg_specialpillars, 0x1015 }, + { func1016_msg_powersmoreconstant, 0x1016 }, + { func1017_msg_skedararmy, 0x1017 }, + { func1018_msg_cutoffthehead, 0x1018 }, + { func1019_blow_pillars, 0x1019 }, + { func101a_pointless, 0x101a }, + { func101b_bug_throws_velvet, 0x101b }, + { func101c_setup_corridor_lighting, 0x101c }, + { func101d_remove_pillar_shadow, 0x101d }, + { func0c00_intro_sounds, 0x141e }, + { func0414_outro_sounds, 0x141f }, + { func1020_show_phoenix, 0x1020 }, + { func1021_handle_mine, 0x1021 }, + { func1022_armyroom_exitdoors, 0x1022 }, + { func1023_setup_rtracker, 0x1023 }, + { func1024_check_grenades_wasted, 0x1024 }, + { func1025_unlock_doors_for_buddy, 0x1025 }, + { func1426_setup_portals, 0x1426 }, + { func1427_setup_lighting, 0x1427 }, + { func1028_buddybridge, 0x1028 }, + { NULL, 0 }, +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + diff --git a/src/setup/setupsilo.c b/src/setup/setupsilo.c new file mode 100644 index 000000000..1f451f133 --- /dev/null +++ b/src/setup/setupsilo.c @@ -0,0 +1,39 @@ +// +// Stage ID 0x14 +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/src/setup/setupstat.c b/src/setup/setupstat.c new file mode 100644 index 000000000..22643c178 --- /dev/null +++ b/src/setup/setupstat.c @@ -0,0 +1,1416 @@ +// +// WAR! +// + +#include "../include/setup.h" + +// Characters +#define CHR_MAIAN_LEADER 0x3d +#define CHR_MAIAN_TEMPLATE 0x3e +#define CHR_SKEDAR_TEMPLATE 0x3f +#define CHR_KING1 0x40 +#define CHR_KING2 0x41 +#define CHR_KING3 0x42 +#define CHR_BLONDE 0x43 +#define CHR_MAIAN1 0x44 +#define CHR_MAIAN2 0x45 +#define CHR_MAIAN3 0x46 +#define CHR_MAIAN4 0x47 +#define CHR_MAIAN5 0x48 + +// Objects +#define OBJ_BRIDGE 0x05 +#define OBJ_MINE1 0x2f +#define OBJ_MINE2 0x30 +#define OBJ_MINE3 0x31 +#define OBJ_MINE4 0x32 +#define OBJ_MINE5 0x33 +#define OBJ_MINE6 0x40 + +// Stage flags +#define STAGEFLAG_LEADER_DEAD 0x00000100 +#define STAGEFLAG_KING1_DEAD 0x00000200 +#define STAGEFLAG_KING2_DEAD 0x00000400 +#define STAGEFLAG_KING3_DEAD 0x00000800 + +// Functions +#define FUNC_DEFEND 0x0401 +#define FUNC_INIT_KING 0x0402 +#define FUNC_INIT_LEADER 0x0403 +#define FUNC_MAIAN 0x0404 +#define FUNC_INIT_MAIAN 0x0405 +#define FUNC_SKEDAR 0x0406 +#define FUNC_KING1_SKEDAR 0x0407 +#define FUNC_KING2_SKEDAR 0x0408 +#define FUNC_KING3_SKEDAR 0x0409 +#define FUNC_INTRO 0x040a +#define FUNC_OUTRO 0x040b +#define FUNC_HIDE 0x040c +#define FUNC_BLOW_MINES 0x040d + +// Other +#define GROUP_MAIANS 1 +#define GROUP_KING1_SKEDAR 2 +#define GROUP_KING2_SKEDAR 3 +#define GROUP_KING3_SKEDAR 4 + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + briefing(0, 0x4601) + briefing(1, 0x4600) + briefing(2, 0x4602) + briefing(3, 0x4603) + + beginobjective(0, 0x4604, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Kill Skedar King." + complete_flags(STAGEFLAG_KING1_DEAD) + fail_flags(STAGEFLAG_LEADER_DEAD) + endobjective + + beginobjective(1, 0x4605, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Kill Skedar King 2." + complete_flags(STAGEFLAG_KING2_DEAD) + endobjective + + beginobjective(2, 0x4606, (DIFFBIT_PA | DIFFBIT_PD)) // "Kill Skedar King 3." + complete_flags(STAGEFLAG_KING3_DEAD) + endobjective + + chr(0x00000000, CHR_MAIAN_LEADER, 0x004f, BODY_ELVIS1, HEAD_MAIAN_S, FUNC_INIT_LEADER, 0x004e, -1, 1000, 200, 0x00002000, 0xc0304000, 0x10, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAIANSMG, 0x003d, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CALLISTONTG, 0x00ffffff, 0x00000000) + + chr(0x00000000, CHR_MAIAN_TEMPLATE, 0x0045, BODY_CISOLDIER, HEAD_RANDOM, FUNC_HIDE, -1, -1, 200, 100, 0x00012000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAR34, 0x003e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AR34, 0x00ffffff, 0x00000000) + + chr(0x00000000, CHR_KING1, 0x007c, BODY_SKEDARKING, HEAD_RANDOM, FUNC_INIT_KING, 0x007c, -1, 1000, 200, 0x00002000, 0xc0304008, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSKMINIGUN, 0x0040, 0x10004000, 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(0x000000c0, CHR_KING2, 0x0110, BODY_SKEDARKING, HEAD_RANDOM, FUNC_INIT_KING, 0x0091, -1, 1000, 200, 0x00002000, 0xc0304000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSKROCKET, 0x0041, 0x10004000, 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(0x00000080, CHR_KING3, 0x0094, BODY_SKEDARKING, HEAD_RANDOM, FUNC_INIT_KING, 0x0094, -1, 1000, 200, 0x00002000, 0xc0304000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_KINGSCEPTRE, 0x0042, 0x10006000, 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(0x00000300, CHR_BLONDE, 0x0077, BODY_SKEDAR, HEAD_MRBLONDE, FUNC_KING1_SKEDAR, 0x0022, -1, 1000, 200, 0x00002000, 0xc0304000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAULER, 0x0043, 0x10004000, 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, CHR_SKEDAR_TEMPLATE, 0x007d, BODY_CISOLDIER, HEAD_RANDOM, FUNC_HIDE, -1, -1, 200, 100, 0x00012000, 0xc0300000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRAR34, 0x003f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AR34, 0x00ffffff, 0x00000000) + + chr(0x00000000, CHR_MAIAN1, 0x0009, BODY_ELVIS1, HEAD_MAIAN_S, GFUNC_IDLE, -1, -1, 200, 100, 0x00012000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAIANSMG, 0x0044, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CALLISTONTG, 0x00ffffff, 0x00000000) + + chr(0x00000000, CHR_MAIAN2, 0x00a4, BODY_ELVIS1, HEAD_MAIAN_S, GFUNC_IDLE, -1, -1, 200, 100, 0x00012000, 0xc0300000, 0x10, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAIANSMG, 0x0045, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CALLISTONTG, 0x00ffffff, 0x00000000) + + chr(0x00000000, CHR_MAIAN3, 0x0008, BODY_ELVIS1, HEAD_MAIAN_S, FUNC_HIDE, -1, -1, 200, 100, 0x00012000, 0xc0300000, 0x01, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAIANSMG, 0x0046, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CALLISTONTG, 0x00ffffff, 0x00000000) + + chr(0x00000000, CHR_MAIAN4, 0x000c, BODY_ELVIS1, HEAD_MAIAN_S, FUNC_HIDE, -1, -1, 200, 100, 0x00012000, 0xc0300000, 0x01, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAIANSMG, 0x0047, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CALLISTONTG, 0x00ffffff, 0x00000000) + + chr(0x00000000, CHR_MAIAN5, 0x000d, BODY_ELVIS1, HEAD_MAIAN_S, FUNC_HIDE, -1, -1, 200, 100, 0x00012000, 0xc0300000, 0x01, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRMAIANSMG, 0x0048, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CALLISTONTG, 0x00ffffff, 0x00000000) + + link_scenery(1, 0, 2) + debris(0x0100, MODEL_SKCREV_UNEXP1, 0x00e5, 0x035005e8, 0x00304300, 0x00000000, 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) + link_scenery(1, 0, 2) + door(0x0100, MODEL_SKTNL_UNEXP1, 0x00e7, 0x13500d00, 0x00304300, 0x00000000, 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) + debris(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(0x1e, 5) + tag(0x1f, 5) + tag(0x20, 5) + tag(0x21, 5) + tag(0x22, 5) + stdobject(0x0100, MODEL_SK_FL_NOSHAD_ML, 0x014b, 0x035004e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_SK_FL_NOSHAD_MR, 0x014c, 0x035004e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_SK_FL_NOSHAD_BL, 0x014d, 0x035004e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_SK_FL_NOSHAD_BR, 0x014e, 0x035004e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_SK_FL_NOSHAD_T, 0x014a, 0x035004e8, 0x00304300, 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, 0x80106300, 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, 0x80106300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x03, 3) + tag(0x2c, 2) + link_scenery(1, 0, 0) + debris(0x0100, MODEL_SK_TEMPLECOLUMN3, 0x010b, 0x035005e8, 0x80106300, 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, 0x80106300, 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, 0x80106300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x27, 1) + tag(0x28, 1) + tag(0x29, 1) + tag(0x2f, 5) + tag(0x30, 5) + tag(0x31, 5) + tag(0x32, 5) + tag(0x33, 5) + stdobject(0x0019, MODEL_CHRREMOTEMINE, 0x00d5, 0x012004e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0019, MODEL_CHRREMOTEMINE, 0x010a, 0x012004e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0019, MODEL_CHRREMOTEMINE, 0x010b, 0x012004e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0019, MODEL_CHRREMOTEMINE, 0x010c, 0x012004e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0019, MODEL_CHRREMOTEMINE, 0x010d, 0x012004e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x3d, 1) + stdobject(0x0019, MODEL_CHRREMOTEMINE, 0x003b, 0x012004e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_SK_SUNNOSHAD1, 0x014f, 0x035004e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_SK_SUNNOSHAD2, 0x0150, 0x035004e8, 0x00304300, 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) + tag(0x3e, 2) + tag(0x3f, 2) + 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, 0x00000040, 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, 0x00000040, 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, 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, 0x00f2, 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(0x0d, 2) + tag(0x0e, 2) + door(0x0100, MODEL_SK_DOOR1, 0x00f3, 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, 0x00f4, 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, 0x00f5, 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, 0x00f6, 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(0x0f, 2) + tag(0x10, 2) + door(0x0100, MODEL_SK_DOOR1, 0x00f7, 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, 0x00f8, 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(0x11, 2) + tag(0x12, 2) + door(0x0100, MODEL_SK_DOOR1, 0x00f9, 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, 0x00fa, 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(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(0x04, 1) + stdobject(0x0080, MODEL_SKPUZZLEOBJECT, 0x00d4, 0x000201e1, 0x00004100, 0x00000000, 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, 0x0136, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0136, 0x0136, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x0b, 1) + multimonitor(0x0099, MODEL_COMHUB, 0x0137, 0x00000002, 0x00000000, 0x00000000, 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(0x23, 1) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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) + stdobject(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(0x36, 1) + stdobject(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, 0x00000000, 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, 0x00010000, 0x00010000, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 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, 0x00000000, 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, 0x00010000, 0x00010000, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 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, 0x00000000, 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, 0x00010000, 0x00010000, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 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, 0x00000000, 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, 0x00010000, 0x00010000, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 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, 0x00000000, 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, 0x00010000, 0x00010000, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 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, 0x00000000, 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, 0x00010000, 0x00010000, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 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, 0x00000000, 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, 0x00010000, 0x00010000, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x40, 1) + stdobject(0x0019, MODEL_CHRREMOTEMINE, 0x003b, 0x012004e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + 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) + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_MAIAN) + intro_weapon(WEAPON_PHOENIX, -1) + ammo(AMMOTYPE_PISTOL, 300) + ammo(AMMOTYPE_ROCKET, 3) + ammo(AMMOTYPE_SMG, 100) + spawn(0x00d7) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +u8 func1001_objectives_failed_msg[] = { + yield + set_function(CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG) + endfunction +}; + +u8 func1000_counterop[] = { + yield + set_chr_alliance(CHR_COUNTEROP, ALLIANCE_ENEMY) + set_function(CHR_SELF, GFUNC_REBUILD_GROUPS) + endfunction +}; + +u8 func0403_init_maian_leader[] = { + stop_chr + yield + set_alertness(100) + set_accuracy(100) + set_reaction_speed(100) + set_chr_health(CHR_SELF, 40) + set_armor(300) + set_recovery_speed(100) + set_shield(0) + set_function(CHR_SELF, FUNC_DEFEND) + endfunction +}; + +u8 func0402_init_king[] = { + set_self_flag_bank3(CHRFLAG3_00000020) + set_alertness(100) + set_accuracy(100) + set_reaction_speed(100) + set_chr_health(CHR_SELF, 40) + set_armor(300) + set_recovery_speed(100) + set_shield(0) + set_self_flag_bank3(CHRFLAG3_UNEXPLODABLE) + set_function(CHR_SELF, FUNC_DEFEND) + endfunction +}; + +u8 func0401_defend[] = { + set_onshot_function(FUNC_DEFEND) + set_self_flag_bank3(CHRFLAG3_NOAUTOAIM) + 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) + set_function(CHR_SELF, GFUNC_IDLE) + + // Not dying - go to pad + label(0x06) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x08) + if_chr_distance_to_pad_lt(CHR_SELF, 200, TARGET_PAD, /*goto*/ 0x06) + + label(0x03) + restart_timer + if_chr_distance_to_pad_gt(CHR_SELF, 500, TARGET_PAD, /*goto*/ 0x06) + go_to_target_pad(SPEED_JOG) + + label(0x06) + go_to_target_pad(SPEED_RUN) + + // Wait until at pad or 1 second has passed + beginloop(0x04) + dprint 'G','O',' ','T','O',' ','P','A','D','\n',0, + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x08) + if_chr_distance_to_pad_lt(CHR_SELF, 200, TARGET_PAD, /*goto*/ 0x06) + if_timer_gt(60, /*goto*/ 0x2d) + endloop(0x04) + + // Timer expired - loop again + label(0x2d) + goto_first(0x03) + + // At pad + label(0x06) + stop_chr + + // Wait for enemy to come into sight, or to be pushed away from pad + beginloop(0x09) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x08) + if_chr_distance_to_pad_gt(CHR_SELF, 300, TARGET_PAD, /*goto*/ 0x06) + endloop(0x09) + + // Pushed away from pad - return to it + label(0x06) + goto_first(0x03) + + // Line of sight to enemy + label(0x08) + if_self_flag_bankx_eq(CHRFLAG1_00000008, TRUE, BANK_1, /*goto*/ 0x2d) + restart_timer + + beginloop(0x8f) + if_timer_gt(120, /*goto*/ 0x2d) + endloop(0x8f) + + label(0x2d) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0x2d) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0x2d) + if_chr_dying(TARGET_CHR, /*goto*/ 0x2d) + dprint 'D','E','T','E','C','T','E','D','\n',0, + set_return_function(CHR_SELF, FUNC_DEFEND) + set_onshot_function(FUNC_DEFEND) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + + label(0x2d) + goto_first(0x03) + + endfunction +}; + +u8 func1003_spawn_maians[] = { + yield + + // Wait for intro to finish + beginloop(0x58) + if_camera_animating(/*goto*/ 0x2d) + goto_next(0x2e) + label(0x2d) + endloop(0x58) + + label(0x2e) + yield + yield + yield + yield + yield + label(0x04) + yield + label(0x06) + set_var_a(50) + + // Loop until a Maian is able to be spawned or counter depleted + beginloop(0x8d) + if_var_a_lt(1, /*goto*/ 0x06) + try_spawn_chr(BODY_ELVIS1, HEAD_MAIAN_S, 0x0053, FUNC_INIT_MAIAN, 0x00000000, /*goto*/ 0x8e) + try_spawn_chr(BODY_ELVIS1, HEAD_MAIAN_S, 0x0050, FUNC_INIT_MAIAN, 0x00000000, /*goto*/ 0x8e) + try_spawn_chr(BODY_ELVIS1, HEAD_MAIAN_S, 0x004d, FUNC_INIT_MAIAN, 0x00000000, /*goto*/ 0x8e) + try_spawn_chr(BODY_ELVIS1, HEAD_MAIAN_S, 0x004c, FUNC_INIT_MAIAN, 0x00000000, /*goto*/ 0x8e) + try_spawn_chr(BODY_ELVIS1, HEAD_MAIAN_S, 0x004e, FUNC_INIT_MAIAN, 0x00000000, /*goto*/ 0x8e) + try_spawn_chr(BODY_ELVIS1, HEAD_MAIAN_S, 0x004a, FUNC_INIT_MAIAN, 0x00000000, /*goto*/ 0x8e) + reloop(0x8d) + + // Successful spawn + label(0x8e) + dprint 'C','R','E','A','T','E','D',' ','1','\n',0, + yield + subtract_var_a(1) + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + cmd0145_rebuild_groups + cmd0146_rebuild_groups + if_num_chrs_in_group_gt(7, GROUP_MAIANS, /*goto*/ 0x2d) + reloop(0x8d) + + // Wait 5 seconds + label(0x2d) + restart_timer + + beginloop(0x08) + dprint 'S','Q','U','A','D',' ','F','U','L','L','\n',0, + if_timer_gt(300, /*goto*/ 0x2d) + endloop(0x08) + + // If a spot has freed up, go back to the spawning part to spawn another + label(0x2d) + if_num_chrs_in_group_gt(7, GROUP_MAIANS, /*goto*/ 0x2d) + endloop(0x8d) + + // Still no free spot, so go back to the 5 second wait + label(0x2d) + goto_first(0x08) + + // Counter depleted + label(0x06) + yield + yield + yield + yield + yield + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0405_init_maian[] = { + set_self_flag_bank3(CHRFLAG3_00040000) + set_self_flag_bank3(CHRFLAG3_00080000) + set_chr_alliance(CHR_SELF, ALLIANCE_ALLY) + set_group(GROUP_MAIANS) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + try_draw_weapon(MODEL_CHRMAIANSMG, WEAPON_CALLISTONTG, 0x00000000, /*goto*/ 0x06) + label(0x06) + try_inherit_properties(CHR_MAIAN_TEMPLATE, /*goto*/ 0x2d) + label(0x2d) + set_accuracy(100) + set_reaction_speed(100) + set_chr_health(CHR_SELF, 200) + set_armor(0) + set_recovery_speed(100) + set_shield(0) + set_self_flag_bankx(CHRFLAG1_00080000, BANK_1) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, FUNC_MAIAN) + endfunction +}; + +u8 func0404_maian[] = { + set_return_function(CHR_SELF, FUNC_MAIAN) + set_onshot_function(FUNC_MAIAN) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x08) + + label(0x03) + set_target_chr(CHR_KING1) + if_chr_dying(CHR_KING1, /*goto*/ 0x8f) + if_chr_death_animation_finished(CHR_KING1, /*goto*/ 0x8f) + if_chr_unloaded(CHR_KING1, /*goto*/ 0x8f) + goto_next(0x2d) + + // King 1 dead + label(0x8f) + set_target_chr(CHR_KING2) + if_chr_dying(CHR_KING2, /*goto*/ 0x90) + if_chr_death_animation_finished(CHR_KING2, /*goto*/ 0x90) + if_chr_unloaded(CHR_KING2, /*goto*/ 0x90) + goto_next(0x2d) + + // King 2 dead + label(0x90) + set_target_chr(CHR_KING3) + run_to_pad(0x0094) + goto_next(0x04) + + // Go to king + label(0x2d) + try_run_to_target_chr(/*goto*/ 0x04) + + beginloop(0x04) + dprint 'G','O',' ','T','O',' ','P','A','D','\n',0, + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x08) + if_chr_dying(TARGET_CHR, /*goto*/ 0x06) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0x06) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0x06) + endloop(0x04) + + // King died while running to him + label(0x06) + goto_first(0x03) + + // Maian has line of sight to king + label(0x08) + dprint 'D','E','T','E','C','T','E','D','\n',0, + if_chr_dying(TARGET_CHR, /*goto*/ 0x06) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0x06) + if_chr_unloaded(TARGET_CHR, /*goto*/ 0x06) + set_return_function(CHR_SELF, FUNC_MAIAN) + set_onshot_function(FUNC_MAIAN) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + + // King died while fighting + label(0x06) + goto_first(0x03) + + endfunction +}; + +u8 func1004_spawn_king1_skedar[] = { + // Wait for intro to finish + beginloop(0x58) + if_camera_animating(/*goto*/ 0x2d) + goto_next(0x2e) + label(0x2d) + endloop(0x58) + + label(0x2e) + yield + yield + yield + yield + yield + label(0x04) + yield + label(0x06) + set_var_a(65) + + // Loop until a Skedar is able to be spawned or counter depleted + beginloop(0x8d) + if_stage_flag_eq(STAGEFLAG_KING1_DEAD, TRUE, /*goto*/ 0x0e) + if_var_a_lt(1, /*goto*/ 0x06) + try_spawn_chr(BODY_SKEDAR, HEAD_RANDOM, 0x0079, FUNC_KING1_SKEDAR, 0x00000200, /*goto*/ 0x8e) + try_spawn_chr(BODY_SKEDAR, HEAD_RANDOM, 0x007d, FUNC_KING1_SKEDAR, 0x00000200, /*goto*/ 0x8e) + try_spawn_chr(BODY_SKEDAR, HEAD_RANDOM, 0x0083, FUNC_KING1_SKEDAR, 0x00000200, /*goto*/ 0x8e) + try_spawn_chr(BODY_SKEDAR, HEAD_RANDOM, 0x0085, FUNC_KING1_SKEDAR, 0x00000200, /*goto*/ 0x8e) + reloop(0x8d) + + // Successful spawn + label(0x8e) + dprint 'C','R','E','A','T','E','D',' ','1','\n',0, + yield + subtract_var_a(1) + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + cmd0145_rebuild_groups + cmd0146_rebuild_groups + if_num_chrs_in_group_gt(5, 0x02, /*goto*/ 0x2d) + reloop(0x8d) + + // Wait for 10 seconds if Maian squad is somewhat full, + // or wait 1 second if Maian squad is somewhat empty. + label(0x2d) + restart_timer + + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_KING1_DEAD, TRUE, /*goto*/ 0x0e) + dprint 'S','Q','U','A','D',' ','F','U','L','L','\n',0, + if_num_chrs_in_group_gt(3, GROUP_MAIANS, /*goto*/ 0x2e) + if_timer_gt(60, /*goto*/ 0x2d) + label(0x2e) + if_timer_gt(600, /*goto*/ 0x2d) + endloop(0x08) + + // If squad is still full, wait another 1 or 10 seconds + label(0x2d) + if_num_chrs_in_group_gt(5, GROUP_KING1_SKEDAR, /*goto*/ 0x2d) + goto_first(0x8d) + + // Spawn more + label(0x2d) + goto_first(0x08) + + // Counter depleted + label(0x06) + + // King 1 dead + label(0x0e) + yield + yield + yield + yield + yield + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1008_spawn_king2_skedar[] = { + // Wait for intro to finish + beginloop(0x58) + if_camera_animating(/*goto*/ 0x2d) + goto_next(0x2e) + label(0x2d) + endloop(0x58) + + // Wait for king 1 to die + label(0x2e) + yield + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_KING1_DEAD, TRUE, /*goto*/ 0x06) + endloop(0x04) + + // Loop until a Skedar is able to be spawned or counter depleted + label(0x06) + set_var_a(50) + + beginloop(0x8d) + if_stage_flag_eq(STAGEFLAG_KING2_DEAD, TRUE, /*goto*/ 0x0e) + if_var_a_lt(1, /*goto*/ 0x06) + try_spawn_chr(BODY_SKEDAR, HEAD_RANDOM, 0x008e, FUNC_KING2_SKEDAR, 0x00000210, /*goto*/ 0x8e) + try_spawn_chr(BODY_SKEDAR, HEAD_RANDOM, 0x0090, FUNC_KING2_SKEDAR, 0x00000210, /*goto*/ 0x8e) + try_spawn_chr(BODY_SKEDAR, HEAD_RANDOM, 0x008f, FUNC_KING2_SKEDAR, 0x00000210, /*goto*/ 0x8e) + try_spawn_chr(BODY_SKEDAR, HEAD_RANDOM, 0x0091, FUNC_KING2_SKEDAR, 0x00000210, /*goto*/ 0x8e) + reloop(0x8d) + + // Successful spawn + label(0x8e) + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + yield + subtract_var_a(1) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + if_num_chrs_in_group_gt(3, GROUP_KING2_SKEDAR, /*goto*/ 0x2d) + reloop(0x8d) + + // Wait 15 seconds or until king 2 dead + label(0x2d) + restart_timer + + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_KING2_DEAD, TRUE, /*goto*/ 0x0e) + if_timer_gt(900, /*goto*/ 0x2d) + endloop(0x08) + + // If squad still full, wait another 15 seconds, otherwise loop back to + // the spawning code. + label(0x2d) + if_num_chrs_in_group_gt(3, GROUP_KING2_SKEDAR, /*goto*/ 0x2d) + endloop(0x8d) + + label(0x2d) + goto_first(0x08) + + // Counter depleted + label(0x06) + yield + yield + yield + yield + yield + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_IDLE) + label(0x0e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100c_spawn_king3_skedar[] = { + // Wait for intro to finish + beginloop(0x58) + if_camera_animating(/*goto*/ 0x2d) + goto_next(0x2e) + label(0x2d) + endloop(0x58) + + // Wait for king 2 to die + label(0x2e) + yield + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_KING2_DEAD, TRUE, /*goto*/ 0x06) + endloop(0x04) + + // Loop until a Skedar is able to be spawned or counter depleted + label(0x06) + set_var_a(50) + + beginloop(0x8d) + if_stage_flag_eq(STAGEFLAG_KING3_DEAD, TRUE, /*goto*/ 0x0e) + if_var_a_lt(1, /*goto*/ 0x06) + try_spawn_chr(BODY_SKEDAR, HEAD_RANDOM, 0x0095, FUNC_KING3_SKEDAR, 0x00000200, /*goto*/ 0x8e) + try_spawn_chr(BODY_SKEDAR, HEAD_RANDOM, 0x0096, FUNC_KING3_SKEDAR, 0x00000200, /*goto*/ 0x8e) + try_spawn_chr(BODY_SKEDAR, HEAD_RANDOM, 0x012e, FUNC_KING3_SKEDAR, 0x00000200, /*goto*/ 0x8e) + try_spawn_chr(BODY_SKEDAR, HEAD_RANDOM, 0x0132, FUNC_KING3_SKEDAR, 0x00000200, /*goto*/ 0x8e) + reloop(0x8d) + + // Successful spawn + label(0x8e) + yield + subtract_var_a(1) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + if_num_chrs_in_group_gt(5, 0x04, /*goto*/ 0x2d) + reloop(0x8d) + + // Squad full - wait 15 seconds or for king 3 to die + label(0x2d) + restart_timer + + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_KING3_DEAD, TRUE, /*goto*/ 0x0e) + if_timer_gt(900, /*goto*/ 0x2d) + endloop(0x08) + + // Spawn more or wait another 15 seconds + label(0x2d) + if_num_chrs_in_group_gt(5, GROUP_KING3_SKEDAR, /*goto*/ 0x2d) + endloop(0x8d) + + label(0x2d) + goto_first(0x08) + + // Countdown depleted + label(0x06) + yield + yield + yield + yield + yield + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_IDLE) + label(0x0e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0407_king1_skedar[] = { + try_draw_weapon(MODEL_CHRMAULER, WEAPON_MAULER, 0x00000000, /*goto*/ 0x06) + label(0x06) + try_inherit_properties(CHR_SKEDAR_TEMPLATE, /*goto*/ 0x2d) + label(0x2d) + set_group(GROUP_KING1_SKEDAR) + set_chr_alliance(CHR_SELF, ALLIANCE_ENEMY) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_00400000) + set_accuracy(10) + set_reaction_speed(50) + set_chr_health(CHR_SELF, 150) + set_armor(80) + set_recovery_speed(100) + set_shield(0) + set_self_flag_bankx(CHRFLAG1_00080000, BANK_1) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, FUNC_SKEDAR) + endfunction +}; + +u8 func0408_king2_skedar[] = { + try_draw_weapon(MODEL_CHRMAULER, WEAPON_MAULER, 0x00000000, /*goto*/ 0x06) + label(0x06) + try_inherit_properties(CHR_SKEDAR_TEMPLATE, /*goto*/ 0x2d) + label(0x2d) + set_group(GROUP_KING2_SKEDAR) + set_chr_alliance(CHR_SELF, ALLIANCE_ENEMY) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_00400000) + set_accuracy(10) + set_reaction_speed(50) + set_chr_health(CHR_SELF, 150) + set_armor(80) + set_recovery_speed(100) + set_shield(0) + set_self_flag_bankx(CHRFLAG1_00080000, BANK_1) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, FUNC_SKEDAR) + endfunction +}; + +u8 func0409_king3_skedar[] = { + try_draw_weapon(MODEL_CHRMAULER, WEAPON_MAULER, 0x00000000, /*goto*/ 0x06) + label(0x06) + try_inherit_properties(CHR_SKEDAR_TEMPLATE, /*goto*/ 0x2d) + label(0x2d) + set_group(GROUP_KING3_SKEDAR) + set_chr_alliance(CHR_SELF, ALLIANCE_ENEMY) + set_chr_flag_bank2(CHR_SELF, CHRFLAG2_00400000) + set_accuracy(10) + set_reaction_speed(50) + set_chr_health(CHR_SELF, 150) + set_armor(80) + set_recovery_speed(100) + set_shield(0) + set_self_flag_bankx(CHRFLAG1_00080000, BANK_1) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, FUNC_SKEDAR) + endfunction +}; + +u8 func0406_skedar[] = { + set_onshot_function(FUNC_SKEDAR) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x08) + label(0x03) + + // Go to Maian leader + set_target_chr(CHR_MAIAN_LEADER) + try_run_to_target_chr(/*goto*/ 0x04) + + beginloop(0x04) + dprint 'G','O',' ','T','O',' ','P','A','D','\n',0, + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x08) + endloop(0x04) + + label(0x08) + dprint 'D','E','T','E','C','T','E','D','\n',0, + set_return_function(CHR_SELF, FUNC_SKEDAR) + set_onshot_function(FUNC_SKEDAR) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + endfunction +}; + +u8 func1005_check_leader_dead[] = { + beginloop(0x03) + if_chr_death_animation_finished(CHR_MAIAN_LEADER, /*goto*/ 0x2d) + if_chr_dying(CHR_MAIAN_LEADER, /*goto*/ 0x2d) + if_chr_unloaded(CHR_MAIAN_LEADER, /*goto*/ 0x2d) + endloop(0x03) + + label(0x2d) + message(CHR_JOANNA, 0x4607) // "Maian leader has been killed." + set_stage_flag(STAGEFLAG_LEADER_DEAD) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1009_check_king1_dead[] = { + set_object_flag_bank0(OBJ_BRIDGE, OBJECTFLAG0_DEACTIVATED) + + beginloop(0x03) + if_chr_death_animation_finished(CHR_KING1, /*goto*/ 0x2d) + if_chr_dying(CHR_KING1, /*goto*/ 0x2d) + if_chr_unloaded(CHR_KING1, /*goto*/ 0x2d) + endloop(0x03) + + label(0x2d) + message(CHR_JOANNA, 0x4608) // "Skedar King has been killed." + set_stage_flag(STAGEFLAG_KING1_DEAD) + unlock_door(0x3e, 0x40) + unlock_door(0x3f, 0x40) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100a_check_king2_dead[] = { + set_object_flag_bank0(OBJ_BRIDGE, OBJECTFLAG0_DEACTIVATED) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x0e) + + beginloop(0x03) + if_chr_death_animation_finished(CHR_KING2, /*goto*/ 0x2d) + if_chr_dying(CHR_KING2, /*goto*/ 0x2d) + if_chr_unloaded(CHR_KING2, /*goto*/ 0x2d) + endloop(0x03) + + label(0x2d) + message(CHR_JOANNA, 0x4608) // "Skedar King has been killed." + set_stage_flag(STAGEFLAG_KING2_DEAD) + label(0x0e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100b_check_king3_dead[] = { + set_object_flag_bank0(OBJ_BRIDGE, OBJECTFLAG0_DEACTIVATED) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x0e) + + beginloop(0x03) + if_chr_death_animation_finished(CHR_KING3, /*goto*/ 0x2d) + if_chr_dying(CHR_KING3, /*goto*/ 0x2d) + if_chr_unloaded(CHR_KING3, /*goto*/ 0x2d) + endloop(0x03) + + label(0x2d) + message(CHR_JOANNA, 0x4608) // "Skedar King has been killed." + set_stage_flag(STAGEFLAG_KING3_DEAD) + label(0x0e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1007_check_end_level[] = { + // Wait for all objectives complete + beginloop(0x03) + if_all_objectives_complete(/*goto*/ 0x2d) + endloop(0x03) + + // Wait 2 seconds + label(0x2d) + restart_timer + + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x2d) + endloop(0x08) + + // Check Jo not dead + label(0x2d) + 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) + + // Check Velvet not dead + 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) + + // Mission failed + label(0x2d) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + + // Mission complete + label(0x06) + set_function(CHR_SELF, FUNC_OUTRO) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040c_hide[] = { + label(0x03) + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100d_king1_invincible[] = { + beginloop(0x03) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0070, /*goto*/ 0x2d) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0071, /*goto*/ 0x2d) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0072, /*goto*/ 0x2d) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0073, /*goto*/ 0x2d) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0074, /*goto*/ 0x2d) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0075, /*goto*/ 0x2d) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0076, /*goto*/ 0x2d) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0077, /*goto*/ 0x2d) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0078, /*goto*/ 0x2d) + if_chr_in_room(CHR_JOANNA, 0x00, 0x0079, /*goto*/ 0x2d) + set_chr_flag_bank3(CHR_KING1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + reloop(0x03) + + label(0x2d) + unset_chr_flag_bank3(CHR_KING1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + endloop(0x03) + + endfunction +}; + +u8 unregistered_function[] = { + yield + + // Wait for intro to finish + beginloop(0x58) + if_camera_animating(/*goto*/ 0x2d) + goto_next(0x2e) + label(0x2d) + endloop(0x58) + + label(0x2e) + yield + yield + yield + yield + yield + + // Remove Blonde if counterop doesn't exist + label(0x03) + if_chr_death_animation_finished(CHR_COUNTEROP, /*goto*/ 0x2d) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2d) + remove_chr(CHR_BLONDE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1002_intro[] = { + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_music_track(MUSIC_G5_INTRO) + set_chr_flag_bank2(CHR_COUNTEROP, CHRFLAG2_00020000) + set_chr_flag_bank2(CHR_BLONDE, CHRFLAG2_00020000) + camera_movement(0x047c) + cmd0175(60) + + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x047d, -1, -1, 0x0600, CHR_JOANNA, 4) + + unset_chr_flag_bank3(CHR_MAIAN1, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_MAIAN1, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_MAIAN1, CHRFLAG2_00020000) + animation(0x047e, -1, -1, 0x0600, CHR_MAIAN1, 4) + + unset_chr_flag_bank3(CHR_MAIAN2, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_MAIAN2, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_MAIAN2, CHRFLAG2_00020000) + animation(0x047f, -1, -1, 0x0600, CHR_MAIAN2, 4) + + restart_timer + fade_to_color(0x000000ff, 0) + fade_to_color(0x00000000, 110) + set_cutscene_weapon(CHR_JOANNA, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_JOANNA, WEAPON_PHOENIX, WEAPON_NONE) + + // Wait 200 frames (3.3 secs) or until button pressed + beginloop(0x96) + if_controller_button_pressed(/*goto*/ 0x82) + if_timer_gt(200, /*goto*/ 0x06) + endloop(0x96) + + // Timer expired - play a sound (explosion?) + label(0x06) + play_sound(0x05e2, CHANNEL_10) + + // Wait for camera to finish or button to be pressed + beginloop(0x08) + if_camera_animating(/*goto*/ 0x2d) + goto_next(0x82) + label(0x2d) + if_controller_button_pressed(/*goto*/ 0x82) + label(0x2d) + endloop(0x08) + + // Outro done + label(0x82) + mute_channel(CHANNEL_10) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_COUNTEROP, CHRFLAG2_00020000) + + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x047d, -2, -1, 0x0600, CHR_JOANNA, 2) + + unset_chr_flag_bank3(CHR_MAIAN3, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_MAIAN3, CHRFLAG2_00020000) + animation(0x047e, -2, -1, 0x0600, CHR_MAIAN3, 2) + + unset_chr_flag_bank3(CHR_MAIAN4, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_MAIAN4, CHRFLAG2_00020000) + animation(0x047f, -2, -1, 0x0600, CHR_MAIAN4, 2) + + set_function(CHR_MAIAN1, FUNC_INIT_MAIAN) + set_function(CHR_MAIAN2, FUNC_INIT_MAIAN) + restart_default_music + reset_ambience + enter_firstperson + yield + label(0x2d) + set_function(CHR_SELF, FUNC_BLOW_MINES) + endfunction +}; + +u8 func040b_outro[] = { + set_invincible(CHR_JOANNA) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_music_track(MUSIC_G5_OUTRO) + camera_movement(0x0480) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + + unset_chr_flag_bank3(CHR_MAIAN3, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_MAIAN3, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_MAIAN3, CHRFLAG2_00020000) + animation(0x0481, -1, -1, 0x0600, CHR_MAIAN3, 4) + + unset_chr_flag_bank3(CHR_MAIAN4, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_MAIAN4, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_MAIAN4, CHRFLAG2_00020000) + animation(0x0482, -1, -1, 0x0600, CHR_MAIAN4, 4) + + unset_chr_flag_bank3(CHR_MAIAN5, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_MAIAN5, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_MAIAN5, CHRFLAG2_00020000) + animation(0x0483, -1, -1, 0x0600, CHR_MAIAN5, 4) + + show_nonessential_chrs(FALSE) + + // Wait 10 frames or for button press + restart_timer + + beginloop(0x96) + if_controller_button_pressed(/*goto*/ 0x82) + if_timer_gt(10, /*goto*/ 0x06) + endloop(0x96) + + // Play sound + label(0x06) + play_sound(0x05e3, CHANNEL_10) + + // Wait 70 frames or for button press + beginloop(0x97) + if_controller_button_pressed(/*goto*/ 0x82) + if_timer_gt(70, /*goto*/ 0x06) + endloop(0x97) + + // Play sound + label(0x06) + play_sound(0x05e5, CHANNEL_10) + + // Wait 180 frames or for button press + beginloop(0x98) + if_controller_button_pressed(/*goto*/ 0x82) + if_timer_gt(180, /*goto*/ 0x06) + endloop(0x98) + + // Play sound + label(0x06) + play_sound(0x05e7, CHANNEL_10) + + // Wait for outro to finish + beginloop(0x08) + if_camera_animating(/*goto*/ 0x2d) + goto_next(0x82) + label(0x2d) + if_controller_button_pressed(/*goto*/ 0x82) + label(0x2d) + endloop(0x08) + + label(0x82) + label(0x06) + mute_channel(CHANNEL_10) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100f_blow_mines[] = { + yield + + #define wait(loopid) \ + restart_timer \ + \ + beginloop(loopid) \ + if_timer_gt(120, /*goto*/ 0x2d) \ + endloop(loopid) \ + \ + label(0x2d) + + + + wait(0x94) + destroy_object(OBJ_MINE6) + wait(0x95) + destroy_object(OBJ_MINE1) + wait(0x8f) + destroy_object(OBJ_MINE2) + wait(0x90) + destroy_object(OBJ_MINE3) + wait(0x91) + destroy_object(OBJ_MINE4) + wait(0x92) + destroy_object(OBJ_MINE5) + wait(0x93) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1010_init_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_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +struct ailists functions[] = { + { func1000_counterop, 0x1000 }, + { func1001_objectives_failed_msg, 0x1001 }, + { func1002_intro, 0x1002 }, + { func1003_spawn_maians, 0x1003 }, + { func1004_spawn_king1_skedar, 0x1004 }, + { func1005_check_leader_dead, 0x1005 }, + { func1007_check_end_level, 0x1007 }, + { func1008_spawn_king2_skedar, 0x1008 }, + { func1009_check_king1_dead, 0x1009 }, + { func100a_check_king2_dead, 0x100a }, + { func100b_check_king3_dead, 0x100b }, + { func100c_spawn_king3_skedar, 0x100c }, + { func100d_king1_invincible, 0x100d }, + { func100f_blow_mines, 0x100f }, + { func1010_init_lighting, 0x1010 }, + { func100f_blow_mines, 0x040d }, + { func040c_hide, 0x040c }, + { func0401_defend, 0x0401 }, + { func0402_init_king, 0x0402 }, + { func0403_init_maian_leader, 0x0403 }, + { func0404_maian, 0x0404 }, + { func0405_init_maian, 0x0405 }, + { func0406_skedar, 0x0406 }, + { func0407_king1_skedar, 0x0407 }, + { func0408_king2_skedar, 0x0408 }, + { func0409_king3_skedar, 0x0409 }, + { func1002_intro, 0x040a }, + { func040b_outro, 0x040b }, + { func1002_intro, 0x0c00 }, + { func040b_outro, 0x0c01 }, + { NULL, 0 }, +}; + diff --git a/src/setup/setuptra.c b/src/setup/setuptra.c new file mode 100644 index 000000000..1c2959d61 --- /dev/null +++ b/src/setup/setuptra.c @@ -0,0 +1,3882 @@ +// +// Escape +// + +#include "../include/setup.h" + +// Characters +#define CHR_JONATHAN 0x21 +#define CHR_ELVIS 0x22 + +// Objects +#define OBJ_HOVERBED 0x00 // with Elvis on it +#define OBJ_MEDPACK_JOANNA 0x01 +#define OBJ_TERMINAL1 0x03 +#define OBJ_TERMINAL2 0x04 +#define OBJ_WALLMINE 0x02 +#define OBJ_MEDPACK_SWITCH 0x14 +#define OBJ_UFO1 0x1f +#define OBJ_UFO2 0x22 +#define OBJ_MEDPACK_VELVET 0x20 +#define OBJ_WALLOBJECT 0x21 +#define OBJ_MEDPACK_GLASS 0x2a +#define OBJ_HOVERBIKE 0x35 +#define OBJ_WALLDOOR 0x38 +#define OBJ_FALCON2SCOPE1 0x39 +#define OBJ_FALCON2SCOPE2 0x3a +#define OBJ_REMOTEMINES 0x3b + +// Stage flags +#define STAGEFLAG_INTRO_DONE 0x00000001 +#define STAGEFLAG_TRIGGER_MEDPACK_FINISH 0x00000002 +#define STAGEFLAG_JON_SAID_MAINT_HATCH 0x00000004 +#define STAGEFLAG_TRIGGER_JETBIKE_MESSAGE 0x00000008 +#define STAGEFLAG_UFO_LEAVING 0x00000010 +#define STAGEFLAG_GAS_ON 0x00000020 +#define STAGEFLAG_JON_SHOT_WHILE_PLANTING 0x00000040 +#define STAGEFLAG_MEDPACK_SWITCH_DESTROYED 0x00000080 +#define STAGEFLAG_COLLECTED_MEDPACK 0x00000100 +#define STAGEFLAG_00000200 0x00000200 // never set +#define STAGEFLAG_MET_JON 0x00000400 +#define STAGEFLAG_ELVIS_REVIVED 0x00000800 +#define STAGEFLAG_ELVIS_DEAD 0x00001000 +#define STAGEFLAG_ENTERED_HANGAR 0x00002000 +#define STAGEFLAG_ESCAPED 0x00004000 +#define STAGEFLAG_ELVIS_STASHED 0x00008000 +#define STAGEFLAG_JON_ENTERED_MINE_ROOM 0x00010000 +#define STAGEFLAG_JON_PLANTING_EXPLOSIVES 0x00020000 +#define STAGEFLAG_JON_FINISHED_EXPLOSIVES 0x00040000 +#define STAGEFLAG_JON_DEAD 0x00080000 +#define STAGEFLAG_WALL_EXPLODED 0x00100000 +#define STAGEFLAG_HANGAR_TERMINAL_DESTROYED 0x00200000 +#define STAGEFLAG_INNER_DOOR_OPENING 0x00400000 +#define STAGEFLAG_OUTER_DOOR_OPENING 0x00800000 +#define STAGEFLAG_STARTED_OUTRO 0x01000000 +#define STAGEFLAG_JON_WAITING_AT_UFO 0x02000000 +#define STAGEFLAG_HANGAR_CONVERSATION_FINISHED 0x04000000 +#define STAGEFLAG_HANGAR_X_MUSIC_STARTED 0x08000000 +#define STAGEFLAG_JO_DOING_TERMINALS 0x10000000 +#define STAGEFLAG_JO_ESCAPE_STARTED 0x20000000 +#define STAGEFLAG_MEDPACK_STARTED 0x40000000 +#define STAGEFLAG_BOTH_HANGAR_DOORS_OPEN 0x80000000 + +// Functions +#define FUNC_GAS_DAMAGE 0x0401 +#define FUNC_JONATHAN_WAITING_FOR_MEETUP 0x0402 +#define FUNC_INIT_JONATHAN 0x0403 +#define FUNC_JONATHAN_FOLLOWING_AND_MINE 0x0404 +#define FUNC_JONATHAN_SHOT_WHILE_PLANTING 0x0405 +#define FUNC_SPAWNGROUP1_GUARD 0x0407 +#define FUNC_SPAWNGROUP2_GUARD 0x0408 +#define FUNC_SPAWNGROUP3_GUARD 0x0409 +#define FUNC_SPAWNGROUP4_GUARD 0x040a +#define FUNC_ELVIS_FOLLOW 0x040b +#define FUNC_HIDDEN_GUARDTYPE1 0x040c +#define FUNC_HIDDEN_GUARDTYPE2 0x040d +#define FUNC_HIDDEN_BIOTECH 0x040e +#define FUNC_INIT_ELVIS 0x0412 +#define FUNC_JONATHAN_HANGAR 0x0413 +#define FUNC_OUTRO 0x0414 +#define FUNC_UFO_EXIT 0x0415 +#define FUNC_SPAWN_DURING_FOLLOW 0x0416 +#define FUNC_INIT_FOLLOWER_CLONE 0x0417 +#define FUNC_FOLLOWER_CLONE 0x0418 +#define FUNC_INIT_BIOTECH 0x0419 +#define FUNC_INIT_SUPERDRAGON_GUARD 0x041a +#define FUNC_JONATHAN_AFTER_TERMINALS 0x041b +#define FUNC_ELVIS_GO_TO_UFO 0x041c + +// Other +#define SPAWNGROUP1 0x09 +#define SPAWNGROUP2 0x0a +#define SPAWNGROUP3 0x0b +#define SPAWNGROUP4 0x0d + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + briefing(0, 0x4801) + briefing(1, 0x4800) + briefing(2, 0x4802) + briefing(3, 0x4803) + + beginobjective(0, 0x4809, (DIFFBIT_PA | DIFFBIT_PD)) // "Locate alien tech medpack" + complete_flags(STAGEFLAG_COLLECTED_MEDPACK) + fail_flags(STAGEFLAG_00000200) + fail_flags(STAGEFLAG_MEDPACK_SWITCH_DESTROYED) + endobjective + + beginobjective(1, 0x480a, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Rendezvous with CI spy" + complete_flags(STAGEFLAG_MET_JON) + fail_flags(STAGEFLAG_JON_DEAD) + endobjective + + beginobjective(2, 0x480c, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Locate secret hangar" + complete_flags(STAGEFLAG_ENTERED_HANGAR) + endobjective + + beginobjective(3, 0x480b, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Revive Maian Bodyguard" + complete_flags(STAGEFLAG_ELVIS_REVIVED) + endobjective + + beginobjective(4, 0x480d, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Escape from Area 51" + complete_flags(STAGEFLAG_ESCAPED) + fail_flags(STAGEFLAG_HANGAR_TERMINAL_DESTROYED) + fail_flags(STAGEFLAG_ELVIS_DEAD) + endobjective + + chr(0x00000400, 0x23, 0x03be, BODY_BIOTECH, HEAD_DUNCAN2, GFUNC_IDLE, -1, -1, 1000, 100, 0x40004600, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + chr(0x00000400, 0x24, 0x012e, BODY_BIOTECH, HEAD_JAMIE, GFUNC_IDLE, -1, -1, 1000, 100, 0x4000c000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + chr(0x00000200, 0x00, 0x03e0, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0xc4000000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x01, 0x03e1, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0xc4000000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0001, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x02, 0x03e2, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0xc4000000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x03, 0x03df, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0xc4000000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0003, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x04, 0x03e3, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0xc4000000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0004, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x05, 0x03e4, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0xc4000000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0005, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x06, 0x03e5, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0xc4000000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0006, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x07, 0x03e6, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0xc4000000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0007, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x08, 0x03e7, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_INIT_SUPERDRAGON_GUARD, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0008, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x000002c0, 0x09, 0x03e9, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SPAWN_DURING_FOLLOW, -1, -1, 1000, 100, 0xc4002000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0009, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x000002c0, 0x0a, 0x03ea, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SPAWN_DURING_FOLLOW, -1, -1, 1000, 100, 0xc4002000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x000a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x000002c0, 0x0b, 0x03eb, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SPAWN_DURING_FOLLOW, -1, -1, 1000, 100, 0xc4002000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x000b, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x000002c0, 0x0c, 0x03ec, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_SPAWN_DURING_FOLLOW, -1, -1, 1000, 100, 0xc4002000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0d, 0x03e6, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE1, -1, -1, 1000, 100, 0xe4010000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x000d, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0e, 0x03e5, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE1, -1, -1, 1000, 100, 0xe4010000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x000002c0, 0x0f, 0x03fa, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE1, -1, -1, 1000, 100, 0xe4010000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x000f, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x10, 0x03f1, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE1, -1, -1, 1, 8, 0xc4010000, 0x00000200, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0010, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x11, 0x03f2, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE1, -1, -1, 1, 8, 0xc4010000, 0x00000200, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0011, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x12, 0x03f3, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE1, -1, -1, 1, 8, 0xc4010000, 0x00000200, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0012, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x13, 0x03f4, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE1, -1, -1, 1, 8, 0xc4010000, 0x00000200, 0x02, 0x08, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0013, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x14, 0x016a, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE1, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x15, 0x03f7, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE1, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0015, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x16, 0x03f8, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE1, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0c, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00010400, 0x21, 0x03f9, BODY_A51AIRMAN, HEAD_JONATHAN, FUNC_INIT_JONATHAN, -1, -1, 1000, 100, 0x0c000000, 0x80100000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDY357, 0x0021, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357MAGNUM, 0x00ffffff, 0x00000000) + chr(0x00010400, 0x22, 0x010a, BODY_ELVIS1, HEAD_ELVIS, GFUNC_IDLE, -1, -1, 1000, 100, 0x84000000, 0x00000000, 0x10, 0x03, -1, 0, 0x00000000) + chr(0x00000000, 0x17, 0x0119, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE2, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0017, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x18, 0x0111, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE2, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x19, 0x010c, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE2, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0019, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000000, 0x1a, 0x00ed, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE2, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0d, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1b, 0x00e1, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE2, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x001b, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1c, 0x00db, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE2, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x001c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1d, 0x00b7, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE2, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x001d, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1e, 0x00a8, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE2, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x001e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x1f, 0x00a1, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE2, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0f, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x001f, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x20, 0x00a0, BODY_AREA51GUARD, HEAD_RANDOM, FUNC_HIDDEN_GUARDTYPE2, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0f, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0020, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x25, 0x013a, BODY_BIOTECH, HEAD_BIOTECH, FUNC_HIDDEN_BIOTECH, -1, -1, 1000, 100, 0xc4090000, 0x10000000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRUGGUN, 0x0025, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x26, 0x013c, BODY_BIOTECH, HEAD_BIOTECH, FUNC_HIDDEN_BIOTECH, -1, -1, 1000, 100, 0xc4090000, 0x10000000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRUGGUN, 0x0026, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x27, 0x013a, BODY_BIOTECH, HEAD_BIOTECH, FUNC_HIDDEN_BIOTECH, -1, -1, 1000, 100, 0xc4090000, 0x10000000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRUGGUN, 0x0027, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x28, 0x0134, BODY_BIOTECH, HEAD_BIOTECH, FUNC_HIDDEN_BIOTECH, -1, -1, 1000, 100, 0xc4090000, 0x10000000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRUGGUN, 0x0028, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x29, 0x0118, BODY_BIOTECH, HEAD_BIOTECH, FUNC_INIT_BIOTECH, -1, -1, 1000, 6, 0xc4090000, 0x10000000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRUGGUN, 0x0029, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x2a, 0x0115, BODY_BIOTECH, HEAD_BIOTECH, FUNC_INIT_BIOTECH, -1, -1, 1000, 6, 0xc4090000, 0x10000000, 0x02, 0x00, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDRUGGUN, 0x002a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TRANQUILIZER, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x2b, 0x03bc, BODY_AREA51GUARD, HEAD_BEAU1, FUNC_HIDDEN_BIOTECH, -1, -1, 1000, 100, 0xc4010000, 0x00000000, 0x02, 0x0e, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x002b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUPERDRAGON, 0x00ffffff, 0x00000000) + tag(0x00, 1) + hover_prop(0x0100, MODEL_HOVERBED, 0x03bd, 0x05120101, 0x00304300, 0x00110003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x11, 1) + hover_prop(0x0100, MODEL_A51TROLLEY, 0x0120, 0x05120101, 0x00304300, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + hover_prop(0x0100, MODEL_HOVERBED, 0x0122, 0x05120101, 0x00304300, 0x00100003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x35, 1) + hoverbike(0x0100, MODEL_HOVBIKE, 0x03fb, 0x05120101, 0x00304300, 0x02000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x01010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + hover_prop(0x0100, MODEL_HOVERCRATE1, 0x011d, 0x31120101, 0x00304300, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x02010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x17, 2) + tag(0x18, 2) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x027f, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000040, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x027e, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000040, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x027d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x027c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x15, 2) + tag(0x16, 2) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x027a, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000040, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x027b, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000040, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0278, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0279, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0277, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0276, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x19, 2) + tag(0x1a, 2) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0274, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000040, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0275, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000040, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0273, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0272, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0270, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0271, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x026f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x026e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x026c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x026d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x026b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x026a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x3c, 2) + tag(0x3d, 2) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0268, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000040, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0269, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000040, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x1b, 2) + tag(0x1c, 2) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0266, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000040, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0267, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000040, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x1d, 2) + tag(0x1e, 2) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0280, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000040, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0281, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000040, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02b7, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02b8, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02b9, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02ba, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02bb, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02bc, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x06, 2) + tag(0x07, 2) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0283, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000040, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0282, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000040, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0284, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x0285, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x028b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x028a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_GL, 0x0286, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00020004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x01f407d0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0287, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x33, 2) + tag(0x34, 2) + door(0x0100, MODEL_A51_HORIZ_DOOR_GL, 0x0289, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00020004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x01f407d0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0288, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02a4, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x32, 1) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02a5, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x0c, 1) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02a6, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00001999, 0x00000004, 0x00000040, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x0b, 1) + door(0x0100, MODEL_A51_HORIZ_DOOR_SECRET, 0x028e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x0a, 1) + door(0x0100, MODEL_A51_HORIZ_DOOR_SECRET, 0x02c5, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000002, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x0292, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x0293, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x0294, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x0295, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x0d, 1) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02ae, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000020, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x0299, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x0298, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_GL, 0x02a8, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00020004, 0x00000040, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x01f407d0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02a7, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000040, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x029a, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x029b, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x31, 1) + door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x029c, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x029d, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000000, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x30, 1) + door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x029e, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x029f, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000000, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x0e, 2) + tag(0x0f, 2) + door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x02a1, 0x10000010, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x02a0, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x028c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x028d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x028f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x10, 1) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x0290, 0x10000000, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x05, 1) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x0291, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x08, 2) + tag(0x09, 2) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02a2, 0x10000000, 0x30000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000a666, 0x0000a666, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02a3, 0x10000000, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000a666, 0x0000a666, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x02e5, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x02e6, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE3, 0x02e7, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x02e8, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x02e9, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE3, 0x02ea, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x02eb, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x02ec, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE3, 0x02ed, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x02ee, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x02ef, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE3, 0x02f0, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x02f1, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x02f2, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE3, 0x02f3, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x02f4, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x02f5, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE3, 0x02f6, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE1, 0x02f7, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x38, 4) + tag(0x21, 4) + link_paths(0x00000002, 0x0173013f, 0x00000000) + link_scenery(1, 2, 3) + door(0x0100, MODEL_A51_UNEXP2, 0x0424, 0x13520d00, 0x20304300, 0x00000000, 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) + stdobject(0x0100, MODEL_A51_UNEXP3, 0x0425, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_EXP2, 0x0423, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02b3, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02b4, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, 0x02af, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_VERT_DOOR_LEFT, 0x02b0, 0x10000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0321, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0327, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0322, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0328, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02b2, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000080, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02b1, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000080, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02bd, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02be, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02bf, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c0, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02c1, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c2, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02c3, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02c4, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x02, 1) + stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x013f, 0x012204e1, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x03, 1) + singlemonitor(0x0100, MODEL_SINISTERSTATION, 0x048e, 0x000005e1, 0x00000001, 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, 0xffffff03) + tag(0x04, 1) + singlemonitor(0x0033, MODEL_SINISTERSTATION, 0x03fd, 0x000005e1, 0x00000001, 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, 0xffffff03) + glass(0x0100, MODEL_MEDLABWIN1, 0x0436, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_MEDLABWIN2, 0x0437, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_MEDLABWIN2, 0x0438, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_MEDLABWIN1, 0x0439, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_MEDLABWIN2, 0x043a, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_MEDLABWIN2, 0x043b, 0x04020b62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x1f, 1) + stdobject(0x0100, MODEL_ELVIS_SAUCER, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x22, 1) + stdobject(0x0100, MODEL_ELVIS_SAUCER, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0461, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0462, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0463, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0464, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0465, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0466, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0467, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0468, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0469, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x046a, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x046b, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x046c, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x046d, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x046e, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x046f, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0470, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0471, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0472, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0473, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x0474, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0476, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0477, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0479, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x047a, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x047b, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x047c, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x047d, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x047e, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x047f, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0480, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0481, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0482, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0483, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0484, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0485, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0486, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0487, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0488, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0489, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x0491, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x0492, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x0493, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x0494, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x0495, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x0496, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x0497, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x0498, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x0499, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x049a, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x049b, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x049c, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x049d, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x049e, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x049f, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x04a0, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x04a1, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x04a2, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51WASTEBIN, 0x04a3, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04a4, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04a5, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04a6, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04a7, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04a8, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04a9, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04aa, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04ab, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51DIVIDE, 0x04ac, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE3, 0x031a, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x23, 7) + tag(0x24, 7) + tag(0x25, 7) + tag(0x26, 7) + tag(0x27, 7) + tag(0x28, 7) + tag(0x29, 7) + stdobject(0x0100, MODEL_LAB_CONTAINER, 0x04b7, 0x000005e1, 0x00000000, 0x00800001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_LAB_CONTAINER, 0x04b8, 0x000005e1, 0x00000000, 0x00800001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_LAB_CONTAINER, 0x04b9, 0x000005e1, 0x00000000, 0x00800001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_LAB_CONTAINER, 0x04ba, 0x000005e1, 0x00000000, 0x00800001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_LAB_CONTAINER, 0x04bb, 0x000005e1, 0x00000000, 0x00800001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_LAB_CONTAINER, 0x04bc, 0x000005e1, 0x00000000, 0x00800001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_LAB_CONTAINER, 0x04be, 0x000005e1, 0x00000000, 0x00800001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x2a, 1) + glass(0x0100, MODEL_MEDLABWIN2, 0x043c, 0x04000b62, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + tag(0x12, 2) + tag(0x13, 2) + door(0x0100, MODEL_A51_HORIZ_DOOR_GL, 0x0264, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00020004, 0x00000040, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x01f407d0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x0265, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00000004, 0x00000040, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x14, 1) + stdobject(0x0100, MODEL_A51DESKENT, 0x048a, 0x000005e1, 0x00000001, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_LAB_CONTAINER, 0x048b, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_LAB_CONTAINER, 0x048c, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_LAB_CONTAINER, 0x048d, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x01, 1) + weapon(0x0100, MODEL_CHRBRIEFCASE, 0x037f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AUTOSURGEON, 0x00ffffff, 0x00000000) + rename_object(-1, 0x3a, 0x4814, 0x4815, 0x4816, 0x4817, 0x4818, 0x0000, 0x0000) // "Obtain alien medpack." + tag(0x20, 1) + weapon(0x0100, MODEL_CHRBRIEFCASE, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AUTOSURGEON, 0x00ffffff, 0x00000000) + rename_object(-1, 0x3a, 0x4814, 0x4815, 0x4816, 0x4817, 0x4818, 0x0000, 0x0000) // "Obtain alien medpack." + stdobject(0x0100, MODEL_A51TABLE, 0x04d0, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x04d1, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x04d2, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51TABLE, 0x04d3, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04d8, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04d9, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04da, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04db, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04dc, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04dd, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04de, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04df, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04e0, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_G5_MAINFRAME, 0x04e1, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x2b, 1) + stdobject(0x0100, MODEL_A51TABLE, 0x0129, 0x000004e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x2c, 2) + tag(0x2d, 2) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02dc, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x0000028f, 0x00000004, 0x00000000, 0x00000258, 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_A51_HORIZ_DOOR_TOP, 0x02dd, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x0000028f, 0x00000004, 0x00000000, 0x9ffffff6, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x2e, 2) + tag(0x2f, 2) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02de, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x0000028f, 0x00000004, 0x00000000, 0x00000258, 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_A51_HORIZ_DOOR_TOP, 0x02df, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x0000028f, 0x00000004, 0x00000000, 0x9ffffff6, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x46, 2) + tag(0x3e, 2) + lift(0x0100, MODEL_CHAMBER, 0x033c, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x033c, 0x033d, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x045c, 0x10000002, 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, 0xffffff12) + tag(0x48, 2) + tag(0x40, 2) + lift(0x0100, MODEL_CHAMBER, 0x0340, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0340, 0x0341, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x0459, 0x10000002, 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, 0xffffff12) + tag(0x4a, 2) + tag(0x42, 2) + lift(0x0100, MODEL_CHAMBER, 0x0344, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0344, 0x0345, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x045a, 0x10000002, 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, 0xffffff12) + tag(0x4c, 2) + tag(0x44, 2) + lift(0x0100, MODEL_CHAMBER, 0x0348, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0348, 0x0349, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x045b, 0x10000002, 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, 0xffffff12) + tag(0x47, 2) + tag(0x3f, 2) + lift(0x0100, MODEL_CHAMBER, 0x033f, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x033f, 0x033e, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x045e, 0x10000002, 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, 0xffffff12) + tag(0x49, 2) + tag(0x41, 2) + lift(0x0100, MODEL_CHAMBER, 0x0343, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0343, 0x0342, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x045f, 0x10000002, 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, 0xffffff12) + tag(0x4b, 2) + tag(0x43, 2) + lift(0x0100, MODEL_CHAMBER, 0x0347, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0347, 0x0346, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x0460, 0x10000002, 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, 0xffffff12) + tag(0x4d, 2) + tag(0x45, 2) + lift(0x0100, MODEL_CHAMBER, 0x034b, 0x075204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x034b, 0x034a, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + singlemonitor(0x0100, MODEL_MODEMBOX, 0x045d, 0x10000002, 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, 0xffffff12) + stdobject(0x0100, MODEL_A51_EXP1, 0x0421, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51GRATE, 0x0443, 0x000215e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51GRATE, 0x0444, 0x000215e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x4e, 1) + lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x0336, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0336, 0x0337, 0xffffffff, 0x00000001, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x20000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51LIFTDOOR, 0x02e4, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00080000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51LIFTDOOR, 0x02e3, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00080000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-2, -3, 0, 0) + link_objects(-2, -4, 0, 1) + stdobject(0x0100, MODEL_A51GRATE, 0x0449, 0x000215e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x4f, 4) + tag(0x50, 4) + tag(0x51, 4) + tag(0x52, 4) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02aa, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000080, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02ab, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000080, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x02ac, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000080, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x02ad, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000080, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x53, 2) + tag(0x54, 2) + door(0x0100, MODEL_A51GATE_L, 0x02b5, 0x10000010, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000ccc, 0x00014000, 0x00000111, 0x00000000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_A51GATE_R, 0x02b6, 0x10000010, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000ccc, 0x00014000, 0x00000111, 0x00000000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x36, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x0028, 0x00004001, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000) + tag(0x37, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x037f, 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(0x39, 2) + tag(0x3a, 2) + weapon(0x0100, MODEL_CHRFALCON2SCOPE, 0x0023, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SCOPE, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRFALCON2SCOPE, 0x0024, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SCOPE, 0x00ffffff, 0x00000000) + link_collectibles(-1, -2) + tag(0x3b, 1) + weapon(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0567, 0x00120001, 0x00080001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REMOTEMINE, 0x00ffffff, 0x00000000) + pad_effect(0x00000001, 0x00000129) + endprops +}; + +u8 intro[] = { + spawn(0x012f) + intro_weapon(WEAPON_FALCON2_SCOPE, -1) + ammo(AMMOTYPE_PISTOL, 100) + ammo(AMMOTYPE_REMOTE_MINE, 2) + outfit(OUTFIT_LAB) + endintro +}; + +u8 func1400_setup_counterop[] = { + yield + set_chr_alliance(CHR_COUNTEROP, ALLIANCE_ENEMY) + set_function(CHR_SELF, GFUNC_REBUILD_GROUPS) + endfunction +}; + +u8 func1001_objectives_failed_msg[] = { + yield + set_function(CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG) + endfunction +}; + +u8 func1022_gas_damage_joanna[] = { + set_target_chr(CHR_JOANNA) + set_function(CHR_SELF, FUNC_GAS_DAMAGE) + endfunction +}; + +u8 func1023_gas_damage_velvet[] = { + set_target_chr(CHR_VELVET) + if_chr_death_animation_finished(TARGET_CHR, /*goto*/ 0x32) + set_function(CHR_SELF, FUNC_GAS_DAMAGE) + + label(0x32) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0401_gas_damage[] = { + beginloop(0x12) + if_stage_flag_eq(STAGEFLAG_INTRO_DONE, TRUE, /*goto*/ 0x32) + endloop(0x12) + + label(0x32) + restart_timer + + beginloop(0x04) + if_chr_in_room(TARGET_CHR, 0x00, 0x009a, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0099, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x008f, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0090, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0092, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0093, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0094, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0095, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0096, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0097, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0098, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0099, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x009a, /*goto*/ 0x06) + reloop(0x04) + + label(0x06) + restart_timer + + // @bug: Only Jo gets motion blur? + label(0x08) + yield + call_rng + if_rand_gt(50, /*goto*/ 0x32) + add_motion_blur(CHR_JOANNA, 7, TRUE) + label(0x32) + if_timer_lt(460, /*goto*/ 0x32) + restart_timer + damage_chr2(TARGET_CHR, 514) + label(0x32) + if_chr_in_room(TARGET_CHR, 0x00, 0x009a, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0099, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x008f, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0090, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0092, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0093, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0094, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0095, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0096, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0097, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0098, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x0099, /*goto*/ 0x06) + if_chr_in_room(TARGET_CHR, 0x00, 0x009a, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + goto_first(0x08) + + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1004_jon_msgs_gravedanger[] = { + beginloop(0x0d) + if_stage_flag_eq(STAGEFLAG_INTRO_DONE, TRUE, /*goto*/ 0x32) + endloop(0x0d) + + label(0x32) + restart_timer + + beginloop(0x04) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + restart_timer + speak(CHR_JOANNA, 0x480e, 0x814f, CHANNEL_4, COLOR_03_RED) // "Joanna - this is Jonathan. You're in grave danger." + + beginloop(0x08) + if_timer_gt(240, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + restart_timer + speak(CHR_JOANNA, 0x480f, 0x8150, CHANNEL_4, COLOR_03_RED) // "They've flooded the area with nerve gas." + + beginloop(0x09) + if_timer_gt(240, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + restart_timer + speak(CHR_JOANNA, 0x4810, 0x8151, CHANNEL_4, COLOR_03_RED) // "Get our friend to the containment lab. There's a h..." + + beginloop(0x0a) + if_timer_gt(270, /*goto*/ 0x06) + endloop(0x0a) + + label(0x06) + restart_timer + speak(CHR_JOANNA, 0x4811, 0x8152, CHANNEL_4, COLOR_03_RED) // "I'll contact you when you get there - good luck!" + + beginloop(0x0c) + if_timer_gt(240, /*goto*/ 0x06) + endloop(0x0c) + + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1005_jon_msgs_meetup[] = { + beginloop(0x04) + if_object_in_room(OBJ_HOVERBED, 0x00df, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + set_stage_flag(STAGEFLAG_ELVIS_STASHED) + mute_channel(CHANNEL_0) + unset_object_flag_bank1(0x0d, OBJECTFLAG1_08000000) + set_object_flag_bank1(0x0d, OBJECTFLAG1_10000000) + unlock_door(0x0d, 0x20) + release_grabbed_object(CHR_JOANNA) + yield + unset_object_flag_bank2(OBJ_HOVERBED, OBJECTFLAG2_GRABBABLE) + unset_object_flag_bank2(OBJ_HOVERBED, OBJECTFLAG2_PUSHABLE) + restart_timer + speak(CHR_JOANNA, 0x4812, 0x8153, CHANNEL_4, COLOR_03_RED) // "Good work, Jo. We need to meet up. They're getting..." + + beginloop(0x08) + if_timer_gt(300, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + restart_timer + speak(CHR_JOANNA, 0x4813, 0x8154, CHANNEL_4, COLOR_03_RED) // "Use the maintenance hatch I've opened in one of th..." + + beginloop(0x09) + if_timer_gt(300, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + set_stage_flag(STAGEFLAG_JON_SAID_MAINT_HATCH) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1007_check_medpack_collected[] = { + beginloop(0x04) + if_chr_has_object(CHR_JOANNA, OBJ_MEDPACK_JOANNA, /*goto*/ 0x06) + if_chr_has_object(CHR_VELVET, OBJ_MEDPACK_JOANNA, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + set_stage_flag(STAGEFLAG_COLLECTED_MEDPACK) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0403_init_jonathan[] = { + set_self_flag_bank3(CHRFLAG3_01000000) + set_self_flag_bank3(CHRFLAG3_NOAUTOAIM) + if_difficulty_gt(DIFF_A, /*goto*/ 0x32) + + // Agent only + beginloop(0x0d) + chr_move_to_pad(CHR_JONATHAN, 0x0398, 0x00, /*goto*/ 0x32) + endloop(0x0d) + + // All difficulties + label(0x32) + set_armor(1200) + set_alertness(150) + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, FUNC_JONATHAN_WAITING_FOR_MEETUP) + endfunction +}; + +u8 func0402_jonathan_waiting_for_meetup[] = { + set_onshot_function(FUNC_JONATHAN_WAITING_FOR_MEETUP) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x32) + if_chr_dying(CHR_SELF, /*goto*/ 0x32) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x32) + goto_next(0x67) + + label(0x32) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x67) + set_self_flag_bankx(CHRFLAG0_10000000, BANK_0) + set_self_flag_bank3(CHRFLAG3_00080000) + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0x06) + endloop(0x04) + + label(0x06) + lock_door(0x0d, 0x20) + lock_door(0x33, 0x20) + lock_door(0x34, 0x20) + speak(CHR_P1P2, 0x4819, 0x12b3, CHANNEL_4, COLOR_03_RED) // "Joanna - over here." + label(0x08) + restart_timer + do_special_animation(3) + + beginloop(0x09) + if_player_looking_at_something_maybe(0x0a, 0x01, 0x00, /*goto*/ 0x06) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x09) + + label(0x06) + restart_timer + try_face_entity(0x0200, 0x0000, /*goto*/ 0x0a) + + beginloop(0x0a) + if_sound_finished(CHANNEL_4, /*goto*/ 0x32) + reloop(0x0a) + + label(0x32) + if_timer_lt(150, /*goto*/ 0x32) + if_chr_distance_lt(300, /*goto*/ 0x06) + label(0x32) + endloop(0x0a) + + label(0x06) + speak(CHR_P1P2, 0x481a, 0x12b4, CHANNEL_4, COLOR_03_RED) // "We need to get back to our friend." + set_stage_flag(STAGEFLAG_MET_JON) + do_special_animation(-1) + restart_timer + + beginloop(0x0c) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x0c) + + label(0x06) + stop_chr + set_function(CHR_SELF, FUNC_JONATHAN_FOLLOWING_AND_MINE) + endfunction +}; + +u8 func0404_jonathan_following_and_mine[] = { +#define LABEL_FOLLOW 0x5a + + set_chr_alliance(CHR_SELF, ALLIANCE_ALLY) + yield + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_return_function(CHR_SELF, FUNC_JONATHAN_FOLLOWING_AND_MINE) + set_onshot_function(FUNC_JONATHAN_FOLLOWING_AND_MINE) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x32) + if_chr_dying(CHR_SELF, /*goto*/ 0x32) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x32) + goto_next(0x06) + + label(0x32) + set_function(CHR_SELF, GFUNC_IDLE) + + // Unreachable + if_stage_flag_eq(STAGEFLAG_JON_FINISHED_EXPLOSIVES, TRUE, /*goto*/ 0x32) + if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x0d) + label(0x32) + goto_next(0x63) + + // Alive + label(0x06) + restart_timer + + beginloop(0x64) + if_chr_stopped(/*goto*/ 0x63) + endloop(0x64) + + label(0x63) + if_stage_flag_eq(STAGEFLAG_JON_SHOT_WHILE_PLANTING, TRUE, /*goto*/ 0x0e) + set_target_chr(CHR_P1P2) + dprint 'J','O','N','A',' ','F','O','L','L','O','W','\n',0, + + label(LABEL_FOLLOW) + if_chr_distance_gt(200, /*goto*/ 0x5c) + + // distance <= 200 (waiting) + stop_chr + restart_timer + + beginloop(0x5b) + label(0x32) + if_chr_sees_player(/*goto*/ 0x06) + goto_next(0x5c) + + label(0x06) + if_chr_distance_gt(200, /*goto*/ 0x5c) + endloop(0x5b) + + // distance > 200 + label(0x5c) + restart_timer + if_chr_distance_lt(300, /*goto*/ 0x32) + + // distance >= 300 + try_run_to_target_chr(/*goto*/ 0x5d) + + // distance > 200 and distance < 300 + label(0x32) + try_walk_to_target_chr(/*goto*/ 0x5d) + + // Moving towards Jo + label(0x5d) + restart_timer + yield + + label(0x06) + if_enemy_distance_lt_and_los(1500, /*goto*/ 0x09) + + // distance >= 1500 and no line of sight + // Note the timer check is pointless here because it is restarted in + // each loop iteration. + label(0x32) + set_target_chr(CHR_P1P2) + if_chr_distance_lt(200, /*goto*/ 0x5e) + if_timer_gt(120, /*goto*/ 0x5e) + if_chr_stopped(/*goto*/ 0x5e) + goto_first(0x5d) + + label(0x5e) + if_stage_flag_eq(STAGEFLAG_WALL_EXPLODED, TRUE, /*goto*/ 0x32) + if_stage_flag_eq(STAGEFLAG_JON_ENTERED_MINE_ROOM, TRUE, /*goto*/ 0x32) + if_chr_in_room(CHR_JONATHAN, 0x00, 0x00dc, /*goto*/ 0x0a) + if_chr_in_room(CHR_JONATHAN, 0x00, 0x00dd, /*goto*/ 0x0a) + goto_first(LABEL_FOLLOW) + + // Unreachable + if_chr_in_room(CHR_P1P2, 0x00, 0x00dc, /*goto*/ 0x0a) + if_chr_in_room(CHR_P1P2, 0x00, 0x00dd, /*goto*/ 0x0a) + + label(0x32) + goto_first(LABEL_FOLLOW) + + // Saw enemy + label(0x09) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + + // In mine room + label(0x0a) + unset_self_flag_bank3(CHRFLAG3_01000000) + set_stage_flag(STAGEFLAG_JON_ENTERED_MINE_ROOM) + speak(CHR_P1P2, 0x481b, 0x12b5, CHANNEL_4, COLOR_03_RED) // "Right, we're near. Cover me, Jo..." + set_onshot_function(FUNC_JONATHAN_SHOT_WHILE_PLANTING) + label(0x0b) + jog_to_pad(0x038b) + + beginloop(0x0c) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x0c) + + label(0x06) + play_x_music(CHANNEL_10, 30) + restart_timer + try_face_entity(ENTITYTYPE_PAD, 0x0173, /*goto*/ 0xc4) + + beginloop(0xc4) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0xc4) + + label(0x06) + restart_timer + set_stage_flag(STAGEFLAG_JON_PLANTING_EXPLOSIVES) + + label(0xc2) + call_rng + if_rand_lt(86, /*goto*/ 0x6a) + if_rand_lt(172, /*goto*/ 0x6b) + animation(ANIM_OPERATE_0204, -1, -1, 0x100a, CHR_SELF, 2) + goto_next(0x0e) + + label(0x6a) + animation(ANIM_OPERATE_0205, -1, -1, 0x100a, CHR_SELF, 2) + goto_next(0x0e) + + label(0x6b) + animation(ANIM_OPERATE_0206, -1, -1, 0x100a, CHR_SELF, 2) + + label(0x0e) + set_onshot_function(FUNC_JONATHAN_SHOT_WHILE_PLANTING) + resume_timer + unset_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0) + + // Mine planting loop (33.3 seconds) + beginloop(0x0d) + if_timer_gt(2000, /*goto*/ 0x06) + if_chr_idle(/*goto*/ 0x32) + goto_first(0xc2) + + label(0x32) + endloop(0x0d) + + label(0x06) + set_onshot_function(FUNC_JONATHAN_FOLLOWING_AND_MINE) + set_stage_flag(STAGEFLAG_JON_FINISHED_EXPLOSIVES) + unset_stage_flag(STAGEFLAG_JON_SHOT_WHILE_PLANTING) + set_self_flag_bank3(CHRFLAG3_01000000) + speak(CHR_P1P2, 0x481c, 0x12b6, CHANNEL_4, COLOR_03_RED) // "Okay - stand back." + run_to_pad(0x0140) + + beginloop(0x0f) + if_chr_stopped(/*goto*/ 0x12) + endloop(0x0f) + + label(0x12) + stop_chr + + beginloop(0x10) + if_stage_flag_eq(STAGEFLAG_WALL_EXPLODED, TRUE, /*goto*/ 0x06) + endloop(0x10) + + label(0x06) + unlock_door(0x0a, 0x02) + speak(CHR_P1P2, 0x4820, 0x12b7, CHANNEL_4, COLOR_03_RED) // "Okay, Jo - let's go." + restart_timer + + beginloop(0x11) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x11) + + label(0x06) + goto_first(LABEL_FOLLOW) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0413_jonathan_hangar[] = { + set_return_function(CHR_SELF, FUNC_JONATHAN_HANGAR) + set_onshot_function(FUNC_JONATHAN_HANGAR) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x32) + if_chr_dying(CHR_SELF, /*goto*/ 0x32) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x32) + goto_next(0x06) + + label(0x32) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x32) + if_just_injured(CHR_SELF, /*goto*/ 0x06) + goto_next(0x63) + + // Injured + label(0x06) + restart_timer + + beginloop(0x64) + if_chr_stopped(/*goto*/ 0x63) + endloop(0x64) + + // Attack enemy (jumped to from further below) + label(0x09) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + + // Alive and well + label(0x63) + set_target_chr(CHR_P1P2) + label(0x12) + jog_to_pad(0x015f) + + beginloop(0x13) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x32) + if_chr_distance_to_pad_lt(CHR_SELF, 3510, 0x001e, /*goto*/ 0x06) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x13) + + label(0x32) + goto_first(0x09) + + // Waiting at pad + label(0x06) + set_stage_flag(STAGEFLAG_JON_WAITING_AT_UFO) + stop_chr + set_target_chr(CHR_P1P2) + try_face_entity(0x0200, 0x0000, /*goto*/ 0x14) + + // Wait until both Joanna and Elvis within 400 units + beginloop(0x14) + set_target_chr(CHR_ELVIS) + if_chr_distance_gt(400, /*goto*/ 0x32) + set_target_chr(CHR_P1P2) + if_chr_distance_gt(400, /*goto*/ 0x32) + if_target_chr_in_sight(/*goto*/ 0x06) + label(0x32) + endloop(0x14) + + // Start conversation + label(0x06) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0xc3) + if_chr_dying(CHR_ELVIS, /*goto*/ 0xc3) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0xc3) + restart_timer + animation(0x0232, -1, 200, 0x0200, CHR_ELVIS, 2) + speak(CHR_P1P2, 0x483b, 0x1a9a, CHANNEL_5, COLOR_06_WHITE) // "Oh, no! We have a problem. It's a single seater!" + + beginloop(0x7d) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0xc3) + if_chr_dying(CHR_ELVIS, /*goto*/ 0xc3) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0xc3) + if_sound_finished(CHANNEL_5, /*goto*/ 0x32) + reloop(0x7d) + + label(0x32) + if_timer_gt(300, /*goto*/ 0x06) + endloop(0x7d) + + label(0x06) + restart_timer + animation(0x0233, -1, 200, 0x0200, CHR_ELVIS, 2) + speak(CHR_P1P2, 0x483c, 0x1a9b, CHANNEL_5, COLOR_06_WHITE) // "Two can get in but no more." + + beginloop(0x7e) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0xc3) + if_chr_dying(CHR_ELVIS, /*goto*/ 0xc3) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0xc3) + if_sound_finished(CHANNEL_5, /*goto*/ 0x32) + reloop(0x7e) + + label(0x32) + if_timer_gt(200, /*goto*/ 0x06) + endloop(0x7e) + + label(0x06) + restart_timer + speak(CHR_JOANNA, 0x4829, 0x72a7, CHANNEL_5, COLOR_09_BLUE) // "It's the only way out of here." + + beginloop(0x15) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0xc3) + if_chr_dying(CHR_ELVIS, /*goto*/ 0xc3) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0xc3) + if_sound_finished(CHANNEL_5, /*goto*/ 0x32) + reloop(0x15) + + label(0x32) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x15) + + label(0x06) + restart_timer + animation(0x0232, -1, 200, 0x0200, CHR_ELVIS, 2) + speak(CHR_P1P2, 0x483d, 0x1a9c, CHANNEL_5, COLOR_06_WHITE) // "Plus, it's got no style, you know what I'm saying?" + + beginloop(0x7f) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0xc3) + if_chr_dying(CHR_ELVIS, /*goto*/ 0xc3) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0xc3) + if_sound_finished(CHANNEL_5, /*goto*/ 0x32) + reloop(0x7f) + + label(0x32) + if_timer_gt(200, /*goto*/ 0x06) + endloop(0x7f) + + label(0x06) + restart_timer + speak(CHR_JOANNA, 0x482a, 0x72a8, CHANNEL_5, COLOR_09_BLUE) // "You're the only one who can fly it, Elvis, so get ..." + + beginloop(0x17) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0xc3) + if_chr_dying(CHR_ELVIS, /*goto*/ 0xc3) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0xc3) + if_sound_finished(CHANNEL_5, /*goto*/ 0x32) + endloop(0x17) + + label(0x32) + if_timer_gt(240, /*goto*/ 0x06) + endloop(0x17) + + label(0x06) + restart_timer + animation(0x0231, -1, 200, 0x0200, CHR_JONATHAN, 2) + speak(CHR_P1P2, 0x482d, 0x12b9, CHANNEL_5, COLOR_03_RED) // "One of us will have to stay behind and open the ha..." + + beginloop(0x1a) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0xc3) + if_chr_dying(CHR_ELVIS, /*goto*/ 0xc3) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0xc3) + if_sound_finished(CHANNEL_5, /*goto*/ 0x32) + reloop(0x1a) + + label(0x32) + if_timer_gt(240, /*goto*/ 0x06) + endloop(0x1a) + + label(0x06) + restart_timer + speak(CHR_JOANNA, 0x482b, 0x72a9, CHANNEL_5, COLOR_09_BLUE) // "But we can't leave you behind." + + beginloop(0x18) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0xc3) + if_chr_dying(CHR_ELVIS, /*goto*/ 0xc3) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0xc3) + if_sound_finished(CHANNEL_5, /*goto*/ 0x32) + reloop(0x18) + + label(0x32) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x18) + + label(0x06) + restart_timer + speak(CHR_JOANNA, 0x482c, 0x72aa, CHANNEL_5, COLOR_09_BLUE) // "There must be a way out of here." + + beginloop(0x19) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0xc3) + if_chr_dying(CHR_ELVIS, /*goto*/ 0xc3) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0xc3) + if_sound_finished(CHANNEL_5, /*goto*/ 0x32) + reloop(0x19) + + label(0x32) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x19) + + label(0x06) + restart_timer + animation(0x0232, -1, 200, 0x0200, CHR_JONATHAN, 2) + speak(CHR_P1P2, 0x482e, 0x12ba, CHANNEL_5, COLOR_03_RED) // "I'll get out on that hoverbike. Cover me while I o..." + + beginloop(0x1b) + if_timer_gt(120, /*goto*/ 0x66) + reloop(0x1b) + + label(0x66) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x06) + if_chr_dying(CHR_ELVIS, /*goto*/ 0x06) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x06) + set_function(CHR_ELVIS, FUNC_ELVIS_GO_TO_UFO) + + label(0x06) + set_stage_flag(STAGEFLAG_HANGAR_CONVERSATION_FINISHED) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + restart_timer + jog_to_pad(0x016f) + + // Once Jon starts jogging, 4 seconds will pass before he starts checking + // other things. One of these is a Y check, where the X music will start + // once he's a certain way up the ramp. The other is a distance to Jo check + // where she'll take over. + beginloop(0x1c) + if_timer_lt(240, /*goto*/ 0x32) + if_stage_flag_eq(STAGEFLAG_HANGAR_X_MUSIC_STARTED, TRUE, /*goto*/ 0x32) + if_chr_y(CHR_SELF, -600, OPERATOR_GREATER_THAN, /*goto*/ 0x33) + set_target_chr(CHR_P1P2) + if_chr_distance_lt(300, /*goto*/ 0x59) + label(0x32) + if_chr_stopped(/*goto*/ 0x06) + reloop(0x1c) + + // Jon is up the ramp + label(0x33) + set_stage_flag(STAGEFLAG_HANGAR_X_MUSIC_STARTED) + play_x_music(CHANNEL_10, 90) + run_to_pad(0x016f) + set_stage_flag(STAGEFLAG_HANGAR_X_MUSIC_STARTED) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x1c) + + // At first terminal + label(0x06) + animation(ANIM_OPERATE_0204, 0, -1, 0x1010, CHR_SELF, 2) + + beginloop(0x1d) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x1d) + + label(0x06) + if_stage_flag_eq(STAGEFLAG_HANGAR_TERMINAL_DESTROYED, TRUE, /*goto*/ 0x32) + set_stage_flag(STAGEFLAG_INNER_DOOR_OPENING) + open_door(0x2c) + open_door(0x2d) + set_object_flag_bank0(0x2c, OBJECTFLAG0_40000000) + set_object_flag_bank0(0x2d, OBJECTFLAG0_40000000) + message(CHR_P1P2, 0x4827) // "Inner hangar door is opening." + + label(0x32) + set_self_flag_bankx(CHRFLAG0_00004000, BANK_0) + run_to_pad(0x0171) + + beginloop(0x1e) + if_chr_distance_to_pad_lt(CHR_SELF, 3690, 0x0014, /*goto*/ 0x06) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x1e) + + // At second terminal + label(0x06) + animation(ANIM_OPERATE_0204, 0, -1, 0x1010, CHR_SELF, 2) + + beginloop(0x1f) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x1f) + + label(0x06) + if_stage_flag_eq(STAGEFLAG_HANGAR_TERMINAL_DESTROYED, TRUE, /*goto*/ 0x20) + set_stage_flag(STAGEFLAG_OUTER_DOOR_OPENING) + open_door(0x2e) + open_door(0x2f) + set_object_flag_bank0(0x2e, OBJECTFLAG0_40000000) + set_object_flag_bank0(0x2f, OBJECTFLAG0_40000000) + message(CHR_P1P2, 0x4825) // "Outer hangar door is opening." + + beginloop(0x20) + set_function(CHR_SELF, FUNC_JONATHAN_AFTER_TERMINALS) + endloop(0x20) + + // Jo taking over + label(0x59) + speak(CHR_JOANNA, 0x482f, 0x72ac, CHANNEL_5, COLOR_09_BLUE) // "Jonathan, go with Elvis. I'll see to the consoles." + restart_timer + try_face_entity(0x0200, 0x0000, /*goto*/ 0x46) + + beginloop(0x46) + if_angle_to_target_chr_lt(10, /*goto*/ 0x06) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x46) + + label(0x06) + restart_timer + + beginloop(0x4a) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x4a) + + label(0x06) + set_stage_flag(STAGEFLAG_JO_DOING_TERMINALS) + set_stage_flag(STAGEFLAG_HANGAR_X_MUSIC_STARTED) + play_x_music(CHANNEL_10, 90) + set_function(CHR_SELF, FUNC_JONATHAN_AFTER_TERMINALS) + + // Elvis dead + label(0xc3) + set_return_function(CHR_SELF, FUNC_JONATHAN_AFTER_TERMINALS) + set_function(CHR_SELF, FUNC_JONATHAN_AFTER_TERMINALS) + endfunction +}; + +u8 func041c_elvis_go_to_ufo[] = { + set_return_function(CHR_SELF, FUNC_ELVIS_GO_TO_UFO) + set_onshot_function(FUNC_ELVIS_GO_TO_UFO) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x32) + if_chr_dying(CHR_SELF, /*goto*/ 0x32) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x32) + goto_next(0x06) + + label(0x32) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x06) + run_to_pad(0x03fe) + + beginloop(0x08) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x08) + + label(0x06) + stop_chr + + beginloop(0x6a) + endloop(0x6a) + + endfunction +}; + +u8 func041b_jonathan_after_terminals[] = { + set_return_function(CHR_SELF, FUNC_JONATHAN_AFTER_TERMINALS) + set_onshot_function(FUNC_JONATHAN_AFTER_TERMINALS) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x32) + if_chr_dying(CHR_SELF, /*goto*/ 0x32) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x32) + goto_next(0x06) + + label(0x32) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x06) + run_to_pad(0x015f) // conversation corner + + beginloop(0x4b) + if_chr_distance_to_pad_lt(CHR_SELF, 3510, 0x0014, /*goto*/ 0x06) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x4b) + + label(0x06) + jog_to_pad(0x0168) // corner near ramp + + beginloop(0x4c) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x09) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x4c) + + label(0x06) + stop_chr + + beginloop(0x4d) + if_enemy_distance_lt_and_los(2540, /*goto*/ 0x09) + endloop(0x4d) + + label(0x09) + set_function(CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR) + endfunction +}; + +u8 func0405_jonathan_shot_while_planting[] = { + set_stage_flag(STAGEFLAG_JON_SHOT_WHILE_PLANTING) + label(0x04) + pause_timer + if_just_injured(CHR_SELF, /*goto*/ 0x06) + goto_next(0x63) + + // Injured + label(0x06) + restart_timer + + beginloop(0x64) + if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06) + if_num_times_shot_lt(1, /*goto*/ 0x06) + if_timer_lt(20, /*goto*/ 0x06) + speak(CHR_P1P2, 0x4833, 0x8155, CHANNEL_5, COLOR_03_RED) // "Damn it, Joanna... cover me!" + set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0) + label(0x06) + if_chr_stopped(/*goto*/ 0x63) + endloop(0x64) + + // Not injured, or recovered + label(0x63) + label(0x0b) + walk_to_pad(0x038b) + + beginloop(0x0c) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x0c) + + label(0x06) + try_face_entity(ENTITYTYPE_PAD, 0x0173, /*goto*/ 0xc4) + + beginloop(0xc4) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0xc4) + + label(0x06) + set_onshot_function(FUNC_JONATHAN_FOLLOWING_AND_MINE) + set_function(CHR_SELF, FUNC_JONATHAN_FOLLOWING_AND_MINE) + endfunction +}; + +/** + * @unused + */ +u8 func0406_unused_0406[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_MET_JON, TRUE, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + set_alertness(100) + set_target_chr(CHR_JOANNA) + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +/** + * Waits until the meetup with Jon is done and the player is in the hallway. + * Spawns 15 guards total, maximum 4 alive at any time. Every 60 seconds, checks + * to see whether it should spawn more. Stops once 15 have been spawned or Jon + * has finished planting the explosives. + */ +u8 func1008_spawngroup1[] = { + // Wait until meeting done and player in the T-junction corridor + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_stage_flag_eq(STAGEFLAG_MET_JON, TRUE, /*goto*/ 0x06) + reloop(0x04) + + label(0x06) + if_chr_in_room(CHR_P1P2, 0x00, 0x003f, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + set_var_a(15) + + beginloop(0x5f) + // Keep doing this until explosives finished, or 15 guards spawned + if_stage_flag_eq(STAGEFLAG_JON_FINISHED_EXPLOSIVES, TRUE, /*goto*/ 0x06) + if_var_a_lt(1, /*goto*/ 0x06) + try_spawn_chr(BODY_AREA51GUARD, HEAD_RANDOM, 0x00c7, FUNC_SPAWNGROUP1_GUARD, 0x00000200, /*goto*/ 0x60) + reloop(0x5f) + + // Spawned a guard + label(0x60) + yield + if_stage_flag_eq(STAGEFLAG_JON_FINISHED_EXPLOSIVES, TRUE, /*goto*/ 0x06) + subtract_var_a(1) + if_num_chrs_in_group_gt(3, SPAWNGROUP1, /*goto*/ 0x32) + reloop(0x5f) + + label(0x32) + restart_timer + + beginloop(0x08) + if_timer_gt(3600, /*goto*/ 0x32) + endloop(0x08) + + label(0x32) + endloop(0x5f) + + label(0x06) + yield + yield + yield + yield + yield + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1008_spawngroup1_guard[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(10) + set_reaction_speed(40) + set_chr_health(CHR_SELF, 40) + set_armor(40) + set_recovery_speed(0) + set_shield(0) + try_draw_weapon(MODEL_CHRSUPERDRAGON, WEAPON_SUPERDRAGON, 0x00000000, /*goto*/ 0x06) + label(0x06) + set_chr_alliance(CHR_SELF, ALLIANCE_ENEMY) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + set_self_flag_bankx(CHRFLAG0_AIVSAI, BANK_0) + set_group(SPAWNGROUP1) + run_to_pad(0x013e) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_CHOOSE_TARGET_CHR) + endfunction +}; + +/** + * Spawns 12 guards while Jon is planing the explosives. Maximum 4 alive at any + * time. No delay between them; once one dies another is immediately spawned. + * Location is spawned guard is one of 2 places, 50% chance of each. Spawning + * stops when wall explodes. + */ +u8 func1013_spawngroup2[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_JON_PLANTING_EXPLOSIVES, TRUE, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + set_var_a(12) + + beginloop(0x5f) + if_var_a_lt(1, /*goto*/ 0x06) + call_rng + if_rand_gt(128, /*goto*/ 0x32) + try_spawn_chr(BODY_AREA51GUARD, HEAD_RANDOM, 0x0144, FUNC_SPAWNGROUP2_GUARD, 0x00000200, /*goto*/ 0x60) + goto_next(0x06) + + label(0x32) + try_spawn_chr(BODY_AREA51GUARD, HEAD_RANDOM, 0x0138, FUNC_SPAWNGROUP2_GUARD, 0x00000200, /*goto*/ 0x60) + goto_next(0x06) + + label(0x60) + yield + if_stage_flag_eq(STAGEFLAG_WALL_EXPLODED, TRUE, /*goto*/ 0x06) + subtract_var_a(1) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + label(0x08) + yield + if_stage_flag_eq(STAGEFLAG_WALL_EXPLODED, TRUE, /*goto*/ 0x06) + if_num_chrs_in_group_gt(4, SPAWNGROUP2, /*goto*/ 0x32) + call_rng + if_rand_gt(5, /*goto*/ 0x32) + endloop(0x5f) + + label(0x32) + goto_first(0x08) + + label(0x06) + yield + yield + yield + yield + yield + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1013_spawngroup2_guard[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(10) + set_reaction_speed(40) + set_chr_health(CHR_SELF, 40) + set_armor(40) + set_recovery_speed(0) + set_shield(0) + try_draw_weapon(MODEL_CHRSUPERDRAGON, WEAPON_SUPERDRAGON, 0x00000000, /*goto*/ 0x06) + label(0x06) + set_chr_alliance(CHR_SELF, ALLIANCE_ENEMY) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + set_self_flag_bankx(CHRFLAG0_AIVSAI, BANK_0) + set_group(SPAWNGROUP2) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_target_chr(CHR_JOANNA) + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +/** + * SA/PA only. Waits until medpack is started, then spawns 4 guards. + * + * The intended behavior is to spawn them all pretty much immediately with a + * random delay in between, then wait for them all to be dead, then complete the + * medpack. But an error makes this not work as intended. + * + * The error is that if any spawn fails (eg. due to blocked pad) then the + * function jumps straight to the end where it waits for the group to be dead. + * The pad can be blocked if the guard hasn't moved off it fast enough, keeping + * in mind that the next spawn occurs after a random amount of frames. + */ +u8 func1014_spawngroup3[] = { + if_difficulty_lt(DIFF_SA, /*goto*/ 0x32) + goto_next(0x04) + + // Agent - do nothing + label(0x32) + set_function(CHR_SELF, GFUNC_IDLE) + + // SA nad PA + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_MEDPACK_STARTED, TRUE, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + set_var_a(4) + + beginloop(0x5f) + if_var_a_lt(1, /*goto*/ 0x06) + call_rng + if_rand_gt(128, /*goto*/ 0x32) + + // @bug: If either of these fail to spawn, the function jumps straight + // to the end rather than attempting to respawn them. + try_spawn_chr(BODY_AREA51GUARD, HEAD_RANDOM, 0x0117, FUNC_SPAWNGROUP3_GUARD, 0x00000200, /*goto*/ 0x60) + goto_next(0x06) + + label(0x32) + try_spawn_chr(BODY_AREA51GUARD, HEAD_RANDOM, 0x013e, FUNC_SPAWNGROUP3_GUARD, 0x00000200, /*goto*/ 0x60) + goto_next(0x06) + + // Spawned a guard + label(0x60) + yield + if_stage_flag_eq(STAGEFLAG_ELVIS_REVIVED, TRUE, /*goto*/ 0x06) + subtract_var_a(1) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + + // Wait for Elvis to be revived, for someone to die, or 5 in 256 chance + // of spawning another guard anyway. + label(0x08) + yield + if_stage_flag_eq(STAGEFLAG_ELVIS_REVIVED, TRUE, /*goto*/ 0x06) + if_num_chrs_in_group_gt(6, SPAWNGROUP3, /*goto*/ 0x32) + call_rng + if_rand_gt(5, /*goto*/ 0x32) + endloop(0x5f) + + label(0x32) + goto_first(0x08) + + label(0x06) + yield + yield + yield + yield + yield + cmd0145_rebuild_groups + cmd0146_rebuild_groups + + beginloop(0x0d) + if_all_chrs_in_group_are_dead(SPAWNGROUP3, /*goto*/ 0x06) + endloop(0x0d) + + label(0x06) + set_stage_flag(STAGEFLAG_TRIGGER_MEDPACK_FINISH) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1014_spawngroup3_guard[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(10) + set_reaction_speed(40) + set_chr_health(CHR_SELF, 40) + set_armor(40) + set_recovery_speed(0) + set_shield(0) + try_draw_weapon(MODEL_CHRSUPERDRAGON, WEAPON_SUPERDRAGON, 0x00000000, /*goto*/ 0x06) + label(0x06) + set_chr_alliance(CHR_SELF, ALLIANCE_ENEMY) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + set_self_flag_bankx(CHRFLAG0_AIVSAI, BANK_0) + set_group(SPAWNGROUP3) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_target_chr(CHR_JOANNA) + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +/** + * Start spawning guards when the hangar X music starts. Stop spawning when 12 + * reached, or when both hangar doors are open. + */ +u8 func1015_spawngroup4[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_HANGAR_X_MUSIC_STARTED, TRUE, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + label(0x06) + set_var_a(12) + + beginloop(0x5f) + call_rng + if_rand_gt(128, /*goto*/ 0x32) + + // @bug: This is spawning guards using the same function as the previous + // spawn group. This causes the guards to set their group to spawngroup3 + // which causes the if_num_chrs_in_group_gt check further below to + // never pass. + try_spawn_chr(BODY_AREA51GUARD, HEAD_RANDOM, 0x0140, FUNC_SPAWNGROUP3_GUARD, 0x00000200, /*goto*/ 0x60) + goto_next(0x06) + + label(0x32) + try_spawn_chr(BODY_AREA51GUARD, HEAD_RANDOM, 0x0117, FUNC_SPAWNGROUP3_GUARD, 0x00000200, /*goto*/ 0x60) + goto_next(0x06) + + label(0x60) + yield + if_stage_flag_eq(STAGEFLAG_BOTH_HANGAR_DOORS_OPEN, TRUE, /*goto*/ 0x06) + subtract_var_a(1) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + + label(0x08) + yield + if_var_a_lt(1, /*goto*/ 0x06) + if_num_chrs_in_group_gt(6, SPAWNGROUP4, /*goto*/ 0x32) + call_rng + if_rand_gt(2, /*goto*/ 0x32) + endloop(0x5f) + + label(0x32) + goto_first(0x08) + + label(0x06) + yield + yield + yield + yield + yield + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * @unused + */ +u8 func1015_spawngroup4_guard[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(10) + set_reaction_speed(40) + set_chr_health(CHR_SELF, 40) + set_armor(40) + set_recovery_speed(0) + set_shield(0) + try_draw_weapon(MODEL_CHRSUPERDRAGON, WEAPON_SUPERDRAGON, 0x00000000, /*goto*/ 0x06) + label(0x06) + set_chr_alliance(CHR_SELF, ALLIANCE_ENEMY) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + set_self_flag_bankx(CHRFLAG0_AIVSAI, BANK_0) + set_group(SPAWNGROUP4) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + run_to_pad(0x0168) + set_function(CHR_SELF, GFUNC_CHOOSE_TARGET_CHR) + endfunction +}; + +u8 func1009_blow_up_wall[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_JON_FINISHED_EXPLOSIVES, TRUE, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + restart_timer + + beginloop(0x08) + if_timer_gt(300, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + unset_object_flag_bank0(OBJ_WALLMINE, OBJECTFLAG0_INVINCIBLE) + unset_object_flag_bank0(OBJ_WALLMINE, OBJECTFLAG0_INVINCIBLE) + unset_object_flag_bank0(OBJ_WALLOBJECT, OBJECTFLAG0_INVINCIBLE) + unset_object_flag_bank0(OBJ_WALLDOOR, OBJECTFLAG0_INVINCIBLE) + yield + yield + destroy_object(OBJ_WALLMINE) + set_stage_flag(STAGEFLAG_WALL_EXPLODED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100a_check_hangar_accessed[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x00e7, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + set_stage_flag(STAGEFLAG_ENTERED_HANGAR) + message(CHR_P1P2, 0x481f) // "The secret hangar has been located." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100b_check_jonathan_dead[] = { + if_difficulty_lt(DIFF_PA, /*goto*/ 0x32) + goto_next(0x04) + + // A and SA + label(0x32) + give_object_to_chr(OBJ_MEDPACK_JOANNA, CHR_JOANNA) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x32) + give_object_to_chr(OBJ_MEDPACK_VELVET, CHR_VELVET) + goto_next(0x04) + + label(0x32) + hide_object(OBJ_MEDPACK_VELVET) + + // All difficulties + beginloop(0x04) + if_chr_dying(CHR_JONATHAN, /*goto*/ 0x06) + if_chr_death_animation_finished(CHR_JONATHAN, /*goto*/ 0x06) + if_chr_unloaded(CHR_JONATHAN, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + if_stage_flag_eq(STAGEFLAG_STARTED_OUTRO, TRUE, /*goto*/ 0x32) + message(CHR_JOANNA, 0x481d) // "Jonathan has been killed." + set_stage_flag(STAGEFLAG_JON_DEAD) + + label(0x32) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100c_medpack_activation[] = { + beginloop(0x67) + if_stage_flag_eq(STAGEFLAG_ENTERED_HANGAR, TRUE, /*goto*/ 0x04) + endloop(0x67) + + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x0c) + if_chr_activated_object(CHR_P1P2, OBJ_HOVERBED, /*goto*/ 0x06) + reloop(0x04) + + label(0x06) + if_chr_weapon_equipped(CHR_P1P2, WEAPON_AUTOSURGEON, /*goto*/ 0x32) + endloop(0x04) + + label(0x32) + set_stage_flag(STAGEFLAG_MEDPACK_STARTED) + message(CHR_P1P2, 0x4821) // "Alien medpack activated." + assign_sound(0x814c, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_HOVERBED, TRUE) + restart_timer + + beginloop(0x12) + if_timer_gt(120, /*goto*/ 0x32) + endloop(0x12) + + label(0x32) + assign_sound(0x814d, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_HOVERBED, TRUE) + restart_timer + + beginloop(0x08) + if_timer_gt(2000, /*goto*/ 0x09) + if_stage_flag_eq(STAGEFLAG_TRIGGER_MEDPACK_FINISH, TRUE, /*goto*/ 0x09) + endloop(0x08) + + label(0x09) + mute_channel(CHANNEL_7) + assign_sound(0x814e, CHANNEL_7) + control_sound_from_object(CHANNEL_7, 0x00, TRUE) + message(CHR_P1P2, 0x4823) // "Alien medpack has been administered." + yield + + beginloop(0x0c) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x00df, /*goto*/ 0x32) + endloop(0x0c) + + label(0x32) + if_chr_death_animation_finished(CHR_JONATHAN, /*goto*/ 0x32) + if_chr_dying(CHR_JONATHAN, /*goto*/ 0x32) + if_chr_unloaded(CHR_JONATHAN, /*goto*/ 0x32) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x33) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x33) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x33) + goto_next(0x06) + + // Joanna is dead + label(0x33) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x32) + if_chr_dying(CHR_VELVET, /*goto*/ 0x32) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x32) + goto_next(0x06) + + // Everyone is alive + label(0x06) + set_function(CHR_JONATHAN, GFUNC_IDLE) + set_function(CHR_ELVIS, GFUNC_IDLE) + set_function(CHR_SELF, 0x0411) + + // Jonathan is dead + label(0x32) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0412_init_elvis[] = { + dprint 'E','L','V','I','S',' ','W','O','K','E','\n',0, + stop_chr + set_self_flag_bank3(CHRFLAG3_01000000) + set_stage_flag(STAGEFLAG_ELVIS_REVIVED) + label(0x0a) + label(0x06) + set_armor(200) + set_chr_health(CHR_SELF, 1) + set_function(CHR_SELF, FUNC_ELVIS_FOLLOW) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040b_elvis_follow[] = { + dprint 'E','L','V','I','S',' ','F','O','L','L','O','W','\n',0, + set_target_chr(CHR_JONATHAN) + + label(0x5a) + restart_timer + + beginloop(0x5b) + if_chr_distance_to_pad_lt(CHR_SELF, 3510, 0x001e, /*goto*/ 0x08) + if_chr_sees_player(/*goto*/ 0x06) + goto_next(0x5c) + + label(0x06) + if_chr_distance_gt(200, /*goto*/ 0x5c) + endloop(0x5b) + + label(0x5c) + restart_timer + try_run_to_target_chr(/*goto*/ 0x5d) + + label(0x5d) + restart_timer + yield + label(0x06) + if_chr_distance_to_pad_lt(CHR_SELF, 300, 0x015f, /*goto*/ 0x08) + label(0x32) + set_target_chr(CHR_JONATHAN) + if_chr_distance_lt(200, /*goto*/ 0x5e) + if_timer_gt(120, /*goto*/ 0x5e) + if_chr_stopped(/*goto*/ 0x5e) + goto_first(0x5d) + + label(0x5e) + goto_first(0x5a) + + label(0x08) + stop_chr + + beginloop(0x09) + endloop(0x09) + + endfunction +}; + +u8 func100f_terminals[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, OBJ_TERMINAL1, /*goto*/ 0x08) + if_chr_activated_object(CHR_P1P2, OBJ_TERMINAL2, /*goto*/ 0x0a) + reloop(0x04) + + // Terminal 1 + label(0x08) + assign_sound(0x043a, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_TERMINAL1, TRUE) + if_stage_flag_eq(STAGEFLAG_HANGAR_X_MUSIC_STARTED, TRUE, /*goto*/ 0x32) + message(CHR_P1P2, 0x4850) // "Console is not active." + goto_next(0x0f) + + // Terminal 1 active + label(0x32) + if_stage_flag_eq(STAGEFLAG_INNER_DOOR_OPENING, TRUE, /*goto*/ 0x0f) + message(CHR_P1P2, 0x4827) // "Inner hangar door is opening." + if_stage_flag_eq(STAGEFLAG_HANGAR_X_MUSIC_STARTED, FALSE, /*goto*/ 0x32) + set_stage_flag(STAGEFLAG_INNER_DOOR_OPENING) + label(0x32) + open_door(0x2c) + open_door(0x2d) + set_object_flag_bank0(0x2c, OBJECTFLAG0_40000000) + set_object_flag_bank0(0x2d, OBJECTFLAG0_40000000) + reloop(0x04) + + // Terminal 2 + label(0x0a) + assign_sound(0x043a, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_TERMINAL2, TRUE) + if_stage_flag_eq(STAGEFLAG_HANGAR_X_MUSIC_STARTED, TRUE, /*goto*/ 0x32) + message(CHR_P1P2, 0x4850) // "Console is not active." + goto_next(0x0f) + + // Terminal 2 active + label(0x32) + if_stage_flag_eq(STAGEFLAG_OUTER_DOOR_OPENING, TRUE, /*goto*/ 0x0f) + message(CHR_P1P2, 0x4825) // "Outer hangar door is opening." + if_stage_flag_eq(STAGEFLAG_HANGAR_X_MUSIC_STARTED, FALSE, /*goto*/ 0x32) + set_stage_flag(STAGEFLAG_OUTER_DOOR_OPENING) + label(0x32) + open_door(0x2e) + open_door(0x2f) + set_object_flag_bank0(0x2e, OBJECTFLAG0_40000000) + set_object_flag_bank0(0x2f, OBJECTFLAG0_40000000) + reloop(0x04) + + // Wait 2 seconds + label(0x0f) + restart_timer + + beginloop(0x10) + if_timer_gt(120, /*goto*/ 0x32) + endloop(0x10) + + label(0x32) + endloop(0x04) + + endfunction +}; + +u8 func100d_check_terminals_destroyed[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_INNER_DOOR_OPENING, TRUE, /*goto*/ 0x06) + if_object_in_good_condition(OBJ_TERMINAL1, /*goto*/ 0x06) + if_door_state(0x2c, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x06) + goto_next(0x08) + + label(0x06) + if_stage_flag_eq(STAGEFLAG_OUTER_DOOR_OPENING, TRUE, /*goto*/ 0x06) + if_object_in_good_condition(OBJ_TERMINAL2, /*goto*/ 0x06) + if_door_state(0x2e, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x06) + goto_first(0x08) + + label(0x06) + endloop(0x04) + + label(0x08) + message(CHR_JOANNA, 0x4824) // "Mission critical object destroyed." + set_stage_flag(STAGEFLAG_HANGAR_TERMINAL_DESTROYED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func100e_check_elvis_dead[] = { + beginloop(0x04) + if_chr_dying(CHR_ELVIS, /*goto*/ 0x06) + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x06) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + if_stage_flag_eq(STAGEFLAG_STARTED_OUTRO, TRUE, /*goto*/ 0x32) + set_stage_flag(STAGEFLAG_ELVIS_DEAD) + message(CHR_JOANNA, 0x481e) // "Elvis has been killed." + label(0x32) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1010_check_end_level[] = { + beginloop(0x04) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x32) + if_objective_complete(0, /*goto*/ 0x32) + reloop(0x04) + + label(0x32) + if_objective_complete(1, /*goto*/ 0x32) + reloop(0x04) + + label(0x32) + if_difficulty_lt(DIFF_SA, /*goto*/ 0x32) + if_objective_complete(3, /*goto*/ 0x32) + reloop(0x04) + + label(0x32) + if_objective_complete(2, /*goto*/ 0x32) + reloop(0x04) + + label(0x32) + if_stage_flag_eq(STAGEFLAG_HANGAR_TERMINAL_DESTROYED, FALSE, /*goto*/ 0x32) + reloop(0x04) + + label(0x32) + if_stage_flag_eq(STAGEFLAG_INNER_DOOR_OPENING, TRUE, /*goto*/ 0x32) + reloop(0x04) + + label(0x32) + dprint '5','\n',0, + if_stage_flag_eq(STAGEFLAG_OUTER_DOOR_OPENING, TRUE, /*goto*/ 0x32) + reloop(0x04) + + label(0x32) + dprint '6','\n',0, + if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x0f) + if_chr_dying(CHR_ELVIS, /*goto*/ 0x0f) + if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x0f) + + if_chr_death_animation_finished(CHR_JONATHAN, /*goto*/ 0x0f) + if_chr_dying(CHR_JONATHAN, /*goto*/ 0x0f) + if_chr_unloaded(CHR_JONATHAN, /*goto*/ 0x0f) + + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x32) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x32) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x32) + goto_next(0x06) + + // Joanna is dead + label(0x32) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x33) + if_chr_dying(CHR_VELVET, /*goto*/ 0x33) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x33) + goto_next(0x06) + + // Both Joanna and Velvet are dead + label(0x33) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + + // Mission complete + label(0x06) + if_stage_flag_eq(STAGEFLAG_JO_DOING_TERMINALS, FALSE, /*goto*/ 0x32) + set_function(CHR_SELF, FUNC_UFO_EXIT) + + label(0x32) + set_invincible(CHR_JOANNA) + set_function(CHR_SELF, FUNC_OUTRO) + + // Jonathan and/or Elvis are dead + label(0x0f) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1011_unlock_doors_when_jo_escaping[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_JO_ESCAPE_STARTED, TRUE, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + unlock_door(0x06, 0x40) + unlock_door(0x07, 0x40) + unlock_door(0x08, 0x04) + unlock_door(0x09, 0x04) + unlock_door(0x1d, 0x40) + unlock_door(0x1e, 0x40) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1012_hoverbike_auto_doors[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_stage_flag_eq(STAGEFLAG_JO_ESCAPE_STARTED, TRUE, /*goto*/ 0x06) + reloop(0x04) + + label(0x06) + if_chr_distance_to_pad_lt(CHR_P1P2, 500, 0x0176, /*goto*/ 0x08) + if_chr_distance_to_pad_lt(CHR_P1P2, 500, 0x0158, /*goto*/ 0x09) + if_chr_distance_to_pad_lt(CHR_P1P2, 500, 0x00db, /*goto*/ 0x0a) + if_chr_distance_to_pad_lt(CHR_P1P2, 500, 0x00a1, /*goto*/ 0x0c) + if_chr_distance_to_pad_lt(CHR_P1P2, 500, 0x009e, /*goto*/ 0x0d) + reloop(0x04) + + // Pad/door 1 + label(0x08) + if_door_state(0x0a, (DOORSTATE_CLOSED | DOORSTATE_CLOSING), /*goto*/ 0x06) + reloop(0x04) + + label(0x06) + set_object_flag_bank0(0x0a, OBJECTFLAG0_40000000) + open_door(0x0a) + reloop(0x04) + + // Pad/door 2 + label(0x09) + if_door_state(0x0b, (DOORSTATE_CLOSED | DOORSTATE_CLOSING), /*goto*/ 0x06) + reloop(0x04) + + label(0x06) + set_object_flag_bank0(0x0b, OBJECTFLAG0_40000000) + open_door(0x0b) + reloop(0x04) + + // Pad/door 3 + label(0x0a) + if_door_state(0x08, (DOORSTATE_CLOSED | DOORSTATE_CLOSING), /*goto*/ 0x06) + reloop(0x04) + + label(0x06) + set_object_flag_bank0(0x08, OBJECTFLAG0_40000000) + set_object_flag_bank0(0x09, OBJECTFLAG0_40000000) + open_door(0x08) + open_door(0x09) + reloop(0x04) + + // Pad/door 4 + label(0x0c) + if_door_state(0x0c, (DOORSTATE_CLOSED | DOORSTATE_CLOSING), /*goto*/ 0x06) + reloop(0x04) + + label(0x06) + set_object_flag_bank0(0x0c, OBJECTFLAG0_40000000) + open_door(0x0c) + reloop(0x04) + + // Pad/door 5 + label(0x0d) + if_door_state(0x05, (DOORSTATE_CLOSED | DOORSTATE_CLOSING), /*goto*/ 0x06) + reloop(0x04) + + label(0x06) + set_object_flag_bank0(0x05, OBJECTFLAG0_40000000) + open_door(0x05) + endloop(0x04) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040c_hidden_guardtype1[] = { + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1016_enable_guards_after_meetup[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_MET_JON, TRUE, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + show_chr(0x0d) + show_chr(0x0e) + show_chr(0x0f) + show_chr(0x10) + show_chr(0x11) + show_chr(0x12) + show_chr(0x13) + show_chr(0x14) + show_chr(0x15) + show_chr(0x16) + unset_chr_flag_bank3(0x0d, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x0d, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x0d, FUNC_INIT_SUPERDRAGON_GUARD) + unset_chr_flag_bank3(0x0e, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x0e, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x0e, FUNC_INIT_SUPERDRAGON_GUARD) + unset_chr_flag_bank3(0x0f, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x0f, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x0f, FUNC_INIT_SUPERDRAGON_GUARD) + unset_chr_flag_bank3(0x10, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x10, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x10, FUNC_INIT_SUPERDRAGON_GUARD) + unset_chr_flag_bank3(0x11, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x11, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x11, FUNC_INIT_SUPERDRAGON_GUARD) + unset_chr_flag_bank3(0x12, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x12, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x12, FUNC_INIT_SUPERDRAGON_GUARD) + unset_chr_flag_bank3(0x13, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x13, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x13, FUNC_INIT_SUPERDRAGON_GUARD) + unset_chr_flag_bank3(0x14, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x14, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x14, FUNC_INIT_SUPERDRAGON_GUARD) + unset_chr_flag_bank3(0x15, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x15, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x15, FUNC_INIT_SUPERDRAGON_GUARD) + unset_chr_flag_bank3(0x16, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x16, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x16, FUNC_INIT_SUPERDRAGON_GUARD) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1017_check_both_hangar_doors_open[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_INNER_DOOR_OPENING, TRUE, /*goto*/ 0x32) + reloop(0x04) + + label(0x32) + if_stage_flag_eq(STAGEFLAG_OUTER_DOOR_OPENING, TRUE, /*goto*/ 0x32) + endloop(0x04) + + label(0x32) + message(CHR_JOANNA, 0x4835) // "The hangar doors are now open." + set_stage_flag(STAGEFLAG_BOTH_HANGAR_DOORS_OPEN) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040d_hidden_guardtype2[] = { + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_SELF, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1018_unhide_guards_when_jo_escaping[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_JO_ESCAPE_STARTED, TRUE, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + unset_chr_flag_bank3(0x16, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x16, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x16, FUNC_INIT_SUPERDRAGON_GUARD) + unset_chr_flag_bank3(0x17, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x17, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x17, FUNC_INIT_SUPERDRAGON_GUARD) + unset_chr_flag_bank3(0x18, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x18, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x18, FUNC_INIT_SUPERDRAGON_GUARD) + unset_chr_flag_bank3(0x19, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x19, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x19, FUNC_INIT_SUPERDRAGON_GUARD) + unset_chr_flag_bank3(0x1a, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x1a, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x1a, FUNC_INIT_SUPERDRAGON_GUARD) + unset_chr_flag_bank3(0x1b, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x1b, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x1b, FUNC_INIT_SUPERDRAGON_GUARD) + unset_chr_flag_bank3(0x1c, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x1c, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x1c, FUNC_INIT_SUPERDRAGON_GUARD) + unset_chr_flag_bank3(0x1d, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x1d, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x1d, FUNC_INIT_SUPERDRAGON_GUARD) + unset_chr_flag_bank3(0x1e, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x1e, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x1e, FUNC_INIT_SUPERDRAGON_GUARD) + unset_chr_flag_bank3(0x1f, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x1f, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x1f, FUNC_INIT_SUPERDRAGON_GUARD) + unlock_door(0x0c, 0x40) + unlock_door(0x15, 0x40) + unlock_door(0x16, 0x40) + unlock_door(0x17, 0x40) + unlock_door(0x18, 0x40) + unlock_door(0x19, 0x40) + unlock_door(0x1a, 0x40) + unlock_door(0x1b, 0x40) + unlock_door(0x1c, 0x40) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func040e_hidden_biotech[] = { + label(0x04) + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1019_enable_biotechs_after_stash[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_ELVIS_STASHED, TRUE, /*goto*/ 0x32) + endloop(0x04) + + label(0x32) + unset_chr_flag_bank3(0x25, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x25, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x25, FUNC_INIT_BIOTECH) + unset_chr_flag_bank3(0x26, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x26, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x26, FUNC_INIT_BIOTECH) + unset_chr_flag_bank3(0x27, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x27, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x27, FUNC_INIT_BIOTECH) + unset_chr_flag_bank3(0x28, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(0x28, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(0x28, FUNC_INIT_BIOTECH) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1002_intro[] = { + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_music_track(MUSIC_ESCAPE_INTRO) + camera_movement(0x019c) + cmd0175(60) + + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x019d, -1, -1, 0x0600, CHR_JOANNA, 4) + + set_chr_flag_bank3(0x23, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(0x23, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x23, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(0x23, CHRFLAG2_00020000) + animation(0x019e, -1, -1, 0x0600, 0x23, 4) + + set_chr_flag_bank3(0x24, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(0x24, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x24, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(0x24, CHRFLAG2_00020000) + animation(0x019f, -1, -1, 0x0600, 0x24, 4) + + set_object_flag_bank1(0x00, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x00, OBJECTFLAG2_00000010) + object_do_animation(0x01a0, 0x00, 0x04ff, 0xff) + restart_timer + fade_to_color(0x000000ff, 0) + fade_to_color(0x00000000, 90) + set_cutscene_weapon(CHR_JOANNA, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(CHR_JOANNA, WEAPON_FALCON2_SCOPE, WEAPON_NONE) + + #define wait_until(time, loopid) \ + beginloop(loopid) \ + if_controller_button_pressed(/*goto*/ 0x68) \ + if_timer_gt(time, /*goto*/ 0x06) \ + endloop(loopid) \ + label(0x06) + + + + wait_until(2, 0xc5) + speak(CHR_JOANNA, 0x4851, 0x81ba, CHANNEL_7, COLOR_02_WHITE) // "What the hell do you think you're doing? This is s..." + + wait_until(60, 0x6a) + play_sound(0x0161, CHANNEL_6) + + wait_until(115, 0x6b) + play_sound(0x0162, CHANNEL_6) + + wait_until(156, 0x6c) + play_sound(0x0163, CHANNEL_5) + + wait_until(205, 0x6d) + play_sound(0x0164, CHANNEL_6) + + wait_until(260, 0x6e) + play_sound(0x0161, CHANNEL_5) + + wait_until(341, 0x6f) + play_sound(0x0162, CHANNEL_6) + open_door(0x0e) + open_door(0x0f) + + wait_until(444, 0x70) + play_sound(0x0163, CHANNEL_5) + + wait_until(468, 0x71) + play_sound(0x0161, CHANNEL_6) + + wait_until(490, 0x72) + play_sound(0x0164, CHANNEL_5) + + wait_until(528, 0x73) + play_sound(0x0161, CHANNEL_6) + + wait_until(545, 0x8a) + speak(CHR_JOANNA, 0x4854, 0x7758, CHANNEL_7, COLOR_09_BLUE) // "I don't care much for procedures!" + + wait_until(588, 0x74) + play_sound(0x0162, CHANNEL_5) + + wait_until(632, 0x75) + play_sound(0x0163, CHANNEL_6) + + wait_until(698, 0x76) + play_sound(0x0164, CHANNEL_6) + + wait_until(706, 0x77) + + wait_until(770, 0xc6) + speak(CHR_JOANNA, 0x4852, 0x7436, CHANNEL_7, COLOR_02_WHITE) // "Director Easton will hear about this, young lady." + + wait_until(810, 0xbe) + close_door(0x0e) + close_door(0x0f) + + wait_until(830, 0x78) + play_sound(0x0161, CHANNEL_6) + + wait_until(872, 0x79) + play_sound(0x0162, CHANNEL_4) + + wait_until(998, 0xc7) + speak(CHR_JOANNA, 0x4853, 0x7437, CHANNEL_7, COLOR_02_WHITE) // "You can't take that! It's government property! Thi..." + + wait_until(1032, 0x7b) + play_sound(0x0161, CHANNEL_5) + + wait_until(1224, 0x7c) + play_sound(0x0164, CHANNEL_6) + + wait_until(1260, 0x7d) + play_sound(0x0163, CHANNEL_4) + + wait_until(1286, 0x7e) + play_sound(0x0161, CHANNEL_6) + + wait_until(1325, 0x7f) + play_sound(0x01b9, CHANNEL_6) + + wait_until(1334, 0x80) + play_sound(0x00fb, CHANNEL_10) + + wait_until(1342, 0x81) + play_sound(0x00fb, CHANNEL_10) + + wait_until(1353, 0x82) + play_sound(0x00f9, CHANNEL_10) + + wait_until(1362, 0x83) + + wait_until(1372, 0x84) + play_sound(0x00fa, CHANNEL_10) + + wait_until(1388, 0x85) + play_sound(0x01ba, CHANNEL_5) + + wait_until(1396, 0x86) + play_sound(0x00fc, CHANNEL_10) + + wait_until(1432, 0xbf) + open_door(0x10) + + wait_until(1510, 0x8f) + play_sound(0x0162, CHANNEL_4) + + wait_until(1544, 0x90) + play_sound(0x0163, CHANNEL_6) + + wait_until(1590, 0x91) + play_sound(0x0164, CHANNEL_4) + + wait_until(1624, 0x92) + play_sound(0x0161, CHANNEL_6) + + wait_until(1662, 0x93) + play_sound(0x0162, CHANNEL_4) + + wait_until(1716, 0x94) + play_sound(0x01b9, CHANNEL_6) + + wait_until(1730, 0x95) + play_sound(0x00fe, CHANNEL_10) + play_sound(0x00fa, CHANNEL_10) + + wait_until(1736, 0x96) + speak(CHR_JOANNA, 0x483f, 0x7438, CHANNEL_7, COLOR_02_WHITE) // "Let's see how that overconfident thief deals with ..." + set_stage_flag(STAGEFLAG_GAS_ON) + + wait_until(1773, 0x9a) + play_sound(0x01bb, CHANNEL_5) + + wait_until(1822, 0xc0) + close_door(0x10) + + wait_until(1826, 0x9f) + play_sound(0x00fd, CHANNEL_10) + + wait_until(1834, 0xa0) + play_sound(0x00fd, CHANNEL_10) + + wait_until(1850, 0xa1) + play_sound(0x00fa, CHANNEL_10) + + wait_until(1926, 0xa4) + play_sound(0x0163, CHANNEL_5) + + wait_until(2146, 0xa5) + play_sound(0x0164, CHANNEL_6) + + wait_until(2180, 0xa6) + play_sound(0x0507, CHANNEL_5) + + wait_until(2202, 0xa7) + play_sound(0x0161, CHANNEL_6) + + wait_until(2218, 0xa8) + speak(CHR_JOANNA, 0x4840, 0x7439, CHANNEL_7, COLOR_09_BLUE) // "What's that noise? Can't be... Gas!" + + wait_until(2271, 0xa9) + play_sound(0x0162, CHANNEL_6) + + wait_until(2300, 0xaa) + play_sound(0x0163, CHANNEL_5) + + wait_until(2362, 0xab) + play_sound(0x0164, CHANNEL_6) + + wait_until(2384, 0xac) + play_sound(0x0162, CHANNEL_6) + + wait_until(2428, 0xad) + play_sound(0x0164, CHANNEL_6) + + wait_until(2458, 0xae) + play_sound(0x0161, CHANNEL_6) + + wait_until(2582, 0xaf) + speak(CHR_JOANNA, 0x4841, 0x743a, CHANNEL_7, COLOR_02_WHITE) // "Noooo, that wasn't meant to happen!" + + wait_until(2725, 0xb1) + play_sound(0x0429, CHANNEL_10) + + wait_until(2748, 0xb2) + play_sound(0x0429, CHANNEL_10) + + wait_until(2768, 0x97) + play_sound(0x0429, CHANNEL_10) + + wait_until(2810, 0x98) + play_sound(0x0429, CHANNEL_10) + play_sound(0x0429, CHANNEL_10) + + wait_until(2877, 0x99) + play_sound(0x0429, CHANNEL_10) + play_sound(0x0429, CHANNEL_10) + + wait_until(2904, 0xb3) + play_sound(0x0429, CHANNEL_10) + play_sound(0x0429, CHANNEL_10) + + wait_until(2924, 0xb5) + play_sound(0x0429, CHANNEL_10) + play_sound(0x0429, CHANNEL_10) + + wait_until(2930, 0xb4) + play_sound(0x05af, CHANNEL_10) + + wait_until(3024, 0x89) + play_sound(0x00fa, CHANNEL_10) + play_sound(0x00f9, CHANNEL_10) + + wait_until(3060, 0xb0) + play_sound(0x05b0, CHANNEL_10) + + wait_until(3178, 0xb6) + play_sound(0x007d, CHANNEL_6) + + wait_until(3242, 0xb7) + play_sound(0x01dc, CHANNEL_6) + play_sound(0x00fc, CHANNEL_10) + + wait_until(3290, 0xb8) + play_sound(0x01dc, CHANNEL_6) + play_sound(0x00fd, CHANNEL_10) + + wait_until(3334, 0xb9) + play_sound(0x00fa, CHANNEL_10) + + wait_until(3894, 0xba) + speak(CHR_JOANNA, 0x4843, 0x743b, CHANNEL_7, COLOR_09_BLUE) // "You idiot! We'd better get out of here." + + wait_until(4146, 0xbb) + play_sound(0x0162, CHANNEL_6) + + wait_until(4316, 0xbc) + play_sound(0x0164, CHANNEL_6) + + wait_until(4336, 0xbd) + play_sound(0x0163, CHANNEL_5) + + beginloop(0x08) + if_camera_animating(/*goto*/ 0x32) + goto_next(0x68) + + label(0x32) + if_controller_button_pressed(/*goto*/ 0x68) + label(0x32) + endloop(0x08) + + label(0x68) + set_stage_flag(STAGEFLAG_INTRO_DONE) + set_stage_flag(STAGEFLAG_GAS_ON) + mute_channel(CHANNEL_7) + mute_channel(CHANNEL_6) + mute_channel(CHANNEL_10) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x019d, -2, -1, 0x0600, CHR_JOANNA, 2) + + unset_chr_flag_bank3(0x23, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(0x23, CHRFLAG2_00020000) + animation(0x019e, -2, -1, 0x0600, 0x23, 2) + + unset_chr_flag_bank3(0x24, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(0x24, CHRFLAG2_00020000) + animation(0x019f, -2, -1, 0x0600, 0x24, 2) + + unset_object_flag_bank1(OBJ_HOVERBED, OBJECTFLAG1_04000000) + set_object_flag_bank2(OBJ_HOVERBED, OBJECTFLAG2_00000010) + object_do_animation(0x01a0, OBJ_HOVERBED, 0x04ff, 0xfe) + + drop_concealed_items(0x23) + drop_concealed_items(0x24) + restart_default_music + reset_ambience + enter_firstperson + revoke_control(CHR_JOANNA, 0) + yield + grab_object(CHR_JOANNA, OBJ_HOVERBED) + grant_control(CHR_JOANNA) + yield + kill(0x23) + kill(0x24) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0c01_midcutscene[] = { + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_music_track(MUSIC_ESCAPE_MIDCUTSCENE) + camera_movement(0x01cb) + cmd0175(60) + hide_object(OBJ_HOVERBED) + set_target_chr(CHR_JOANNA) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x33) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x33) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x33) + goto_next(0x06) + + label(0x33) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x06) + if_chr_dying(CHR_VELVET, /*goto*/ 0x06) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x06) + set_target_chr(CHR_VELVET) + + label(0x06) + unset_chr_flag_bank3(TARGET_CHR, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_ELVIS, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_JONATHAN, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(CHR_JONATHAN, GFUNC_IDLE) + + set_chr_flag_bank3(TARGET_CHR, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(TARGET_CHR, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(TARGET_CHR, CHRFLAG2_00020000) + animation(0x01ce, -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(0x01cc, -1, -1, 0x0600, CHR_ELVIS, 4) + + set_chr_flag_bank3(CHR_JONATHAN, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_JONATHAN, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_JONATHAN, CHRFLAG2_00020000) + animation(0x01cd, -1, -1, 0x0600, CHR_JONATHAN, 4) + + set_object_flag_bank1(0x11, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x11, OBJECTFLAG2_00000010) + object_do_animation(0x01cf, 0x11, 0x04ff, 0xff) + + show_nonessential_chrs(FALSE) + if_object_in_room(OBJ_HOVERBIKE, 0x00df, /*goto*/ 0x06) + goto_next(0x32) + + label(0x06) + move_object_to_pad(OBJ_HOVERBIKE, 0x038a) + label(0x32) + restart_timer + set_cutscene_weapon(TARGET_CHR, WEAPON_NONE, WEAPON_NONE) + yield + set_cutscene_weapon(TARGET_CHR, WEAPON_NONE, WEAPON_NONE) + + wait_until(83, 0x6a) + speak(TARGET_CHR, 0x4845, 0x743c, CHANNEL_7, COLOR_06_WHITE) // "***aahh...! aahaa...! aaaaahhh! aha. ahh.***" + + wait_until(116, 0x6b) + play_sound(0x80c4, CHANNEL_6) + + wait_until(124, 0x6c) + play_sound(0x80c5, CHANNEL_4) + + wait_until(142, 0x6d) + play_sound(0x80c6, CHANNEL_6) + + wait_until(148, 0x6e) + play_sound(0x80c7, CHANNEL_4) + + wait_until(172, 0x6f) + play_sound(0x80c4, CHANNEL_6) + + wait_until(176, 0x70) + play_sound(0x80c7, CHANNEL_4) + + wait_until(214, 0x71) + play_sound(0x80c5, CHANNEL_6) + + wait_until(690, 0x72) + speak(TARGET_CHR, 0x4846, 0x743d, CHANNEL_7, COLOR_06_WHITE) // "I'm alive. I thought I'd be chopped up like the ot..." + + wait_until(1392, 0x73) + speak(TARGET_CHR, 0x4847, 0x743e, CHANNEL_7, COLOR_09_BLUE) // "You... You speak our language?" + + wait_until(1400, 0x74) + play_sound(0x80c4, CHANNEL_6) + + wait_until(1554, 0x75) + speak(TARGET_CHR, 0x4848, 0x743f, CHANNEL_7, COLOR_03_RED) // "Watch her... she's sharp." + + wait_until(1688, 0x76) + speak(TARGET_CHR, 0x4849, 0x7440, CHANNEL_7, COLOR_06_WHITE) // "Earrggghh...eerggh..." + + wait_until(1962, 0x77) + speak(TARGET_CHR, 0x484a, 0x7441, CHANNEL_7, COLOR_09_BLUE) // "What's wrong?" + + wait_until(1988, 0x78) + play_sound(0x80c5, CHANNEL_6) + + wait_until(2014, 0x79) + play_sound(0x80c4, CHANNEL_4) + + wait_until(2113, 0x7a) + speak(TARGET_CHR, 0x484b, 0x7442, CHANNEL_7, COLOR_06_WHITE) // "I have a headache. And with a head this big, that'..." + + wait_until(2470, 0x7b) + speak(TARGET_CHR, 0x484c, 0x7443, CHANNEL_7, COLOR_09_BLUE) // "Can you walk? We must leave before they get organi..." + + wait_until(2480, 0x7c) + play_sound(0x80c5, CHANNEL_6) + + wait_until(2526, 0x7d) + play_sound(0x80c6, CHANNEL_6) + + wait_until(2624, 0x7e) + play_sound(0x80c4, CHANNEL_6) + + wait_until(2642, 0x7f) + play_sound(0x80c6, CHANNEL_4) + + wait_until(2678, 0x80) + play_sound(0x80c7, CHANNEL_6) + + wait_until(2712, 0x81) + play_sound(0x80c4, CHANNEL_4) + + wait_until(2726, 0x82) + play_sound(0x80c5, CHANNEL_6) + + wait_until(2728, 0x83) + play_sound(0x80c7, CHANNEL_7) + + wait_until(2806, 0x84) + play_sound(0x80c4, CHANNEL_6) + + wait_until(2824, 0x85) + play_sound(0x80c5, CHANNEL_4) + + wait_until(2842, 0x86) + speak(TARGET_CHR, 0x484d, 0x7444, CHANNEL_7, COLOR_06_WHITE) // "I think so. What's your name?" + + wait_until(3024, 0x87) + speak(TARGET_CHR, 0x484e, 0x7445, CHANNEL_7, COLOR_09_BLUE) // "I'm Agent Dark. Or Joanna, if you prefer." + + wait_until(3270, 0x88) + speak(TARGET_CHR, 0x484f, 0x7446, CHANNEL_7, COLOR_06_WHITE) // "Well, Joanna, I'm Protector One. But you can call ..." + + wait_until(3308, 0x89) + play_sound(0x80c6, CHANNEL_6) + + beginloop(0x08) + if_camera_animating(/*goto*/ 0x32) + goto_next(0x68) + + label(0x32) + if_controller_button_pressed(/*goto*/ 0x68) + label(0x32) + endloop(0x08) + + label(0x68) + set_stage_flag(STAGEFLAG_INTRO_DONE) + mute_channel(CHANNEL_7) + restart_default_music + reset_ambience + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(TARGET_CHR, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(TARGET_CHR, CHRFLAG2_00020000) + animation(0x01ce, -2, -1, 0x0600, TARGET_CHR, 2) + + unset_chr_flag_bank3(CHR_ELVIS, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_ELVIS, CHRFLAG2_00020000) + animation(0x01cc, -2, -1, 0x0600, CHR_ELVIS, 2) + + unset_chr_flag_bank3(CHR_JONATHAN, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JONATHAN, CHRFLAG2_00020000) + animation(0x01cd, -2, -1, 0x0600, CHR_JONATHAN, 2) + + unset_object_flag_bank1(0x11, OBJECTFLAG1_04000000) + set_object_flag_bank2(0x11, OBJECTFLAG2_00000010) + object_do_animation(0x01cf, 0x11, 0x04ff, 0xfe) + + unset_object_flag_bank1(0x0a, OBJECTFLAG1_20000000) + unset_chr_flag_bank3(CHR_ELVIS, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + unset_chr_flag_bank3(CHR_JONATHAN, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(CHR_JONATHAN, FUNC_JONATHAN_HANGAR) + set_function(CHR_ELVIS, FUNC_INIT_ELVIS) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x32) + chr_move_to_pad(CHR_VELVET, 0x0156, 0x01, /*goto*/ 0x32) + label(0x32) + show_nonessential_chrs(TRUE) + set_function(CHR_SELF, GFUNC_END_CINEMA) + endfunction +}; + +u8 func101b_gas_sound[] = { + beginloop(0x67) + if_stage_flag_eq(STAGEFLAG_GAS_ON, TRUE, /*goto*/ 0x04) + endloop(0x67) + + label(0x04) + yield + assign_sound(0x816a, CHANNEL_0) + play_sound_from_object(CHANNEL_0, 0x2b, 0x1f40, 0x0bb8) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0c02_outro[] = { + open_door(0x2c) + open_door(0x2e) + set_object_flag_bank0(0x2c, OBJECTFLAG0_40000000) + set_object_flag_bank0(0x2d, OBJECTFLAG0_40000000) + label(0x32) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_music_track(MUSIC_ESCAPE_OUTRO_LONG) + camera_movement(0x02d2) + label(0x32) + hide_object(OBJ_UFO2) + + show_object(OBJ_UFO1) + set_object_flag_bank1(OBJ_UFO1, OBJECTFLAG1_04000000) + set_object_flag_bank2(OBJ_UFO1, OBJECTFLAG2_00000010) + object_do_animation(0x02d3, OBJ_UFO1, 0x04ff, 0xff) + + set_stage_flag(STAGEFLAG_STARTED_OUTRO) + remove_chr(CHR_ELVIS) + remove_chr(CHR_JONATHAN) + set_chr_flag_bank3(CHR_ELVIS, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_JONATHAN, CHRFLAG3_HIDDEN) + show_nonessential_chrs(FALSE) + + beginloop(0x08) + if_camera_animating(/*goto*/ 0x32) + goto_next(0x68) + + label(0x32) + if_controller_button_pressed(/*goto*/ 0x68) + label(0x32) + endloop(0x08) + + label(0x68) + label(0x32) + camera_movement(0x02d4) + + show_object(OBJ_UFO1) + set_object_flag_bank1(OBJ_UFO1, OBJECTFLAG1_04000000) + set_object_flag_bank2(OBJ_UFO1, OBJECTFLAG2_00000010) + object_do_animation(0x02d5, OBJ_UFO1, 0x04ff, 0xff) + + set_chr_flag_bank3(0x2b, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(0x2b, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(0x2b, CHRFLAG2_00020000) + animation(0x0304, -1, -1, 0x0600, 0x2b, 4) + + open_door(0x2c) + open_door(0x2e) + + beginloop(0x09) + if_camera_animating(/*goto*/ 0x32) + goto_next(0x69) + + label(0x32) + if_controller_button_pressed(/*goto*/ 0x69) + label(0x32) + endloop(0x09) + + label(0x69) + label(0x06) + hide_object(OBJ_UFO2) + if_stage_flag_eq(STAGEFLAG_JO_DOING_TERMINALS, FALSE, /*goto*/ 0x32) + restart_default_music + reset_ambience + + label(0x32) + goto_next(0x06) + + // Unreachable + label(0x09) + set_stage_flag(STAGEFLAG_UFO_LEAVING) + set_function(CHR_SELF, GFUNC_END_CINEMA) + + label(0x06) + set_stage_flag(STAGEFLAG_ESCAPED) + yield + yield + set_invincible(CHR_JOANNA) + revoke_control(CHR_JOANNA, 4) + hide_countdown_timer + stop_countdown_timer + unset_eeprom_flag(EEPROMFLAG_DEFENSE_JON) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Makes the UFO exit, when Jo is doing terminals and has to escape via + * hoverbike. + */ +u8 func0415_ufo_exit[] = { + set_lighting(0x0000, 0x0e, 0x05) + hide_object(OBJ_UFO2) + show_object(OBJ_UFO1) + set_object_flag_bank1(OBJ_UFO1, OBJECTFLAG1_04000000) + set_object_flag_bank2(OBJ_UFO1, OBJECTFLAG2_00000010) + object_do_animation(0x02d3, OBJ_UFO1, 0x04ff, 0xff) + set_chr_flag_bank3(CHR_ELVIS, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_JONATHAN, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_ELVIS, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_JONATHAN, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_chr_flag_bank3(CHR_ELVIS, CHRFLAG3_UNEXPLODABLE) + set_chr_flag_bank3(CHR_JONATHAN, CHRFLAG3_UNEXPLODABLE) + set_stage_flag(STAGEFLAG_UFO_LEAVING) + restart_timer + + beginloop(0x08) + if_timer_gt(600, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + set_lighting(0x0000, 0x0f, 0x00) + reset_ambience + hide_object(OBJ_UFO1) + set_function(CHR_SELF, GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1021_jo_escaping[] = { + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_UFO_LEAVING, TRUE, /*goto*/ 0x32) + endloop(0x08) + + label(0x32) + set_stage_flag(STAGEFLAG_JO_ESCAPE_STARTED) + restart_timer + + beginloop(0x0f) + if_timer_gt(180, /*goto*/ 0x32) + endloop(0x0f) + + label(0x32) + set_stage_flag(STAGEFLAG_TRIGGER_JETBIKE_MESSAGE) + + beginloop(0x0a) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x0014, /*goto*/ 0x06) + endloop(0x0a) + + label(0x06) + set_stage_flag(STAGEFLAG_ESCAPED) + yield + yield + set_invincible(CHR_JOANNA) + revoke_control(CHR_JOANNA, 4) + hide_countdown_timer + stop_countdown_timer + label(0x62) + set_eeprom_flag(EEPROMFLAG_DEFENSE_JON) + set_music_track(MUSIC_ESCAPE_OUTRO_LONG) + camera_movement(0x02d4) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(0xf1, CHRFLAG3_HIDDEN) + set_function(CHR_P1P2, GFUNC_IDLE) + + show_object(OBJ_UFO1) + set_object_flag_bank1(OBJ_UFO1, OBJECTFLAG1_04000000) + set_object_flag_bank2(OBJ_UFO1, OBJECTFLAG2_00000010) + object_do_animation(0x02d5, OBJ_UFO1, 0x04ff, 0xff) + + set_chr_flag_bank3(CHR_P1P2, CHRFLAG3_UNPLAYABLE) + unset_chr_flag_bank3(CHR_P1P2, CHRFLAG3_HIDDEN) + set_chr_flag_bank2(CHR_P1P2, CHRFLAG2_00020000) + animation(0x0304, -1, -1, 0x0600, CHR_P1P2, 4) + + beginloop(0x09) + if_camera_animating(/*goto*/ 0x32) + goto_next(0x69) + + label(0x32) + if_controller_button_pressed(/*goto*/ 0x69) + label(0x32) + endloop(0x09) + + label(0x69) + end_level + set_function(CHR_SELF, GFUNC_IDLE) + + // Unreachable + end_level + end_level + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * This is most likely a hidden guard. Spawns clones after meeting Jon until he + * enters the mine room. + * + * There are 4 of these guards, and each one will have one clone alive at a + * time. + */ +u8 func0416_spawn_during_follow[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(10) + set_reaction_speed(40) + set_chr_health(CHR_SELF, 40) + set_armor(40) + set_recovery_speed(0) + set_shield(0) + set_self_flag_bank3(CHRFLAG3_00040000) + set_self_flag_bank3(CHRFLAG3_00000002) + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + + beginloop(0x04) + if_chr_sees_player(/*goto*/ 0x32) + if_stage_flag_eq(STAGEFLAG_MET_JON, TRUE, /*goto*/ 0x06) + label(0x32) + reloop(0x04) + + // Met Jon + label(0x06) + label(0x54) + if_chr_death_animation_finished(CHR_CLONE, /*goto*/ 0x54) + reloop(0x04) + + label(0x54) + try_spawn_clone2(CHR_SELF, FUNC_INIT_FOLLOWER_CLONE, 0x00000000, /*goto*/ 0x32) + reloop(0x04) + + // Spawned + label(0x32) + restart_timer + + beginloop(0x08) + if_stage_flag_eq(STAGEFLAG_JON_ENTERED_MINE_ROOM, TRUE, /*goto*/ 0x32) + if_timer_gt(1800, /*goto*/ 0x06) + endloop(0x08) + + label(0x06) + endloop(0x04) + + label(0x32) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func0417_init_follower_clone[] = { + set_self_flag_bankx(CHRFLAG1_00080000, BANK_1) + label(0x04) + cmd0145_rebuild_groups + cmd0146_rebuild_groups + try_inherit_properties(0x09, /*goto*/ 0x06) + label(0x06) + set_function(CHR_SELF, FUNC_FOLLOWER_CLONE) + endfunction +}; + +u8 func0418_follower_clone[] = { + call_rng + if_rand_lt(128, /*goto*/ 0x32) + set_target_chr(CHR_VELVET) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x32) + goto_next(0x06) + + label(0x32) + set_target_chr(CHR_JOANNA) + label(0x06) + set_function(CHR_SELF, GFUNC_ALERTED) + endfunction +}; + +u8 func0419_init_biotech[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(20) + set_reaction_speed(40) + set_chr_health(CHR_SELF, 40) + set_armor(0) + set_recovery_speed(0) + set_shield(0) + set_return_function(CHR_SELF, GFUNC_SEARCH_FOR_PLAYER) + set_function(CHR_SELF, GFUNC_SEARCH_FOR_PLAYER) + endfunction +}; + +u8 func041a_init_superdragon_guard[] = { + set_chr_dodge_rating(2, 0x0a) + set_accuracy(10) + set_reaction_speed(40) + set_chr_health(CHR_SELF, 40) + set_armor(40) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, GFUNC_UNALERTED) + endfunction +}; + +u8 func101a_medpack_switch[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_object_in_good_condition(OBJ_MEDPACK_SWITCH, /*goto*/ 0x32) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x06) + set_stage_flag(STAGEFLAG_MEDPACK_SWITCH_DESTROYED) + message(CHR_JOANNA, 0x4824) // "Mission critical object destroyed." + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x32) + if_chr_activated_object(CHR_P1P2, OBJ_MEDPACK_SWITCH, /*goto*/ 0x32) + endloop(0x04) + + label(0x32) + assign_sound(0x043a, CHANNEL_7) + control_sound_from_object(CHANNEL_7, OBJ_MEDPACK_SWITCH, TRUE) + message(CHR_P1P2, 0x4836) // "Medical containment doors unlocked." + unlock_door(0x12, 0x40) + unlock_door(0x13, 0x40) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Warps Jon to the catwalk outside the mine room. + */ +u8 unregistered_function1[] = { + // Wait until met Jon + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_MET_JON, TRUE, /*goto*/ 0x08) + endloop(0x04) + + // Wait until player in mine room + beginloop(0x08) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x00dc, /*goto*/ 0x32) + if_chr_in_room(CHR_P1P2, 0x00, 0x00dd, /*goto*/ 0x32) + endloop(0x08) + + label(0x32) + set_function(CHR_JONATHAN, 0x040f) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * @unused + */ +u8 func040f_warp_jon_to_catwalk[] = { + set_target_chr(CHR_JOANNA) + if_chr_sees_player(/*goto*/ 0x06) + set_target_chr(CHR_VELVET) + if_chr_sees_player(/*goto*/ 0x06) + stop_chr + yield + chr_move_to_pad(CHR_JONATHAN, 0x0152, 0x00, /*goto*/ 0x32) + label(0x32) + yield + set_function(CHR_JONATHAN, FUNC_JONATHAN_FOLLOWING_AND_MINE) + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101d_msg_medpackaroundhere[] = { + beginloop(0x04) + if_difficulty_lt(DIFF_PA, /*goto*/ 0x06) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x00d2, /*goto*/ 0x32) + endloop(0x04) + + label(0x32) + + beginloop(0x6a) + if_sound_finished(CHANNEL_6, /*goto*/ 0x32) + endloop(0x6a) + + label(0x32) + speak(CHR_P1P2, 0x4837, 0x73c0, CHANNEL_6, COLOR_09_BLUE) // "The medpack's got to be somewhere around here." + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101e_msg_hookup[] = { + restart_timer + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_JON_SAID_MAINT_HATCH, TRUE, /*goto*/ 0x32) + endloop(0x04) + + label(0x32) + + beginloop(0x6a) + if_sound_finished(CHANNEL_6, /*goto*/ 0x32) + endloop(0x6a) + + label(0x32) + speak(CHR_JOANNA, 0x4838, 0x73c1, CHANNEL_6, COLOR_09_BLUE) // "Time to hook up with Jonathan, before he gets into..." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101f_msg_oil[] = { + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_stage_flag_eq(STAGEFLAG_JON_SAID_MAINT_HATCH, TRUE, /*goto*/ 0x32) + reloop(0x04) + + label(0x32) + if_chr_in_room(CHR_P1P2, 0x00, 0x00dc, /*goto*/ 0x32) + endloop(0x04) + + label(0x32) + yield + yield + yield + + beginloop(0x6a) + if_sound_finished(CHANNEL_6, /*goto*/ 0x32) + endloop(0x6a) + + label(0x32) + speak(CHR_P1P2, 0x4839, 0x73c2, CHANNEL_6, COLOR_09_BLUE) // "That smell... oil... I smelt that in the other han..." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1020_msg_jetbike[] = { + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_TRIGGER_JETBIKE_MESSAGE, TRUE, /*goto*/ 0x32) + endloop(0x04) + + label(0x32) + + beginloop(0x6a) + if_sound_finished(CHANNEL_6, /*goto*/ 0x32) + endloop(0x6a) + + label(0x32) + speak(CHR_JOANNA, 0x483a, 0x73c3, CHANNEL_6, COLOR_09_BLUE) // "The jetbike should get me out before they lock the..." + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1024_wall_immune_to_explosives[] = { + set_object_flag_bank0(OBJ_WALLOBJECT, OBJECTFLAG0_INVINCIBLE) + set_object_flag_bank0(OBJ_WALLDOOR, OBJECTFLAG0_INVINCIBLE) + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_JON_FINISHED_EXPLOSIVES, TRUE, /*goto*/ 0x32) + endloop(0x04) + + label(0x32) + unset_object_flag_bank0(OBJ_WALLOBJECT, OBJECTFLAG0_INVINCIBLE) + unset_object_flag_bank0(OBJ_WALLDOOR, OBJECTFLAG0_INVINCIBLE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * Wait until barrel destroyed then unset immune to explosives on the medpack + * glass. This wouldn't have worked as intended, as destroying any one barrel + * would cause the glass to become suscepitble to explosives. + */ +#define glass_explosives_thing(barrel) \ + beginloop(0x04) \ + if_object_in_good_condition(barrel, /*goto*/ 0x32) \ + unset_object_flag_bank0(OBJ_MEDPACK_GLASS, OBJECTFLAG0_INVINCIBLE) \ + restart_timer \ + \ + beginloop(0x08) \ + if_timer_gt(60, /*goto*/ 0x06) \ + endloop(0x08) \ + \ + label(0x06) \ + set_object_flag_bank0(OBJ_MEDPACK_GLASS, OBJECTFLAG0_INVINCIBLE) \ + set_function(CHR_SELF, GFUNC_IDLE) \ + label(0x32) \ + endloop(0x04) \ + \ + set_function(CHR_SELF, GFUNC_IDLE) + + + +u8 unregistered_function2[] = { + set_object_flag_bank0(OBJ_MEDPACK_GLASS, OBJECTFLAG0_INVINCIBLE) + glass_explosives_thing(0x23) + endfunction +}; + +u8 unregistered_function3[] = { + glass_explosives_thing(0x24) + endfunction +}; + +u8 unregistered_function4[] = { + glass_explosives_thing(0x25) + endfunction +}; + +u8 unregistered_function5[] = { + glass_explosives_thing(0x26) + endfunction +}; + +u8 unregistered_function6[] = { + glass_explosives_thing(0x27) + endfunction +}; + +u8 unregistered_function7[] = { + glass_explosives_thing(0x28) + endfunction +}; + +u8 unregistered_function8[] = { + glass_explosives_thing(0x29) + endfunction +}; + +u8 func1026_ufo_spinning[] = { + show_object(OBJ_UFO2) + set_object_flag_bank1(OBJ_UFO2, OBJECTFLAG1_04000000) + set_object_flag_bank2(OBJ_UFO2, OBJECTFLAG2_00000010) + + label(0x03) + object_do_animation(0x0459, OBJ_UFO2, 0x04ff, 0xff) + restart_timer + + beginloop(0x08) + if_timer_gt(184, /*goto*/ 0x32) + endloop(0x08) + + label(0x32) + goto_first(0x03) + + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func102e_keep_hangar_doors_open[] = { + beginloop(0x67) + if_stage_flag_eq(STAGEFLAG_HANGAR_TERMINAL_DESTROYED, TRUE, /*goto*/ 0x0f) + if_stage_flag_eq(STAGEFLAG_HANGAR_X_MUSIC_STARTED, TRUE, /*goto*/ 0x04) + endloop(0x67) + + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_HANGAR_TERMINAL_DESTROYED, TRUE, /*goto*/ 0x0f) + if_door_state(0x2c, DOORSTATE_CLOSING, /*goto*/ 0x08) + if_door_state(0x2e, DOORSTATE_CLOSING, /*goto*/ 0x09) + reloop(0x04) + + // Door 1 closing + label(0x08) + if_stage_flag_eq(STAGEFLAG_INNER_DOOR_OPENING, TRUE, /*goto*/ 0x32) + if_door_state(0x2c, (DOORSTATE_CLOSED | DOORSTATE_CLOSING), /*goto*/ 0x09) + reloop(0x04) + + label(0x32) + open_door(0x2c) + open_door(0x2d) + set_object_flag_bank0(0x2c, OBJECTFLAG0_40000000) + set_object_flag_bank0(0x2d, OBJECTFLAG0_40000000) + reloop(0x04) + + // Door 2 closing + label(0x09) + if_stage_flag_eq(STAGEFLAG_OUTER_DOOR_OPENING, TRUE, /*goto*/ 0x32) + reloop(0x04) + + label(0x32) + open_door(0x2e) + open_door(0x2f) + set_object_flag_bank0(0x2e, OBJECTFLAG0_40000000) + set_object_flag_bank0(0x2f, OBJECTFLAG0_40000000) + endloop(0x04) + + // Terminal destroyed + label(0x0f) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func102f_toggle_remotemines[] = { + restart_timer + beginloop(0x08) + if_timer_gt(2400, /*goto*/ 0x32) + if_stage_flag_eq(STAGEFLAG_ELVIS_STASHED, TRUE, /*goto*/ 0x06) + endloop(0x08) + + label(0x32) + set_function(CHR_SELF, GFUNC_IDLE) + + label(0x06) + unset_object_flag_bank0(OBJ_REMOTEMINES, OBJECTFLAG0_00100000) + unset_object_flag_bank1(OBJ_REMOTEMINES, OBJECTFLAG1_INVISIBLE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1030_setup_medpack_glass[] = { + if_difficulty_gt(DIFF_A, /*goto*/ 0x32) + unset_object_flag_bank0(OBJ_MEDPACK_GLASS, OBJECTFLAG0_INVINCIBLE) + destroy_object(OBJ_MEDPACK_GLASS) + set_function(CHR_SELF, GFUNC_IDLE) + + // SA and PA + label(0x32) + unlock_door(0x3c, 0x40) + unlock_door(0x3d, 0x40) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1031_disable_chambers[] = { + set_object_flag_bank0(0x46, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(0x47, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(0x48, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(0x49, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(0x4a, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(0x4b, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(0x4c, OBJECTFLAG0_DEACTIVATED) + set_object_flag_bank0(0x4d, OBJECTFLAG0_DEACTIVATED) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1032_unlock_door_after_hangar[] = { + // Wait for locate hangar objective complete + beginloop(0x04) + if_objective_complete(2, /*goto*/ 0x06) + endloop(0x04) + + label(0x06) + unlock_door(0x0a, 0x02) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +/** + * This is the lift near the wall you blow up in Rescue. + */ +u8 func1433_start_lift[] = { + activate_lift(1, 0x4e) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func101c_setup_rtracker[] = { + yield + set_object_flag_bank2(OBJ_FALCON2SCOPE1, OBJECTFLAG2_RTRACKED_BLUE) + set_object_flag_bank2(OBJ_FALCON2SCOPE2, OBJECTFLAG2_RTRACKED_BLUE) + set_object_flag_bank2(OBJ_REMOTEMINES, OBJECTFLAG2_RTRACKED_BLUE) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +u8 func1434_setup_lighting[] = { + yield + set_lighting(0x0000, 0x00, 0x00) + set_lighting(0x0000, 0x01, 0x00) + set_lighting(0x0000, 0x02, 0x00) + set_lighting(0x0000, 0x03, 0x00) + set_lighting(0x0000, 0x04, 0x00) + set_lighting(0x00d3, 0x06, 0x01) + set_lighting(0x00d4, 0x06, 0x01) + set_lighting(0x00d5, 0x06, 0x01) + set_lighting(0x00d6, 0x06, 0x01) + set_lighting(0x00d7, 0x06, 0x01) + set_lighting(0x00d8, 0x06, 0x01) + set_lighting(0x00d9, 0x06, 0x01) + set_lighting(0x00da, 0x06, 0x01) + set_lighting(0x00db, 0x06, 0x01) + set_lighting(0x0024, 0x05, 0x01) + set_lighting(0x0025, 0x05, 0x01) + set_lighting(0x0026, 0x05, 0x01) + set_lighting(0x0027, 0x05, 0x01) + set_lighting(0x0028, 0x05, 0x01) + set_lighting(0x0029, 0x05, 0x01) + set_lighting(0x002a, 0x05, 0x01) + set_lighting(0x002b, 0x05, 0x01) + set_lighting(0x002c, 0x05, 0x01) + set_lighting(0x002d, 0x05, 0x01) + set_lighting(0x002e, 0x05, 0x01) + set_lighting(0x002f, 0x05, 0x01) + set_lighting(0x0030, 0x05, 0x01) + set_lighting(0x0032, 0x05, 0x01) + set_lighting(0x0033, 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(0x0039, 0x05, 0x01) + set_lighting(0x003a, 0x05, 0x01) + set_lighting(0x003b, 0x05, 0x01) + set_lighting(0x003c, 0x05, 0x01) + set_lighting(0x003d, 0x05, 0x01) + set_lighting(0x003e, 0x05, 0x01) + set_lighting(0x003f, 0x05, 0x01) + set_lighting(0x005b, 0x05, 0x01) + set_lighting(0x005d, 0x05, 0x01) + set_lighting(0x0079, 0x05, 0x01) + set_lighting(0x007a, 0x05, 0x01) + set_lighting(0x007b, 0x05, 0x01) + set_lighting(0x007c, 0x05, 0x01) + set_lighting(0x007d, 0x05, 0x01) + set_lighting(0x007e, 0x05, 0x01) + set_lighting(0x007f, 0x05, 0x01) + set_lighting(0x0080, 0x05, 0x01) + set_lighting(0x0081, 0x05, 0x01) + set_lighting(0x0082, 0x05, 0x01) + set_lighting(0x008b, 0x05, 0x01) + set_lighting(0x008c, 0x05, 0x01) + set_lighting(0x008d, 0x05, 0x01) + set_lighting(0x008e, 0x05, 0x01) + set_lighting(0x008f, 0x05, 0x01) + set_lighting(0x0090, 0x05, 0x01) + set_lighting(0x0091, 0x05, 0x01) + set_lighting(0x0092, 0x05, 0x01) + set_lighting(0x0093, 0x05, 0x01) + set_lighting(0x0094, 0x05, 0x01) + set_lighting(0x0095, 0x05, 0x01) + set_lighting(0x0096, 0x05, 0x01) + set_lighting(0x0097, 0x05, 0x01) + set_lighting(0x0098, 0x05, 0x01) + set_lighting(0x0099, 0x05, 0x01) + set_lighting(0x009a, 0x05, 0x01) + set_lighting(0x009b, 0x05, 0x01) + set_lighting(0x00a5, 0x05, 0x01) + set_lighting(0x00a6, 0x05, 0x01) + set_lighting(0x00a7, 0x05, 0x01) + set_lighting(0x00a8, 0x05, 0x01) + set_lighting(0x00a9, 0x05, 0x01) + set_lighting(0x00aa, 0x05, 0x01) + set_lighting(0x00ab, 0x05, 0x01) + set_lighting(0x00ac, 0x05, 0x01) + set_lighting(0x00ad, 0x05, 0x01) + set_lighting(0x00ae, 0x05, 0x01) + set_lighting(0x00af, 0x05, 0x01) + set_lighting(0x00b0, 0x05, 0x01) + set_lighting(0x00b1, 0x05, 0x01) + set_lighting(0x00b2, 0x05, 0x01) + set_lighting(0x00b3, 0x05, 0x01) + set_lighting(0x00b4, 0x05, 0x01) + set_lighting(0x00b5, 0x05, 0x01) + set_lighting(0x00b6, 0x05, 0x01) + set_lighting(0x00b7, 0x05, 0x01) + set_lighting(0x00b8, 0x05, 0x01) + set_lighting(0x00b9, 0x05, 0x01) + set_lighting(0x00ba, 0x05, 0x01) + set_lighting(0x00bb, 0x05, 0x01) + set_lighting(0x00bc, 0x05, 0x01) + set_lighting(0x00be, 0x05, 0x01) + set_lighting(0x00bf, 0x05, 0x01) + set_lighting(0x00c0, 0x05, 0x01) + set_lighting(0x00c1, 0x05, 0x01) + set_lighting(0x00c2, 0x05, 0x01) + set_lighting(0x00c3, 0x05, 0x01) + set_lighting(0x00c4, 0x05, 0x01) + set_lighting(0x00c5, 0x05, 0x01) + set_lighting(0x00c6, 0x05, 0x01) + set_lighting(0x00c7, 0x05, 0x01) + set_lighting(0x00c8, 0x05, 0x01) + set_lighting(0x00c9, 0x05, 0x01) + set_lighting(0x00ca, 0x05, 0x01) + set_lighting(0x00cc, 0x05, 0x01) + set_lighting(0x00cd, 0x05, 0x01) + set_lighting(0x00ce, 0x05, 0x01) + set_lighting(0x00cf, 0x05, 0x01) + set_lighting(0x00d0, 0x05, 0x01) + set_lighting(0x00d1, 0x05, 0x01) + set_lighting(0x00d2, 0x05, 0x01) + set_lighting(0x00dc, 0x05, 0x01) + set_lighting(0x00dd, 0x05, 0x01) + set_lighting(0x00de, 0x05, 0x01) + set_lighting(0x00df, 0x05, 0x01) + set_lighting(0x00e0, 0x05, 0x01) + set_lighting(0x00e1, 0x05, 0x01) + set_lighting(0x00e2, 0x05, 0x01) + set_lighting(0x00e3, 0x05, 0x01) + set_lighting(0x00e4, 0x05, 0x01) + set_lighting(0x00e5, 0x05, 0x01) + set_lighting(0x00e6, 0x05, 0x01) + set_lighting(0x00f2, 0x05, 0x01) + set_lighting(0x00fa, 0x05, 0x01) + set_lighting(0x00fb, 0x05, 0x01) + set_lighting(0x00fc, 0x05, 0x01) + set_lighting(0x00fd, 0x05, 0x01) + set_lighting(0x00fe, 0x05, 0x01) + set_lighting(0x00ff, 0x05, 0x01) + set_lighting(0x0100, 0x05, 0x01) + set_lighting(0x0101, 0x05, 0x01) + set_lighting(0x0102, 0x05, 0x01) + set_lighting(0x0103, 0x05, 0x01) + set_lighting(0x0104, 0x05, 0x01) + set_lighting(0x0105, 0x05, 0x01) + set_lighting(0x0106, 0x05, 0x01) + set_lighting(0x0107, 0x05, 0x01) + set_lighting(0x0108, 0x05, 0x01) + set_lighting(0x0109, 0x05, 0x01) + set_lighting(0x010a, 0x05, 0x01) + set_lighting(0x010b, 0x05, 0x01) + set_lighting(0x010c, 0x05, 0x01) + set_lighting(0x010d, 0x05, 0x01) + set_lighting(0x010e, 0x05, 0x01) + set_lighting(0x00cb, 0x05, 0x01) + set_function(CHR_SELF, GFUNC_IDLE) + endfunction +}; + +struct ailists functions[] = { + { func1400_setup_counterop, 0x1400 }, + { func1001_objectives_failed_msg, 0x1001 }, + { func1002_intro, 0x1002 }, + { func1004_jon_msgs_gravedanger, 0x1004 }, + { func1005_jon_msgs_meetup, 0x1005 }, + { func1007_check_medpack_collected, 0x1007 }, + { func1008_spawngroup1, 0x1008 }, + { func1009_blow_up_wall, 0x1009 }, + { func100a_check_hangar_accessed, 0x100a }, + { func100b_check_jonathan_dead, 0x100b }, + { func100c_medpack_activation, 0x100c }, + { func100d_check_terminals_destroyed, 0x100d }, + { func100e_check_elvis_dead, 0x100e }, + { func100f_terminals, 0x100f }, + { func1010_check_end_level, 0x1010 }, + { func1011_unlock_doors_when_jo_escaping, 0x1011 }, + { func1012_hoverbike_auto_doors, 0x1012 }, + { func1013_spawngroup2, 0x1013 }, + { func1014_spawngroup3, 0x1014 }, + { func1015_spawngroup4, 0x1015 }, + { func1016_enable_guards_after_meetup, 0x1016 }, + { func1017_check_both_hangar_doors_open, 0x1017 }, + { func1018_unhide_guards_when_jo_escaping, 0x1018 }, + { func1019_enable_biotechs_after_stash, 0x1019 }, + { func101a_medpack_switch, 0x101a }, + { func101b_gas_sound, 0x101b }, + { func101c_setup_rtracker, 0x101c }, + { func101d_msg_medpackaroundhere, 0x101d }, + { func101e_msg_hookup, 0x101e }, + { func101f_msg_oil, 0x101f }, + { func1020_msg_jetbike, 0x1020 }, + { func1021_jo_escaping, 0x1021 }, + { func1022_gas_damage_joanna, 0x1022 }, + { func1023_gas_damage_velvet, 0x1023 }, + { func1024_wall_immune_to_explosives, 0x1024 }, + { func1026_ufo_spinning, 0x1026 }, + { func102e_keep_hangar_doors_open, 0x102e }, + { func102f_toggle_remotemines, 0x102f }, + { func1030_setup_medpack_glass, 0x1030 }, + { func1031_disable_chambers, 0x1031 }, + { func1032_unlock_door_after_hangar, 0x1032 }, + { func1433_start_lift, 0x1433 }, + { func1434_setup_lighting, 0x1434 }, + { func1002_intro, 0x0c00 }, + { func0c01_midcutscene, 0x0c01 }, + { func0c02_outro, 0x0c02 }, + { func0401_gas_damage, 0x0401 }, + { func0402_jonathan_waiting_for_meetup, 0x0402 }, + { func0403_init_jonathan, 0x0403 }, + { func0404_jonathan_following_and_mine, 0x0404 }, + { func0405_jonathan_shot_while_planting, 0x0405 }, + { func0406_unused_0406, 0x0406 }, + { func1008_spawngroup1_guard, 0x0407 }, + { func1013_spawngroup2_guard, 0x0408 }, + { func1014_spawngroup3_guard, 0x0409 }, + { func1015_spawngroup4_guard, 0x040a }, + { func040b_elvis_follow, 0x040b }, + { func040c_hidden_guardtype1, 0x040c }, + { func0413_jonathan_hangar, 0x0413 }, + { func040d_hidden_guardtype2, 0x040d }, + { func040e_hidden_biotech, 0x040e }, + { func040f_warp_jon_to_catwalk, 0x040f }, + { func1002_intro, 0x0410 }, + { func0c01_midcutscene, 0x0411 }, + { func0412_init_elvis, 0x0412 }, + { func0c02_outro, 0x0414 }, + { func0415_ufo_exit, 0x0415 }, + { func0416_spawn_during_follow, 0x0416 }, + { func0417_init_follower_clone, 0x0417 }, + { func0418_follower_clone, 0x0418 }, + { func0419_init_biotech, 0x0419 }, + { func041a_init_superdragon_guard, 0x041a }, + { func041b_jonathan_after_terminals, 0x041b }, + { func041c_elvis_go_to_ufo, 0x041c }, + { NULL, 0 }, +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + diff --git a/src/setup/setupuff.c b/src/setup/setupuff.c new file mode 100644 index 000000000..158f9a9fd --- /dev/null +++ b/src/setup/setupuff.c @@ -0,0 +1,39 @@ +// +// Stage ID 0x4d +// + +#include "../include/setup.h" + +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; + +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + endprops +}; + +u8 intro[] = { + outfit(OUTFIT_DEFAULT) + endintro +}; + +struct aipaths paths[] = { + { NULL, 0, 0 }, +}; + +struct ailists functions[] = { + { NULL, 0 }, +}; + diff --git a/asm/setup/setupwax.s b/src/setup/setupwax.c similarity index 54% rename from asm/setup/setupwax.s rename to src/setup/setupwax.c index 6c703ebef..46a678fa5 100644 --- a/asm/setup/setupwax.s +++ b/src/setup/setupwax.c @@ -1,2119 +1,2215 @@ -# -# Mr. Blonde's Revenge -# +// +// Mr. Blonde's Revenge +// -.set HEADERLEN, 0x20 -.include "asm/include/setup.inc" +#include "../include/setup.h" // Characters -.set CHR_CHIEF, 0x21 -.set CHR_CASS, 0x22 +#define CHR_CHIEF 0x21 +#define CHR_CASS 0x22 // Objects -.set OBJ_LIGHTSWITCH, 0x14 -.set OBJ_CHIEF_LIFT, 0x4e -.set OBJ_BLONDE_LIFT, 0x4f -.set OBJ_SHUTTLE1, 0x51 -.set OBJ_JOANNA_BOMB, 0x52 -.set OBJ_VELVET_BOMB, 0x53 -.set OBJ_PLANTED_BOMB, 0x54 -.set OBJ_LOBBYDOOR_LEFT, 0x5f -.set OBJ_LOBBYDOOR_RIGHT, 0x60 -.set OBJ_SHUTTLE2, 0x63 +#define OBJ_LIGHTSWITCH 0x14 +#define OBJ_CHIEF_LIFT 0x4e +#define OBJ_BLONDE_LIFT 0x4f +#define OBJ_SHUTTLE1 0x51 +#define OBJ_JOANNA_BOMB 0x52 +#define OBJ_VELVET_BOMB 0x53 +#define OBJ_PLANTED_BOMB 0x54 +#define OBJ_LOBBYDOOR_LEFT 0x5f +#define OBJ_LOBBYDOOR_RIGHT 0x60 +#define OBJ_SHUTTLE2 0x63 // Stage flags -.set STAGEFLAG_LIGHTS_OFF, 0x00000100 -.set STAGEFLAG_CASS_DEAD, 0x00000200 -.set STAGEFLAG_CASS_CAPTURED, 0x00000400 -.set STAGEFLAG_CHIEF_DEAD, 0x00000800 -.set STAGEFLAG_BOMB_PLANTED, 0x00001000 -.set STAGEFLAG_BOMB_EXPIRED, 0x00002000 -.set STAGEFLAG_BOMB_UNPLANTABLE, 0x00004000 -.set STAGEFLAG_TRIGGER_YWSM, 0x00008000 -.set STAGEFLAG_CASS_SAID_YWSM, 0x00010000 // "You won't shoot me" +#define STAGEFLAG_LIGHTS_OFF 0x00000100 +#define STAGEFLAG_CASS_DEAD 0x00000200 +#define STAGEFLAG_CASS_CAPTURED 0x00000400 +#define STAGEFLAG_CHIEF_DEAD 0x00000800 +#define STAGEFLAG_BOMB_PLANTED 0x00001000 +#define STAGEFLAG_BOMB_EXPIRED 0x00002000 +#define STAGEFLAG_BOMB_UNPLANTABLE 0x00004000 +#define STAGEFLAG_TRIGGER_YWSM 0x00008000 +#define STAGEFLAG_CASS_SAID_YWSM 0x00010000 // "You won't shoot me" // Functions -.set FUNC_INIT_HOVERCAR, 0x0401 -.set FUNC_INIT_60HP_GUARD, 0x040e -.set FUNC_INIT_40HP_GUARD, 0x040f -.set FUNC_INIT_SEARCHING_GUARD, 0x0410 -.set FUNC_CASS_IN_OFFICE, 0x0411 -.set FUNC_INIT_CASS, 0x0412 -.set FUNC_CASS_RUNNING, 0x0413 -.set FUNC_INIT_CHIEF, 0x0414 -.set FUNC_CHIEF, 0x0415 -.set FUNC_OUTRO, 0x0417 +#define FUNC_INIT_HOVERCAR 0x0401 +#define FUNC_INIT_60HP_GUARD 0x040e +#define FUNC_INIT_40HP_GUARD 0x040f +#define FUNC_INIT_SEARCHING_GUARD 0x0410 +#define FUNC_CASS_IN_OFFICE 0x0411 +#define FUNC_INIT_CASS 0x0412 +#define FUNC_CASS_RUNNING 0x0413 +#define FUNC_INIT_CHIEF 0x0414 +#define FUNC_CHIEF 0x0415 +#define FUNC_OUTRO 0x0417 -props: - briefing 0, 0x4a01 - briefing 1, 0x4a00 - briefing 2, 0x4a02 - briefing 3, 0x4a03 +u8 intro[]; +u8 props[]; +struct aipaths paths[]; +struct ailists functions[]; - beginobjective 0, 0x4a05, DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Plant explosive device in lab lift" - complete_flags STAGEFLAG_BOMB_PLANTED - fail_flags STAGEFLAG_BOMB_EXPIRED - fail_flags STAGEFLAG_BOMB_UNPLANTABLE +void *setup[] = { + NULL, + NULL, + NULL, + intro, + props, + paths, + functions, + NULL, +}; + +u8 props[] = { + briefing(0, 0x4a01) + briefing(1, 0x4a00) + briefing(2, 0x4a02) + briefing(3, 0x4a03) + + beginobjective(0, 0x4a05, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Plant explosive device in lab lift" + complete_flags(STAGEFLAG_BOMB_PLANTED) + fail_flags(STAGEFLAG_BOMB_EXPIRED) + fail_flags(STAGEFLAG_BOMB_UNPLANTABLE) endobjective - beginobjective 1, 0x4a06, DIFFBIT_PA | DIFFBIT_PD // "Eliminate dataDyne Captain" - complete_flags STAGEFLAG_CHIEF_DEAD + beginobjective(1, 0x4a06, (DIFFBIT_PA | DIFFBIT_PD)) // "Eliminate dataDyne Captain" + complete_flags(STAGEFLAG_CHIEF_DEAD) endobjective - beginobjective 2, 0x4a04, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Locate and escort Cassandra to helipad" - complete_flags STAGEFLAG_CASS_CAPTURED - fail_flags STAGEFLAG_CASS_DEAD + beginobjective(2, 0x4a04, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Locate and escort Cassandra to helipad" + complete_flags(STAGEFLAG_CASS_CAPTURED) + fail_flags(STAGEFLAG_CASS_DEAD) endobjective - tag 0x3d, 1 - vent_fan 0x0100, MODEL_DD_FANROOF, 0x0095, 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_DD_FANROOF, 0x0096, 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_DD_FANROOF, 0x0097, 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_DD_FANROOF, 0x0098, 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_DD_FANWALL, 0x0099, 0x000204e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000222, 0x00000000, 0x00000002, 0x01000000 - tag 0x2e, 1 - door 0x0100, MODEL_DOOR4A_G5, 0x022b, 0x00000400, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001200, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DOOR4B_G5, 0x022c, 0x00000400, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x2f, -1 - door 0x0100, MODEL_DD_DECODOOR, 0x0226, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_DECODOOR, 0x0227, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag OBJ_LOBBYDOOR_LEFT, 1 - door 0x0100, MODEL_DD_LIFTDOOR, 0x0229, 0x04000400, 0x20000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x022a, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag OBJ_LOBBYDOOR_RIGHT, -1 - tag 0x61, 1 - door 0x0100, MODEL_DD_LIFTDOOR, 0x0229, 0x04000400, 0x20000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x022a, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x62, -1 - tag 0x33, 1 - door 0x0100, MODEL_DD_SECRETDOOR, 0x0228, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x02140000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_SECRETDOOR, 0x00bc, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x02140000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00a0, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00a1, 0x10000400, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00a2, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00a3, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00a4, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00a5, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00a6, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00a7, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00b2, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00b3, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00a8, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00a9, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00aa, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00ab, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00ac, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00ad, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00ae, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00b1, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x0e, 2 - tag 0x0f, 2 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00af, 0x30000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_OFFICEDOOR, 0x00b0, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_SERVICEDOOR, 0x00b4, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_SERVICEDOOR, 0x00b5, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_SERVICEDOOR, 0x00b6, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000020, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_SERVICEDOOR, 0x00b7, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x40, 1 - door 0x0100, MODEL_DD_SERVICEDOOR, 0x00bb, 0x10000400, 0x30000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_WINDDOOR, 0x00b8, 0x14000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_WINDDOOR, 0x00b9, 0xb4000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_WINDDOOR, 0x00ba, 0x94000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x57, 8 - tag 0x58, 8 - tag 0x59, 8 - tag 0x5a, 8 - tag 0x55, 3 - tag 0x50, 3 - tag OBJ_CHIEF_LIFT, 1 - lift 0x0100, MODEL_DD_LIFTR, 0x0256, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0256, 0x012e, 0x012fffff, 0x00000001, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x0224, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x009c, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x009b, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x009a, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -4, -5, 0, 0 - link_objects -4, -6, 0, 2 - link_objects -4, -7, 0, 1 - tag 0x5b, 7 - tag 0x5c, 7 - tag 0x5d, 7 - tag 0x5e, 7 - tag 0x56, 2 - tag OBJ_BLONDE_LIFT, 1 - lift 0x0100, MODEL_DD_LIFTR, 0x012d, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012d, 0x0255, 0xffffffff, 0x00000001, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x009d, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x009e, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x009f, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - door 0x0100, MODEL_DD_LIFTDOOR, 0x0225, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000 - link_objects -4, -5, 0, 0 - link_objects -2, -6, 0, 1 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00bd, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00be, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00bf, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00c0, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00c1, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00c2, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00c3, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00c4, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00c5, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00c6, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00c7, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00c8, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00ca, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00cb, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00cc, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00cd, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00ce, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x00cf, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x0235, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x0236, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x0237, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x0238, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x0239, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0200, MODEL_DD_PLANTSPIKE, 0x023a, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x011b, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x011c, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00df, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e0, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e1, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e2, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e3, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e4, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e5, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e6, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e7, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0123, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0124, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0125, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0126, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0127, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0128, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0129, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x012a, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e8, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00e9, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00ea, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00eb, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00ec, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00ed, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00ee, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00ef, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f0, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f1, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f2, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f3, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f4, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f5, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f6, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f7, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f8, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00f9, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00fa, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00fb, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00fc, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00fd, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00fe, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x00ff, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0100, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0101, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0102, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0103, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0104, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0105, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0106, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0107, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0108, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0109, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x010a, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x010b, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x010c, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x010d, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x010e, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x010f, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0110, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0111, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0112, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0113, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0114, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0117, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0118, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0119, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x011a, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x0248, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x0249, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x024a, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x024b, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x024c, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x024d, 0x04000a62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x024e, 0x04000a62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x024f, 0x04000a62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW, 0x0250, 0x04000a62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW_FOYER, 0x0251, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - glass 0x0100, MODEL_DD_WINDOW_FOYER, 0x0252, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000 - object 0x0100, MODEL_DD_REDSOFA, 0x00d3, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDSOFA, 0x00d4, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDARM, 0x00d5, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDARM, 0x00d2, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x37, 1 - object 0x0100, MODEL_DD_REDARM, 0x00d7, 0x000205e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDARM, 0x00d8, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x38, 1 - object 0x0100, MODEL_DD_REDARM, 0x00d9, 0x000205e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDSOFA, 0x00d6, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x00da, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDSOFA, 0x0253, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDARM, 0x0254, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x3b, 1 - object 0x0100, MODEL_DD_CHAIR, 0x01a4, 0x000205e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01a3, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_PC1, 0x01a2, 0x000004e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x3c, 1 - object 0x0100, MODEL_DD_CHAIR, 0x01a5, 0x000205e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01a6, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_PC1, 0x01a7, 0x000004e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x3a, 1 - object 0x0100, MODEL_DD_CHAIR, 0x01a8, 0x000205e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01a9, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_PC1, 0x01aa, 0x000004e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x39, 1 - object 0x0100, MODEL_DD_CHAIR, 0x01ab, 0x000205e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01ac, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_PC1, 0x01ad, 0x000004e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x01b0, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01af, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_PC1, 0x01ae, 0x000004e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01b1, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x0d, 1 - object 0x0100, MODEL_LIGHTSWITCH2, 0x013e, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x01b3, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01b4, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_PC1, 0x01b5, 0x000004e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01b2, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x0c, 1 - object 0x0100, MODEL_PC1, 0x01b6, 0x000004e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDSOFA, 0x00db, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x36, 1 - object 0x0100, MODEL_DD_CHAIR, 0x01b7, 0x000205e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x01b8, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_PC1, 0x01b9, 0x000004e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x35, 1 - object 0x0100, MODEL_DD_REDARM, 0x00dc, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_REDARM, 0x00dd, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x022d, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x022e, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_CHAIR, 0x0232, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x0231, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_PC1, 0x0230, 0x000004e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_PC1, 0x0233, 0x000004e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_PC1, 0x0234, 0x000004e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - chr 0x00000200, 0x01, 0x01e9, BODY_FEM_GUARD, HEAD_RANDOM, 0x040b, -1, -1, 1000, 100, 0xc000a701, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x14, 0x020f, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_40HP_GUARD, -1, -1, 500, 100, 0xe0102000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x15, 0x020e, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_40HP_GUARD, -1, -1, 500, 100, 0xc0002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0015, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x16, 0x0210, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_40HP_GUARD, -1, -1, 500, 100, 0xc0002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x02, 0x01eb, BODY_FEM_GUARD, HEAD_RANDOM, 0x040c, -1, -1, 1000, 100, 0xc000a701, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - chr 0x00000200, 0x0f, 0x021e, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_40HP_GUARD, -1, -1, 500, 100, 0xe098a000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 + tag(0x3d, 1) + vent_fan(0x0100, MODEL_DD_FANROOF, 0x0095, 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_DD_FANROOF, 0x0096, 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_DD_FANROOF, 0x0097, 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_DD_FANROOF, 0x0098, 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_DD_FANWALL, 0x0099, 0x000204e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000222, 0x00000000, 0x00000002, 0x01000000) + tag(0x2e, 1) + door(0x0100, MODEL_DOOR4A_G5, 0x022b, 0x00000400, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001200, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DOOR4B_G5, 0x022c, 0x00000400, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x2f, -1) + door(0x0100, MODEL_DD_DECODOOR, 0x0226, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_DECODOOR, 0x0227, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(OBJ_LOBBYDOOR_LEFT, 1) + door(0x0100, MODEL_DD_LIFTDOOR, 0x0229, 0x04000400, 0x20000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x022a, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(OBJ_LOBBYDOOR_RIGHT, -1) + tag(0x61, 1) + door(0x0100, MODEL_DD_LIFTDOOR, 0x0229, 0x04000400, 0x20000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x022a, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000040, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x62, -1) + tag(0x33, 1) + door(0x0100, MODEL_DD_SECRETDOOR, 0x0228, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x02140000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_SECRETDOOR, 0x00bc, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x02140000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00a0, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00a1, 0x10000400, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00a2, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00a3, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00a4, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00a5, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00a6, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00a7, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00b2, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00b3, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00a8, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00a9, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00aa, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00ab, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00ac, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00ad, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00ae, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00b1, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x0e, 2) + tag(0x0f, 2) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00af, 0x30000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_OFFICEDOOR, 0x00b0, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_SERVICEDOOR, 0x00b4, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_SERVICEDOOR, 0x00b5, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_SERVICEDOOR, 0x00b6, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000020, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_SERVICEDOOR, 0x00b7, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x40, 1) + door(0x0100, MODEL_DD_SERVICEDOOR, 0x00bb, 0x10000400, 0x30000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_WINDDOOR, 0x00b8, 0x14000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_WINDDOOR, 0x00b9, 0xb4000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_WINDDOOR, 0x00ba, 0x94000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0x00000005, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000b00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x57, 8) + tag(0x58, 8) + tag(0x59, 8) + tag(0x5a, 8) + tag(0x55, 3) + tag(0x50, 3) + tag(OBJ_CHIEF_LIFT, 1) + lift(0x0100, MODEL_DD_LIFTR, 0x0256, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0256, 0x012e, 0x012fffff, 0x00000001, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x0224, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x009c, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x009b, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x009a, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-4, -5, 0, 0) + link_objects(-4, -6, 0, 2) + link_objects(-4, -7, 0, 1) + tag(0x5b, 7) + tag(0x5c, 7) + tag(0x5d, 7) + tag(0x5e, 7) + tag(0x56, 2) + tag(OBJ_BLONDE_LIFT, 1) + lift(0x0100, MODEL_DD_LIFTR, 0x012d, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x012d, 0x0255, 0xffffffff, 0x00000001, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x009d, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x009e, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x009f, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + door(0x0100, MODEL_DD_LIFTDOOR, 0x0225, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) + link_objects(-4, -5, 0, 0) + link_objects(-2, -6, 0, 1) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00bd, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00be, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00bf, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00c0, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00c1, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00c2, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00c3, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00c4, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00c5, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00c6, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00c7, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00c8, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00ca, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00cb, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00cc, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00cd, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00ce, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00cf, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x0235, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x0236, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x0237, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x0238, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x0239, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x023a, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x011b, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x011c, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00df, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e0, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e1, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e2, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e3, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e4, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e5, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e6, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e7, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0123, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0124, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0125, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0126, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0127, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0128, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0129, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x012a, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e8, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00e9, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00ea, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00eb, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00ec, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00ed, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00ee, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00ef, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f0, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f1, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f2, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f3, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f4, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f5, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f6, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f7, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f8, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00f9, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00fa, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00fb, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00fc, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00fd, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00fe, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x00ff, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0100, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0101, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0102, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0103, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0104, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0105, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0106, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0107, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0108, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0109, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x010a, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x010b, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x010c, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x010d, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x010e, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x010f, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0110, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0111, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0112, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0113, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0114, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0117, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0118, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0119, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x011a, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x0248, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x0249, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x024a, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x024b, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x024c, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x024d, 0x04000a62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x024e, 0x04000a62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x024f, 0x04000a62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW, 0x0250, 0x04000a62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW_FOYER, 0x0251, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + glass(0x0100, MODEL_DD_WINDOW_FOYER, 0x0252, 0x04000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) + stdobject(0x0100, MODEL_DD_REDSOFA, 0x00d3, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDSOFA, 0x00d4, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDARM, 0x00d5, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDARM, 0x00d2, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x37, 1) + stdobject(0x0100, MODEL_DD_REDARM, 0x00d7, 0x000205e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDARM, 0x00d8, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x38, 1) + stdobject(0x0100, MODEL_DD_REDARM, 0x00d9, 0x000205e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDSOFA, 0x00d6, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x00da, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDSOFA, 0x0253, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDARM, 0x0254, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x3b, 1) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01a4, 0x000205e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01a3, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_PC1, 0x01a2, 0x000004e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x3c, 1) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01a5, 0x000205e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01a6, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_PC1, 0x01a7, 0x000004e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x3a, 1) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01a8, 0x000205e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01a9, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_PC1, 0x01aa, 0x000004e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x39, 1) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01ab, 0x000205e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01ac, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_PC1, 0x01ad, 0x000004e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01b0, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01af, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_PC1, 0x01ae, 0x000004e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01b1, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x0d, 1) + stdobject(0x0100, MODEL_LIGHTSWITCH2, 0x013e, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01b3, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01b4, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_PC1, 0x01b5, 0x000004e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01b2, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x0c, 1) + stdobject(0x0100, MODEL_PC1, 0x01b6, 0x000004e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDSOFA, 0x00db, 0x000005e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x36, 1) + stdobject(0x0100, MODEL_DD_CHAIR, 0x01b7, 0x000205e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x01b8, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_PC1, 0x01b9, 0x000004e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x35, 1) + stdobject(0x0100, MODEL_DD_REDARM, 0x00dc, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_REDARM, 0x00dd, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x022d, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x022e, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_CHAIR, 0x0232, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x0231, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_PC1, 0x0230, 0x000004e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_PC1, 0x0233, 0x000004e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_PC1, 0x0234, 0x000004e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + chr(0x00000200, 0x01, 0x01e9, BODY_FEM_GUARD, HEAD_RANDOM, 0x040b, -1, -1, 1000, 100, 0xc000a701, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x14, 0x020f, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_40HP_GUARD, -1, -1, 500, 100, 0xe0102000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x15, 0x020e, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_40HP_GUARD, -1, -1, 500, 100, 0xc0002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0015, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x16, 0x0210, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_40HP_GUARD, -1, -1, 500, 100, 0xc0002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x02, 0x01eb, BODY_FEM_GUARD, HEAD_RANDOM, 0x040c, -1, -1, 1000, 100, 0xc000a701, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + chr(0x00000200, 0x0f, 0x021e, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_40HP_GUARD, -1, -1, 500, 100, 0xe098a000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) - weapon 0x0100, MODEL_CHRCMP150, 0x000f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000f, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - link_collectibles -1, -2 + weapon(0x0100, MODEL_CHRCMP150, 0x000f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000f, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + link_collectibles(-1, -2) - chr 0x00000200, 0x10, 0x021f, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_40HP_GUARD, -1, -1, 500, 100, 0xc0882000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0010, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x10, 0x021f, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_40HP_GUARD, -1, -1, 500, 100, 0xc0882000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0010, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x11, 0x0220, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_40HP_GUARD, -1, -1, 500, 100, 0xc0882000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0011, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x11, 0x0220, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_40HP_GUARD, -1, -1, 500, 100, 0xc0882000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0011, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x13, 0x0222, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_40HP_GUARD, -1, -1, 500, 100, 0xc0882000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0013, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x13, 0x0222, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_40HP_GUARD, -1, -1, 500, 100, 0xc0882000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0013, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x0e, 0x01fe, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_SEARCHING_GUARD, 0x0218, -1, 1000, 100, 0xc088c080, 0x10000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x0e, 0x01fe, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_SEARCHING_GUARD, 0x0218, -1, 1000, 100, 0xc088c080, 0x10000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x12, 0x01fc, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_SEARCHING_GUARD, 0x0218, -1, 1000, 100, 0xc088c080, 0x10000000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0012, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x12, 0x01fc, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_SEARCHING_GUARD, 0x0218, -1, 1000, 100, 0xc088c080, 0x10000000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0012, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x03, 0x021c, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_40HP_GUARD, 0x0218, -1, 1000, 100, 0xc08cc080, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0003, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x03, 0x021c, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_40HP_GUARD, 0x0218, -1, 1000, 100, 0xc08cc080, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0003, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x04, 0x021d, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_40HP_GUARD, 0x0218, -1, 1000, 100, 0xc08cc080, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRCMP150, 0x0004, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x04, 0x021d, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_40HP_GUARD, 0x0218, -1, 1000, 100, 0xc08cc080, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRCMP150, 0x0004, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x00, 0x007d, BODY_FEM_GUARD, HEAD_RANDOM, 0x0402, -1, -1, 100, 100, 0xcc080000, 0x02000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x00, 0x007d, BODY_FEM_GUARD, HEAD_RANDOM, 0x0402, -1, -1, 100, 100, 0xcc080000, 0x02000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x0b, 0x008e, BODY_FEM_GUARD, HEAD_RANDOM, 0x0403, -1, -1, 100, 100, 0xc8080000, 0x02000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x000b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x0b, 0x008e, BODY_FEM_GUARD, HEAD_RANDOM, 0x0403, -1, -1, 100, 100, 0xc8080000, 0x02000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x000b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x09, 0x0081, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_60HP_GUARD, -1, -1, 100, 100, 0xe8980000, 0x02000000, 0x02, 0x04, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x09, 0x0081, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_60HP_GUARD, -1, -1, 100, 100, 0xe8980000, 0x02000000, 0x02, 0x04, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) - chr 0x00004000, 0x1e, 0x01ce, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_60HP_GUARD, -1, -1, 1000, 100, 0xe8102000, 0x00000100, 0x02, 0x05, 0x39, 0, 0x00020000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x001e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 + chr(0x00004000, 0x1e, 0x01ce, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_60HP_GUARD, -1, -1, 1000, 100, 0xe8102000, 0x00000100, 0x02, 0x05, 0x39, 0, 0x00020000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x001e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) - chr 0x00004000, 0x1f, 0x01cf, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_60HP_GUARD, -1, -1, 1000, 100, 0xe8000000, 0x00000100, 0x02, 0x05, 0x3a, 0, 0x00020000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x001f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 + chr(0x00004000, 0x1f, 0x01cf, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_60HP_GUARD, -1, -1, 1000, 100, 0xe8000000, 0x00000100, 0x02, 0x05, 0x3a, 0, 0x00020000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x001f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) - chr 0x00004000, 0x20, 0x01d0, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_60HP_GUARD, -1, -1, 1000, 100, 0xe8182000, 0x00000100, 0x02, 0x05, 0x3b, 0, 0x00020000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x0020, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 + chr(0x00004000, 0x20, 0x01d0, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_60HP_GUARD, -1, -1, 1000, 100, 0xe8182000, 0x00000100, 0x02, 0x05, 0x3b, 0, 0x00020000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x0020, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x07, 0x0058, BODY_FEM_GUARD, HEAD_RANDOM, 0x0404, -1, -1, 100, 100, 0xc008a000, 0x02000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x0007, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x07, 0x0058, BODY_FEM_GUARD, HEAD_RANDOM, 0x0404, -1, -1, 100, 100, 0xc008a000, 0x02000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x0007, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x0a, 0x0057, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_60HP_GUARD, -1, -1, 100, 100, 0xe088a000, 0x02000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x000a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x0a, 0x0057, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_60HP_GUARD, -1, -1, 100, 100, 0xe088a000, 0x02000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x000a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x0c, 0x0060, BODY_FEM_GUARD, HEAD_RANDOM, 0x0405, -1, -1, 100, 100, 0xc008a000, 0x02000000, 0x02, 0x06, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x0c, 0x0060, BODY_FEM_GUARD, HEAD_RANDOM, 0x0405, -1, -1, 100, 100, 0xc008a000, 0x02000000, 0x02, 0x06, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) - chr 0x00004000, 0x18, 0x01c7, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_60HP_GUARD, -1, -1, 1000, 100, 0xc0002000, 0x00000100, 0x02, 0x07, 0x35, 0, 0x00030000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 + chr(0x00004000, 0x18, 0x01c7, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_60HP_GUARD, -1, -1, 1000, 100, 0xc0002000, 0x00000100, 0x02, 0x07, 0x35, 0, 0x00030000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) - chr 0x00004000, 0x19, 0x01c8, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_60HP_GUARD, -1, -1, 1000, 100, 0xc0002400, 0x00000100, 0x02, 0x07, 0x36, 0, 0x00020000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x0019, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 + chr(0x00004000, 0x19, 0x01c8, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_60HP_GUARD, -1, -1, 1000, 100, 0xc0002400, 0x00000100, 0x02, 0x07, 0x36, 0, 0x00020000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x0019, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) - chr 0x00004200, 0x1a, 0x01c9, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_60HP_GUARD, -1, -1, 1000, 100, 0xe0102400, 0x00000100, 0x02, 0x07, -1, 0, 0x00010000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 + chr(0x00004200, 0x1a, 0x01c9, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_60HP_GUARD, -1, -1, 1000, 100, 0xe0102400, 0x00000100, 0x02, 0x07, -1, 0, 0x00010000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) - chr 0x00004000, 0x1b, 0x01ca, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_60HP_GUARD, -1, -1, 1000, 100, 0xc0002000, 0x00000100, 0x02, 0x08, 0x37, 0, 0x00030000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x001b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 + chr(0x00004000, 0x1b, 0x01ca, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_60HP_GUARD, -1, -1, 1000, 100, 0xc0002000, 0x00000100, 0x02, 0x08, 0x37, 0, 0x00030000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x001b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) - chr 0x00004000, 0x1c, 0x01cb, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_60HP_GUARD, -1, -1, 1000, 100, 0xc0002000, 0x00000100, 0x02, 0x08, 0x38, 0, 0x00030000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x001c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 + chr(0x00004000, 0x1c, 0x01cb, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_60HP_GUARD, -1, -1, 1000, 100, 0xc0002000, 0x00000100, 0x02, 0x08, 0x38, 0, 0x00030000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x001c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) - chr 0x00004200, 0x1d, 0x01cc, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_60HP_GUARD, -1, -1, 1000, 100, 0xe0102000, 0x00000100, 0x02, 0x08, -1, 0, 0x00010000 - weapon 0x0100, MODEL_CHRSHOTGUN, 0x001d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000 + chr(0x00004200, 0x1d, 0x01cc, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_60HP_GUARD, -1, -1, 1000, 100, 0xe0102000, 0x00000100, 0x02, 0x08, -1, 0, 0x00010000) + weapon(0x0100, MODEL_CHRSHOTGUN, 0x001d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x08, 0x0028, BODY_DDSHOCK, HEAD_DDSHOCK, 0x0408, -1, -1, 500, 100, 0x4808aa80, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDY357, 0x0008, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357MAGNUM, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x08, 0x0028, BODY_DDSHOCK, HEAD_DDSHOCK, 0x0408, -1, -1, 500, 100, 0x4808aa80, 0x00000000, 0x02, 0x09, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDY357, 0x0008, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357MAGNUM, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x0d, 0x006f, BODY_DDSHOCK, HEAD_DDSHOCK, 0x0409, -1, -1, 100, 100, 0x4808a880, 0x00002000, 0x02, 0x09, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDY357, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357MAGNUM, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x0d, 0x006f, BODY_DDSHOCK, HEAD_DDSHOCK, 0x0409, -1, -1, 100, 100, 0x4808a880, 0x00002000, 0x02, 0x09, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDY357, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357MAGNUM, 0x00ffffff, 0x00000000) - chr 0x00004200, 0x17, 0x01c6, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_40HP_GUARD, -1, -1, 2000, 100, 0x4000ac00, 0x00002100, 0x02, 0x09, -1, 0, 0x00010000 - weapon 0x0100, MODEL_CHRDY357, 0x0017, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357MAGNUM, 0x00ffffff, 0x00000000 + chr(0x00004200, 0x17, 0x01c6, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_40HP_GUARD, -1, -1, 2000, 100, 0x4000ac00, 0x00002100, 0x02, 0x09, -1, 0, 0x00010000) + weapon(0x0100, MODEL_CHRDY357, 0x0017, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357MAGNUM, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x06, 0x0011, BODY_DDSHOCK, HEAD_DDSHOCK, 0x0407, 0x001d, -1, 1000, 9, 0x4000ae08, 0x0000a080, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDY357, 0x0006, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357MAGNUM, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x06, 0x0011, BODY_DDSHOCK, HEAD_DDSHOCK, 0x0407, 0x001d, -1, 1000, 9, 0x4000ae08, 0x0000a080, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDY357, 0x0006, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357MAGNUM, 0x00ffffff, 0x00000000) - chr 0x00000200, 0x05, 0x01c0, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_40HP_GUARD, 0x001e, -1, 1000, 100, 0x4820ae88, 0x00002000, 0x02, 0x01, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRDY357, 0x0005, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357MAGNUM, 0x00ffffff, 0x00000000 + chr(0x00000200, 0x05, 0x01c0, BODY_DDSHOCK, HEAD_DDSHOCK, FUNC_INIT_40HP_GUARD, 0x001e, -1, 1000, 100, 0x4820ae88, 0x00002000, 0x02, 0x01, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRDY357, 0x0005, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357MAGNUM, 0x00ffffff, 0x00000000) - chr 0x00010400, CHR_CASS, 0x0133, BODY_CASSANDRA, HEAD_CASSANDRA, FUNC_INIT_CASS, -1, -1, 1000, 100, 0x8000c400, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000 - chr 0x00004000, CHR_CHIEF, 0x0223, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_CHIEF, -1, -1, 1000, 100, 0xc008a000, 0x00000100, 0x02, 0x0b, -1, 0, 0x00000000 - weapon 0x0100, MODEL_CHRFALCON2, CHR_CHIEF, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2, 0x00ffffff, 0x00000000 - weapon 0x0100, MODEL_CHRFALCON2, CHR_CHIEF, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2, 0x00ffffff, 0x00000000 + chr(0x00010400, CHR_CASS, 0x0133, BODY_CASSANDRA, HEAD_CASSANDRA, FUNC_INIT_CASS, -1, -1, 1000, 100, 0x8000c400, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000) + chr(0x00004000, CHR_CHIEF, 0x0223, BODY_FEM_GUARD, HEAD_RANDOM, FUNC_INIT_CHIEF, -1, -1, 1000, 100, 0xc008a000, 0x00000100, 0x02, 0x0b, -1, 0, 0x00000000) + weapon(0x0100, MODEL_CHRFALCON2, CHR_CHIEF, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2, 0x00ffffff, 0x00000000) + weapon(0x0100, MODEL_CHRFALCON2, CHR_CHIEF, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2, 0x00ffffff, 0x00000000) - link_collectibles -1, -2 - tag 0x1f, 1 - hover_vehicle 0x004c, MODEL_DD_HOVCOP, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x20, 1 - hover_vehicle 0x004c, MODEL_DD_HOVCOP, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x21, 1 - hover_vehicle 0x004c, MODEL_DD_HOVCAR, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x22, 1 - hover_vehicle 0x004c, MODEL_DD_HOVCAR, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x23, 1 - hover_vehicle 0x004c, MODEL_DD_HOVMOTO, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x24, 1 - hover_vehicle 0x004c, MODEL_DD_HOVMOTO, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x25, 1 - hover_vehicle 0x004c, MODEL_DD_HOVTRUCK, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x26, 1 - hover_vehicle 0x004c, MODEL_DD_HOVTRUCK, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x27, 1 - hover_vehicle 0x004c, MODEL_DD_HOVCAB, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - tag 0x28, 1 - hover_vehicle 0x004c, MODEL_DD_HOVCAB, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - link_scenery 1, 0, 2 - door 0x0100, MODEL_DD_AC_UNEXP, 0x019f, 0x13500d00, 0x20304300, 0x04000000, 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_DD_AC_EXP, 0x01a1, 0x031204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - link_scenery 1, 0, 2 - door 0x0100, MODEL_DD_ACBOT_UNEXP, 0x019e, 0x13500d00, 0x20304300, 0x04000000, 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_DD_ACBOT_EXP, 0x01a0, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0140, 0x00020101, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0141, 0x00020101, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0142, 0x00020101, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_A51_CRATE2, 0x0143, 0x00020101, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_STONEDESK, 0x0134, 0x000205e1, 0x00204000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_PC1, 0x0132, 0x000004e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - camera 0x0100, MODEL_CCTV_PD, 0x0136, 0x00000002, 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x00110000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000002bc, 0x00000000 - camera 0x0100, MODEL_CCTV_PD, 0x0137, 0x00000002, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000002bc, 0x00000000 - camera 0x0100, MODEL_CCTV_PD, 0x0138, 0x00000002, 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x00190000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000002bc, 0x00000000 - camera 0x0100, MODEL_CCTV_PD, 0x0139, 0x00000002, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x001d0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000 - camera 0x0100, MODEL_CCTV_PD, 0x013a, 0x00000002, 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x00670000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000002bc, 0x00000000 - camera 0x0100, MODEL_CCTV_PD, 0x013b, 0x00000002, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x00760000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000002bc, 0x00000000 - camera2 0x0000, 0xfffd05c6, 0xfff25662, 0x000013f6, 0x005a0000, 0x00063f8f, 0x00000219 - tag 0x09, -1 - camera2 0x0000, 0xffff51d2, 0xfffd0422, 0x00000c58, 0x00060000, 0x0005f5c2, 0x00000219 - tag 0x15, -1 - camera2 0x0000, 0xffff67da, 0xfffd8eec, 0xfffe7c44, 0x0004a147, 0x0005f851, 0x00000219 - tag 0x16, -1 - tag 0x04, 1 - multimonitor 0x0099, MODEL_COMHUB, 0x025c, 0x00000002, 0x00000001, 0x00000000, 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 0x03, 1 - multimonitor 0x0099, MODEL_COMHUB, 0x013c, 0x00000002, 0x00000001, 0x00000000, 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 OBJ_LIGHTSWITCH, 1 - object 0x0100, MODEL_LIGHTSWITCH, 0x013d, 0x10000002, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x10, 1 - multimonitor 0x0099, MODEL_PD_CONSOLE, 0x0258, 0x000001a1, 0x00000000, 0x00000000, 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, 0x03030000 - tag 0x11, 1 - multimonitor 0x0099, MODEL_PD_CONSOLE, 0x0259, 0x000001a1, 0x00000000, 0x00000000, 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, 0x03030000 - tag 0x12, 1 - multimonitor 0x0099, MODEL_PD_CONSOLE, 0x025a, 0x000001a1, 0x00000000, 0x00000000, 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, 0x03030000 - tag 0x13, 1 - multimonitor 0x0099, MODEL_PD_CONSOLE, 0x025b, 0x000001a1, 0x00000000, 0x00000000, 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, 0x03030000 - tag 0x19, 2 - tag 0x1a, 2 - object 0x0100, MODEL_DD_BANNER, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_BANNER, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x17, 1 - object 0x0100, MODEL_DDJUMPSHIP, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x1b, 1 - object 0x0024, MODEL_DDJUMPSHIP, 0xffff, 0x00020001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x18, 1 - object 0x0100, MODEL_ROPE, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x1c, 1 - object 0x0051, MODEL_TAXICAB, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x1e, 1 - object 0x0024, MODEL_TAXICAB, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x1d, 1 - object 0x0051, MODEL_POLICECAR, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x30, 1 - object 0x0024, MODEL_POLICECAR, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x29, 1 - object 0x0019, MODEL_DD_HOVCOP, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x2a, 1 - object 0x0019, MODEL_DD_HOVCAR, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x2b, 1 - object 0x0019, MODEL_DD_HOVMOTO, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x2c, 1 - object 0x0019, MODEL_DD_HOVCAB, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x2d, 1 - object 0x0019, MODEL_DD_HOVTRUCK, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - object 0x0100, MODEL_DD_DESK, 0x00de, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag OBJ_SHUTTLE1, 1 - object 0x0100, MODEL_SK_SHUTTLE, 0xffff, 0x00421508, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag OBJ_SHUTTLE2, 1 - object 0x0100, MODEL_SK_SHUTTLE, 0xffff, 0x00421508, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0121, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0122, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x011f, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tinted_glass 0x0100, MODEL_DD_WINDOW, 0x0120, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000 - tag 0x52, 1 - object 0x0100, MODEL_SKEDARBOMB, 0x0011, 0x013004e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - rename_object -1, 0x3c, 0x4a11, 0x4a12, 0x4a13, 0x4a14, 0x4a15, 0x0000, 0x0000 // "" - tag 0x53, 1 - object 0x0100, MODEL_SKEDARBOMB, 0x0011, 0x013004e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - rename_object -1, 0x3c, 0x4a11, 0x4a12, 0x4a13, 0x4a14, 0x4a15, 0x0000, 0x0000 // "" - tag 0x54, 1 - object 0x0100, MODEL_SKEDARBOMB, 0x0257, 0x000200e3, 0x00080001, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000 - tag 0x41, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x000a, 0x00004001, 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, 1 - shield 0x0100, MODEL_CHRSHIELD, 0x025f, 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 0x43, 1 - weapon 0x0100, MODEL_CHRPCGUN, 0x01d2, 0x00000008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000 - tag 0x44, 1 - weapon 0x0100, MODEL_CHRFALCON2, 0x01d5, 0x00000008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2, 0x00ffffff, 0x00000000 - tag 0x45, 1 - weapon 0x0100, MODEL_CHRFALCON2, 0x01d4, 0x00000008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2, 0x00ffffff, 0x00000000 - tag 0x46, 1 - ammocrate 0x0019, MODEL_MULTI_AMMO_CRATE, 0x01d6, 0x000000e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_SMG - tag 0x47, 1 - ammocrate 0x0019, MODEL_MULTI_AMMO_CRATE, 0x01d7, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_PISTOL - tag 0x48, 1 - ammocrate 0x0019, MODEL_MULTI_AMMO_CRATE, 0x01d8, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_PISTOL - tag 0x49, 1 - ammocrate 0x0019, MODEL_MULTI_AMMO_CRATE, 0x01d9, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_PISTOL - tag 0x4a, 1 - ammocrate 0x0100, MODEL_CHRFALCON2, 0x01da, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_PISTOL - tag 0x4a, 1 - ammocrate 0x0100, MODEL_CHRFALCON2, 0x01da, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_PISTOL - tag 0x4b, 1 - ammocrate 0x0019, MODEL_MULTI_AMMO_CRATE, 0x01db, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_PISTOL - tag 0x4c, 1 - weapon 0x0100, MODEL_CHRCMP150, 0x025d, 0x00000008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 - tag 0x4d, 1 - weapon 0x0100, MODEL_CHRCMP150, 0x025e, 0x00000008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000 + link_collectibles(-1, -2) + tag(0x1f, 1) + hover_vehicle(0x004c, MODEL_DD_HOVCOP, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x20, 1) + hover_vehicle(0x004c, MODEL_DD_HOVCOP, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x21, 1) + hover_vehicle(0x004c, MODEL_DD_HOVCAR, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x22, 1) + hover_vehicle(0x004c, MODEL_DD_HOVCAR, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x23, 1) + hover_vehicle(0x004c, MODEL_DD_HOVMOTO, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x24, 1) + hover_vehicle(0x004c, MODEL_DD_HOVMOTO, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x25, 1) + hover_vehicle(0x004c, MODEL_DD_HOVTRUCK, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x26, 1) + hover_vehicle(0x004c, MODEL_DD_HOVTRUCK, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x27, 1) + hover_vehicle(0x004c, MODEL_DD_HOVCAB, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + tag(0x28, 1) + hover_vehicle(0x004c, MODEL_DD_HOVCAB, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, FUNC_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) + link_scenery(1, 0, 2) + door(0x0100, MODEL_DD_AC_UNEXP, 0x019f, 0x13500d00, 0x20304300, 0x04000000, 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) + stdobject(0x0100, MODEL_DD_AC_EXP, 0x01a1, 0x031204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + link_scenery(1, 0, 2) + door(0x0100, MODEL_DD_ACBOT_UNEXP, 0x019e, 0x13500d00, 0x20304300, 0x04000000, 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) + stdobject(0x0100, MODEL_DD_ACBOT_EXP, 0x01a0, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0140, 0x00020101, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0141, 0x00020101, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0142, 0x00020101, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_A51_CRATE2, 0x0143, 0x00020101, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_STONEDESK, 0x0134, 0x000205e1, 0x00204000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_PC1, 0x0132, 0x000004e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + camera(0x0100, MODEL_CCTV_PD, 0x0136, 0x00000002, 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x00110000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000002bc, 0x00000000) + camera(0x0100, MODEL_CCTV_PD, 0x0137, 0x00000002, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000002bc, 0x00000000) + camera(0x0100, MODEL_CCTV_PD, 0x0138, 0x00000002, 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x00190000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000002bc, 0x00000000) + camera(0x0100, MODEL_CCTV_PD, 0x0139, 0x00000002, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x001d0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000) + camera(0x0100, MODEL_CCTV_PD, 0x013a, 0x00000002, 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x00670000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000002bc, 0x00000000) + camera(0x0100, MODEL_CCTV_PD, 0x013b, 0x00000002, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000000, 0x0fff0000, 0x00760000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000002bc, 0x00000000) + camera2(0x0000, 0xfffd05c6, 0xfff25662, 0x000013f6, 0x005a0000, 0x00063f8f, 0x00000219) + tag(0x09, -1) + camera2(0x0000, 0xffff51d2, 0xfffd0422, 0x00000c58, 0x00060000, 0x0005f5c2, 0x00000219) + tag(0x15, -1) + camera2(0x0000, 0xffff67da, 0xfffd8eec, 0xfffe7c44, 0x0004a147, 0x0005f851, 0x00000219) + tag(0x16, -1) + tag(0x04, 1) + multimonitor(0x0099, MODEL_COMHUB, 0x025c, 0x00000002, 0x00000001, 0x00000000, 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(0x03, 1) + multimonitor(0x0099, MODEL_COMHUB, 0x013c, 0x00000002, 0x00000001, 0x00000000, 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(OBJ_LIGHTSWITCH, 1) + stdobject(0x0100, MODEL_LIGHTSWITCH, 0x013d, 0x10000002, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x10, 1) + multimonitor(0x0099, MODEL_PD_CONSOLE, 0x0258, 0x000001a1, 0x00000000, 0x00000000, 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, 0x03030000) + tag(0x11, 1) + multimonitor(0x0099, MODEL_PD_CONSOLE, 0x0259, 0x000001a1, 0x00000000, 0x00000000, 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, 0x03030000) + tag(0x12, 1) + multimonitor(0x0099, MODEL_PD_CONSOLE, 0x025a, 0x000001a1, 0x00000000, 0x00000000, 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, 0x03030000) + tag(0x13, 1) + multimonitor(0x0099, MODEL_PD_CONSOLE, 0x025b, 0x000001a1, 0x00000000, 0x00000000, 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, 0x03030000) + tag(0x19, 2) + tag(0x1a, 2) + stdobject(0x0100, MODEL_DD_BANNER, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_BANNER, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x17, 1) + stdobject(0x0100, MODEL_DDJUMPSHIP, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x1b, 1) + stdobject(0x0024, MODEL_DDJUMPSHIP, 0xffff, 0x00020001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x18, 1) + stdobject(0x0100, MODEL_ROPE, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x1c, 1) + stdobject(0x0051, MODEL_TAXICAB, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x1e, 1) + stdobject(0x0024, MODEL_TAXICAB, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x1d, 1) + stdobject(0x0051, MODEL_POLICECAR, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x30, 1) + stdobject(0x0024, MODEL_POLICECAR, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x29, 1) + stdobject(0x0019, MODEL_DD_HOVCOP, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x2a, 1) + stdobject(0x0019, MODEL_DD_HOVCAR, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x2b, 1) + stdobject(0x0019, MODEL_DD_HOVMOTO, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x2c, 1) + stdobject(0x0019, MODEL_DD_HOVCAB, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x2d, 1) + stdobject(0x0019, MODEL_DD_HOVTRUCK, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + stdobject(0x0100, MODEL_DD_DESK, 0x00de, 0x000005e1, 0x00004000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(OBJ_SHUTTLE1, 1) + stdobject(0x0100, MODEL_SK_SHUTTLE, 0xffff, 0x00421508, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(OBJ_SHUTTLE2, 1) + stdobject(0x0100, MODEL_SK_SHUTTLE, 0xffff, 0x00421508, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0121, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0122, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x011f, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tinted_glass(0x0100, MODEL_DD_WINDOW, 0x0120, 0x14000b63, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x04b007d0, 0x0000ffff, 0x00000000) + tag(0x52, 1) + stdobject(0x0100, MODEL_SKEDARBOMB, 0x0011, 0x013004e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + rename_object(-1, 0x3c, 0x4a11, 0x4a12, 0x4a13, 0x4a14, 0x4a15, 0x0000, 0x0000) // "" + tag(0x53, 1) + stdobject(0x0100, MODEL_SKEDARBOMB, 0x0011, 0x013004e1, 0x00084000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + rename_object(-1, 0x3c, 0x4a11, 0x4a12, 0x4a13, 0x4a14, 0x4a15, 0x0000, 0x0000) // "" + tag(0x54, 1) + stdobject(0x0100, MODEL_SKEDARBOMB, 0x0257, 0x000200e3, 0x00080001, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) + tag(0x41, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x000a, 0x00004001, 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, 1) + shield(0x0100, MODEL_CHRSHIELD, 0x025f, 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(0x43, 1) + weapon(0x0100, MODEL_CHRPCGUN, 0x01d2, 0x00000008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000) + tag(0x44, 1) + weapon(0x0100, MODEL_CHRFALCON2, 0x01d5, 0x00000008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2, 0x00ffffff, 0x00000000) + tag(0x45, 1) + weapon(0x0100, MODEL_CHRFALCON2, 0x01d4, 0x00000008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2, 0x00ffffff, 0x00000000) + tag(0x46, 1) + ammocrate(0x0019, MODEL_MULTI_AMMO_CRATE, 0x01d6, 0x000000e1, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_SMG) + tag(0x47, 1) + ammocrate(0x0019, MODEL_MULTI_AMMO_CRATE, 0x01d7, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_PISTOL) + tag(0x48, 1) + ammocrate(0x0019, MODEL_MULTI_AMMO_CRATE, 0x01d8, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_PISTOL) + tag(0x49, 1) + ammocrate(0x0019, MODEL_MULTI_AMMO_CRATE, 0x01d9, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_PISTOL) + tag(0x4a, 1) + ammocrate(0x0100, MODEL_CHRFALCON2, 0x01da, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_PISTOL) + tag(0x4a, 1) + ammocrate(0x0100, MODEL_CHRFALCON2, 0x01da, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_PISTOL) + tag(0x4b, 1) + ammocrate(0x0019, MODEL_MULTI_AMMO_CRATE, 0x01db, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_PISTOL) + tag(0x4c, 1) + weapon(0x0100, MODEL_CHRCMP150, 0x025d, 0x00000008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) + tag(0x4d, 1) + weapon(0x0100, MODEL_CHRCMP150, 0x025e, 0x00000008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) endprops +}; -intro: - intro_weapon WEAPON_MAULER, -1 - ammo AMMOTYPE_PISTOL, 100 - intro_weapon WEAPON_CAMSPY, -1 - outfit OUTFIT_MRBLONDE - intro_weapon WEAPON_CLOAKINGDEVICE, -1 - ammo AMMOTYPE_CLOAK, 1800 - ammo AMMOTYPE_PISTOL, 100 - spawn 0x01f8 +u8 intro[] = { + intro_weapon(WEAPON_MAULER, -1) + ammo(AMMOTYPE_PISTOL, 100) + intro_weapon(WEAPON_CAMSPY, -1) + outfit(OUTFIT_MRBLONDE) + intro_weapon(WEAPON_CLOAKINGDEVICE, -1) + ammo(AMMOTYPE_CLOAK, 1800) + ammo(AMMOTYPE_PISTOL, 100) + spawn(0x01f8) endintro +}; -path00: - pad 0x0144 - pad 0x0145 - endpath +s32 path00[] = { + 0x0144, + 0x0145, + -1, +}; -path01: - pad 0x0146 - pad 0x0147 - pad 0x0148 - endpath +s32 path01[] = { + 0x0146, + 0x0147, + 0x0148, + -1, +}; -path02: - pad 0x0149 - pad 0x014a - pad 0x014b - pad 0x014c - pad 0x014d - pad 0x014e - endpath +s32 path02[] = { + 0x0149, + 0x014a, + 0x014b, + 0x014c, + 0x014d, + 0x014e, + -1, +}; -path03: - pad 0x0152 - pad 0x0151 - pad 0x0150 - pad 0x014f - endpath +s32 path03[] = { + 0x0152, + 0x0151, + 0x0150, + 0x014f, + -1, +}; -path04: - pad 0x0154 - pad 0x0157 - pad 0x0156 - pad 0x0153 - pad 0x0155 - endpath +s32 path04[] = { + 0x0154, + 0x0157, + 0x0156, + 0x0153, + 0x0155, + -1, +}; -path05: - pad 0x0159 - pad 0x015a - pad 0x015d - pad 0x015b - pad 0x015c - pad 0x0158 - endpath +s32 path05[] = { + 0x0159, + 0x015a, + 0x015d, + 0x015b, + 0x015c, + 0x0158, + -1, +}; -path06: - pad 0x015e - pad 0x015f - pad 0x0160 - pad 0x0161 - pad 0x0162 - pad 0x0163 - endpath +s32 path06[] = { + 0x015e, + 0x015f, + 0x0160, + 0x0161, + 0x0162, + 0x0163, + -1, +}; -path07: - pad 0x0167 - pad 0x0166 - pad 0x0165 - pad 0x0168 - pad 0x0169 - pad 0x0164 - endpath +s32 path07[] = { + 0x0167, + 0x0166, + 0x0165, + 0x0168, + 0x0169, + 0x0164, + -1, +}; -path08: - pad 0x016a - pad 0x016b - pad 0x016c - pad 0x016d - endpath +s32 path08[] = { + 0x016a, + 0x016b, + 0x016c, + 0x016d, + -1, +}; -path09: - pad 0x016e - pad 0x016f - pad 0x0170 - pad 0x0171 - pad 0x0172 - pad 0x0173 - endpath +s32 path09[] = { + 0x016e, + 0x016f, + 0x0170, + 0x0171, + 0x0172, + 0x0173, + -1, +}; -path10: - pad 0x0174 - pad 0x0175 - pad 0x0176 - pad 0x0177 - endpath +s32 path10[] = { + 0x0174, + 0x0175, + 0x0176, + 0x0177, + -1, +}; -path11: - pad 0x0178 - pad 0x0179 - pad 0x017a - pad 0x017b - pad 0x017c - pad 0x017d - pad 0x017e - pad 0x017f - endpath +s32 path11[] = { + 0x0178, + 0x0179, + 0x017a, + 0x017b, + 0x017c, + 0x017d, + 0x017e, + 0x017f, + -1, +}; -path12: - pad 0x0180 - pad 0x0181 - pad 0x0182 - endpath +s32 path12[] = { + 0x0180, + 0x0181, + 0x0182, + -1, +}; -path13: - pad 0x0183 - pad 0x0184 - pad 0x0185 - endpath +s32 path13[] = { + 0x0183, + 0x0184, + 0x0185, + -1, +}; -path14: - pad 0x0186 - pad 0x0191 - endpath +s32 path14[] = { + 0x0186, + 0x0191, + -1, +}; -path15: - pad 0x0187 - pad 0x0190 - endpath +s32 path15[] = { + 0x0187, + 0x0190, + -1, +}; -path16: - pad 0x0188 - pad 0x018f - endpath +s32 path16[] = { + 0x0188, + 0x018f, + -1, +}; -path17: - pad 0x0189 - pad 0x018e - endpath +s32 path17[] = { + 0x0189, + 0x018e, + -1, +}; -path18: - pad 0x018c - pad 0x018b - endpath +s32 path18[] = { + 0x018c, + 0x018b, + -1, +}; -path19: - pad 0x018d - pad 0x018a - endpath +s32 path19[] = { + 0x018d, + 0x018a, + -1, +}; -path20: - pad 0x0192 - pad 0x019d - endpath +s32 path20[] = { + 0x0192, + 0x019d, + -1, +}; -path21: - pad 0x0193 - pad 0x019c - endpath +s32 path21[] = { + 0x0193, + 0x019c, + -1, +}; -path22: - pad 0x0194 - pad 0x019b - endpath +s32 path22[] = { + 0x0194, + 0x019b, + -1, +}; -path23: - pad 0x0195 - pad 0x019a - endpath +s32 path23[] = { + 0x0195, + 0x019a, + -1, +}; -path24: - pad 0x0197 - pad 0x0198 - endpath +s32 path24[] = { + 0x0197, + 0x0198, + -1, +}; -path25: - pad 0x0196 - pad 0x0199 - endpath +s32 path25[] = { + 0x0196, + 0x0199, + -1, +}; -path26: - pad 0x007d - pad 0x007c - pad 0x0077 - pad 0x0076 - pad 0x008d - pad 0x008c - pad 0x008b - pad 0x0088 - pad 0x008b - pad 0x008c - endpath +s32 path26[] = { + 0x007d, + 0x007c, + 0x0077, + 0x0076, + 0x008d, + 0x008c, + 0x008b, + 0x0088, + 0x008b, + 0x008c, + -1, +}; -path27: - pad 0x008e - pad 0x008d - pad 0x008c - pad 0x008b - pad 0x0088 - endpath +s32 path27[] = { + 0x008e, + 0x008d, + 0x008c, + 0x008b, + 0x0088, + -1, +}; -path30: - pad 0x000c - pad 0x000b - pad 0x000f - pad 0x0010 - pad 0x0013 - pad 0x0011 - pad 0x0012 - pad 0x0011 - pad 0x0010 - pad 0x000f - pad 0x000b - endpath +s32 path30[] = { + 0x000c, + 0x000b, + 0x000f, + 0x0010, + 0x0013, + 0x0011, + 0x0012, + 0x0011, + 0x0010, + 0x000f, + 0x000b, + -1, +}; -path32: - pad 0x0028 - pad 0x0029 - pad 0x002f - pad 0x0030 - pad 0x002b - pad 0x002a - pad 0x002d - pad 0x002c - pad 0x002e - pad 0x0031 - pad 0x0032 - pad 0x003b - pad 0x003a - pad 0x0039 - endpath +s32 path32[] = { + 0x0028, + 0x0029, + 0x002f, + 0x0030, + 0x002b, + 0x002a, + 0x002d, + 0x002c, + 0x002e, + 0x0031, + 0x0032, + 0x003b, + 0x003a, + 0x0039, + -1, +}; -path33: - pad 0x0032 - pad 0x003b - pad 0x003a - pad 0x0039 - pad 0x0074 - pad 0x006e - pad 0x006d - pad 0x0072 - pad 0x0073 - pad 0x0070 - pad 0x0071 - pad 0x006f - endpath +s32 path33[] = { + 0x0032, + 0x003b, + 0x003a, + 0x0039, + 0x0074, + 0x006e, + 0x006d, + 0x0072, + 0x0073, + 0x0070, + 0x0071, + 0x006f, + -1, +}; -path34: - pad 0x01f6 - pad 0x01f5 - pad 0x01f4 - pad 0x01f3 - pad 0x01f2 - pad 0x01f0 - pad 0x01ef - pad 0x01ee - pad 0x01ec - pad 0x01e8 - pad 0x01e6 - pad 0x01e5 - pad 0x01dd - pad 0x01e4 - pad 0x01e3 - pad 0x01e2 - pad 0x01e1 - endpath +s32 path34[] = { + 0x01f6, + 0x01f5, + 0x01f4, + 0x01f3, + 0x01f2, + 0x01f0, + 0x01ef, + 0x01ee, + 0x01ec, + 0x01e8, + 0x01e6, + 0x01e5, + 0x01dd, + 0x01e4, + 0x01e3, + 0x01e2, + 0x01e1, + -1, +}; -path35: - pad 0x01ea - pad 0x01eb - pad 0x01ef - pad 0x01f1 - pad 0x01f2 - pad 0x01f3 - pad 0x01f4 - pad 0x01f6 - pad 0x01e2 - pad 0x01dd - pad 0x01e5 - pad 0x01e6 - endpath +s32 path35[] = { + 0x01ea, + 0x01eb, + 0x01ef, + 0x01f1, + 0x01f2, + 0x01f3, + 0x01f4, + 0x01f6, + 0x01e2, + 0x01dd, + 0x01e5, + 0x01e6, + -1, +}; -path36: - pad 0x01e6 - pad 0x01e5 - pad 0x01dd - pad 0x01e2 - pad 0x01f6 - pad 0x01f4 - pad 0x01f3 - pad 0x01f2 - pad 0x01f1 - pad 0x01ef - pad 0x01eb - pad 0x01ea - endpath +s32 path36[] = { + 0x01e6, + 0x01e5, + 0x01dd, + 0x01e2, + 0x01f6, + 0x01f4, + 0x01f3, + 0x01f2, + 0x01f1, + 0x01ef, + 0x01eb, + 0x01ea, + -1, +}; -path37: - pad 0x007c - pad 0x0078 - pad 0x0077 - pad 0x0076 - pad 0x008e - pad 0x008d - pad 0x008c - pad 0x008b - pad 0x008a - pad 0x0089 - pad 0x0088 - pad 0x0090 - pad 0x0075 - pad 0x006f - pad 0x0071 - pad 0x0070 - pad 0x0073 - pad 0x0066 - pad 0x0058 - pad 0x0059 - pad 0x005a - pad 0x0067 - pad 0x0068 - pad 0x005b - pad 0x005c - pad 0x005d - pad 0x005e - pad 0x0061 - endpath +s32 path37[] = { + 0x007c, + 0x0078, + 0x0077, + 0x0076, + 0x008e, + 0x008d, + 0x008c, + 0x008b, + 0x008a, + 0x0089, + 0x0088, + 0x0090, + 0x0075, + 0x006f, + 0x0071, + 0x0070, + 0x0073, + 0x0066, + 0x0058, + 0x0059, + 0x005a, + 0x0067, + 0x0068, + 0x005b, + 0x005c, + 0x005d, + 0x005e, + 0x0061, + -1, +}; -path31: - pad 0x0011 - pad 0x0013 - pad 0x0014 - pad 0x0015 - pad 0x0016 - pad 0x0017 - endpath +s32 path31[] = { + 0x0011, + 0x0013, + 0x0014, + 0x0015, + 0x0016, + 0x0017, + -1, +}; -path28: - pad 0x0058 - pad 0x0067 - pad 0x0068 - pad 0x005b - pad 0x005d - endpath +s32 path28[] = { + 0x0058, + 0x0067, + 0x0068, + 0x005b, + 0x005d, + -1, +}; -path29: - pad 0x0060 - pad 0x005f - pad 0x0056 - pad 0x0055 - pad 0x0051 - pad 0x0052 - pad 0x0053 - endpath +s32 path29[] = { + 0x0060, + 0x005f, + 0x0056, + 0x0055, + 0x0051, + 0x0052, + 0x0053, + -1, +}; -paths: - register_path path00, 0, 0 - register_path path01, 1, 2 - register_path path02, 2, 2 - register_path path03, 3, 2 - register_path path04, 4, 2 - register_path path05, 5, 2 - register_path path06, 6, 2 - register_path path07, 7, 2 - register_path path08, 8, 2 - register_path path09, 9, 2 - register_path path10, 10, 2 - register_path path11, 11, 2 - register_path path12, 12, 2 - register_path path13, 13, 2 - register_path path14, 14, 2 - register_path path15, 15, 2 - register_path path16, 16, 2 - register_path path17, 17, 2 - register_path path18, 18, 2 - register_path path19, 19, 2 - register_path path20, 20, 2 - register_path path21, 21, 2 - register_path path22, 22, 2 - register_path path23, 23, 2 - register_path path24, 24, 2 - register_path path25, 25, 2 - register_path path26, 26, 1 - register_path path27, 27, 0 - register_path path28, 28, 0 - register_path path29, 29, 0 - register_path path30, 30, 1 - register_path path31, 31, 0 - register_path path32, 32, 0 - register_path path33, 33, 0 - register_path path34, 34, 1 - register_path path35, 35, 1 - register_path path36, 36, 1 - register_path path37, 37, 0 - endpaths +struct aipaths paths[] = { + { path00, 0, 0 }, + { path01, 1, 2 }, + { path02, 2, 2 }, + { path03, 3, 2 }, + { path04, 4, 2 }, + { path05, 5, 2 }, + { path06, 6, 2 }, + { path07, 7, 2 }, + { path08, 8, 2 }, + { path09, 9, 2 }, + { path10, 10, 2 }, + { path11, 11, 2 }, + { path12, 12, 2 }, + { path13, 13, 2 }, + { path14, 14, 2 }, + { path15, 15, 2 }, + { path16, 16, 2 }, + { path17, 17, 2 }, + { path18, 18, 2 }, + { path19, 19, 2 }, + { path20, 20, 2 }, + { path21, 21, 2 }, + { path22, 22, 2 }, + { path23, 23, 2 }, + { path24, 24, 2 }, + { path25, 25, 2 }, + { path26, 26, 1 }, + { path27, 27, 0 }, + { path28, 28, 0 }, + { path29, 29, 0 }, + { path30, 30, 1 }, + { path31, 31, 0 }, + { path32, 32, 0 }, + { path33, 33, 0 }, + { path34, 34, 1 }, + { path35, 35, 1 }, + { path36, 36, 1 }, + { path37, 37, 0 }, + { NULL, 0, 0 }, +}; -func0401_init_hovercar: - dprint "hov\n" - begin_hovercar_path 0x00 - set_vehicle_speed 0x0c00, 120 +u8 func0401_init_hovercar[] = { + dprint 'h','o','v','\n',0, + begin_hovercar_path(0x00) + set_vehicle_speed(0x0c00, 120) - beginloop 0x04 - endloop 0x04 + beginloop(0x04) + endloop(0x04) // Everything below here in this function is unreachable - label 0x08 - set_vehicle_speed 0x0600, 120 - goto_first 0x04 + label(0x08) + set_vehicle_speed(0x0600, 120) + goto_first(0x04) - label 0x09 - set_vehicle_speed 0x0700, 120 - goto_first 0x04 + label(0x09) + set_vehicle_speed(0x0700, 120) + goto_first(0x04) - label 0x0a - set_vehicle_speed 0x0800, 120 - goto_first 0x04 + label(0x0a) + set_vehicle_speed(0x0800, 120) + goto_first(0x04) - label 0x0b - set_vehicle_speed 0x0900, 120 - goto_first 0x04 + label(0x0b) + set_vehicle_speed(0x0900, 120) + goto_first(0x04) - label 0x0c - set_vehicle_speed 0x0a00, 120 - goto_first 0x04 + label(0x0c) + set_vehicle_speed(0x0a00, 120) + goto_first(0x04) - label 0x0d - set_vehicle_speed 0x0b00, 120 - goto_first 0x04 + label(0x0d) + set_vehicle_speed(0x0b00, 120) + goto_first(0x04) - label 0x0e - set_vehicle_speed 0x0d00, 120 - goto_first 0x04 + label(0x0e) + set_vehicle_speed(0x0d00, 120) + goto_first(0x04) endfunction +}; -func0402_start_path26: - assign_path 26 +u8 func0402_start_path26[] = { + assign_path(26) start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 + set_function(CHR_SELF, GFUNC_UNALERTED_0004) endfunction +}; -func0403_start_path27: - assign_path 27 +u8 func0403_start_path27[] = { + assign_path(27) start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 + set_function(CHR_SELF, GFUNC_UNALERTED_0004) endfunction +}; -func0404_start_path28: - assign_path 28 +u8 func0404_start_path28[] = { + assign_path(28) start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 + set_function(CHR_SELF, GFUNC_UNALERTED_0004) endfunction +}; -func0405_start_path29: - assign_path 29 +u8 func0405_start_path29[] = { + assign_path(29) start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 + set_function(CHR_SELF, GFUNC_UNALERTED_0004) endfunction +}; -func0406_start_path30: - assign_path 30 +u8 func0406_start_path30[] = { + assign_path(30) start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 + set_function(CHR_SELF, GFUNC_UNALERTED_0004) endfunction +}; -func0407_start_path31: - set_accuracy 40 - set_reaction_speed 100 - set_chr_health CHR_SELF, 40 - set_armor 40 - set_recovery_speed 0 - set_shield 0 - set_return_function CHR_SELF, 0x0407 - assign_path 31 +u8 func0407_start_path31[] = { + set_accuracy(40) + set_reaction_speed(100) + set_chr_health(CHR_SELF, 40) + set_armor(40) + set_recovery_speed(0) + set_shield(0) + set_return_function(CHR_SELF, 0x0407) + assign_path(31) start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 + set_function(CHR_SELF, GFUNC_UNALERTED_0004) endfunction +}; -func0408_start_path32: - set_accuracy 40 - set_reaction_speed 100 - set_chr_health CHR_SELF, 40 - set_armor 40 - set_recovery_speed 0 - set_shield 0 - assign_path 32 +u8 func0408_start_path32[] = { + set_accuracy(40) + set_reaction_speed(100) + set_chr_health(CHR_SELF, 40) + set_armor(40) + set_recovery_speed(0) + set_shield(0) + assign_path(32) start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 + set_function(CHR_SELF, GFUNC_UNALERTED_0004) endfunction +}; -func0409_start_path33: - set_accuracy 40 - set_reaction_speed 100 - set_chr_health CHR_SELF, 40 - set_armor 40 - set_recovery_speed 0 - set_shield 0 - assign_path 33 +u8 func0409_start_path33[] = { + set_accuracy(40) + set_reaction_speed(100) + set_chr_health(CHR_SELF, 40) + set_armor(40) + set_recovery_speed(0) + set_shield(0) + assign_path(33) start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 + set_function(CHR_SELF, GFUNC_UNALERTED_0004) endfunction +}; -func040a_start_path34: - set_accuracy 40 - set_reaction_speed 100 - set_chr_health CHR_SELF, 40 - set_armor 40 - set_recovery_speed 0 - set_shield 0 - assign_path 34 +u8 func040a_start_path34[] = { + set_accuracy(40) + set_reaction_speed(100) + set_chr_health(CHR_SELF, 40) + set_armor(40) + set_recovery_speed(0) + set_shield(0) + assign_path(34) start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 + set_function(CHR_SELF, GFUNC_UNALERTED_0004) endfunction +}; -func040b_start_path35: - set_accuracy 40 - set_reaction_speed 100 - set_chr_health CHR_SELF, 40 - set_armor 40 - set_recovery_speed 0 - set_shield 0 - assign_path 35 +u8 func040b_start_path35[] = { + set_accuracy(40) + set_reaction_speed(100) + set_chr_health(CHR_SELF, 40) + set_armor(40) + set_recovery_speed(0) + set_shield(0) + assign_path(35) start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 + set_function(CHR_SELF, GFUNC_UNALERTED_0004) endfunction +}; -func040c_start_path36: - set_accuracy 40 - set_reaction_speed 100 - set_chr_health CHR_SELF, 40 - set_armor 40 - set_recovery_speed 0 - set_shield 0 - assign_path 36 +u8 func040c_start_path36[] = { + set_accuracy(40) + set_reaction_speed(100) + set_chr_health(CHR_SELF, 40) + set_armor(40) + set_recovery_speed(0) + set_shield(0) + assign_path(36) start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 + set_function(CHR_SELF, GFUNC_UNALERTED_0004) endfunction +}; -func040d_start_path37: - assign_path 37 +u8 func040d_start_path37[] = { + assign_path(37) start_path - set_function CHR_SELF, GFUNC_UNALERTED_0004 + set_function(CHR_SELF, GFUNC_UNALERTED_0004) endfunction +}; -func1002_lightswitch: +u8 func1002_lightswitch[] = { // Wait until switch activated - beginloop 0x04 - if_chr_activated_object CHR_F3, OBJ_LIGHTSWITCH, /*goto*/ 0x2c - reloop 0x04 + beginloop(0x04) + if_chr_activated_object(CHR_F3, OBJ_LIGHTSWITCH, /*goto*/ 0x2c) + reloop(0x04) - label 0x2c - play_sound 0x00ba, -1 - if_stage_flag_eq STAGEFLAG_LIGHTS_OFF, TRUE, /*goto*/ 0x06 + label(0x2c) + play_sound(0x00ba, -1) + if_stage_flag_eq(STAGEFLAG_LIGHTS_OFF, TRUE, /*goto*/ 0x06) // Turning lights off - set_stage_flag STAGEFLAG_LIGHTS_OFF - set_lights_state 0x0044, 0x01, 0x00, 0x00, 0x00 - set_lights_state 0x0039, 0x01, 0x00, 0x00, 0x00 - set_lights_state 0x003c, 0x01, 0x00, 0x00, 0x00 - set_lights_state 0x003d, 0x01, 0x00, 0x00, 0x00 - set_lights_state 0x003e, 0x01, 0x00, 0x00, 0x00 - set_lights_state 0x003b, 0x01, 0x00, 0x00, 0x00 - set_lights_state 0x0042, 0x01, 0x00, 0x00, 0x00 - set_lights_state 0x003f, 0x01, 0x00, 0x00, 0x00 - set_lights_state 0x003a, 0x01, 0x00, 0x00, 0x00 - set_lights_state 0x0041, 0x01, 0x00, 0x00, 0x00 - set_lights_state 0x0040, 0x01, 0x00, 0x00, 0x00 - reloop 0x04 + set_stage_flag(STAGEFLAG_LIGHTS_OFF) + set_lights_state(0x0044, 0x01, 0x00, 0x00, 0x00) + set_lights_state(0x0039, 0x01, 0x00, 0x00, 0x00) + set_lights_state(0x003c, 0x01, 0x00, 0x00, 0x00) + set_lights_state(0x003d, 0x01, 0x00, 0x00, 0x00) + set_lights_state(0x003e, 0x01, 0x00, 0x00, 0x00) + set_lights_state(0x003b, 0x01, 0x00, 0x00, 0x00) + set_lights_state(0x0042, 0x01, 0x00, 0x00, 0x00) + set_lights_state(0x003f, 0x01, 0x00, 0x00, 0x00) + set_lights_state(0x003a, 0x01, 0x00, 0x00, 0x00) + set_lights_state(0x0041, 0x01, 0x00, 0x00, 0x00) + set_lights_state(0x0040, 0x01, 0x00, 0x00, 0x00) + reloop(0x04) // Turning lights on - label 0x06 - unset_stage_flag STAGEFLAG_LIGHTS_OFF - set_lights_state 0x0044, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0039, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x003c, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x003d, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x003e, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x003b, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0042, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x003f, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x003a, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0041, 0x01, 0x64, 0x00, 0x00 - set_lights_state 0x0040, 0x01, 0x64, 0x00, 0x00 - endloop 0x04 + label(0x06) + unset_stage_flag(STAGEFLAG_LIGHTS_OFF) + set_lights_state(0x0044, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0039, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x003c, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x003d, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x003e, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x003b, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0042, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x003f, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x003a, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0041, 0x01, 0x64, 0x00, 0x00) + set_lights_state(0x0040, 0x01, 0x64, 0x00, 0x00) + endloop(0x04) endfunction +}; -func1001_objectives_failed_msg: - set_function CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG +u8 func1001_objectives_failed_msg[] = { + set_function(CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG) endfunction +}; -func1000_setup_counterop: +u8 func1000_setup_counterop[] = { noop016c yield - set_chr_alliance CHR_COUNTEROP, ALLIANCE_ENEMY + set_chr_alliance(CHR_COUNTEROP, ALLIANCE_ENEMY) yield - set_chr_alliance CHR_COUNTEROP, ALLIANCE_ENEMY - give_object_to_chr OBJ_JOANNA_BOMB, CHR_JOANNA - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2c - give_object_to_chr OBJ_VELVET_BOMB, CHR_VELVET - label 0x2c - set_function CHR_SELF, GFUNC_REBUILD_GROUPS + set_chr_alliance(CHR_COUNTEROP, ALLIANCE_ENEMY) + give_object_to_chr(OBJ_JOANNA_BOMB, CHR_JOANNA) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x2c) + give_object_to_chr(OBJ_VELVET_BOMB, CHR_VELVET) + label(0x2c) + set_function(CHR_SELF, GFUNC_REBUILD_GROUPS) endfunction +}; -func040e_init_60hp_guard: - set_accuracy 40 - set_reaction_speed 100 - set_chr_health CHR_SELF, 60 - set_armor 40 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, GFUNC_UNALERTED +u8 func040e_init_60hp_guard[] = { + set_accuracy(40) + set_reaction_speed(100) + set_chr_health(CHR_SELF, 60) + set_armor(40) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, GFUNC_UNALERTED) endfunction +}; -func040f_init_40hp_guard: - set_accuracy 40 - set_reaction_speed 100 - set_chr_health CHR_SELF, 40 - set_armor 40 - set_recovery_speed 0 - set_shield 0 - set_function CHR_SELF, GFUNC_UNALERTED +u8 func040f_init_40hp_guard[] = { + set_accuracy(40) + set_reaction_speed(100) + set_chr_health(CHR_SELF, 40) + set_armor(40) + set_recovery_speed(0) + set_shield(0) + set_function(CHR_SELF, GFUNC_UNALERTED) endfunction +}; -func0410_init_searching_guard: - set_accuracy 40 - set_reaction_speed 100 - set_chr_health CHR_SELF, 40 - set_armor 40 - set_recovery_speed 0 - set_shield 0 - set_return_function CHR_SELF, GFUNC_SEARCH_FOR_PLAYER - set_function CHR_SELF, GFUNC_SEARCH_FOR_PLAYER +u8 func0410_init_searching_guard[] = { + set_accuracy(40) + set_reaction_speed(100) + set_chr_health(CHR_SELF, 40) + set_armor(40) + set_recovery_speed(0) + set_shield(0) + set_return_function(CHR_SELF, GFUNC_SEARCH_FOR_PLAYER) + set_function(CHR_SELF, GFUNC_SEARCH_FOR_PLAYER) endfunction +}; -func0412_init_cass: - set_chr_health CHR_SELF, 40 - set_self_flag_bank3 CHRFLAG3_01000000 - set_function CHR_SELF, FUNC_CASS_IN_OFFICE +u8 func0412_init_cass[] = { + set_chr_health(CHR_SELF, 40) + set_self_flag_bank3(CHRFLAG3_01000000) + set_function(CHR_SELF, FUNC_CASS_IN_OFFICE) endfunction +}; -func0411_cass_in_office: - if_chr_dying CHR_SELF, /*goto*/ 0x2c - if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2c - if_chr_unloaded CHR_SELF, /*goto*/ 0x2c - goto_next 0x06 +u8 func0411_cass_in_office[] = { + if_chr_dying(CHR_SELF, /*goto*/ 0x2c) + if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2c) + if_chr_unloaded(CHR_SELF, /*goto*/ 0x2c) + goto_next(0x06) // Dying - label 0x2c - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE + label(0x2c) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) // Not dying - label 0x06 - if_has_gun CHR_SELF, /*goto*/ 0x2c - set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_stage_flag STAGEFLAG_TRIGGER_YWSM - set_onshot_function FUNC_CASS_RUNNING + label(0x06) + if_has_gun(CHR_SELF, /*goto*/ 0x2c) + set_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_stage_flag(STAGEFLAG_TRIGGER_YWSM) + set_onshot_function(FUNC_CASS_RUNNING) restart_timer - speak TARGET_CHR, 0x4a08, 0x0d23, CHANNEL_6, COLOR_06_WHITE // "Go to the helipad if you want to live." - animation 0x0226, -1, -1, 0x1010, CHR_SELF, 2 + speak(TARGET_CHR, 0x4a08, 0x0d23, CHANNEL_6, COLOR_06_WHITE) // "Go to the helipad if you want to live." + animation(0x0226, -1, -1, 0x1010, CHR_SELF, 2) yield // Wait 3 seconds - beginloop 0x08 - if_timer_gt 180, /*goto*/ 0x06 - endloop 0x08 + beginloop(0x08) + if_timer_gt(180, /*goto*/ 0x06) + endloop(0x08) - label 0x06 - unset_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_function CHR_SELF, FUNC_CASS_RUNNING + label(0x06) + unset_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_function(CHR_SELF, FUNC_CASS_RUNNING) // Waiting for player to enter office - label 0x2c - if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x5a - set_onshot_function FUNC_CASS_IN_OFFICE - set_self_flag_bank3 CHRFLAG3_00040000 - if_chr_dying CHR_CASS, /*goto*/ 0x06 - if_chr_unloaded CHR_CASS, /*goto*/ 0x06 - goto_next 0x2c - label 0x06 - set_function CHR_SELF, GFUNC_IDLE - label 0x2c - animation 0x00a0, 0, 193, 0x1810, CHR_SELF, 2 + label(0x2c) + if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x5a) + set_onshot_function(FUNC_CASS_IN_OFFICE) + set_self_flag_bank3(CHRFLAG3_00040000) + if_chr_dying(CHR_CASS, /*goto*/ 0x06) + if_chr_unloaded(CHR_CASS, /*goto*/ 0x06) + goto_next(0x2c) + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) + label(0x2c) + animation(0x00a0, 0, 193, 0x1810, CHR_SELF, 2) - beginloop 0x54 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_sees_player /*goto*/ 0x55 - endloop 0x54 + beginloop(0x54) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0x55) + endloop(0x54) // Player has entered - label 0x55 + label(0x55) stop_chr yield - try_face_entity 0x0200, 0x0000, /*goto*/ 0x56 + try_face_entity(0x0200, 0x0000, /*goto*/ 0x56) - beginloop 0x56 - if_angle_to_target_chr_lt 10, /*goto*/ 0x57 - cmd004f 246, /*goto*/ 0x57 - endloop 0x56 + beginloop(0x56) + if_angle_to_target_chr_lt(10, /*goto*/ 0x57) + cmd004f(246, /*goto*/ 0x57) + endloop(0x56) // Draw weapon - label 0x57 - set_self_flag_bankx CHRFLAG0_00002000, BANK_0 - animation 0x0245, 0, -1, 0x1010, CHR_SELF, 2 - try_draw_weapon MODEL_CHRFALCON2, WEAPON_FALCON2, 0x00000000, /*goto*/ 0x2c - label 0x2c - speak TARGET_CHR, 0x4a07, 0x81a3, CHANNEL_6, COLOR_04_ORANGE // "Get the hell out of my office..." + label(0x57) + set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) + animation(0x0245, 0, -1, 0x1010, CHR_SELF, 2) + try_draw_weapon(MODEL_CHRFALCON2, WEAPON_FALCON2, 0x00000000, /*goto*/ 0x2c) + label(0x2c) + speak(TARGET_CHR, 0x4a07, 0x81a3, CHANNEL_6, COLOR_04_ORANGE) // "Get the hell out of my office..." - beginloop 0x58 - if_sound_finished CHANNEL_6, /*goto*/ 0x2c - endloop 0x58 + beginloop(0x58) + if_sound_finished(CHANNEL_6, /*goto*/ 0x2c) + endloop(0x58) - label 0x2c - set_chr_flag_bankx 0x1e, CHRFLAG0_CAN_HEAR_ALARMS, BANK_0 - set_chr_flag_bankx 0x20, CHRFLAG0_CAN_HEAR_ALARMS, BANK_0 - set_chr_flag_bankx 0x1a, CHRFLAG0_CAN_HEAR_ALARMS, BANK_0 + label(0x2c) + set_chr_flag_bankx(0x1e, CHRFLAG0_CAN_HEAR_ALARMS, BANK_0) + set_chr_flag_bankx(0x20, CHRFLAG0_CAN_HEAR_ALARMS, BANK_0) + set_chr_flag_bankx(0x1a, CHRFLAG0_CAN_HEAR_ALARMS, BANK_0) yield activate_alarm // Wait until player in disarm range - beginloop 0x5a - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_in_disarm_range /*goto*/ 0x83 - reloop 0x5a + beginloop(0x5a) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_in_disarm_range(/*goto*/ 0x83) + reloop(0x5a) - label 0x83 - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x2c - label 0x2c - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x82 + label(0x83) + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x2c) + label(0x2c) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x82) // Wait until shooting animation finished - beginloop 0x82 - if_chr_stopped /*goto*/ 0x06 - endloop 0x82 + beginloop(0x82) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x82) - label 0x06 - endloop 0x5a + label(0x06) + endloop(0x5a) endfunction +}; -func0413_cass_running: - remove_cass_necklace CHR_CASS - unset_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE - set_onshot_function FUNC_CASS_RUNNING - if_chr_dying CHR_CASS, /*goto*/ 0x06 - if_chr_death_animation_finished CHR_CASS, /*goto*/ 0x06 - if_chr_unloaded CHR_CASS, /*goto*/ 0x06 - goto_next 0x2c +u8 func0413_cass_running[] = { + remove_cass_necklace(CHR_CASS) + unset_self_flag_bank3(CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + set_onshot_function(FUNC_CASS_RUNNING) + if_chr_dying(CHR_CASS, /*goto*/ 0x06) + if_chr_death_animation_finished(CHR_CASS, /*goto*/ 0x06) + if_chr_unloaded(CHR_CASS, /*goto*/ 0x06) + goto_next(0x2c) // Dying - label 0x06 - set_onshot_function GFUNC_IDLE - set_function CHR_SELF, GFUNC_IDLE + label(0x06) + set_onshot_function(GFUNC_IDLE) + set_function(CHR_SELF, GFUNC_IDLE) // Not dying - label 0x2c - if_just_injured CHR_SELF, /*goto*/ 0xb5 - goto_next 0xb1 + label(0x2c) + if_just_injured(CHR_SELF, /*goto*/ 0xb5) + goto_next(0xb1) // Shot/hurt - wait until animation finished - beginloop 0xb5 - if_chr_stopped /*goto*/ 0xb1 - endloop 0xb5 + beginloop(0xb5) + if_chr_stopped(/*goto*/ 0xb1) + endloop(0xb5) // Wait until Blonde's speech has finished ("go to the helipad") - beginloop 0xb1 - if_sound_finished CHANNEL_6, /*goto*/ 0x03 - endloop 0xb1 + beginloop(0xb1) + if_sound_finished(CHANNEL_6, /*goto*/ 0x03) + endloop(0xb1) - label 0x03 + label(0x03) // Jog to roof. Keep looping until roof is reached or player has stopped // looking at Cass. restart_timer - jog_to_pad 0x0000 + jog_to_pad(0x0000) - beginloop 0x08 - if_chr_sees_player /*goto*/ 0x2c - if_chr_stopped /*goto*/ 0x0d - goto_next 0x06 - label 0x2c - endloop 0x08 + beginloop(0x08) + if_chr_sees_player(/*goto*/ 0x2c) + if_chr_stopped(/*goto*/ 0x0d) + goto_next(0x06) + label(0x2c) + endloop(0x08) // Player looked away from Cass. // While still running to pad, wait 2 seconds... - label 0x06 + label(0x06) restart_timer - beginloop 0x0a - if_timer_gt 120, /*goto*/ 0x2c - endloop 0x0a + beginloop(0x0a) + if_timer_gt(120, /*goto*/ 0x2c) + endloop(0x0a) // Then stop and wait until in sight of player - label 0x2c + label(0x2c) stop_chr - beginloop 0x09 - consider_coop_for_p1p2_chr CHR_SELF - set_target_chr CHR_P1P2 - if_chr_sees_player /*goto*/ 0x2c - endloop 0x09 + beginloop(0x09) + consider_coop_for_p1p2_chr(CHR_SELF) + set_target_chr(CHR_P1P2) + if_chr_sees_player(/*goto*/ 0x2c) + endloop(0x09) // Consider saying something - label 0x2c - do_special_animation -1 + label(0x2c) + do_special_animation(-1) restart_timer - if_stage_flag_eq STAGEFLAG_CASS_SAID_YWSM, FALSE, /*goto*/ 0x06 - say_quip TARGET_CHR, 0x2b, 0xff, 0x00, 0xff, BANK_1, 0x0a, 0x04 + if_stage_flag_eq(STAGEFLAG_CASS_SAID_YWSM, FALSE, /*goto*/ 0x06) + say_quip(TARGET_CHR, 0x2b, 0xff, 0x00, 0xff, BANK_1, 0x0a, 0x04) // And wait 2 seconds for the speech to finish - beginloop 0x0b - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x0b + beginloop(0x0b) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x0b) // Return to jogging to the roof - label 0x06 - reloop 0x03 + label(0x06) + reloop(0x03) // At roof, or stopped for some other reason (eg. dead or maybe injured). // Check distance to pad repeatedly. - label 0x0d + label(0x0d) stop_chr - beginloop 0x0e - if_chr_distance_to_pad_gt CHR_SELF, 200, 0x0000, /*goto*/ 0x2c - endloop 0x0e + beginloop(0x0e) + if_chr_distance_to_pad_gt(CHR_SELF, 200, 0x0000, /*goto*/ 0x2c) + endloop(0x0e) // Continue jogging - label 0x2c - goto_first 0x03 + label(0x2c) + goto_first(0x03) - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1004_check_cass_dead: +u8 func1004_check_cass_dead[] = { // Wait until Cass dead - beginloop 0x03 - if_chr_dying CHR_CASS, /*goto*/ 0x2c - if_chr_death_animation_finished CHR_CASS, /*goto*/ 0x2c - if_chr_unloaded CHR_CASS, /*goto*/ 0x2c - endloop 0x03 + beginloop(0x03) + if_chr_dying(CHR_CASS, /*goto*/ 0x2c) + if_chr_death_animation_finished(CHR_CASS, /*goto*/ 0x2c) + if_chr_unloaded(CHR_CASS, /*goto*/ 0x2c) + endloop(0x03) - label 0x2c - message CHR_JOANNA, 0x4a0e // "Cassandra has been immobilized." - set_stage_flag STAGEFLAG_CASS_DEAD - set_function CHR_SELF, GFUNC_IDLE + label(0x2c) + message(CHR_JOANNA, 0x4a0e) // "Cassandra has been immobilized." + set_stage_flag(STAGEFLAG_CASS_DEAD) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1005_check_cass_captured: +u8 func1005_check_cass_captured[] = { // Wait until Cass at helipad - beginloop 0x03 - if_chr_death_animation_finished CHR_CASS, /*goto*/ 0x0d - if_chr_dying CHR_CASS, /*goto*/ 0x0d - if_chr_unloaded CHR_CASS, /*goto*/ 0x0d - if_chr_y CHR_CASS, 0, OPERATOR_LESS_THAN, /*goto*/ 0x2c - message CHR_JOANNA, 0x4a0f // "Cassandra has been captured successfully." - set_stage_flag STAGEFLAG_CASS_CAPTURED - set_function CHR_SELF, GFUNC_IDLE + beginloop(0x03) + if_chr_death_animation_finished(CHR_CASS, /*goto*/ 0x0d) + if_chr_dying(CHR_CASS, /*goto*/ 0x0d) + if_chr_unloaded(CHR_CASS, /*goto*/ 0x0d) + if_chr_y(CHR_CASS, 0, OPERATOR_LESS_THAN, /*goto*/ 0x2c) + message(CHR_JOANNA, 0x4a0f) // "Cassandra has been captured successfully." + set_stage_flag(STAGEFLAG_CASS_CAPTURED) + set_function(CHR_SELF, GFUNC_IDLE) // Cass is not at helipad - label 0x2c - endloop 0x03 + label(0x2c) + endloop(0x03) // Died - label 0x0d - set_function CHR_SELF, GFUNC_IDLE + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1006_lift_disabling: +u8 func1006_lift_disabling[] = { // If not PA, return - if_difficulty_lt DIFF_PA, /*goto*/ 0x06 - goto_next 0x2c - label 0x06 - set_function CHR_SELF, GFUNC_IDLE + if_difficulty_lt(DIFF_PA, /*goto*/ 0x06) + goto_next(0x2c) + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) // Disable chief's lift - label 0x2c - lock_door 0x50, 0x40 - set_object_flag_bank0 OBJ_CHIEF_LIFT, OBJECTFLAG0_DEACTIVATED + label(0x2c) + lock_door(0x50, 0x40) + set_object_flag_bank0(OBJ_CHIEF_LIFT, OBJECTFLAG0_DEACTIVATED) // Wait until player Y above -4300 - beginloop 0x03 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_y CHR_P1P2, -4300, OPERATOR_LESS_THAN, /*goto*/ 0x2c - goto_next 0x06 - label 0x2c - endloop 0x03 + beginloop(0x03) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_y(CHR_P1P2, -4300, OPERATOR_LESS_THAN, /*goto*/ 0x2c) + goto_next(0x06) + label(0x2c) + endloop(0x03) // Disable player's lift - label 0x06 - set_lights_state 0x0082, 0x02, 0x00, 0x78, 0x00 - play_sound 0x8147, -1 - set_object_flag_bank0 OBJ_BLONDE_LIFT, OBJECTFLAG0_DEACTIVATED - unlock_door 0x50, 0x40 - unset_object_flag_bank0 OBJ_CHIEF_LIFT, OBJECTFLAG0_DEACTIVATED - unset_chr_flag_bank3 CHR_CHIEF, CHRFLAG3_HIDDEN - set_function CHR_CHIEF, FUNC_CHIEF - message CHR_JOANNA, 0x4a19 // "Lift has been disabled." + label(0x06) + set_lights_state(0x0082, 0x02, 0x00, 0x78, 0x00) + play_sound(0x8147, -1) + set_object_flag_bank0(OBJ_BLONDE_LIFT, OBJECTFLAG0_DEACTIVATED) + unlock_door(0x50, 0x40) + unset_object_flag_bank0(OBJ_CHIEF_LIFT, OBJECTFLAG0_DEACTIVATED) + unset_chr_flag_bank3(CHR_CHIEF, CHRFLAG3_HIDDEN) + set_function(CHR_CHIEF, FUNC_CHIEF) + message(CHR_JOANNA, 0x4a19) // "Lift has been disabled." // Wait until chief dead - beginloop 0x08 - if_chr_death_animation_finished CHR_CHIEF, /*goto*/ 0x2c - if_chr_dying CHR_CHIEF, /*goto*/ 0x2c - if_chr_unloaded CHR_CHIEF, /*goto*/ 0x2c - endloop 0x08 + beginloop(0x08) + if_chr_death_animation_finished(CHR_CHIEF, /*goto*/ 0x2c) + if_chr_dying(CHR_CHIEF, /*goto*/ 0x2c) + if_chr_unloaded(CHR_CHIEF, /*goto*/ 0x2c) + endloop(0x08) - label 0x2c - message CHR_JOANNA, 0x4a10 // "Security chief has been eliminated." - set_stage_flag STAGEFLAG_CHIEF_DEAD + label(0x2c) + message(CHR_JOANNA, 0x4a10) // "Security chief has been eliminated." + set_stage_flag(STAGEFLAG_CHIEF_DEAD) restart_timer // Wait 2 seconds - beginloop 0x09 - if_timer_gt 120, /*goto*/ 0x2c - endloop 0x09 + beginloop(0x09) + if_timer_gt(120, /*goto*/ 0x2c) + endloop(0x09) // Activate lifts and exit - label 0x2c - unset_object_flag_bank0 OBJ_CHIEF_LIFT, OBJECTFLAG0_DEACTIVATED - unset_object_flag_bank0 OBJ_BLONDE_LIFT, OBJECTFLAG0_DEACTIVATED - set_function CHR_SELF, GFUNC_IDLE + label(0x2c) + unset_object_flag_bank0(OBJ_CHIEF_LIFT, OBJECTFLAG0_DEACTIVATED) + unset_object_flag_bank0(OBJ_BLONDE_LIFT, OBJECTFLAG0_DEACTIVATED) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func0414_init_chief: - set_accuracy 40 - set_reaction_speed 100 - set_chr_health CHR_SELF, 60 - set_armor 40 - set_recovery_speed 0 - set_shield 0 - set_var_a 0 - set_self_flag_bank3 CHRFLAG3_HIDDEN - set_function CHR_SELF, GFUNC_IDLE +u8 func0414_init_chief[] = { + set_accuracy(40) + set_reaction_speed(100) + set_chr_health(CHR_SELF, 60) + set_armor(40) + set_recovery_speed(0) + set_shield(0) + set_var_a(0) + set_self_flag_bank3(CHRFLAG3_HIDDEN) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func0415_chief: - set_onshot_function FUNC_CHIEF +u8 func0415_chief[] = { + set_onshot_function(FUNC_CHIEF) // Check if dying - if_chr_dying CHR_CHIEF, /*goto*/ 0x2c - if_chr_death_animation_finished CHR_CHIEF, /*goto*/ 0x2c - if_chr_unloaded CHR_CHIEF, /*goto*/ 0x2c - goto_next 0x03 - label 0x2c - set_function CHR_SELF, GFUNC_IDLE + if_chr_dying(CHR_CHIEF, /*goto*/ 0x2c) + if_chr_death_animation_finished(CHR_CHIEF, /*goto*/ 0x2c) + if_chr_unloaded(CHR_CHIEF, /*goto*/ 0x2c) + goto_next(0x03) + label(0x2c) + set_function(CHR_SELF, GFUNC_IDLE) // Wait until player in sight - beginloop 0x03 - 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*/ 0x2c - label 0x06 - reloop 0x03 + beginloop(0x03) + 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*/ 0x2c) + label(0x06) + reloop(0x03) // Attack while in sight - label 0x2c - try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x2c - label 0x2c - try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x82 + label(0x2c) + try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x2c) + label(0x2c) + try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x82) - beginloop 0x82 - if_chr_stopped /*goto*/ 0x06 - endloop 0x82 + beginloop(0x82) + if_chr_stopped(/*goto*/ 0x06) + endloop(0x82) - label 0x06 - endloop 0x03 + label(0x06) + endloop(0x03) endfunction +}; -func100f_disable_chiefs_lift: +u8 func100f_disable_chiefs_lift[] = { // If not PA, return - if_difficulty_lt DIFF_PA, /*goto*/ 0x0d + if_difficulty_lt(DIFF_PA, /*goto*/ 0x0d) // Wait until player above -4400 - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_y CHR_P1P2, -4400, OPERATOR_LESS_THAN, /*goto*/ 0x2c - goto_next 0x06 - label 0x2c - reloop 0x04 + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_y(CHR_P1P2, -4400, OPERATOR_LESS_THAN, /*goto*/ 0x2c) + goto_next(0x06) + label(0x2c) + reloop(0x04) // Wait until chief above -4600 - label 0x06 - if_chr_y CHR_CHIEF, -4600, OPERATOR_LESS_THAN, /*goto*/ 0x2c - goto_next 0x06 - label 0x2c - endloop 0x04 + label(0x06) + if_chr_y(CHR_CHIEF, -4600, OPERATOR_LESS_THAN, /*goto*/ 0x2c) + goto_next(0x06) + label(0x2c) + endloop(0x04) // Wait half a second - label 0x06 + label(0x06) restart_timer - beginloop 0x0a - if_timer_gt 30, /*goto*/ 0x06 - endloop 0x0a + beginloop(0x0a) + if_timer_gt(30, /*goto*/ 0x06) + endloop(0x0a) // Disable chief's lift - label 0x06 - set_object_flag_bank0 OBJ_CHIEF_LIFT, OBJECTFLAG0_DEACTIVATED + label(0x06) + set_object_flag_bank0(OBJ_CHIEF_LIFT, OBJECTFLAG0_DEACTIVATED) // A or SA - return - label 0x0d - set_function CHR_SELF, GFUNC_IDLE + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1007_bomb_logic: +u8 func1007_bomb_logic[] = { // Wait until in lab elevator and has bomb equipped - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_in_room CHR_P1P2, 0x00, 0x002b, /*goto*/ 0x2c - reloop 0x04 + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_in_room(CHR_P1P2, 0x00, 0x002b, /*goto*/ 0x2c) + reloop(0x04) - label 0x2c - if_chr_weapon_equipped CHR_P1P2, WEAPON_SKEDARBOMB, /*goto*/ 0x2c - endloop 0x04 + label(0x2c) + if_chr_weapon_equipped(CHR_P1P2, WEAPON_SKEDARBOMB, /*goto*/ 0x2c) + endloop(0x04) // Plant bomb - label 0x2c - message CHR_JOANNA, 0x4a16 // "Skedar bomb has been placed successfully." - remove_weapon_from_inventory WEAPON_SKEDARBOMB - set_stage_flag STAGEFLAG_BOMB_PLANTED - hide_object OBJ_JOANNA_BOMB - hide_object OBJ_VELVET_BOMB - assign_sound 0x8144, CHANNEL_1 - play_sound_from_object CHANNEL_1, OBJ_PLANTED_BOMB, 0x0258, 0x04b0 - unset_object_flag_bank1 OBJ_PLANTED_BOMB, OBJECTFLAG1_INVISIBLE - set_object_image OBJ_PLANTED_BOMB, 0x00, 0x0f - unset_object_flag_bank0 OBJ_PLANTED_BOMB, OBJECTFLAG0_INVINCIBLE + label(0x2c) + message(CHR_JOANNA, 0x4a16) // "Skedar bomb has been placed successfully." + remove_weapon_from_inventory(WEAPON_SKEDARBOMB) + set_stage_flag(STAGEFLAG_BOMB_PLANTED) + hide_object(OBJ_JOANNA_BOMB) + hide_object(OBJ_VELVET_BOMB) + assign_sound(0x8144, CHANNEL_1) + play_sound_from_object(CHANNEL_1, OBJ_PLANTED_BOMB, 0x0258, 0x04b0) + unset_object_flag_bank1(OBJ_PLANTED_BOMB, OBJECTFLAG1_INVISIBLE) + set_object_image(OBJ_PLANTED_BOMB, 0x00, 0x0f) + unset_object_flag_bank0(OBJ_PLANTED_BOMB, OBJECTFLAG0_INVINCIBLE) // Start 4 minute timer - set_countdown_timer 240 + set_countdown_timer(240) show_countdown_timer start_countdown_timer - beginloop 0x08 - if_countdown_timer_gt 0, /*goto*/ 0x2d - goto_next 0x2c - label 0x2d - if_object_in_good_condition OBJ_PLANTED_BOMB, /*goto*/ 0x06 - goto_next 0xb2 - label 0x06 - endloop 0x08 + beginloop(0x08) + if_countdown_timer_gt(0, /*goto*/ 0x2d) + goto_next(0x2c) + label(0x2d) + if_object_in_good_condition(OBJ_PLANTED_BOMB, /*goto*/ 0x06) + goto_next(0xb2) + label(0x06) + endloop(0x08) // Timer expired // @bug: This stage flag should be set when the bomb is exploding. It is not // set when the bomb is damaged. - label 0x2c - set_countdown_timer 0 + label(0x2c) + set_countdown_timer(0) stop_countdown_timer - set_stage_flag STAGEFLAG_BOMB_EXPIRED - message CHR_JOANNA, 0x4a17 // "Skedar bomb has detonated." + set_stage_flag(STAGEFLAG_BOMB_EXPIRED) + message(CHR_JOANNA, 0x4a17) // "Skedar bomb has detonated." // Wait 2 seconds restart_timer - beginloop 0x09 - if_timer_gt 120, /*goto*/ 0x2c - endloop 0x09 + beginloop(0x09) + if_timer_gt(120, /*goto*/ 0x2c) + endloop(0x09) // Bomb exploding - label 0xb2 - label 0x2c - explosions_around_chr CHR_JOANNA + label(0xb2) + label(0x2c) + explosions_around_chr(CHR_JOANNA) // Wait 2 seconds for player to die restart_timer - beginloop 0xb4 - if_timer_gt 120, /*goto*/ 0x2c - endloop 0xb4 + beginloop(0xb4) + if_timer_gt(120, /*goto*/ 0x2c) + endloop(0xb4) - label 0x2c + label(0x2c) end_level - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1008_check_bomb_unplantable: +u8 func1008_check_bomb_unplantable[] = { // If Agent, return - if_difficulty_lt DIFF_SA, /*goto*/ 0x0d + if_difficulty_lt(DIFF_SA, /*goto*/ 0x0d) // Wait until bomb planted or alarm active - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_BOMB_PLANTED, TRUE, /*goto*/ 0x06 - if_alarm_active /*goto*/ 0x2c - reloop 0x04 + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_BOMB_PLANTED, TRUE, /*goto*/ 0x06) + if_alarm_active(/*goto*/ 0x2c) + reloop(0x04) // Bomb planted - return - label 0x06 - set_function CHR_SELF, GFUNC_IDLE + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) // Alarm active - lock door and wait for door to be closed or bomb planted - label 0x2c - lock_door 0x2e, 0x40 - lock_door 0x2f, 0x40 + label(0x2c) + lock_door(0x2e, 0x40) + lock_door(0x2f, 0x40) - beginloop 0xb1 - if_stage_flag_eq STAGEFLAG_BOMB_PLANTED, TRUE, /*goto*/ 0x0d - if_door_state 0x2e, DOORSTATE_CLOSED, /*goto*/ 0xb2 - reloop 0xb1 + beginloop(0xb1) + if_stage_flag_eq(STAGEFLAG_BOMB_PLANTED, TRUE, /*goto*/ 0x0d) + if_door_state(0x2e, DOORSTATE_CLOSED, /*goto*/ 0xb2) + reloop(0xb1) // Door is closed - label 0xb2 + label(0xb2) yield - consider_coop_for_p1p2_chr CHR_SELF - if_stage_flag_eq STAGEFLAG_BOMB_PLANTED, TRUE, /*goto*/ 0x0d - if_chr_in_room CHR_JOANNA, 0x00, 0x002b, /*goto*/ 0x06 - if_chr_in_room CHR_VELVET, 0x00, 0x002b, /*goto*/ 0x06 - goto_next 0x2c - label 0x06 - endloop 0xb1 + consider_coop_for_p1p2_chr(CHR_SELF) + if_stage_flag_eq(STAGEFLAG_BOMB_PLANTED, TRUE, /*goto*/ 0x0d) + if_chr_in_room(CHR_JOANNA, 0x00, 0x002b, /*goto*/ 0x06) + if_chr_in_room(CHR_VELVET, 0x00, 0x002b, /*goto*/ 0x06) + goto_next(0x2c) + label(0x06) + endloop(0xb1) // Fail mission - label 0x2c - message CHR_JOANNA, 0x4a18 // "Lift doors locked - bomb cannot be placed." - set_stage_flag STAGEFLAG_BOMB_UNPLANTABLE + label(0x2c) + message(CHR_JOANNA, 0x4a18) // "Lift doors locked - bomb cannot be placed." + set_stage_flag(STAGEFLAG_BOMB_UNPLANTABLE) // Difficulty is agent or bomb has been planted - return - label 0x0d - set_function CHR_SELF, GFUNC_IDLE + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) - label 0x2c - endloop 0x04 + label(0x2c) + endloop(0x04) endfunction +}; -func1009_toggle_top_guards: - hide_chr 0x00 - hide_chr 0x0b - hide_chr 0x09 - hide_chr 0x1e - hide_chr 0x1f - hide_chr 0x20 - hide_chr 0x07 - hide_chr 0x0a - hide_chr 0x0c - hide_chr 0x18 - hide_chr 0x19 - hide_chr 0x1a - hide_chr 0x1b - hide_chr 0x1c - hide_chr 0x1d - hide_chr 0x08 - hide_chr 0x0d - hide_chr 0x17 - hide_chr 0x06 - hide_chr 0x05 +u8 func1009_toggle_top_guards[] = { + hide_chr(0x00) + hide_chr(0x0b) + hide_chr(0x09) + hide_chr(0x1e) + hide_chr(0x1f) + hide_chr(0x20) + hide_chr(0x07) + hide_chr(0x0a) + hide_chr(0x0c) + hide_chr(0x18) + hide_chr(0x19) + hide_chr(0x1a) + hide_chr(0x1b) + hide_chr(0x1c) + hide_chr(0x1d) + hide_chr(0x08) + hide_chr(0x0d) + hide_chr(0x17) + hide_chr(0x06) + hide_chr(0x05) // Wait until player above -4100 - beginloop 0x04 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_y CHR_P1P2, -4100, OPERATOR_LESS_THAN, /*goto*/ 0x2c - goto_next 0x06 - label 0x2c - endloop 0x04 + beginloop(0x04) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_y(CHR_P1P2, -4100, OPERATOR_LESS_THAN, /*goto*/ 0x2c) + goto_next(0x06) + label(0x2c) + endloop(0x04) // Show chrs - label 0x06 - show_chr 0x00 + label(0x06) + show_chr(0x00) yield - show_chr 0x0b + show_chr(0x0b) yield - show_chr 0x09 + show_chr(0x09) yield - show_chr 0x1e + show_chr(0x1e) yield - show_chr 0x1f + show_chr(0x1f) yield - show_chr 0x20 + show_chr(0x20) yield - show_chr 0x07 + show_chr(0x07) yield - show_chr 0x0a + show_chr(0x0a) yield - show_chr 0x0c + show_chr(0x0c) yield - show_chr 0x18 + show_chr(0x18) yield - show_chr 0x19 + show_chr(0x19) yield - show_chr 0x1a + show_chr(0x1a) yield - show_chr 0x1b + show_chr(0x1b) yield - show_chr 0x1c + show_chr(0x1c) yield - show_chr 0x1d + show_chr(0x1d) yield - show_chr 0x08 + show_chr(0x08) yield - show_chr 0x0d + show_chr(0x0d) yield - show_chr 0x17 + show_chr(0x17) yield - show_chr 0x06 + show_chr(0x06) yield - show_chr 0x05 - set_function CHR_SELF, GFUNC_IDLE + show_chr(0x05) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func100a_check_for_completion: +u8 func100a_check_for_completion[] = { // Wait until all objectives complete - beginloop 0x04 - if_all_objectives_complete /*goto*/ 0x2c - reloop 0x04 + beginloop(0x04) + if_all_objectives_complete(/*goto*/ 0x2c) + reloop(0x04) // Wait until player at helipad - label 0x2c - consider_coop_for_p1p2_chr CHR_SELF - if_chr_y CHR_P1P2, 0, OPERATOR_LESS_THAN, /*goto*/ 0x2d + label(0x2c) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_y(CHR_P1P2, 0, OPERATOR_LESS_THAN, /*goto*/ 0x2d) // Wait 1 second restart_timer - beginloop 0x08 - if_timer_gt 60, /*goto*/ 0x06 - endloop 0x08 + beginloop(0x08) + if_timer_gt(60, /*goto*/ 0x06) + endloop(0x08) // If either player is alive - label 0x06 - if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x2c - if_chr_dying CHR_JOANNA, /*goto*/ 0x2c - if_chr_unloaded CHR_JOANNA, /*goto*/ 0x2c - goto_next 0x06 + label(0x06) + if_chr_death_animation_finished(CHR_JOANNA, /*goto*/ 0x2c) + if_chr_dying(CHR_JOANNA, /*goto*/ 0x2c) + if_chr_unloaded(CHR_JOANNA, /*goto*/ 0x2c) + goto_next(0x06) - label 0x2c - if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2c - if_chr_dying CHR_VELVET, /*goto*/ 0x2c - if_chr_unloaded CHR_VELVET, /*goto*/ 0x2c - goto_next 0x06 + label(0x2c) + if_chr_death_animation_finished(CHR_VELVET, /*goto*/ 0x2c) + if_chr_dying(CHR_VELVET, /*goto*/ 0x2c) + if_chr_unloaded(CHR_VELVET, /*goto*/ 0x2c) + goto_next(0x06) // Both players dead - label 0x2c + label(0x2c) end_level - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) // At least one player is alive - label 0x06 - set_function CHR_SELF, FUNC_OUTRO + label(0x06) + set_function(CHR_SELF, FUNC_OUTRO) end_level - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) // Player not at helipad - label 0x2d - endloop 0x04 + label(0x2d) + endloop(0x04) endfunction +}; -func100b_start_lifts: - activate_lift 2, 0x55 - activate_lift 1, 0x56 - set_function CHR_SELF, GFUNC_IDLE +u8 func100b_start_lifts[] = { + activate_lift(2, 0x55) + activate_lift(1, 0x56) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func100c_lift_doors: +u8 func100c_lift_doors[] = { // Wait until player activated a lift door - beginloop 0xc1 - consider_coop_for_p1p2_chr CHR_SELF - if_chr_activated_object CHR_P1P2, 0x57, /*goto*/ 0xb1 - if_chr_activated_object CHR_P1P2, 0x58, /*goto*/ 0xb1 - if_chr_activated_object CHR_P1P2, 0x59, /*goto*/ 0xb1 - if_chr_activated_object CHR_P1P2, 0x5a, /*goto*/ 0x2d - if_chr_activated_object CHR_P1P2, 0x5b, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, 0x5e, /*goto*/ 0x2c - if_chr_activated_object CHR_P1P2, 0x5c, /*goto*/ 0x2d - if_chr_activated_object CHR_P1P2, 0x5d, /*goto*/ 0x2d - reloop 0xc1 + beginloop(0xc1) + consider_coop_for_p1p2_chr(CHR_SELF) + if_chr_activated_object(CHR_P1P2, 0x57, /*goto*/ 0xb1) + if_chr_activated_object(CHR_P1P2, 0x58, /*goto*/ 0xb1) + if_chr_activated_object(CHR_P1P2, 0x59, /*goto*/ 0xb1) + if_chr_activated_object(CHR_P1P2, 0x5a, /*goto*/ 0x2d) + if_chr_activated_object(CHR_P1P2, 0x5b, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, 0x5e, /*goto*/ 0x2c) + if_chr_activated_object(CHR_P1P2, 0x5c, /*goto*/ 0x2d) + if_chr_activated_object(CHR_P1P2, 0x5d, /*goto*/ 0x2d) + reloop(0xc1) - label 0xb1 - if_door_locked 0x50, 0x40, /*goto*/ 0x2d - goto_next 0x2c + label(0xb1) + if_door_locked(0x50, 0x40, /*goto*/ 0x2d) + goto_next(0x2c) - label 0x2c - play_sound 0x81b0, -1 - goto_next 0x06 + label(0x2c) + play_sound(0x81b0, -1) + goto_next(0x06) // Door locked - label 0x2d - play_sound 0x05dd, -1 + label(0x2d) + play_sound(0x05dd, -1) // Wait 2 seconds - label 0x06 + label(0x06) restart_timer - beginloop 0x08 - if_timer_gt 120, /*goto*/ 0x06 - endloop 0x08 + beginloop(0x08) + if_timer_gt(120, /*goto*/ 0x06) + endloop(0x08) - label 0x06 - endloop 0xc1 + label(0x06) + endloop(0xc1) endfunction +}; -func0416_intro: - set_object_flag_bank1 0x61, OBJECTFLAG1_INVISIBLE - set_object_flag_bank1 0x62, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank0 0x61, OBJECTFLAG0_00000100 - unset_object_flag_bank0 0x62, OBJECTFLAG0_00000100 - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_music_track MUSIC_G5_INTRO - camera_movement 0x0472 - cmd0175 60 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x0473, -1, -1, 0x0600, CHR_JOANNA, 4 +u8 func0416_intro[] = { + set_object_flag_bank1(0x61, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank1(0x62, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank0(0x61, OBJECTFLAG0_00000100) + unset_object_flag_bank0(0x62, OBJECTFLAG0_00000100) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_music_track(MUSIC_G5_INTRO) + camera_movement(0x0472) + cmd0175(60) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x0473, -1, -1, 0x0600, CHR_JOANNA, 4) restart_timer - fade_to_color 0x000000ff, 0 - fade_to_color 0x00000000, 110 - set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE + fade_to_color(0x000000ff, 0) + fade_to_color(0x00000000, 110) + set_cutscene_weapon(CHR_JOANNA, WEAPON_NONE, WEAPON_NONE) yield - set_cutscene_weapon CHR_JOANNA, WEAPON_MAULER, WEAPON_NONE - open_door OBJ_LOBBYDOOR_LEFT - open_door OBJ_LOBBYDOOR_RIGHT + set_cutscene_weapon(CHR_JOANNA, WEAPON_MAULER, WEAPON_NONE) + open_door(OBJ_LOBBYDOOR_LEFT) + open_door(OBJ_LOBBYDOOR_RIGHT) - .macro wait_until time loopid - beginloop \loopid - if_controller_button_pressed /*goto*/ 0xba - if_timer_gt \time, /*goto*/ 0x06 - endloop \loopid + #define wait_until(time, loopid) \ + beginloop(loopid) \ + if_controller_button_pressed(/*goto*/ 0xba) \ + if_timer_gt(time, /*goto*/ 0x06) \ + endloop(loopid) \ + \ + label(0x06) - label 0x06 - .endm - wait_until 106, 0xb1 - play_sound 0x0162, CHANNEL_10 - play_sound 0x047a, CHANNEL_10 - wait_until 107, 0xb3 - open_door OBJ_LOBBYDOOR_LEFT - open_door OBJ_LOBBYDOOR_RIGHT + wait_until(106, 0xb1) + play_sound(0x0162, CHANNEL_10) + play_sound(0x047a, CHANNEL_10) - wait_until 170, 0xb2 - play_sound 0x0163, CHANNEL_10 + wait_until(107, 0xb3) + open_door(OBJ_LOBBYDOOR_LEFT) + open_door(OBJ_LOBBYDOOR_RIGHT) - wait_until 246, 0xb6 - play_sound 0x0161, CHANNEL_10 + wait_until(170, 0xb2) + play_sound(0x0163, CHANNEL_10) - wait_until 280, 0xb7 - close_door OBJ_LOBBYDOOR_LEFT - close_door OBJ_LOBBYDOOR_RIGHT + wait_until(246, 0xb6) + play_sound(0x0161, CHANNEL_10) - wait_until 290, 0xb9 + wait_until(280, 0xb7) + close_door(OBJ_LOBBYDOOR_LEFT) + close_door(OBJ_LOBBYDOOR_RIGHT) - beginloop 0x08 - if_camera_animating /*goto*/ 0x2c - goto_next 0xba - label 0x2c - if_controller_button_pressed /*goto*/ 0xba - label 0x2c - endloop 0x08 + wait_until(290, 0xb9) + + beginloop(0x08) + if_camera_animating(/*goto*/ 0x2c) + goto_next(0xba) + label(0x2c) + if_controller_button_pressed(/*goto*/ 0xba) + label(0x2c) + endloop(0x08) // Controller button pressed or cutscene finished - label 0xba - hide_object OBJ_LOBBYDOOR_LEFT - hide_object OBJ_LOBBYDOOR_RIGHT - unset_object_flag_bank1 0x61, OBJECTFLAG1_INVISIBLE - unset_object_flag_bank1 0x62, OBJECTFLAG1_INVISIBLE - set_object_flag_bank0 0x61, OBJECTFLAG0_00000100 - set_object_flag_bank0 0x62, OBJECTFLAG0_00000100 - mute_channel CHANNEL_10 - unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - animation 0x0473, -2, -1, 0x0600, CHR_JOANNA, 2 + label(0xba) + hide_object(OBJ_LOBBYDOOR_LEFT) + hide_object(OBJ_LOBBYDOOR_RIGHT) + unset_object_flag_bank1(0x61, OBJECTFLAG1_INVISIBLE) + unset_object_flag_bank1(0x62, OBJECTFLAG1_INVISIBLE) + set_object_flag_bank0(0x61, OBJECTFLAG0_00000100) + set_object_flag_bank0(0x62, OBJECTFLAG0_00000100) + mute_channel(CHANNEL_10) + unset_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + unset_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + animation(0x0473, -2, -1, 0x0600, CHR_JOANNA, 2) restart_default_music reset_ambience enter_firstperson - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func0417_outro: - set_invincible CHR_JOANNA - hide_object OBJ_SHUTTLE1 - set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN - set_music_track MUSIC_G5_OUTRO - camera_movement 0x0474 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE - set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000 - set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_CASS, CHRFLAG3_HIDDEN - set_chr_flag_bank3 CHR_CASS, CHRFLAG3_INVINCIBLE_TO_GUNFIRE - show_object OBJ_SHUTTLE2 - set_object_flag_bank1 OBJ_SHUTTLE2, OBJECTFLAG1_04000000 - set_object_flag_bank2 OBJ_SHUTTLE2, OBJECTFLAG2_00000010 - object_do_animation 0x0475, OBJ_SHUTTLE2, 0x04ff, 0xff - show_nonessential_chrs FALSE +u8 func0417_outro[] = { + set_invincible(CHR_JOANNA) + hide_object(OBJ_SHUTTLE1) + set_chr_flag_bank3(CHR_VELVET, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_COUNTEROP, CHRFLAG3_HIDDEN) + set_music_track(MUSIC_G5_OUTRO) + camera_movement(0x0474) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_UNPLAYABLE) + set_chr_flag_bank2(CHR_JOANNA, CHRFLAG2_00020000) + set_chr_flag_bank3(CHR_JOANNA, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_CASS, CHRFLAG3_HIDDEN) + set_chr_flag_bank3(CHR_CASS, CHRFLAG3_INVINCIBLE_TO_GUNFIRE) + show_object(OBJ_SHUTTLE2) + set_object_flag_bank1(OBJ_SHUTTLE2, OBJECTFLAG1_04000000) + set_object_flag_bank2(OBJ_SHUTTLE2, OBJECTFLAG2_00000010) + object_do_animation(0x0475, OBJ_SHUTTLE2, 0x04ff, 0xff) + show_nonessential_chrs(FALSE) restart_timer - set_object_part_visible OBJ_SHUTTLE2, FALSE + set_object_part_visible(OBJ_SHUTTLE2, FALSE) - beginloop 0x08 - if_camera_animating /*goto*/ 0x2c - goto_next 0xba - label 0x2c - if_controller_button_pressed /*goto*/ 0xba - label 0x2c - endloop 0x08 + beginloop(0x08) + if_camera_animating(/*goto*/ 0x2c) + goto_next(0xba) + label(0x2c) + if_controller_button_pressed(/*goto*/ 0xba) + label(0x2c) + endloop(0x08) - label 0xba - hide_object OBJ_SHUTTLE2 + label(0xba) + hide_object(OBJ_SHUTTLE2) - label 0x06 + label(0x06) end_level - set_function CHR_SELF, GFUNC_IDLE + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func100e_cass_speech: +u8 func100e_cass_speech[] = { // Wait until trigger - beginloop 0x04 - if_stage_flag_eq STAGEFLAG_TRIGGER_YWSM, TRUE, /*goto*/ 0x2c - endloop 0x04 + beginloop(0x04) + if_stage_flag_eq(STAGEFLAG_TRIGGER_YWSM, TRUE, /*goto*/ 0x2c) + endloop(0x04) // Wait until channel empty - label 0x2c + label(0x2c) yield - beginloop 0xb1 - if_sound_finished CHANNEL_6, /*goto*/ 0x2c - endloop 0xb1 + beginloop(0xb1) + if_sound_finished(CHANNEL_6, /*goto*/ 0x2c) + endloop(0xb1) // Speak - label 0x2c + label(0x2c) restart_timer - speak CHR_CASS, 0x4a0d, 0x6af5, CHANNEL_6, COLOR_04_ORANGE // "You won't shoot me!" - animation 0x00a0, 0, 193, 0x1810, CHR_SELF, 2 + speak(CHR_CASS, 0x4a0d, 0x6af5, CHANNEL_6, COLOR_04_ORANGE) // "You won't shoot me!" + animation(0x00a0, 0, 193, 0x1810, CHR_SELF, 2) - beginloop 0x09 - if_timer_gt 80, /*goto*/ 0x06 - endloop 0x09 + beginloop(0x09) + if_timer_gt(80, /*goto*/ 0x06) + endloop(0x09) - label 0x06 - set_stage_flag STAGEFLAG_CASS_SAID_YWSM - set_function CHR_SELF, GFUNC_IDLE + label(0x06) + set_stage_flag(STAGEFLAG_CASS_SAID_YWSM) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1010_init_lighting: +u8 func1010_init_lighting[] = { yield - set_lighting 0x0000, 0x00, 0x01 - set_lighting 0x0000, 0x01, 0x00 - set_lighting 0x0000, 0x02, 0x00 - set_lighting 0x0000, 0x03, 0x00 - set_lighting 0x0000, 0x04, 0x00 - set_lighting 0x0002, 0x05, 0x01 - set_lighting 0x0002, 0x06, 0x01 - set_lighting 0x0003, 0x05, 0x01 - set_lighting 0x0003, 0x06, 0x01 - set_lighting 0x0004, 0x05, 0x01 - set_lighting 0x0004, 0x06, 0x01 - set_lighting 0x0005, 0x06, 0x01 - set_lighting 0x0006, 0x06, 0x01 - set_lighting 0x0007, 0x06, 0x01 - set_lighting 0x0008, 0x06, 0x01 - set_lighting 0x0009, 0x06, 0x01 - set_lighting 0x000a, 0x06, 0x01 - set_lighting 0x000b, 0x06, 0x01 - set_lighting 0x000c, 0x06, 0x01 - set_lighting 0x000d, 0x06, 0x01 - set_lighting 0x000e, 0x06, 0x01 - set_lighting 0x000f, 0x06, 0x01 - set_lighting 0x0010, 0x06, 0x01 - set_lighting 0x0011, 0x06, 0x01 - set_lighting 0x0012, 0x06, 0x01 - set_lighting 0x0013, 0x06, 0x01 - set_lighting 0x0014, 0x06, 0x01 - set_lighting 0x003a, 0x05, 0x01 - set_lighting 0x00a2, 0x06, 0x01 - set_lighting 0x00a4, 0x06, 0x01 - set_lighting 0x00a5, 0x06, 0x01 - set_lighting 0x00a7, 0x06, 0x01 - set_function CHR_SELF, GFUNC_IDLE + set_lighting(0x0000, 0x00, 0x01) + set_lighting(0x0000, 0x01, 0x00) + set_lighting(0x0000, 0x02, 0x00) + set_lighting(0x0000, 0x03, 0x00) + set_lighting(0x0000, 0x04, 0x00) + set_lighting(0x0002, 0x05, 0x01) + set_lighting(0x0002, 0x06, 0x01) + set_lighting(0x0003, 0x05, 0x01) + set_lighting(0x0003, 0x06, 0x01) + set_lighting(0x0004, 0x05, 0x01) + set_lighting(0x0004, 0x06, 0x01) + set_lighting(0x0005, 0x06, 0x01) + set_lighting(0x0006, 0x06, 0x01) + set_lighting(0x0007, 0x06, 0x01) + set_lighting(0x0008, 0x06, 0x01) + set_lighting(0x0009, 0x06, 0x01) + set_lighting(0x000a, 0x06, 0x01) + set_lighting(0x000b, 0x06, 0x01) + set_lighting(0x000c, 0x06, 0x01) + set_lighting(0x000d, 0x06, 0x01) + set_lighting(0x000e, 0x06, 0x01) + set_lighting(0x000f, 0x06, 0x01) + set_lighting(0x0010, 0x06, 0x01) + set_lighting(0x0011, 0x06, 0x01) + set_lighting(0x0012, 0x06, 0x01) + set_lighting(0x0013, 0x06, 0x01) + set_lighting(0x0014, 0x06, 0x01) + set_lighting(0x003a, 0x05, 0x01) + set_lighting(0x00a2, 0x06, 0x01) + set_lighting(0x00a4, 0x06, 0x01) + set_lighting(0x00a5, 0x06, 0x01) + set_lighting(0x00a7, 0x06, 0x01) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1011_shuttle_animation: +u8 func1011_shuttle_animation[] = { yield - show_object OBJ_SHUTTLE1 - set_object_flag_bank2 OBJ_SHUTTLE1, OBJECTFLAG2_00000010 - set_object_part_visible OBJ_SHUTTLE1, FALSE - label 0x09 + show_object(OBJ_SHUTTLE1) + set_object_flag_bank2(OBJ_SHUTTLE1, OBJECTFLAG2_00000010) + set_object_part_visible(OBJ_SHUTTLE1, FALSE) + label(0x09) restart_timer // Some kind of animation on repeat - beginloop 0x08 - object_do_animation 0x0489, OBJ_SHUTTLE1, 0x08ff, -1 - endloop 0x08 + beginloop(0x08) + object_do_animation(0x0489, OBJ_SHUTTLE1, 0x08ff, -1) + endloop(0x08) // Unreachable - label 0x06 - set_function CHR_SELF, GFUNC_IDLE + label(0x06) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -func1012_bebc: +u8 func1012_chief_lift[] = { yield // If A or SA, return - if_difficulty_lt DIFF_PA, /*goto*/ 0x0d + if_difficulty_lt(DIFF_PA, /*goto*/ 0x0d) // Wait until chief dead - beginloop 0x04 - if_objective_complete 1, /*goto*/ 0x2c - endloop 0x04 + beginloop(0x04) + if_objective_complete(1, /*goto*/ 0x2c) + endloop(0x04) // Wait 3 seconds - label 0xc1 - label 0x2c - restart_timer + label(0xc1) + label(0x2c) + restart_timer - beginloop 0xb1 - if_timer_gt 180, /*goto*/ 0x2c - endloop 0xb1 + beginloop(0xb1) + if_timer_gt(180, /*goto*/ 0x2c) + endloop(0xb1) - // Activate chief's lift - label 0x2c - unset_object_flag_bank0 OBJ_CHIEF_LIFT, OBJECTFLAG0_DEACTIVATED + // Activate chief's lift + label(0x2c) + unset_object_flag_bank0(OBJ_CHIEF_LIFT, OBJECTFLAG0_DEACTIVATED) - // The goto first here means that the lift continues to be activated every - // 3 seconds, but it is never deactivated so this is a no op. - goto_first 0xc1 + // The goto first here means that the lift continues to be activated every + // 3 seconds, but it is never deactivated so this is a no op. + goto_first(0xc1) // A or SA - return - label 0x0d - set_function CHR_SELF, GFUNC_IDLE + label(0x0d) + set_function(CHR_SELF, GFUNC_IDLE) endfunction +}; -functions: - register_function func0401_init_hovercar 0x0401 - register_function func0402_start_path26 0x0402 - register_function func0403_start_path27 0x0403 - register_function func0404_start_path28 0x0404 - register_function func0405_start_path29 0x0405 - register_function func0406_start_path30 0x0406 - register_function func0407_start_path31 0x0407 - register_function func0408_start_path32 0x0408 - register_function func0409_start_path33 0x0409 - register_function func040a_start_path34 0x040a - register_function func040b_start_path35 0x040b - register_function func040c_start_path36 0x040c - register_function func040d_start_path37 0x040d - register_function func040e_init_60hp_guard 0x040e - register_function func040f_init_40hp_guard 0x040f - register_function func0410_init_searching_guard 0x0410 - register_function func0411_cass_in_office 0x0411 - register_function func0412_init_cass 0x0412 - register_function func0413_cass_running 0x0413 - register_function func0414_init_chief 0x0414 - register_function func0415_chief 0x0415 - register_function func0416_intro 0x0416 - register_function func0417_outro 0x0417 +struct ailists functions[] = { + { func0401_init_hovercar, 0x0401 }, + { func0402_start_path26, 0x0402 }, + { func0403_start_path27, 0x0403 }, + { func0404_start_path28, 0x0404 }, + { func0405_start_path29, 0x0405 }, + { func0406_start_path30, 0x0406 }, + { func0407_start_path31, 0x0407 }, + { func0408_start_path32, 0x0408 }, + { func0409_start_path33, 0x0409 }, + { func040a_start_path34, 0x040a }, + { func040b_start_path35, 0x040b }, + { func040c_start_path36, 0x040c }, + { func040d_start_path37, 0x040d }, + { func040e_init_60hp_guard, 0x040e }, + { func040f_init_40hp_guard, 0x040f }, + { func0410_init_searching_guard, 0x0410 }, + { func0411_cass_in_office, 0x0411 }, + { func0412_init_cass, 0x0412 }, + { func0413_cass_running, 0x0413 }, + { func0414_init_chief, 0x0414 }, + { func0415_chief, 0x0415 }, + { func0416_intro, 0x0416 }, + { func0417_outro, 0x0417 }, + { func1000_setup_counterop, 0x1000 }, + { func1001_objectives_failed_msg, 0x1001 }, + { func1002_lightswitch, 0x1002 }, + { func0416_intro, 0x1003 }, + { func1004_check_cass_dead, 0x1004 }, + { func1005_check_cass_captured, 0x1005 }, + { func1006_lift_disabling, 0x1006 }, + { func1007_bomb_logic, 0x1007 }, + { func1008_check_bomb_unplantable, 0x1008 }, + { func1009_toggle_top_guards, 0x1009 }, + { func100a_check_for_completion, 0x100a }, + { func100b_start_lifts, 0x100b }, + { func100c_lift_doors, 0x100c }, + { func100e_cass_speech, 0x100e }, + { func100f_disable_chiefs_lift, 0x100f }, + { func1010_init_lighting, 0x1010 }, + { func1011_shuttle_animation, 0x1011 }, + { func1012_chief_lift, 0x1012 }, - register_function func1000_setup_counterop 0x1000 - register_function func1001_objectives_failed_msg 0x1001 - register_function func1002_lightswitch 0x1002 - register_function func0416_intro 0x1003 - register_function func1004_check_cass_dead 0x1004 - register_function func1005_check_cass_captured 0x1005 - register_function func1006_lift_disabling 0x1006 - register_function func1007_bomb_logic 0x1007 - register_function func1008_check_bomb_unplantable 0x1008 - register_function func1009_toggle_top_guards 0x1009 - register_function func100a_check_for_completion 0x100a - register_function func100b_start_lifts 0x100b - register_function func100c_lift_doors 0x100c - register_function func100e_cass_speech 0x100e - register_function func100f_disable_chiefs_lift 0x100f - register_function func1010_init_lighting 0x1010 - register_function func1011_shuttle_animation 0x1011 - register_function func1012_bebc 0x1012 + { func0416_intro, 0x0c00 }, + { func0417_outro, 0x0c01 }, + { NULL, 0 }, +}; - register_function func0416_intro 0x0c00 - register_function func0417_outro 0x0c01 - endfunctions - -.align 4 diff --git a/tools/irix/qemu-irix b/tools/irix/qemu-irix new file mode 100755 index 000000000..7f8a01d6f Binary files /dev/null and b/tools/irix/qemu-irix differ diff --git a/tools/irix/root/lib/libmalloc.so b/tools/irix/root/lib/libmalloc.so new file mode 100644 index 000000000..9fbe1b0e8 Binary files /dev/null and b/tools/irix/root/lib/libmalloc.so differ diff --git a/tools/irix/root/lib/libmalloc_old.so b/tools/irix/root/lib/libmalloc_old.so new file mode 100644 index 000000000..2a14987d1 Binary files /dev/null and b/tools/irix/root/lib/libmalloc_old.so differ diff --git a/tools/irix/root/lib/rld b/tools/irix/root/lib/rld new file mode 100755 index 000000000..727b42699 Binary files /dev/null and b/tools/irix/root/lib/rld differ diff --git a/tools/irix/root/usr/bin/cc b/tools/irix/root/usr/bin/cc new file mode 100755 index 000000000..2936fc3fd Binary files /dev/null and b/tools/irix/root/usr/bin/cc differ diff --git a/tools/irix/root/usr/lib/as0 b/tools/irix/root/usr/lib/as0 new file mode 100755 index 000000000..badf8c83b Binary files /dev/null and b/tools/irix/root/usr/lib/as0 differ diff --git a/tools/irix/root/usr/lib/as1 b/tools/irix/root/usr/lib/as1 new file mode 100755 index 000000000..c246db537 Binary files /dev/null and b/tools/irix/root/usr/lib/as1 differ diff --git a/tools/irix/root/usr/lib/cfe b/tools/irix/root/usr/lib/cfe new file mode 100755 index 000000000..305a50be4 Binary files /dev/null and b/tools/irix/root/usr/lib/cfe differ diff --git a/tools/irix/root/usr/lib/crt1.o b/tools/irix/root/usr/lib/crt1.o new file mode 100644 index 000000000..3052ae273 Binary files /dev/null and b/tools/irix/root/usr/lib/crt1.o differ diff --git a/tools/irix/root/usr/lib/err.english.cc b/tools/irix/root/usr/lib/err.english.cc new file mode 100644 index 000000000..6976e38a9 --- /dev/null +++ b/tools/irix/root/usr/lib/err.english.cc @@ -0,0 +1,1260 @@ +@ + 358 358 358 + 6464 6482 6553 + 6553 6593 6728 + 6728 6746 6803 + 6803 6808 6808 + 6808 6818 6818 + 6818 6826 6826 + 6826 6847 6847 + 6847 6875 6922 + 6922 6930 6930 + 6930 6939 6939 + 6939 6948 6948 + 6948 6974 7120 + 7120 7149 7204 + 7210 7248 7311 + 7317 7350 7442 + 7450 7497 7627 + 7635 7709 7930 + 7938 7975 8063 + 8071 8113 8253 + 8261 8289 8289 + 8298 8338 8445 + 8460 8502 8635 + 8650 8690 8819 + 8834 8857 8965 + 8965 9008 9113 + 9119 9142 9227 + 9235 9282 9451 + 9451 9462 9462 + 9462 9477 9477 + 9477 9497 9497 + 9497 9545 9545 + 9545 9584 9584 + 9584 9604 9662 + 9662 9682 9720 + 9720 9749 9749 + 9749 9788 9788 + 9788 9802 9802 + 9802 9829 9829 + 9829 9861 9861 + 9861 9904 9904 + 9904 9920 9920 + 9920 9962 9962 + 9962 9988 9988 + 9988 10014 10014 +10014 10035 10035 +10035 10054 10097 +10097 10115 10115 +10115 10147 10147 +10147 10183 10183 +10183 10208 10208 +10208 10236 10236 +10236 10269 10269 +10269 10304 10304 +10304 10328 10328 +10328 10351 10351 +10351 10371 10371 +10371 10402 10402 +10402 10447 10447 +10447 10497 10497 +10497 10533 10533 +10533 10598 10598 +10606 10630 10630 +10640 10671 10671 +10690 10719 10719 +10728 10752 10795 +10795 10837 10837 +10837 10876 10876 +10876 10900 10900 +10900 10948 10948 +10960 11021 11103 +11103 11128 11128 +11128 11153 11153 +11153 11216 11216 +11216 11239 11239 +11239 11303 11303 +11303 11347 11347 +11357 11393 11393 +11393 11432 11432 +11442 11494 11494 +11494 11536 11536 +11536 11595 11595 +11595 11622 11622 +11622 11684 11684 +11684 11726 11726 +11738 11778 11778 +11782 11813 11813 +11813 11850 11850 +11850 11900 12087 +12111 12120 12120 +12120 12129 12129 +12129 12158 12158 +12158 12192 12192 +12192 12237 12237 +12237 12273 12273 +12273 12326 12326 +12330 12366 12366 +12366 12423 12423 +12427 12482 12482 +12486 12560 12560 +12568 12631 12631 +12637 12691 12691 +12691 12743 12743 +12743 12785 12785 +12785 12826 12826 +12826 12865 12865 +12865 12883 12883 +12883 12946 12946 +12956 12995 12995 +13005 13066 13066 +13077 13163 13163 +13163 13211 13211 +13211 13270 13270 +13270 13318 13318 +13318 13350 13350 +13350 13387 13387 +13387 13428 13428 +13428 13464 13533 +13533 13580 13737 +13737 13776 13854 +13854 13913 13913 +13913 13950 13950 +13950 14118 14118 +14118 14150 14150 +14150 14163 14194 +14194 14224 14255 +14255 14275 14319 +14319 14353 14458 +14466 14484 14530 +14534 14567 14567 +14567 14635 14682 +14690 14742 14742 +14742 14789 14789 +14801 14875 14875 +14886 14947 14947 +14947 14992 14992 +14992 15035 15085 +15085 15134 15205 +15214 15267 15448 +15454 15496 16810 +16822 16875 16960 +16972 17053 17179 +17191 17236 17332 +17344 17491 17841 +17853 17939 18304 +18316 18471 18774 +18786 18952 19323 +19335 19364 19496 +19500 19527 19598 +19598 19613 19776 +19797 19808 19837 +19837 19862 19862 +19868 19927 20026 +20034 20075 20179 +20187 20223 20223 +20223 20290 20382 +20392 20441 20589 +20601 20656 20656 +20656 20699 20818 +20826 20860 21038 +21046 21094 21191 +21203 21236 21314 +21326 21395 21457 +21469 21502 21502 +21502 21587 21731 +21756 21789 21864 +21875 21901 21976 +22013 22059 22220 +22257 22397 22561 +22561 22595 22595 +22603 22623 22623 +22631 22667 22828 +22865 22919 22994 +23031 23059 23120 +23132 23201 23201 +23212 23274 23274 +23285 23345 23345 +23356 23393 23393 +23399 23431 23532 +23542 23587 23646 +23656 23697 23745 +23755 23796 23844 +23854 23876 23928 +23942 23971 24153 +24160 24243 24243 +24247 24273 24743 +24755 24784 24984 +24996 25034 25034 +25034 25075 25273 +25281 25332 25410 +25420 25467 25544 +25554 25583 25744 +25754 25783 26061 +26071 26111 26185 +26194 26239 26525 +26535 26568 26914 +26924 26951 26998 +27008 27035 27082 +27093 27120 27167 +27178 27206 27251 +27261 27289 27334 +27345 27391 27931 +27938 27959 28007 +28019 28037 28037 +28043 28069 28069 +28077 28147 28199 +28207 28266 28266 +28274 28306 28306 +28314 28339 28339 +28347 28404 28510 +28518 28567 28682 +28690 28728 28728 +28736 28782 29023 +29033 29085 29234 +29246 29303 29383 +29395 29432 29570 +29592 29631 29644 +29644 29693 29758 +29767 29810 29875 +29875 29911 29976 +29984 30014 30014 +30027 30086 30151 +30157 30223 30293 +30301 30369 30445 +30457 30511 30568 +30580 30630 30743 +30755 30812 30874 +30886 30959 31035 +31043 31076 31175 +31183 31243 31243 +31251 31323 31323 +31331 31433 31433 +31445 31544 31686 +31698 31740 31740 +31740 31783 31783 +31783 31824 31824 +31824 31873 31996 +32008 32056 32164 +32176 32210 32210 +32229 32271 32271 +32279 32323 32569 +32581 32642 32718 +32739 32779 32916 +32926 32953 33047 +33057 33116 33315 +33325 33373 33373 +33373 33407 33469 +33494 33527 33527 +33536 33573 33573 +33584 33650 33697 +33705 33763 33763 +33763 33797 33797 +33797 33829 33906 +33915 33976 33976 +33985 34016 34098 +34098 34133 34198 +34198 34261 34261 +34269 34312 34312 +34324 34363 34438 +34444 34530 34530 +34538 34596 34626 +34636 34675 34754 +34764 34821 34821 +34821 34867 34950 +34959 35016 35135 +35145 35198 35198 +35208 35266 35344 +35355 35382 35537 +35547 35576 35629 +35637 35705 35705 +35713 35764 35764 +35764 35784 35876 +35888 35932 35950 +35950 36013 36138 +36150 36191 36280 +36286 36314 36419 +36431 36516 36516 +36516 36554 36642 +36642 36689 36808 +36818 36881 37105 +37113 37183 37204 +37204 37225 37225 +37225 37255 37348 +37348 37388 37388 +37388 37454 37454 +37454 37518 37518 +37518 37584 37584 +37584 37717 37717 +37717 37752 37752 +37752 37783 37889 +37901 37928 38034 +38046 38115 38115 +38115 38140 38187 +38195 38219 38339 +38351 38422 38422 +38422 38486 38486 +38486 38555 38555 +38555 38619 38619 +38619 38641 38641 +38641 38758 38758 +38758 38929 38929 +38929 38975 39043 +39055 39084 39133 +39133 39175 39265 +39275 39310 39494 +39504 39547 39576 +39587 39614 39668 +39674 39697 39797 +39797 39845 40094 +40094 40158 40264 +40264 40369 40523 +40523 40593 40593 +40593 40629 40876 +40876 40911 40971 +40977 41026 41026 +41038 41077 41077 +41077 41116 41116 +41116 41156 41156 +41156 41195 41195 +41195 41237 41237 +41237 41285 41285 +41285 41304 41304 +41304 41371 41371 +41371 41429 41429 +41429 41491 41491 +41491 41519 41519 +41519 41572 41572 +41572 41642 41642 +41642 41676 41676 +41676 41713 41713 +41713 41751 41751 +41751 41792 41792 +41792 41856 41856 +41856 41881 41881 +41881 41936 41936 +41936 41977 41977 +41977 42018 42018 +42018 42090 42090 +42090 42162 42162 +42162 42205 42205 +42205 42267 42267 +42267 42294 42294 +42294 42309 42309 +42309 42338 42386 +42393 42425 42522 +42530 42577 42577 +42577 42623 42623 +42623 42643 42725 +42725 42748 42748 +42748 42829 42897 +42901 42952 42952 +42952 42978 43025 +43025 43116 43116 +43116 43171 43171 +43171 43204 43376 +43386 43453 43471 +43471 43547 43780 +43798 43921 44116 +44120 44120 44120 +Out of memory: %s +There is no more memory left in the system for compiling this program. +Internal Error Unknown Error Message %s +1) An internal error, while attempting to print an unavailable message +2) The error message file is inaccessible or has other problems +Unknown Signal %s +1) An unknown signal has been caught +2) 2 Nested signals +line +Warning: +Fatal: +Source not available +Too many errors... goodbye. +There is a limit of 30 errors before aborting. +Error: +reserved +reserved +Unknown Control Statement +1) The line begins with a '#' and is not of the form: + # "" +2) Please compile this program with the preprocessor enabled. +Unknown character %s ignored +The character is not part of the source character set. +2.2.1 +Unknown control character \%s ignored +The control character is not part of the source character set. +2.2.1 +Illegal character %s in exponent +1) Digits or sign expected after 'e' or 'E'. +2) Digits are expected after sign in exponent. +3.1.3.1 +Constant is out of range and may be truncated. +The constant is too large to be accurately represented and may be +truncated. The limits are in the system include file limits.h. +2.2.4.2 +Constant is out of range for a 32-bit data type, but accepted as written. +The constant is too large to fit in a 32-bit data type, but will be +accurately represented in a wider data type. The value may be truncated, +depending on its context. The limits are in the system include file +limits.h. +2.2.4.2 +Character constant size out of range +1) No characters in a character constant. +2) More than 4 bytes in a character constant. +3.1.3.4 +Wide character constant size out of range +1) No characters in the multibyte sequence (0 assumed). +2) More than 1 byte in the multi-byte sequence (only the first byte was converted). +3.1.3.4 +Invalid multibyte character +4.10.7.2 +Newline in string or character constant +1) Terminate your string or character constant with closing quotes. +2) Put a backslash before the newline. +3.1.3.4, 3.1.4 +Octal character escape too large: %s > %s +1) Terminate end of octal sequence with a non-octal character. +2) Select a character value within the limits. +Value may be truncated +3.1.3.4, 3.1.4 +Hex character escape too large: %s > %s +1) Terminate end of hex sequence with a non-hex character. +2) Select a character value within the limits. +Value may be truncated +3.1.3.4, 3.1.4 +Unexpected End-of-file +1) Unterminated string or character constant +2) Missing closing comment marker (*/) +3) File system problems +Unrecognized escape sequence in string \%s +Recognized escape sequences are \a, \b, \f, \n, \r, \t, and \v. +Character will be treated as un-escaped. +3.9.2 +Illegal octal digit %s +Octal constants, beginning with 0, must only have digits between 0 and 7, +inclusive. +3.1.3.2 +Unable to open temporary file for compiling %s +1) TMPDIR environment variable is set to a directory that you have no + permissions for. +2) The file system is full. +3) System errors beyond the scope of the compiler. +%s: Hangup +%s: Interrupt +%s: Quit (ASCII FS) +%s: Illegal instruction (not reset when caught) +%s: Trace trap (not reset when caught) +%s: IOT instruction +Also SIGABRT, used by abort, replace SIGIOT in the future +%s: EMT instruction +Also SIGXCPU, Exceeded CPU time limit +%s: Floating point exception +%s: Kill (cannot be caught or ignored) +%s: Bus error +%s: Segmentation violation +%s: Bad argument to system call +%s: Write on a pipe with no one to read it +%s: Alarm clock +%s: Software termination signal from kill +%s: User defined signal 1 +%s: User defined signal 2 +%s: Death of a child +Power-fail restart +%s: Also SIGXFSZ, exceeded file size limit +%s: Window change +%s: Handset, line status change +%s: Sendablestop signalnot from tty +%s: Stop signal from tty +%s: Pollable event occurred +%s: Input/Output possible signal +%s: Urgent condition on IO channel +%s: Window size changes +%s: Virtual time alarm +%s: Profiling alarm +%s: Continue a stopped process +%s: To readers pgrp upon background tty read +%s: Like TTIN for output if (tp->t_local<OSTOP) +%s: Resource lost (eg, record-lock) +'auto' and 'register' are not allowed in an external declaration +3.7(10) +must have function type +3.7.1(30) +Functions cannot return arrays +3.7.1(33), 3.3.2.2 +Declaration list not allowed +3.7.1(5) +Too many input files %s +The command line may contain only one file +cpp internal error: input stack underflow +cpp internal error: if stack underflow +Cannot open the file %s +No new-line character at the end of the file %s +2.1.1.2(30) +Fatal: Exceeded the limit of nesting level for #include file +Fatal: Exceeded the limit of nesting level for #include file. This limit +is 200. +Fail to read the file %s +Cannot write the file %s +%s: %s: An if directive is not terminated properly in the file +%s: %s: nested comment +%s:%s: Illegal macro name %s; macro name shall be an identifier +%s:%s: Illegal preprocessing token sequence +3.8.3(35) +%s:%s: Illegal macro parameter name +%s:%s: Non-unique macro parameter name +3.8.3(18) +%s:%s: Missing ')' in parameter list for #define %s +%s:%s: Missing ')' in macro instantiation +%s:%s: Bad punctuator in the parameter list for #define %s +%s:%s: Macro %s redefined. +%s:%s: # operator should be followed by a macro argument name +%s:%s: Badly formed constant expression%s +3.4(9), 3.8 +%s:%s: Division by zero in #if or #elif +3.8 +unknown command line option %s +extraneous input/output file name %s +%s: %s: Unterminated string or character constant +A preprocessing string or character constant token was not +terminated. Note that preprocessing directives are processed +after the source file has been divided into preprocessing tokens. +2.1.1.2(30) 3.1(18) 3.8 +%s: %s: +%s: %s: +%s: %s: Unterminated comment +%s: %s: Unknown directive type %s +%s: %s: #elif or #else after #else directive +%s: %s: Bad identifier after the %s +%s: %s: #%s accepts only one identifier as parameter +3.8 +%s: %s: Bad identifier after the %s +%s: %s: text following #%s violates the ANSI C standard. +3.8 +%s: %s: Bad character %s occurs after the # directive. +3.8 +%s: %s: the ## operator shall not be the %s token in the replacement list +3.8.3.3 +%s: %s: the defined operator takes identifier as operand only. +3.8.1 +%s: %s: Not in a conditional directive while using %s +%s: %s: Illegal filename specification for #include +%s: %s: Invalid file name %s for #include +%s: %s: Cannot open file %s for #include +%s: %s: Bad argument for #line command +%s: %s: #error %s +%s: %s: Tried to redefine predefined macro %s, attempt ignored +3.8.7(22) +%s: %s: Undefining predefined macro %s +3.8.7(22) +%s: %s: Undefined the ANSI standard library defined macro %s +4.1.2.1(9) +%s: %s: The number of arguments in the macro invocation does not match the definition +%s: %s: Illegal character %s in preprocessor if +%s: %s: Illegal character %s for number in preprocessor if +%s: %s: No string is allowed in preprocessor if +%s: %s: Not supported pragma %s +%s: %s: Not supported #pragma format +%s: %s: ANSI C does not allow #ident; %s +%s: %s: Not supported #ident format +This cpp extension accepts the following format: +#ident "any string" +%s: %s: Not supported #assert/#unassert format +This cpp extension accepts the following format: +#assert identifier +#assert identifier ( pp-tokens ) +#unassert identifier +#unassert identifier ( pp-tokens ) +%s: %s: Bad assertion predicate format +The correct syntax for this cpp extension is: +#assert identifier ( pp-token ) +%s: %s: directive is an upward-compatible ANSI C extension +%s: This option requires an argument +%s: %s: A macro has expanded recursively more than %s times. Further expansion will be disabled! Use command-line option: -Wp,-max_rec_depth=depth to recurse deeper. +A status return from cpp to cfe +Syntax Error +The token read was unexpected. +Syntax Error -- cannot backup +The token read was unexpected. +Yacc stack overflow +The expression is too complicated to parse. +Trailing comma in enumerator list +The use of a trailing comma in an enumerator list is not standard C. There +may be portability problems. +3.5.2.2 +Empty declaration +Empty declarations are invalid in standard C. +3.5 +%s declared, but not referenced. +redeclaration of '%s'; previous declaration at line %s in file '%s' +Identifier redeclared in the same scope/block. +3.1.2.3 +'%s' undefined; reoccurrences will not be reported. +Non-function name referenced in function call. +3.3.2.2(18) +The number of arguments doesn't agree with the number in the declaration. +3.3.2.2(5) +'%s' section name longer than 8 characters. Name truncated. +'%s' is already placed by pragma alloc_text. +Cannot write ucode file while compiling %s +1) The file system is full +2) Permissions problem +Must have corresponding formal argument for '%s' +Parameter found in the declaration part, but not in the argument list. +3.7.1(7) +Non-prototype declaration is an obsolescent feature. +The use of function definitions with separate parameter identifier +and declaration lists (not prototype-format parameter type and +identifier declarators) is an obsolescent feature. +3.9.5 +Incompatible function declarations for %s +For two function types to be compatible, both shall specify compatible +return types. Moreover, the parameter type lists, if both are present, +shall agree in the number of parameters and in use of the ellipsis +terminator; corresponding parameters shall have compatible types. If +one type has a parameter type list and the other type is specified by +a function declarator that is not part of a function definition and +contains an empty identifier list, the parameter list shall not have +an ellipsis terminator and the type of each parameter shall be +compatible with they type that results from application of the default +argument promotions. If one type has a parameter type list and the +other is specified by a function definition that contains a (possibly +empty) identifier list, both shall agree in the number of parameters, +and the type of each prototype parameter shall be compatible with the +type that results from application of the default argument promotions +to the type of the corresponding identifier. (For each parameter +declared with function or array type, its type for these comparisons +is the one that results from conversion to a pointer type. For each +parameter declared with qualified type, its type for these comparisons +is the unqualified version of its declared type.) There you have it! +3.5.4.3(15) +Incompatible function return type for this function. +For two function types to be compatible, both shall specify compatible +return types. +3.5.4.3(15) +The number of parameters for function is different from the previous declaration +The parameter type lists, if both are present, shall agree in the +number of parameters and in use of the ellipsis terminator. +3.5.4.3(15) +Incompatible type for the function parameter +If both parameter type lists are present, corresponding +parameters shall have compatible types. +3.5.4.3(15) +Function %s is redeclared with an incompatible argument type (after default argument promotion), which could lead to undefined run-time behaviour. +The redeclaration could cause arguments at a call site to be passed +inconsistently with what the function implementation expects, and +parameters would therefore be accessed erroneously when executing the +function body. Note that a float argument is promoted to a double +when passed (potentially through fp registers) to an unprototyped +function. +3.5.4.3(15) +prototype and non-prototype declaration found for %s, ellipsis terminator not allowed +If one type has a parameter type list and the other type is specified +by a function declarator that is not part of a function definition and +contains an empty identifier list, the parameter list shall not have +an ellipsis terminator and the type of each parameter shall be +compatible with they type that results from application of the default +argument promotions. +3.5.4.3(15) +prototype and non-prototype declaration found for %s, the type of this parameter is not compatible with the type after applying default argument promotion +If one type has a parameter type list and the other type is specified +by a function declarator that is not part of a function definition and +contains an empty identifier list, the type of each parameter shall be +compatible with the type that results from application of the default +argument promotions. +3.5.4.3(15) +prototype declaration and non-prototype definition found for %s, the type of this parameter is not compatible with the type after applying default argument promotion +If one type has a parameter type list and the other is specified by a +function definition that contains a (possibly empty) identifier list, +both shall agree in the number of parameters, and the type of each +prototype parameter shall be compatible with the type that results +from application of the default argument promotions to the type of the +corresponding identifier. +3.5.4.3(15) +Empty declaration specifiers +Standard C requires at least a storage class specifier, type specifier, +or a type qualifier in declarations. 'extern int' assumed. +3.5 +Can't write to the file %s +1) The output file cannot be opened for writing. +2) Out of file space. +Duplicate '%s' +typedef, extern, static, auto, register, const, volatile may not +appear more than once in the same specifier list or qualifier list. +Duplicate occurrence ignored. +3.5.1(10) , 3.5.3(5) +Null input +There is nothing to compile. +Illegal type combination +3.5.2 +Missing ';' at end of structure / union member declaration +In standard C, each member declaration must be terminated by a ';'. A +terminating ';' is assumed. +3.5.2.1 +Missing member name in structure / union +In standard C, each member declaration have a member name. The missing +member is assumed to not exist. +3.5.2.1 +This variable is initialized twice. +Neither 'const' or 'volatile' have any effect on function results. +Qualifiers only apply to expressions designating an object that +can be altered or examined. +3.5.3(10) +An integer constant expression is required here. +The expression that defines the value of an enumeration constant +shall be an integral constant expression that has a value +representable as an int. +3.5.2.2(28) +(previous declaration of '%s' at line %s in file '%s') +Must be an integer type greater than zero. +The array size must be either a char, signed or unsigned integer or +an enumerated type with a value greater than zero. +3.5.4.2 +Array size cannot be a long long. +Arrays with more than 2^32 elements are not yet supported. +The array size must be either a char, signed or unsigned integer or +an enumerated type with a value greater than zero. +3.5.4.2 +bit-field '%s' width is not an integer constant +The expression that specifies the width of a bit-field shall be an +integral constant expression. +3.5.2.1(15) +bit-field '%s' width is negative +The expression that specifies the width of a bit-field shall be +non-negative. +3.5.2.1(15) +bit-field '%s' type required to be int, unsigned int, or signed int. +A bit-field shall have type int, unsigned int, or signed int. +3.5.2.1(30) +bit-field %s's type not integer. +Non-scalar type or pointer type to a non-object for increment or decrement operator. +The operand of the prefix/postfix increment or decrement operator shall have scalar type; if it is of pointer type, it must point to an object. +3.3.2.4(37), 3.3.3.1(25) +Assign value to a function type. +An assignment operator shall have a modifiable lvalue as its left operand. +3.2.2.1(5) +Assign value to an array. +An assignment operator shall have a modifiable lvalue as its left operand. +3.3.2.4(36), 3.3.3.1(24), 3.2.2.1(5) +Change value for variable of incomplete type. +The operand of increment and decrement operator shall be a modifiable +scalar lvalue. An assignment operator shall have a modifiable lvalue +as its left operand. +3.3.2.4(36), 3.3.3.1(24), 3.2.2.1(5) +The left-hand side of the '.' operator must be an addressable lvalue, when a bit-field is not contained within a unit of 32 bits alignment. +This is a restriction in our implementation, which can be worked +around by always accessing long long bit-fields indirectly (i.e. +by means of the '->' operator). +This expression is not an lvalue. +3.2.2.1 +Modified an rvalue. +3.2.2.1 +Change value for constant variable. +The operand of increment and decrement operators shall be modifiable +scalar lvalues. An assignment operator shall have a modifiable lvalue +as its left operand. +3.3.2.4(36), 3.3.3.1(24), 3.2.2.1(5) +Change value for constant field of a struct or union. +An assignment operator shall have a modifiable lvalue as its left operand. +3.3.2.4(36), 3.3.3.1(24), 3.2.2.1(5) +Dereferenced a non-pointer. +The operand of the unary * operator shall have pointer type. +3.3.3.2(39) +The operand of the unary + or - operator shall have arithmetic type. +3.3.3.3(6) +The operand of the unary ~ operator shall have integral type. +3.3.3.3(6) +The operand of the unary ! operator shall have scalar type. +3.3.3.3(6) +Constants must have arithmetic type. +3.1.3 +Bad type name for cast operator +The type name for the cast operator should either be void or a +qualified or unqualified scalar type. +3.3.4(22) +Improper cast of non-scalar type expression. +The operand for the cast operator shall be of scalar type. +3.3.4(23) +Cast a pointer into a non-integral type. +A pointer may be converted to an integral type. +3.3.4(31) +Cast a non-integral type into a pointer. +An integral type may be converted to a pointer. +3.3.4(31) +Duplicate member '%s' +Two members of a struct may not have the same name. +3.1.2.2(7,25) +Invalid constant expression. +Constant expressions shall not contain assignment, increment, decrement, +function-call, or comma operators, except when they are contained within +the operand of the sizeof operator. +3.4(9) +Constant expressions must be derived from a constant value or a constant +variable. +3.4 +Dangerous operand of '&'. +The operand of the unary & operator shall be either a function +designator or an lvalue that designates an object that is not a +bit-field and is not declared with the register storage-class +specifier. This operand is NOT an lvalue, but we let it pass. +Note that a segmentation error with possible core dump will result +when the resulting address does not denote a valid (declared) +storage location. This feature will be discontinued in future +releases of the compiler! +3.3.3.2(36) +Unacceptable operand of '&'. +The operand of the unary & operator shall be either a function +designator or an lvalue that designates an object that is not a +bit-field and is not declared with the register storage-class +specifier. +3.3.3.2(36) +'&' before array or function; ignored +Unacceptable operand of sizeof operator. +The sizeof operator shall not be applied to an expression that has +function type or an incomplete type, to the parenthesized name of such +a type, or to an lvalue that designates a bit-field object. +3.3.3.4 +Unacceptable operand of a multiplicative operator. +Each of the operands of a multiplicative operator shall have arithmetic type. +3.3.5(18) +Unacceptable operand of the remainder operator +Each of the operands of the remainder (%) operator shall have integral type. +3.3.5(18) +Unacceptable operand of '+'. +For the + operator, either both operands shall have arithmetic type, or +one operand shall be a pointer to an object type and the other shall +have integral type. +3.3.6(39) +Unacceptable operand of '-'. +For the subtraction operator, one of the following shall hold: both operands +have arithmetic type; operands are pointers to qualified or unqualified +versions of compatible object types; or the left operand is a pointer +to an object type and the right operand has integral type. +3.3.6(39) +Unacceptable operand of shift operator. +Each of the operands of bitwise shift operators shall have integral type. +3.3.7(9) +Unacceptable operand of relational operator. +For relational operators, one of the following shall hold: both +operands have arithmetic type; both operands are pointers to qualified +or unqualified versions of compatible object types; or both operands +are pointers to qualified or unqualified versions of compatible +incomplete types. +3.3.8(32) +Unacceptable operand of == or != +For the == or != operator, one of the following shall hold: both operands +are pointers to qualified or unqualified versions of compatible types; one +operand is a pointer to an object or incomplete type and the other is a +pointer to a qualified or unqualified version of void; or one operand is +a pointer and the other is a null pointer constant. +3.3.9(21) +Unacceptable operand of &. +Each of the operands shall have integral type. +3.3.10(7) +Unacceptable operand of ^. +Each of the operands shall have integral type. +3.3.11(18) +Unacceptable operand of |. +Each of the operands shall have integral type. +3.3.12(30) +Unacceptable operand of &&. +Each of the operands shall have scalar type. +3.3.13(7) +Unacceptable operand of ||. +Each of the operands shall have scalar type. +3.3.14(20) +Unacceptable operand of conditional operator. +The first operand of conditional operator shall have scalar type. One +of the following shall hold for the second and third operands: +both operands have arithmetic type; both operands have compatible +structure or union types; both operands have void type; both operands +are pointers to qualified or unqualified versions of compatible types; +one operand is a pointer and the other is a null pointer constant; or +one operand is pointer to an object or incomplete type and the other +is a pointer to a qualified or unqualified version of void. +3.3.15 +Duplicate label '%s' +A label name can only occur once in a function. +3.1.2.1(25) +Division by zero. +3.3.5 +Subscripting a non-array. +3.3.2.1 +Subscripting an array of incomplete type which is not an object type. +The element of the array shall have an object type. +3.3.2.1 +Should only subscript an array with an integral expression +3.3.2.1 +Subscripting an unbounded array +3.3.2.1 +Array index out of range +3.3.2.1 +Selector requires struct/union pointer as left hand side +In K&R mode the expression is implicitly converted to the '.' selector +for a struct/union left-hand side. +3.3.2.3 +Selector requires struct/union as left hand side +In K&R mode the expression is implicitly converted to the '->' selector +for a struct/union pointer left-hand side. +3.3.2.3 +member of structure or union required +3.3.2.3 +types have different qualifier specifications +For two qualified types to be compatible, both shall have the +identically qualified version of a compatible type; qualified +and unqualified versions of a type are distinct types. For two +types to be compatible their types must be the same. +3.5.3(26) +Incompatible array type due to different array size +For two array types to be compatible, both shall have compatible element +types; if both size specifiers are present, they shall have the +same value. +3.5.4.2(11) +Incompatible array type due to incompatible element type +For two array types to be compatible, both shall have compatible element +types. +3.5.4.2(11) +Incompatible pointer type assignment +The type pointed to by the left-hand side of simple assignment +statement is incompatible with the type pointed to by the right-hand side. +3.3.16.1, 3.5.4.1(21) +Incompatible base type of pointer type +K&R feature. +Type %s of %s is incompatible with type %s of %s +Incompatible types can be resolved by casting or by other means. +3.3.16.1 +illegal combination of pointer and integer +Assigning an integral expression to a pointer is a bad practice. +Type for %s is incompatible with %s +Incompatible types can be resolved by casting or by other means. +3.1.2.6 +Bad operand type for += or -= +3.3.16.2(26) +A case or default label appears outside a switch statement +A case or default label shall appear only in a switch statement. +3.6.1 +The controlling expression of the if statement is not scalar type +The controlling expression of an if statement shall have scalar type. +3.6.4.1 +The controlling expression of switch statement is not integral type +The controlling expression of an switch statement shall have integral type. +3.6.4.2(20) +The case label is not an integral constant expression +The case label shall be an integral constant expression. +3.6.4.2(22) +Duplicate case label in the same switch statement +No two of the case constant expressions in the same switch statement +shall have the same value after conversion. +3.6.4.2(22) +More than one default label in the same switch statement +There may be at most one default label in a switch statement. +3.6.4.2(23) +The controlling expression of the iteration statement is not scalar +type +The controlling expression of a iteration statement shall have scalar +type. +3.6.5.1 +label '%s' used, but not defined +The identifier in a goto statement shall name a label located +somewhere in the enclosing function. +3.6.6.1 +A continue statement shall appear only in or as a loop body +3.6.6.2 +A break statement shall appear only in or as a switch body or loop body +3.6.6.3 +A return statement with an expression should not appear +in a function '%s', whose return type is void +3.6.6.4(24) +A return statement without an expression appears in a +function '%s', whose return type is not void +If a return statement without an expression is executed, and the value +of the function call is used by the caller, the behavior is undefined. +3.6.6.4(33) +Internal Error: statement stack underflow +Long double not supported; double assumed. +Long float not standard; double assumed. +Only 'register' allowed in parameter declaration +The only storage-class specifier that shall occur in a parameter +declaration is 'register'; illegal storage class ignored. +3.5.4.3(25) +Name(s) without types in a function declaration +An old-style function declaration is not allowed to have names +in the parameter list; useless names ignored +3.5.4.3(26) +Functions cannot return functions +3.7.1(33), 3.3.2.2 +Functions cannot return a non-object type +3.3.2.2 +enum declaration must contain enum literals +Although structs or unions may delay the declaration of their members, +a similar construction with enum does not exist and is not necessary, +as there can be no mutual dependencies between the declaration of an +enumerated type and any other type. +3.5.2.3(27) +Register qualification has no effect for this type of object +Register declarations for array, struct, and function types have +no effect. +3.5.1(16), 3.5.1(19) +Functions cannot be declared 'register' +The declaration of an identifier for a function that has block +scope shall have no explicit storage-class specifier other than +'extern'. +3.5.1(19) +'%s' cannot be initialized +The type of the entity to be initialized shall be an object type +or an array of unknown size. +3.5.7(32) +Cannot initialize 'extern' variable '%s' within a function +If the declaration of an identifier has block scope, and the +identifier has 'extern' or 'static' linkage, the declaration +shall have no initializer for the identifier; initialization +allowed anyway. +3.5.7(35) +initializing an 'extern' is an ANSI C extension +conflicting declarations for '%s' +'static' and 'extern' declarations conflict. Which is meant? +3.1.2.2(15), 3.1.2.2(27) +Too many initial values for '%s' +3.5.7(1) +incompatible types in initialization +3.3.16(35) +redefinition of '%s'; previous definition at line %s in file '%s' +Identifier redeclared in the same scope/block. +3.1.2.3 +bit-fields as members of a union are an ANSI C invention. +storage size for '%s' isn't known +type mismatch in initialization +Missing braces in a union initialization or illegally formed +initialization. +3.5.7(5) +union '%s' only allowed one initializer for the first member +3.5.7(5) +width of '%s' exceeds its type +the specified bitfield width is too large to be contained within a +bitfield type. +structure has no member named '%s' +This is allowed for compatibility with AT&T pcc-based compilers. +Reference of an expression of void type or an incomplete type. +3.2.2.1 +element size of an array shall not be zero +3.2.2.5(25) +invalid combination of type specifiers +Although order is unimportant, not all type specifiers can occur together. +3.5.2 +declaration must at least declare an identifier, tag, or the member of an enumeration +3.5(16) +at most one storage class may be given in the declaration +Duplicate occurrence ignored. +3.5.1(10) +size of function's return type is zero +The return type of a function must be void or an object type other than array. +3.7.1(33) +Expecting an integral return type from the main function +identifier missing from parameter declaration +Prototypes for function definitions require identifiers in parameter +declarations. +3.7.1(4) +only 'register' allowed for storage class for parameters +The declarations in the declaration list shall contain no storage class +other than 'register', and no initializations. +3.7.1(10) +parameters declarations can not have initializations +3.7.1(10) +only one instance of 'void' allowed in the parameter list +'void' must occur by itself (specifying that the function has no parameters). +3.5.4.3(1) +%s must have function type +1) An argument list must be explicitly present in the declarator; it cannot + be inherited from a typedef (3.5.4.3). +2) The declarator is not a function. +3.7.1(30) +Illegal hexadecimal constant +You have no digits after the 0x or 0X. 0x0 assumed. +3.1.3.2 +value overflows its type in this context. Value is set to be '%s'! +3.2.1.4 +value is outside range representable for type '%s' +missing member name +K&R mode permits a missing member name; otherwise, only bitfields can omit +the member name. +3.5.2.1(10) +useless keyword or type name in declaration +Type was ignored. +'%s' declared within and is limited to this function prototype +Possible program error, since parameter type checking will always fail +unless the type declaration is visible to the caller. +3.1.2.1(35) +Extra spaces within operator, %s assumed +In ANSI C, the compound assignment operator cannot have embedded +white space characters. +3.1.5 +missing size for array '%s' +Incomplete types permitted for identifiers with internal or +external linkage, but not automatic linkage. +3.1.2.5(10) +can't jump into (from outside of) the body of a 'try' or into either type of handler +'%s' missing, please #include excpt.h +excpt.h required to declare exception statements, intrinsics or compiler +runtime names. +local function declarations cannot be 'static' +A function declaration can only contain the storage-class 'static' +if it is at file scope. Declaration made 'extern'. +3.5.1(19) +static function '%s' declared and referenced, but not defined. +If an identifier declared with internal linkage is used in an +expression (other than as a part of the operand of a sizeof +operator), there shall be exactly one external definition for +the identifier in the translation unit. +3.7(12) +pragma argument '%s' must be declared prior to being used in a pragma +Pragma name ignored. +Pragma not supported +'%s' not enabled as intrinsic +It may have already appeared in a function pragma, or never occurred in +an intrinsic pragma. +'%s' is already enabled as an intrinsic +weak definition for '%s' is later redefined; pragma weak ignored. +definition of primary name '%s' not found; pragma weak ignored. +definition of secondary name '%s' not found; pragma weak ignored. +primary name '%s' is declared as a common or external, and is not defined +with initial value within this file; pragma weak ignored. +useless '%s' storage class ignored +array of functions not allowed +The element type must be an object type representing a region +of data storage which can represent values. +3.1.2.5(23) +array of voids not allowed +The element type must be an object type representing a region +of data storage which can represent values. +3.1.2.5(23) +argument for pragma pack must be an integer constant; pragma ignored +'%s' has wrong tag type. +Identifier redeclared in the same scope/block. +3.1.2.3 +missing dimension bound +For multidimensional arrays, the constant bounds of the array may be +omitted only for the first member of the sequence. +3.1.2.5(23) +Internal error in parameters to function substr; loc: '%s'; len: '%s'. +Internal error in parameters to function insertstr; indx: '%s'. +Internal error in function get_tag_name; input is a non-tagged type. +Internal error in function gen_type_str -- not a type tree '%s' +Cannot open file '%s' +Prototype should be moved after tag or a typedef declaration. +Please look for comments in the extracted header file. +The extracted header file includes prototypes for static functions, +which should be removed, if you wish to include the header in a source file +other than the originator. +ANSI C requires formal parameter before "..." +This extension is meant to be used for compatibility with varargs.h +3.5.4.3(35) +syntax error: "&..." invalid +extension used to access "..." formal arguments. +function '%s' initialized like a variable +The type of entity to be initialized shall be an object type or an +array of unknown size. +3.5.7(31) +initializer not an array aggregate +The initializer for an object that has aggregate type shall be a +brace-enclosed list of initializers for the members of the aggregate, +written in increasing subscript or member order. +3.5.7(20) +'%s' type is incomplete; cannot initialize +Was the struct ever defined? +3.5.7.(31) +'%s' is not standard ANSI. +This keyword/type is not defined in strict ANSI mode. +3.1.1 +not a legal asm string +The first operand of an asm string should be, after argument substitution, +a legal assembly string. +The -float option will be ignored in ANSI mode. +The -float option is ignored, since otherwise program semantics would +violate the ANSI standard. In particular, fp constants are always +'double' with ANSI-C, while with -float the type of fp constants will +depend on the context and may be 'float'. +ANSI C support unavailable with C compiler bundled with RISC/os +The C compiler bundled with RISC/os does not support ANSI C. ANSI +C support requires a separate license. +Ignored invalid warning number(s) in -woff option, %s%s ! +Warning numbers must be in the range %s to %s. +The set of warning numbers in cfe is disjoint from the set of warning numbers +in accom, since accom warnings cannot be mapped one-to-one to cfe warnings. +'%s' not handled as an intrinsic due to incompatible argument types . +'__unalign' only qualifies pointers +'__unalign' indicates the object pointed at by pointer is unaligned (e.g., +int * __unalign p). This is an extension to ANSI C and like 'volatile' +and 'const' can follow the '*' in pointer declarations, but unlike both +cannot qualify a base type. +index expression is an anachronism +ANSI C++ doesn't support array index expressions in delete. +5.3.4 +member cannot be of function or incomplete type. +3.5.2.1(12) +Illegal lint option, '%s', is ignored. +cannot open header message buffer file +cannot write header message buffer file +cannot read header message buffer file +cannot seek in header message buffer file +struct/union/enum '%s' is used, but not defined +static '%s' unused +nonportable character comparison (chars may be signed or unsigned) +redundant comparison of unsigned with constant expression +redundant statement, control flow cannot reach this statement +'%s' may be used before set +function parameter '%s' is not used in function '%s' +'%s' can be const qualified, since it is not set within its lifetime. +'%s' is not used in function '%s' +'%s' set but unused in function '%s' +control may fall through %s statement +function '%s' has return(e); and return; +function '%s' may return random value to place of invocation %s +label without goto: '%s' +width of %s constant is smaller than size of type (%s) +explicit conversion from '%s' to '%s' %s +implicit conversion from '%s' to '%s' %s +'%s' may be indistinguishable from '%s' due to internal name truncation +Promoted formal parameter and promoted argument have incompatible types +No prototype for the definition of '%s' %s +References to '%s' are substituted by its literal initializer + (as included in %s) +============== +unsupported language linkage +string-literal specifies an unsupported linkage +7.4(1) +No prototype for the call to %s +To achieve better type-checking, there should be a full prototype for +the function being called. +3.5.4.3 +'inline' only applies to function declarations +leave statment can occur only within try body +Microsoft extension +Use of a Microsoft extension detected without usage of the +compiler option -msft. +No parameter mentioned +A file with no declarations or definitions is accepted as an extension to ANSI C +The translation unit must contain at least one external definition. +3.7 +Incompatible signed and unsigned version of a type +Yacc initialization error +Internal error: yacc cannot initialize itself. +The cfe option %s may not be in future releases. We suggest that you not use this option! +Incompatible char and unsigned char versions of a type +Lshift with undefined behaviour. +Lshift with a negative right operand, or a right operand that is greater +than or equal to the width in bits of the promoted left operand, results +in undefined behaviour. +3.3.7(11) +useless type name in declaration, possibly a semicolon is missing. +Type was ignored. +constant initializer expression is invalid (refers to automatic variables). +All the expressions in an initializer for an object that has static storage +duration or in the initializer list for an object that has aggregate or +union type shall be constant expressions. Otherwise, unexpected results +may occur. +3.5.7(32) and 3.4 +invalid explicit or implicit conversion of an address constant to an integral value in a constant initializing expression. +An address constant in a constant initializing expression can neither +initialize a bit-field nor be directly or indirectly converted to an +integral type of size different from an address type. +6.4 diff --git a/tools/irix/root/usr/lib/libc.so.1 b/tools/irix/root/usr/lib/libc.so.1 new file mode 100644 index 000000000..17495ef6c Binary files /dev/null and b/tools/irix/root/usr/lib/libc.so.1 differ diff --git a/tools/irix/root/usr/lib/libexc.so b/tools/irix/root/usr/lib/libexc.so new file mode 100644 index 000000000..209c53666 Binary files /dev/null and b/tools/irix/root/usr/lib/libexc.so differ diff --git a/tools/irix/root/usr/lib/libgen.so b/tools/irix/root/usr/lib/libgen.so new file mode 100644 index 000000000..7b8ec7fd5 Binary files /dev/null and b/tools/irix/root/usr/lib/libgen.so differ diff --git a/tools/irix/root/usr/lib/libm.so b/tools/irix/root/usr/lib/libm.so new file mode 100644 index 000000000..05bf47817 Binary files /dev/null and b/tools/irix/root/usr/lib/libm.so differ diff --git a/tools/irix/root/usr/lib/ugen b/tools/irix/root/usr/lib/ugen new file mode 100755 index 000000000..beb81f4bd Binary files /dev/null and b/tools/irix/root/usr/lib/ugen differ diff --git a/tools/irix/root/usr/lib/ujoin b/tools/irix/root/usr/lib/ujoin new file mode 100755 index 000000000..23a4cbbde Binary files /dev/null and b/tools/irix/root/usr/lib/ujoin differ diff --git a/tools/irix/root/usr/lib/uld b/tools/irix/root/usr/lib/uld new file mode 100755 index 000000000..bd182fdc7 Binary files /dev/null and b/tools/irix/root/usr/lib/uld differ diff --git a/tools/irix/root/usr/lib/umerge b/tools/irix/root/usr/lib/umerge new file mode 100755 index 000000000..e8e09e664 Binary files /dev/null and b/tools/irix/root/usr/lib/umerge differ diff --git a/tools/irix/root/usr/lib/uopt b/tools/irix/root/usr/lib/uopt new file mode 100755 index 000000000..5451428ba Binary files /dev/null and b/tools/irix/root/usr/lib/uopt differ diff --git a/tools/irix/root/usr/lib/usplit b/tools/irix/root/usr/lib/usplit new file mode 100755 index 000000000..112abfcde Binary files /dev/null and b/tools/irix/root/usr/lib/usplit differ